/* =========================================================
   BCS-Peine – Design System
   Mobile-first (ab 320px). Palette & Skala aus Phase 2.
   ========================================================= */

/* Schrift: durchgehend Arial (System-Schrift, kein Webfont, DSGVO-freundlich). */

:root{
  /* Farben */
  --c-primary:#1B3A5B; --c-primary-ink:#FFFFFF;
  --c-secondary:#E8EDF2; --c-secondary-ink:#1B3A5B;
  --c-ink:#14202B; --c-ink-muted:#4A5A68;
  --c-surface:#FFFFFF; --c-border:#D2DAE2;
  --c-accent:#C8431F; --c-accent-ink:#FFFFFF; --c-accent-dark:#A8350F;
  --c-success:#1f7a4d; --c-success-bg:#e7f3ec;

  /* Typografie */
  --ff-display:Arial, sans-serif;
  --ff-body:Arial, sans-serif;
  --fs-300:.8rem; --fs-400:1rem; --fs-500:1.25rem; --fs-600:1.563rem;
  --fs-700:1.953rem; --fs-800:2.441rem;
  --fs-900:clamp(2.4rem,5vw + 1rem,3.815rem);

  /* Spacing (8px-Raster) */
  --s-1:4px; --s-2:8px; --s-3:16px; --s-4:24px;
  --s-5:32px; --s-6:48px; --s-7:64px; --s-8:96px;

  --radius:12px; --radius-sm:8px;
  --shadow:0 1px 2px rgba(20,32,43,.06),0 8px 24px rgba(20,32,43,.08);
  --maxw:1140px; --measure:68ch;
}

*,*::before,*::after{box-sizing:border-box}
html{font-size:100%;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--ff-body);font-size:var(--fs-400);line-height:1.6;
  color:var(--c-ink);background:var(--c-surface);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}

h1,h2,h3{font-family:var(--ff-display);font-weight:600;line-height:1.15;
  color:var(--c-primary);margin:0 0 var(--s-3);letter-spacing:-.01em}
h1{font-size:var(--fs-800)} h2{font-size:var(--fs-700)} h3{font-size:var(--fs-600)}
p{margin:0 0 var(--s-3)}
a{color:var(--c-accent-dark)} a:hover{color:var(--c-accent)}

.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--s-3)}
section{padding-block:var(--s-6)}
@media(min-width:768px){section{padding-block:var(--s-8)}}

/* Skip-Link & Fokus */
.skip-link{position:absolute;left:-999px;top:0;background:var(--c-primary);
  color:#fff;padding:var(--s-2) var(--s-3);z-index:200}
.skip-link:focus{left:var(--s-3);top:var(--s-3)}
:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;border-radius:3px}

/* ---- Buttons ---------------------------------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);
  min-height:48px;padding:0 var(--s-4);border-radius:var(--radius-sm);
  font-family:var(--ff-body);font-weight:600;font-size:var(--fs-400);
  text-decoration:none;border:2px solid transparent;cursor:pointer;
  transition:transform .08s ease,background .15s ease,border-color .15s ease}
.btn:active{transform:translateY(1px)}
.btn-sm{min-height:40px;padding:0 var(--s-3);font-size:var(--fs-300)}
.btn-accent{background:var(--c-accent);color:var(--c-accent-ink)}
.btn-accent:hover{background:var(--c-accent-dark);color:#fff}
.btn-primary{background:var(--c-primary);color:#fff}
.btn-primary:hover{background:#13293f;color:#fff}
.btn-outline{background:transparent;border-color:var(--c-primary);color:var(--c-primary)}
.btn-outline:hover{background:var(--c-primary);color:#fff}
.btn-outline-accent{background:#fff;border-color:var(--c-accent);color:var(--c-accent)}
.btn-outline-accent:hover{background:var(--c-accent);color:#fff}
.btn-ghost-light{background:transparent;border-color:rgba(255,255,255,.5);color:#fff}
.btn-ghost-light:hover{background:rgba(255,255,255,.12);color:#fff}
/* Umrandeter Button für helle Flächen (z. B. PDF-Download in der Kurs-Sidebar):
   klar sichtbarer Rahmen, beim Hover füllt er sich. */
.btn-ghost{background:transparent;border-color:var(--c-ink-muted);color:var(--c-ink-muted)}
.btn-ghost:hover{background:var(--c-primary);border-color:var(--c-primary);color:#fff}

/* ---- Header / Nav ---------------------------------------------- */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);
  backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--c-border)}
.header-inner{display:flex;align-items:center;justify-content:space-between;
  gap:var(--s-3);height:64px}
.brand{display:flex;align-items:center;gap:var(--s-2);text-decoration:none;color:var(--c-ink)}
.brand-mark{flex-shrink:0;display:flex;align-items:center}
.brand-mark svg{display:block}
.brand-text{font-family:var(--ff-display);font-size:var(--fs-500);letter-spacing:-.02em;line-height:1}
.brand-text strong{color:var(--c-primary)} .brand-text span{color:var(--c-ink-muted)}
.nav-toggle{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;
  width:48px;height:48px;background:none;border:0;cursor:pointer;padding:10px}
.nav-toggle span{height:2px;background:var(--c-primary);border-radius:2px;transition:.2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.primary-nav{position:fixed;inset:64px 0 auto 0;background:var(--c-surface);
  border-bottom:1px solid var(--c-border);max-height:calc(100vh - 64px);overflow:auto;
  visibility:hidden;transform:translateY(-8px);
  transition:transform .25s ease,visibility .25s;box-shadow:var(--shadow)}
.primary-nav.open{visibility:visible;transform:translateY(0)}
.primary-nav ul{list-style:none;margin:0;padding:var(--s-2) var(--s-3) var(--s-4)}
.primary-nav li{border-bottom:1px solid var(--c-border)}
.primary-nav a{display:block;padding:var(--s-3) var(--s-2);text-decoration:none;
  color:var(--c-ink);font-weight:500}
.primary-nav a[aria-current="page"]{color:var(--c-accent-dark);font-weight:700}
.nav-cta{border-bottom:0!important;margin-top:var(--s-3)}
.nav-cta a{display:flex;color:var(--c-accent)}
.nav-cta a:hover{color:#fff}

@media(min-width:920px){
  .nav-toggle{display:none}
  .primary-nav{position:static;visibility:visible;transform:none;box-shadow:none;border:0;background:none;max-height:none;overflow:visible}
  .primary-nav ul{display:flex;align-items:center;gap:var(--s-2);padding:0}
  .primary-nav li{border:0}
  .primary-nav a{padding:var(--s-2) var(--s-3);border-radius:var(--radius-sm)}
  .primary-nav a[aria-current="page"]{background:var(--c-secondary)}
  .nav-cta{margin:0}
}

/* ---- Breadcrumb ------------------------------------------------- */
.breadcrumb{background:var(--c-secondary);border-bottom:1px solid var(--c-border)}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s-2);
  margin:0;padding:var(--s-2) 0;font-size:var(--fs-300);color:var(--c-ink-muted)}
.breadcrumb li:not(:last-child)::after{content:"›";margin-left:var(--s-2);color:var(--c-ink-muted)}
.breadcrumb a{color:var(--c-secondary-ink);text-decoration:none}
.breadcrumb a:hover{text-decoration:underline}
.breadcrumb [aria-current]{color:var(--c-ink);font-weight:600}

/* ---- Hero ------------------------------------------------------- */
.hero{background:linear-gradient(160deg,var(--c-primary) 0%,#13293f 100%);color:#fff;
  padding-block:var(--s-7)}
.hero h1{color:#fff;font-size:var(--fs-900)}
.hero p.lead{color:#dbe4ee;font-size:var(--fs-500)}
.hero-actions{display:flex;flex-direction:column;gap:var(--s-3);margin-top:var(--s-5)}
.hero-actions .btn{width:100%}
@media(min-width:600px){.hero-actions{flex-direction:row}.hero-actions .btn{width:auto}}
@media(min-width:920px){
  .hero-inner{display:grid;grid-template-columns:1.3fr .7fr;gap:var(--s-6);align-items:center}
}
.hero-aside{display:none}
@media(min-width:920px){
  .hero-aside{display:block;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);
    border-radius:var(--radius);padding:var(--s-5)}
  .hero-aside dt{font-size:var(--fs-300);text-transform:uppercase;letter-spacing:.08em;color:#9fb4cb}
  .hero-aside dd{margin:0 0 var(--s-4);font-family:var(--ff-display);font-size:var(--fs-600);color:#fff}
  .hero-aside dd:last-child{margin-bottom:0}
}

/* ---- Trust-Streifen -------------------------------------------- */
.trust{display:grid;gap:var(--s-3);grid-template-columns:1fr}
@media(min-width:600px){.trust{grid-template-columns:repeat(3,1fr)}}
.trust-item{background:var(--c-secondary);border-radius:var(--radius);padding:var(--s-4);text-align:center}
.trust-item strong{display:block;font-family:var(--ff-display);font-size:var(--fs-600);color:var(--c-primary)}
.trust-item span{font-size:var(--fs-300);color:var(--c-ink-muted)}

/* ---- Section headings ------------------------------------------ */
.section-head{margin-bottom:var(--s-5)}
.section-head .eyebrow{font-size:var(--fs-300);text-transform:uppercase;letter-spacing:.1em;
  color:var(--c-accent-dark);font-weight:700;margin-bottom:var(--s-2)}
.bg-soft{background:var(--c-secondary)}

/* ---- Cards (Kurs-Card) ----------------------------------------- */
.card-grid{display:grid;gap:var(--s-4);grid-template-columns:1fr}
@media(min-width:640px){.card-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.card-grid.cols-3{grid-template-columns:repeat(3,1fr)}}
.card{display:flex;flex-direction:column;background:var(--c-surface);border:1px solid var(--c-border);
  border-radius:var(--radius);padding:var(--s-4);box-shadow:var(--shadow);transition:transform .12s ease,border-color .12s ease}
.card:hover{transform:translateY(-3px);border-color:var(--c-primary)}
.card h3{margin-bottom:var(--s-2)}
.card .badges{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-bottom:var(--s-3)}
.badge{font-size:var(--fs-300);font-weight:600;padding:2px var(--s-2);border-radius:999px;
  background:var(--c-secondary);color:var(--c-secondary-ink)}
.badge--accent{background:#fae7df;color:var(--c-accent-dark)}
.card .price{font-family:var(--ff-display);font-size:var(--fs-500);color:var(--c-ink);margin:0 0 var(--s-2)}
.card .price small{font-family:var(--ff-body);font-size:var(--fs-300);color:var(--c-ink-muted);font-weight:400}
.card p{margin-bottom:var(--s-4);color:var(--c-ink-muted)}
.card .card-foot{margin-top:auto;display:flex;gap:var(--s-3);flex-wrap:wrap;align-items:center}

/* PDF-/Dokument-Link */
.pdf-link{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-300);
  font-weight:600;color:var(--c-accent-dark);text-decoration:underline;
  text-underline-offset:3px;text-decoration-thickness:1px}
.pdf-link:hover{color:var(--c-accent);text-decoration:underline}
.pdf-link::before{content:"";flex:0 0 auto;width:13px;height:13px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3C/svg%3E");
  background-size:contain;background-repeat:no-repeat;background-position:center}

/* PDF-Download als prominente Call-to-Action (Kursthemen herunterladen) */
.pdf-cta{display:flex;align-items:center;gap:var(--s-3);width:100%;
  background:#fae7df;color:var(--c-accent-dark);text-decoration:none;
  border:2px solid var(--c-accent);border-radius:var(--radius);
  padding:var(--s-3) var(--s-4);transition:background .15s,color .15s,transform .15s,box-shadow .15s}
.pdf-cta:hover{background:var(--c-accent);color:#fff;text-decoration:none;
  transform:translateY(-1px);box-shadow:0 6px 16px rgba(200,67,31,.30)}
.pdf-cta-ico{flex:0 0 auto;width:42px;height:42px;border-radius:10px;
  background:var(--c-accent);color:#fff;display:grid;place-items:center;transition:background .15s}
.pdf-cta:hover .pdf-cta-ico{background:rgba(255,255,255,.22)}
.pdf-cta-ico svg{width:22px;height:22px;display:block}
.pdf-cta-txt{display:flex;flex-direction:column;gap:2px;line-height:1.25;min-width:0}
.pdf-cta-txt strong{font-size:var(--fs-400);font-weight:700}
.pdf-cta-txt small{font-size:var(--fs-300);font-weight:500;opacity:.9}

/* Coaching-Hinweis-Banner */
.coaching-hint{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3) var(--s-4);
  background:var(--c-primary);color:#fff;border-radius:var(--radius);
  padding:var(--s-4) var(--s-5);margin-top:var(--s-5)}
.coaching-hint-icon{flex:0 0 auto;width:44px;height:44px;border-radius:10px;
  background:rgba(255,255,255,.12);display:grid;place-items:center;color:#fff}
.coaching-hint-body{flex:1;min-width:200px;display:flex;flex-direction:column;gap:4px}
.coaching-hint-body strong{font-size:var(--fs-400);font-weight:700;color:#fff}
.coaching-hint-body span{font-size:var(--fs-300);color:#c5d4e3;line-height:1.5}
.coaching-hint .btn-primary{background:#fff;color:var(--c-primary);border-color:#fff;white-space:nowrap}
.coaching-hint .btn-primary:hover{background:var(--c-secondary);border-color:var(--c-secondary)}


/* Dokument-Kacheln ("Weitere Unterlagen") */
.doc-tiles{display:grid;gap:var(--s-3);grid-template-columns:1fr;margin-top:var(--s-4)}
@media(min-width:600px){.doc-tiles{grid-template-columns:repeat(2,1fr)}}
.doc-tile{display:flex;align-items:center;gap:var(--s-3);background:var(--c-surface);
  border:1px solid var(--c-border);border-radius:var(--radius);padding:var(--s-3) var(--s-4);
  text-decoration:none;color:var(--c-ink);box-shadow:var(--shadow);
  transition:transform .12s ease,border-color .12s ease}
.doc-tile:hover{transform:translateY(-2px);border-color:var(--c-primary);color:var(--c-ink)}
.doc-tile .doc-ico{flex:0 0 auto;width:44px;height:44px;border-radius:10px;background:#fae7df;
  color:var(--c-accent-dark);display:grid;place-items:center;font-weight:700;font-size:11px;letter-spacing:.03em}
.doc-tile .doc-meta{display:flex;flex-direction:column;gap:2px;min-width:0}
.doc-tile .doc-meta strong{font-size:var(--fs-400);line-height:1.25;color:var(--c-primary)}
.doc-tile .doc-meta span{font-size:var(--fs-300);color:var(--c-ink-muted)}

/* Status-Pill */
.pill{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-300);font-weight:600}
.pill::before{content:"";width:8px;height:8px;border-radius:50%}
.pill--free{color:var(--c-success)} .pill--free::before{background:var(--c-success)}
.pill--request{color:var(--c-ink-muted)} .pill--request::before{background:var(--c-ink-muted)}

/* ---- Termin-Liste / Tabelle ------------------------------------ */
.termin-cards{display:grid;gap:var(--s-3)}
.termin-card{display:grid;gap:var(--s-2);background:var(--c-surface);border:1px solid var(--c-border);
  border-radius:var(--radius);padding:var(--s-4)}
.termin-card .date{font-family:var(--ff-display);font-size:var(--fs-500);color:var(--c-primary);
  font-variant-numeric:tabular-nums}
.termin-card .meta{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center}
.termin-card .actions{margin-top:var(--s-2)}
@media(min-width:768px){
  .termin-table{display:table}
  .termin-cards.as-table{display:table;width:100%;border-collapse:separate;border-spacing:0;
    background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);
    overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.07)}
  .termin-cards.as-table .termin-card{display:table-row;border:0;transition:background .15s}
  .termin-cards.as-table .termin-card:not(.termin-head):hover{background:var(--c-surface-2,#f0f4f8)}
  .termin-cards.as-table .termin-card:not(.termin-head):nth-child(even){background:var(--c-soft,#f7f9fb)}
  .termin-cards.as-table .termin-card:not(.termin-head):nth-child(even):hover{background:var(--c-surface-2,#f0f4f8)}
  .termin-cards.as-table .termin-card>*{display:table-cell;padding:var(--s-3) var(--s-4);
    border-bottom:1px solid var(--c-border);vertical-align:middle}
  .termin-cards.as-table .termin-card:last-child>*{border-bottom:0}
  /* Kopfzeile */
  .termin-head{background:var(--c-primary)!important}
  .termin-head>*{color:#fff;font-size:var(--fs-200);font-weight:700;text-transform:uppercase;
    letter-spacing:.06em;padding-block:var(--s-3);border-bottom:0!important}
  .termin-head>*:first-child{border-radius:var(--radius) 0 0 0}
  .termin-head>*:last-child{border-radius:0 var(--radius) 0 0}
  /* Datumsspalte farbig */
  .termin-cards.as-table .termin-card:not(.termin-head) .date{
    font-size:var(--fs-400);font-weight:700;color:var(--c-primary)}
}

/* ---- Fakten-/Preis-Panel --------------------------------------- */
.panel{background:var(--c-secondary);border-radius:var(--radius);padding:var(--s-4)}
.panel--primary{background:var(--c-primary);color:#fff}
.panel--primary h3{color:#fff}
.panel--primary .check li{color:rgba(255,255,255,.92)}
.panel--primary .check strong{color:#fff}
.dl{margin:0;display:grid;gap:var(--s-2)}
.dl div{display:flex;justify-content:space-between;gap:var(--s-3);padding-block:var(--s-2);
  border-bottom:1px solid var(--c-border)}
.dl div:last-child{border-bottom:0}
.dl dt{color:var(--c-ink-muted);margin:0}
.dl dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums;text-align:right}

/* ---- Impressum (Karten-Layout) --------------------------------- */
.impressum-grid{display:grid;gap:var(--s-4);margin-top:var(--s-5);grid-template-columns:1fr}
@media (min-width:640px){.impressum-grid{grid-template-columns:1fr 1fr}}
.impressum-grid .panel{padding:var(--s-5);background:var(--c-surface);
  border:1px solid var(--c-border);box-shadow:0 1px 2px rgba(20,32,43,.04)}
.impressum-card-head{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-3);
  padding-bottom:var(--s-3);border-bottom:2px solid var(--c-border)}
.impressum-card-head .ico{flex:0 0 auto;width:42px;height:42px;border-radius:11px;
  background:var(--c-primary);color:#fff;display:grid;place-items:center}
.impressum-card-head .ico svg{width:21px;height:21px;display:block}
.impressum-card-head h2{margin:0;font-size:var(--fs-500)}
.impressum-grid dl{margin:0}
.impressum-grid dl>div{padding-block:var(--s-3);border-bottom:1px solid var(--c-border)}
.impressum-grid dl>div:first-child{padding-top:0}
.impressum-grid dl>div:last-child{border-bottom:0;padding-bottom:0}
.impressum-grid dt{font-size:var(--fs-300);color:var(--c-ink-muted);
  text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}
.impressum-grid dd{margin:0;font-weight:600;line-height:1.45}
.impressum-grid dd a{color:var(--c-accent-dark)}

/* ---- Rechtstexte (Datenschutz) – nummerierte Karten ------------ */
.legal-cards{display:grid;gap:var(--s-4);margin-top:var(--s-5)}
.legal-card{background:var(--c-surface);border:1px solid var(--c-border);
  border-radius:var(--radius);box-shadow:0 1px 2px rgba(20,32,43,.04);padding:var(--s-5);
  display:grid;grid-template-columns:auto 1fr;gap:var(--s-3) var(--s-4);align-items:start}
.legal-card .num{width:40px;height:40px;border-radius:11px;background:var(--c-primary);
  color:#fff;display:grid;place-items:center;font-weight:700;font-size:var(--fs-500);line-height:1}
.legal-card-body{min-width:0}
.legal-card-body>h2{margin:0 0 var(--s-2);font-size:var(--fs-500)}
.legal-card-body>:last-child{margin-bottom:0}
.legal-card .check{margin:0}
@media (min-width:640px){.legal-card .check{grid-template-columns:1fr 1fr;gap:var(--s-2) var(--s-4)}}

/* Detail-Layout zweispaltig */
.detail-grid{display:grid;gap:var(--s-5)}
@media(min-width:980px){.detail-grid{grid-template-columns:1fr 340px;align-items:start}
  .detail-aside{position:sticky;top:88px}}

/* Listen / Checklisten */
.check{list-style:none;padding:0;margin:0 0 var(--s-4);display:grid;gap:var(--s-2)}
.check li{position:relative;padding-left:var(--s-5)}
.check li::before{content:"";position:absolute;left:0;top:.45em;width:14px;height:8px;
  border-left:2px solid var(--c-accent);border-bottom:2px solid var(--c-accent);
  transform:rotate(-45deg)}

/* Prose-Block */
.prose{max-width:none}
.prose ul,.prose ol{padding-left:var(--s-4)}
.prose li{margin-bottom:var(--s-2)}

/* Download-Liste */
.dl-list{list-style:none;padding:0;margin:0;display:grid;gap:var(--s-3)}
.dl-item{display:flex;align-items:center;gap:var(--s-3);background:var(--c-surface);
  border:1px solid var(--c-border);border-radius:var(--radius);padding:var(--s-3) var(--s-4)}
.dl-item .doc{flex:0 0 auto;width:40px;height:40px;border-radius:8px;background:var(--c-secondary);
  display:grid;place-items:center;font-size:var(--fs-300);font-weight:700;color:var(--c-primary)}
.dl-item .grow{flex:1}
.dl-item h3{margin:0;font-size:var(--fs-400)}
.dl-item p{margin:0;font-size:var(--fs-300);color:var(--c-ink-muted)}

/* ---- CTA-Band --------------------------------------------------- */
.cta-band{background:var(--c-primary);color:#fff}
.cta-band-inner{display:grid;gap:var(--s-4);padding-block:var(--s-6)}
.cta-band h2{color:#fff;margin-bottom:var(--s-2)}
.cta-band p{color:#cdd9e6;margin:0}
.cta-band-actions{display:flex;flex-wrap:wrap;gap:var(--s-3)}
@media(min-width:768px){
  .cta-band-inner{grid-template-columns:1fr auto;align-items:center}
  .cta-band-actions{justify-content:flex-end}
}

/* ---- Footer ----------------------------------------------------- */
.site-footer{background:#0f2133;color:#c7d3df;font-size:var(--fs-400);
  border-top:3px solid var(--c-accent)}
.footer-top{padding-block:var(--s-7) var(--s-6)}
.footer-grid{display:grid;gap:var(--s-6) var(--s-5)}
@media(min-width:560px){.footer-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:920px){.footer-grid{grid-template-columns:1.8fr 1fr 1fr 1.4fr;gap:var(--s-5)}}

/* Markenspalte */
.footer-brand{display:flex;flex-direction:column;gap:var(--s-3)}
@media(min-width:560px){.footer-brand{grid-column:1 / -1}}
@media(min-width:920px){.footer-brand{grid-column:auto}}
.brand--footer{align-self:flex-start}
.brand--footer .brand-text strong{color:#fff}
.brand--footer .brand-text span{color:#90a4b8}
.brand--footer .brand-mark svg circle:first-of-type{fill:#2a4d72}
.footer-tagline{margin:0;max-width:34ch;color:#9fb1c4;line-height:1.6;font-size:var(--fs-300)}

/* Linkspalten */
.footer-col h3{color:#fff;font-size:var(--fs-300);font-family:var(--ff-body);font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;margin:0 0 var(--s-3)}
.footer-links{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2)}
.footer-links a{color:#c7d3df;text-decoration:none;display:inline-block;
  transition:color .15s ease,transform .15s ease}
.footer-links a:hover{color:#fff;transform:translateX(3px)}

/* Kontaktspalte mit Icons */
.footer-contact-list{font-style:normal;display:grid;gap:var(--s-3)}
.footer-contact-list a{display:flex;align-items:flex-start;gap:var(--s-2);
  color:#c7d3df;text-decoration:none;line-height:1.45;transition:color .15s ease}
.footer-contact-list a:hover{color:#fff}
.footer-contact-list svg{flex:0 0 auto;width:18px;height:18px;margin-top:1px;color:var(--c-accent)}

/* Untere Leiste */
.footer-bar{border-top:1px solid rgba(255,255,255,.1)}
.footer-bar-inner{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);justify-content:space-between;
  align-items:center;padding-block:var(--s-4);font-size:var(--fs-300);color:#90a4b8}
.footer-legal{list-style:none;margin:0;padding:0;display:flex;gap:var(--s-4)}
.footer-legal a{color:#90a4b8;text-decoration:none}
.footer-legal a:hover{color:#fff}
.footer-credit{margin:0;padding-block:0 var(--s-4);font-size:var(--fs-300);color:#8a97a6;text-align:center}
.footer-credit a{color:#fff;font-weight:700;text-decoration:none}
.footer-credit a:hover{color:#fff;text-decoration:underline}

/* ---- Formular --------------------------------------------------- */
.form-wrap{display:grid;gap:var(--s-5)}
@media(min-width:920px){.form-wrap{grid-template-columns:1.2fr .8fr;align-items:start}}
.form{display:grid;gap:var(--s-4)}
.field{display:grid;gap:var(--s-2)}
.field label{font-weight:600}
.field .req{color:var(--c-accent-dark)}
.field input,.field select,.field textarea{font-family:inherit;font-size:var(--fs-400);
  padding:var(--s-3);border:1px solid var(--c-border);border-radius:var(--radius-sm);
  background:#fff;color:var(--c-ink);width:100%}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--c-accent);
  outline-offset:1px;border-color:var(--c-accent)}
.field textarea{min-height:140px;resize:vertical}
.field .hint{font-size:var(--fs-300);color:var(--c-ink-muted)}
.field--error input,.field--error select,.field--error textarea{border-color:var(--c-accent)}
.field-error{color:var(--c-accent-dark);font-size:var(--fs-300);font-weight:600}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent{display:flex;gap:var(--s-2);align-items:flex-start}
.consent input{width:auto;margin-top:4px}

.alert{padding:var(--s-4);border-radius:var(--radius);margin-bottom:var(--s-4)}
.alert--ok{background:var(--c-success-bg);border:1px solid var(--c-success);color:#11532f}
.alert--err{background:#fae7df;border:1px solid var(--c-accent);color:var(--c-accent-dark)}

.contact-card{background:var(--c-secondary);border-radius:var(--radius);padding:var(--s-5)}
.contact-card h3{margin-top:0}
.contact-card address{font-style:normal;line-height:1.9}
.contact-card a{color:var(--c-secondary-ink);font-weight:600}

/* Hilfsklassen */
.lead{font-size:var(--fs-500);color:var(--c-ink-muted)}
.stack-sm>*+*{margin-top:var(--s-3)}
.mt-5{margin-top:var(--s-5)} .mb-0{margin-bottom:0}
.text-muted{color:var(--c-ink-muted)}
.w-full{width:100%}
.text-center{text-align:center}
.mw-none{max-width:none}
.fs-600{font-size:var(--fs-600)}
.eyebrow--accent{color:var(--c-accent-dark);text-transform:uppercase;letter-spacing:.1em;font-weight:700;font-size:var(--fs-300)}
.note{font-size:var(--fs-300);color:var(--c-ink-muted);border-left:3px solid var(--c-border);
  padding-left:var(--s-3);margin-top:var(--s-4)}

@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
