/* Öffentliche Startseite.
 *
 * Aufbau wie bei den grossen Speditionsplattformen: dunkle klebende Kopfzeile,
 * Hero mit Schnelleinstieg in die Preisabfrage, Zahlenband, Leistungskarten,
 * Ablauf in vier Schritten, Fussbereich.
 *
 * Farben wie im ganzen System: --akzent ist exakt die Markenfarbe aus
 * cargo-logo.png (hsl 203°), --dunkel dieselbe Farbe dunkler. Beim Ändern den
 * Farbton halten, sonst fällt der Kopf vom Logo ab. Dieselben Werte stehen in
 * css/portal.css, index.html, admin.html und als BLAU/NAVY in pdf.py.
 */
:root {
  --akzent:#0e486d; --akzent-hell:#175f8e; --dunkel:#082a3f; --dunkel-2:#0b3a55;
  --grau:#6b7280; --grau-hell:#9aa3ae;
  --text:#08131c; --text-2:#374151;
  --bg:#f8f9fc; --card:#fff;
  --border:#d3d7db; --border-leicht:#e3e7ec;
  --ok:#1e6f4a;
  --r-m:8px; --r-l:14px;
  --spalte:1180px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:78px; }
body { margin:0; background:var(--card); color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  letter-spacing:.2px; line-height:1.6; }
.spalte { max-width:var(--spalte); margin:0 auto; padding:0 24px; }
img { max-width:100%; }

/* --- Kopfzeile ----------------------------------------------------------- */
.kopf { position:sticky; top:0; z-index:50; background:var(--dunkel); color:#fff; }
.kopf .spalte { display:flex; align-items:center; gap:28px; height:70px; }
.kopf .logo { height:30px; width:auto; display:block; }
.kopf nav { display:flex; gap:26px; margin-left:20px; }
.kopf nav a { color:#c8ddea; text-decoration:none; font-size:14px; font-weight:600;
  letter-spacing:.3px; padding:6px 0; border-bottom:2px solid transparent; }
.kopf nav a:hover { color:#fff; border-bottom-color:var(--akzent-hell); }
.kopf .rechts { margin-left:auto; display:flex; gap:12px; align-items:center; }
.kopf .rechts .schlicht { color:#c8ddea; text-decoration:none; font-size:14px;
  font-weight:600; padding:9px 14px; border:1px solid #225677; border-radius:var(--r-m); }
.kopf .rechts .schlicht:hover { background:var(--dunkel-2); }
.kopf .menue { display:none; margin-left:auto; background:none; border:1px solid #225677;
  color:#c8ddea; border-radius:var(--r-m); padding:8px 12px; font-size:18px; cursor:pointer; }
@media (max-width:920px) {
  .kopf nav { display:none; }
  .kopf nav.offen { display:flex; position:absolute; top:70px; left:0; right:0;
    flex-direction:column; gap:0; margin:0; background:var(--dunkel-2); padding:8px 24px 16px; }
  .kopf nav.offen a { padding:12px 0; border-bottom:1px solid #1b4a68; }
  .kopf .menue { display:block; }
  .kopf .rechts { margin-left:12px; }
  .kopf .rechts .schlicht { display:none; }
}

/* --- Knöpfe -------------------------------------------------------------- */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px;
  height:50px; padding:0 26px; font-size:15px; font-weight:700; font-family:inherit;
  background:var(--akzent); color:#fff; border:0; border-radius:var(--r-m);
  cursor:pointer; text-decoration:none; white-space:nowrap; }
.btn:hover { background:var(--akzent-hell); }
.btn.hell { background:#fff; color:var(--akzent); }
.btn.hell:hover { background:#e8eef3; }
.btn.rand { background:transparent; color:var(--text); border:2px solid var(--border); }
.btn.rand:hover { background:var(--bg); border-color:var(--grau-hell); }
.btn.klein { height:42px; padding:0 18px; font-size:14px; }

/* --- Hero ---------------------------------------------------------------- */
.hero { background:
    radial-gradient(1200px 500px at 78% -10%, #14567f 0%, transparent 60%),
    linear-gradient(160deg, var(--dunkel) 0%, #0b3348 55%, #0e486d 100%);
  color:#fff; padding:78px 0 86px; }
.hero h1 { margin:0 0 16px; font-size:46px; line-height:1.1; font-weight:800;
  letter-spacing:-1px; max-width:16em; }
.hero .sub { margin:0 0 34px; font-size:18px; color:#c8ddea; max-width:38em; line-height:1.6; }
@media (max-width:720px) { .hero { padding:52px 0 60px; } .hero h1 { font-size:33px; } }

/* Schnelleinstieg — dieselbe Auswahl wie der Rechner, nur die ersten Felder. */
.schnell { background:rgba(255,255,255,.07); border:1px solid rgba(200,221,234,.22);
  border-radius:var(--r-l); padding:20px; max-width:860px; backdrop-filter:blur(3px); }
.schnell .richtung { display:inline-flex; border:1px solid rgba(200,221,234,.3);
  border-radius:var(--r-m); overflow:hidden; margin-bottom:16px; }
.schnell .richtung button { padding:9px 22px; font-size:14px; font-weight:700;
  font-family:inherit; background:transparent; color:#c8ddea; border:0; cursor:pointer; }
.schnell .richtung button.on { background:#fff; color:var(--akzent); }
.schnell .felder { display:grid; gap:12px; grid-template-columns:1.2fr 1fr auto; align-items:end; }
@media (max-width:760px) { .schnell .felder { grid-template-columns:1fr; } }
.schnell label { display:block; font-size:12px; font-weight:700; color:#9fc1d6;
  letter-spacing:.4px; margin-bottom:6px; text-transform:uppercase; }
.schnell input, .schnell select { width:100%; height:52px; padding:0 14px; font-size:16px;
  font-family:inherit; color:var(--text); background:#fff; border:0; border-radius:var(--r-m); }
.schnell .btn { height:52px; width:100%; }
.hero .hinweis { margin:16px 0 0; font-size:13px; color:#9fc1d6; max-width:52em; }

/* --- Zahlenband ---------------------------------------------------------- */
.zahlen { background:var(--bg); border-bottom:1px solid var(--border-leicht); padding:34px 0; }
.zahlen .gitter { display:grid; gap:20px; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); }
.zahlen .z { text-align:center; }
.zahlen .w { font-size:31px; font-weight:800; color:var(--akzent); letter-spacing:-.6px; }
.zahlen .b { font-size:13px; color:var(--grau); margin-top:2px; }

/* --- Abschnitte ---------------------------------------------------------- */
section.block { padding:76px 0; }
section.block.grau { background:var(--bg); }
.kopfzeile { max-width:44em; margin-bottom:40px; }
.kopfzeile .auge { font-size:12px; font-weight:800; letter-spacing:1.4px;
  text-transform:uppercase; color:var(--akzent); margin-bottom:10px; }
.kopfzeile h2 { margin:0 0 14px; font-size:35px; line-height:1.15; font-weight:800;
  letter-spacing:-.7px; }
.kopfzeile p { margin:0; font-size:16px; color:var(--text-2); }
@media (max-width:720px) {
  section.block { padding:52px 0; }
  .kopfzeile h2 { font-size:27px; }
}

/* --- Leistungskarten ----------------------------------------------------- */
.karten { display:grid; gap:20px; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); }
.karte { background:var(--card); border:1px solid var(--border-leicht); border-radius:var(--r-l);
  padding:28px 26px; display:flex; flex-direction:column; }
section.block.grau .karte { background:#fff; }
.karte .sym { font-size:30px; line-height:1; margin-bottom:14px; }
.karte h3 { margin:0 0 8px; font-size:20px; font-weight:800; letter-spacing:-.2px; }
.karte p { margin:0 0 16px; font-size:15px; color:var(--text-2); }
.karte ul { margin:0 0 20px; padding:0; list-style:none; display:grid; gap:9px;
  font-size:14px; color:var(--text-2); }
.karte ul li { display:flex; gap:10px; align-items:flex-start; line-height:1.5; }
.karte ul li::before { content:"✓"; color:var(--ok); font-weight:800; flex:0 0 auto; }
.karte .fuss { margin-top:auto; }

/* --- Ablauf -------------------------------------------------------------- */
.ablauf { display:grid; gap:22px; grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  counter-reset:schritt; }
.ablauf .s { counter-increment:schritt; padding-top:18px; border-top:3px solid var(--border); }
.ablauf .s::before { content:counter(schritt); display:grid; place-items:center;
  width:34px; height:34px; border-radius:50%; background:var(--dunkel); color:#fff;
  font-size:15px; font-weight:800; margin-bottom:12px; }
.ablauf .s h3 { margin:0 0 6px; font-size:17px; font-weight:800; }
.ablauf .s p { margin:0; font-size:14px; color:var(--text-2); }

/* --- Zweispalter --------------------------------------------------------- */
.zwei { display:grid; gap:46px; grid-template-columns:1fr 1fr; align-items:center; }
@media (max-width:860px) { .zwei { grid-template-columns:1fr; gap:30px; } }
.liste { margin:22px 0 26px; padding:0; list-style:none; display:grid; gap:13px; font-size:15.5px; }
.liste li { display:flex; gap:12px; align-items:flex-start; line-height:1.55; color:var(--text-2); }
.liste li::before { content:"✓"; color:var(--ok); font-weight:800; flex:0 0 auto; }
.schaukasten { background:var(--dunkel); color:#fff; border-radius:var(--r-l); padding:34px 32px; }
.schaukasten h3 { margin:0 0 10px; font-size:23px; font-weight:800; letter-spacing:-.3px; }
.schaukasten p { margin:0 0 20px; font-size:15px; color:#c8ddea; }
.schaukasten .liste li { color:#dbe9f2; }
.schaukasten .liste li::before { color:#6fc79b; }

/* --- Abschluss-Aufruf ---------------------------------------------------- */
.aufruf { background:linear-gradient(140deg,var(--dunkel) 0%,#0e486d 100%); color:#fff;
  padding:64px 0; text-align:center; }
.aufruf h2 { margin:0 0 12px; font-size:33px; font-weight:800; letter-spacing:-.6px; }
.aufruf p { margin:0 auto 26px; font-size:16px; color:#c8ddea; max-width:34em; }
.aufruf .knoepfe { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.aufruf .btn.rand { color:#fff; border-color:#3a6b8a; }
.aufruf .btn.rand:hover { background:var(--dunkel-2); border-color:#5a8aa8; }

/* --- Fussbereich --------------------------------------------------------- */
footer.fuss { background:#061e2d; color:#9fb6c4; padding:52px 0 26px; font-size:14px; }
footer.fuss .gitter { display:grid; gap:34px;
  grid-template-columns:1.6fr repeat(3,1fr); margin-bottom:34px; }
@media (max-width:820px) { footer.fuss .gitter { grid-template-columns:1fr 1fr; } }
@media (max-width:520px) { footer.fuss .gitter { grid-template-columns:1fr; } }
footer.fuss .logo { height:26px; width:auto; margin-bottom:14px; display:block; }
footer.fuss h4 { margin:0 0 12px; font-size:13px; font-weight:800; color:#fff;
  letter-spacing:.6px; text-transform:uppercase; }
footer.fuss ul { margin:0; padding:0; list-style:none; display:grid; gap:9px; }
footer.fuss a { color:#9fb6c4; text-decoration:none; }
footer.fuss a:hover { color:#fff; text-decoration:underline; }
footer.fuss .unten { border-top:1px solid #12384f; padding-top:20px;
  display:flex; gap:18px; flex-wrap:wrap; font-size:13px; color:#7d97a7; }
footer.fuss .unten .re { margin-left:auto; }
