/* ============================================================
   LAVEGO — RELAUNCH DESIGN SYSTEM
   Abgeleitet aus: Hyer Aviation (Typografie, Pills, helle Canvas)
                 + Mercury (dunkle Bänder, Karten, Rhythmus)
   ------------------------------------------------------------
   >>> BRAND COLORS: nur diese 3 Werte tauschen, alles andere folgt <<<
   ============================================================ */
:root{
  /* --- MARKENFARBEN — Logo-Violett #6B2A83 + echtes Komplementär (Salbei/Oliv) --- */
  --brand-accent:      #6B2A83;   /* Logo-Violett — NUR Primär-CTA, Marken-Momente, max. 1x/Viewport */
  --brand-accent-deep: #55206A;   /* Hover (-12 % Helligkeit) */
  --brand-accent-soft: #C79ADA;   /* Violett auf dunklem Grund */

  --brand-complement:      #4E7A3E;  /* echtes Komplementaer (H+180deg) — Salbeigruen, Wuestenflora */
  --brand-complement-deep: #3C5F30;  /* Hover */
  --brand-complement-soft: #94C278;  /* Komplementaer auf dunklem Grund */

  --brand-ink: #15151A;   /* neutrales Struktur-Schwarz */

  /* --- Neutrale Flaechen --- */
  --canvas:    #FFFFFF;
  --parchment: #F5F3EF;
  --onyx:      #16161C;
  --graphite:  #201F26;
  --obsidian:  #29282F;

  /* --- Text --- */
  --text:        var(--brand-ink);
  --text-muted:  #6B6B70;
  --text-invert: #EEEEF0;
  --text-invert-muted:#A9A9AF;

  /* --- Linien --- */
  --hairline:      #E3E1DC;
  --hairline-dark: rgba(255,255,255,.14);

  /* --- Typografie --- */
  --font-display:'Inter Tight', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-body:   'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;

  --step-hero:  clamp(2.9rem, 7.2vw, 6.6rem);
  --step-xl:    clamp(2.3rem, 4.6vw, 4.1rem);
  --step-lg:    clamp(1.9rem, 3.2vw, 3.0rem);
  --step-md:    clamp(1.35rem, 1.9vw, 1.75rem);
  --step-body:  1.0625rem;

  /* --- Raster --- */
  --max:        1240px;
  --gutter:     clamp(20px, 5vw, 56px);
  --section:    clamp(72px, 9vw, 132px);
  --radius-pill:1000px;
  --radius-card:14px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--canvas);color:var(--text);
  font-family:var(--font-body);font-size:var(--step-body);font-weight:400;line-height:1.62;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p,ul,ol,figure{margin:0}
ul{list-style:none;padding:0}

/* Sichtbarer Fokus fuer Tastaturnutzung */
:focus-visible{outline:2px solid var(--brand-accent);outline-offset:3px;border-radius:4px}
.on-dark :focus-visible,.hero :focus-visible,.page-hero :focus-visible,
.footer :focus-visible,.topbar :focus-visible{outline-color:var(--brand-accent-soft)}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--brand-accent);color:#fff;padding:.85rem 1.4rem;border-radius:0 0 var(--radius-card) 0;
  font-size:.9375rem;font-weight:600;
}
.skip-link:focus{left:0}

.visually-hidden{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* ---------- Typo-Klassen ---------- */
.display,h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.02;letter-spacing:-.025em}
.h-hero{font-size:var(--step-hero);letter-spacing:-.035em;line-height:.96}
.h-xl  {font-size:var(--step-xl);letter-spacing:-.03em;line-height:1.0}
.h-lg  {font-size:var(--step-lg);letter-spacing:-.025em;line-height:1.04}
.h-md  {font-size:var(--step-md);letter-spacing:-.015em;line-height:1.18}

.eyebrow{
  font-family:var(--font-body);font-size:.75rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--brand-accent);line-height:1;
  display:inline-flex;align-items:center;gap:.6rem;
}
.eyebrow::before{content:"";width:26px;height:1px;background:currentColor;opacity:.6}
.lead{font-size:clamp(1.05rem,1.35vw,1.25rem);line-height:1.62;color:var(--text-muted);max-width:62ch}
.body-muted{color:var(--text-muted)}
.on-dark .lead,.on-dark .body-muted{color:var(--text-invert-muted)}
.on-dark{color:var(--text-invert)}
.on-dark .eyebrow{color:var(--brand-accent-soft)}
.on-dark h2,.on-dark h3,.on-dark h4{color:#fff}

.mt-1{margin-top:1.35rem}
.mt-2{margin-top:2.2rem}
.mb-1{margin-bottom:1.35rem}
.mb-2{margin-bottom:2.2rem}
.stack-head{margin:1.35rem 0 1.5rem}

/* ---------- Layout ---------- */
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--section)}
.section--tight{padding-block:clamp(52px,6vw,88px)}
.band-light{background:var(--canvas)}
.band-parchment{background:var(--parchment)}
.band-dark{background:var(--onyx);color:var(--text-invert)}
.band-ink{background:var(--brand-ink);color:var(--text-invert)}

.split{display:grid;grid-template-columns:1fr;gap:clamp(32px,4vw,64px);align-items:center}
@media(min-width:900px){
  .split{grid-template-columns:1fr 1fr;gap:clamp(48px,6vw,96px)}
  .split--wide-text{grid-template-columns:1.05fr .95fr}
  .split--reverse .split__media{order:2}
  .split--top{align-items:start}
}
.section-head{max-width:64ch;margin-bottom:clamp(36px,4.5vw,64px)}
.section-head .eyebrow{margin-bottom:1.35rem}
.section-head .h-xl{margin-bottom:1.35rem}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.7rem;
  font-family:var(--font-body);font-size:.9375rem;font-weight:600;letter-spacing:-.005em;
  padding:.95rem 1.6rem;border-radius:var(--radius-pill);border:1px solid transparent;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease;
  cursor:pointer;white-space:nowrap;
}
.btn:hover{transform:translateY(-1px)}
.btn--primary{background:var(--brand-accent);color:#fff}
.btn--primary:hover{background:var(--brand-accent-deep)}
.btn--ink{background:var(--brand-ink);color:#fff}
.btn--ink:hover{background:#2C1C36}
.btn--ghost{background:transparent;color:var(--text);border-color:var(--hairline)}
.btn--ghost:hover{border-color:var(--brand-ink);background:var(--brand-ink);color:#fff}
.btn--ghost-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.btn--ghost-light:hover{background:#fff;color:var(--brand-ink);border-color:#fff}
.btn .arw{transition:transform .22s ease}
.btn:hover .arw{transform:translateX(3px)}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem}

/* ---------- Navigation ---------- */
.nav{
  position:sticky;top:0;z-index:60;
  background:rgba(255,255,255,.82);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--hairline);
  transition:box-shadow .25s ease,transform .38s cubic-bezier(.2,.7,.2,1);
}
.nav.is-stuck{box-shadow:0 1px 0 var(--hairline),0 12px 32px -24px rgba(0,0,0,.5)}
/* Beim Runterscrollen ausblenden, beim Hochscrollen wieder herholen */
.nav.is-hidden{transform:translateY(-101%)}
@media(prefers-reduced-motion:reduce){
  .nav{transition:box-shadow .25s ease}
  .nav.is-hidden{transform:none}
}
.nav__inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:78px}
.nav__logo img{height:42px;width:auto}
.nav__links{display:none;gap:.2rem;align-items:center}
@media(min-width:1100px){.nav__links{display:flex}}
.nav__links a{
  font-size:.9375rem;font-weight:500;color:var(--text);padding:.5rem 1rem;border-radius:var(--radius-pill);
  transition:background .2s ease,color .2s ease;
}
.nav__links a:hover{background:var(--parchment)}
.nav__links a[aria-current="page"]{background:var(--parchment);color:var(--brand-accent)}
/* CTA im Hauptmenue — der eine Markenmoment im Kopfbereich */
.nav__actions{display:flex;align-items:center;gap:.7rem}
.nav__cta{
  display:none;
  box-shadow:0 10px 24px -14px rgba(107,42,131,.9);
  padding:.85rem 1.45rem;
}
.nav__cta:hover{box-shadow:0 14px 28px -14px rgba(107,42,131,.95)}
@media(min-width:560px){.nav__cta{display:inline-flex}}

.nav__burger{
  display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;
  border-radius:50%;background:var(--brand-ink);color:#fff;border:0;cursor:pointer;
  transition:background .2s ease,transform .2s ease;
}
.nav__burger:hover{background:var(--brand-accent);transform:translateY(-1px)}
@media(min-width:1100px){.nav__burger{display:none}}

/* ---------- Off-Canvas-Menue (mobil) ---------- */
.offcanvas{position:fixed;inset:0;z-index:120;visibility:hidden;pointer-events:none}
.offcanvas.is-open{visibility:visible;pointer-events:auto}

.offcanvas__backdrop{
  position:absolute;inset:0;background:rgba(12,12,16,.55);
  opacity:0;transition:opacity .38s cubic-bezier(.2,.7,.2,1);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
}
.offcanvas.is-open .offcanvas__backdrop{opacity:1}

.offcanvas__panel{
  position:absolute;top:0;right:0;height:100%;width:min(400px,88vw);
  background:var(--brand-ink);color:var(--text-invert);
  display:flex;flex-direction:column;
  padding:1.15rem clamp(22px,6vw,34px) calc(1.75rem + env(safe-area-inset-bottom));
  transform:translateX(100%);
  transition:transform .42s cubic-bezier(.2,.7,.2,1);
  box-shadow:-30px 0 70px -40px rgba(0,0,0,.9);
  overflow-y:auto;overscroll-behavior:contain;
}
.offcanvas.is-open .offcanvas__panel{transform:none}

.offcanvas__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:56px}
.offcanvas__logo img{height:38px;width:auto;filter:brightness(0) invert(1)}
.offcanvas__close{
  display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:none;
  border-radius:50%;border:1px solid var(--hairline-dark);background:transparent;color:#fff;cursor:pointer;
  transition:background .2s ease,border-color .2s ease,transform .3s ease;
}
.offcanvas__close:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.4);transform:rotate(90deg)}

.offcanvas__nav{display:flex;flex-direction:column;margin-top:clamp(24px,5vh,44px);flex:1}
.offcanvas__nav a{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.05rem 0;border-bottom:1px solid var(--hairline-dark);
  font-family:var(--font-display);font-size:clamp(1.35rem,5.5vw,1.7rem);font-weight:600;letter-spacing:-.025em;
  color:#fff;transition:color .2s ease,padding-left .28s cubic-bezier(.2,.7,.2,1);
  /* gestaffeltes Einfliegen */
  opacity:0;transform:translateX(18px);
}
.offcanvas__nav a:hover{color:var(--brand-accent-soft);padding-left:.4rem}
.offcanvas__nav a[aria-current="page"]{color:var(--brand-accent-soft)}
.offcanvas__arw{font-size:.8em;opacity:.4;transition:transform .28s ease,opacity .28s ease}
.offcanvas__nav a:hover .offcanvas__arw{transform:translateX(4px);opacity:1}

.js .offcanvas.is-open .offcanvas__nav a{
  opacity:1;transform:none;
  transition:opacity .5s ease var(--d,0s),transform .5s cubic-bezier(.2,.7,.2,1) var(--d,0s),color .2s ease,padding-left .28s cubic-bezier(.2,.7,.2,1);
}
/* Ohne JS ist nichts versteckt */
html:not(.js) .offcanvas__nav a{opacity:1;transform:none}

.offcanvas__foot{
  margin-top:auto;padding-top:1.75rem;border-top:1px solid var(--hairline-dark);
  display:grid;gap:1.1rem;justify-items:start;
  font-size:.9375rem;color:var(--text-invert-muted);
}
.offcanvas__cta{width:100%;justify-content:center}
.offcanvas__mail:hover{color:#fff}

/* Seite hinter dem Menue einfrieren. position:fixed noetig, damit der per JS
   gesetzte top-Versatz greift — sonst springt die Seite beim Oeffnen nach oben. */
body.has-offcanvas{position:fixed;width:100%;overflow:hidden}

@media(prefers-reduced-motion:reduce){
  .offcanvas__backdrop,.offcanvas__panel{transition:none}
  .js .offcanvas.is-open .offcanvas__nav a{transition:none}
  .offcanvas__nav a{opacity:1;transform:none}
  .offcanvas__close:hover{transform:none}
}

/* ---------- Hero (Startseite) ---------- */
.hero{position:relative;min-height:clamp(600px,88vh,940px);display:flex;align-items:flex-end;background:var(--onyx);overflow:hidden}
.hero__media{position:absolute;inset:0}
.hero__media img{width:100%;height:100%;object-fit:cover;transform:scale(1.04)}
.hero__scrim{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(15,15,18,.56) 0%,rgba(15,15,18,.16) 32%,rgba(15,15,18,.72) 72%,rgba(15,15,18,.95) 100%),
  linear-gradient(215deg,rgba(107,42,131,.14) 0%,rgba(107,42,131,0) 46%)}
.hero__inner{position:relative;width:100%;padding-block:clamp(56px,8vw,104px)}
.hero__grid{display:grid;gap:clamp(28px,3.5vw,56px);align-items:end}
@media(min-width:960px){.hero__grid{grid-template-columns:1.15fr .85fr}}
.hero .eyebrow{color:#fff;opacity:.85;margin-bottom:1.6rem}
.hero h1{color:#fff;max-width:16ch}
.hero__aside{padding-bottom:.4rem}
.hero__aside p{color:rgba(255,255,255,.82);font-size:1.0625rem;line-height:1.66;margin-bottom:1.8rem;max-width:46ch}
.hero__cta{display:flex;flex-wrap:wrap;gap:.75rem}
.hero__ticker{
  position:relative;margin-top:clamp(40px,5vw,72px);padding-top:1.75rem;border-top:1px solid rgba(255,255,255,.22);
  display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem 1rem;
}
@media(min-width:760px){.hero__ticker{grid-template-columns:repeat(4,1fr)}}
.hero__ticker dt{font-family:var(--font-display);font-size:clamp(1.5rem,2.4vw,2.15rem);font-weight:700;letter-spacing:-.03em;color:#fff;line-height:1;display:flex;align-items:baseline;gap:.35rem}
.hero__ticker dd{margin:.5rem 0 0;font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.hero__ticker .num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.hero__ticker .unit{font-size:.5em;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-accent-soft)}
.js .tick{opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.js .tick.in{opacity:1;transform:none}
.tick:nth-child(1){transition-delay:.05s}
.tick:nth-child(2){transition-delay:.18s}
.tick:nth-child(3){transition-delay:.31s}
.tick:nth-child(4){transition-delay:.44s}
.js .hero__ticker::after{
  content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:var(--brand-accent-soft);
  transition:width 1.5s cubic-bezier(.2,.7,.2,1) .05s;
}
.js .hero__ticker.in::after{width:100%}

/* ---------- Page-Hero (Unterseiten) ---------- */
.page-hero{position:relative;background:var(--onyx);color:#fff;overflow:hidden;display:flex;align-items:flex-end;min-height:clamp(340px,46vh,520px)}
.page-hero__media{position:absolute;inset:0}
.page-hero__media img{width:100%;height:100%;object-fit:cover}
.page-hero__scrim{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(15,15,18,.66) 0%,rgba(15,15,18,.42) 45%,rgba(15,15,18,.88) 100%),
  linear-gradient(215deg,rgba(107,42,131,.20) 0%,rgba(107,42,131,0) 52%)}
.page-hero__inner{position:relative;width:100%;padding-block:clamp(48px,6vw,84px)}
.page-hero h1{color:#fff;max-width:18ch;margin-top:1.4rem}
.page-hero .eyebrow{color:#fff;opacity:.85}
.page-hero p{color:rgba(255,255,255,.82);max-width:56ch;margin-top:1.4rem;font-size:clamp(1.02rem,1.3vw,1.18rem);line-height:1.62}
.page-hero--plain{min-height:0;background:var(--brand-ink)}

.crumbs{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:.8125rem;letter-spacing:.02em;color:rgba(255,255,255,.62);margin-bottom:1.2rem}
.crumbs a:hover{color:#fff}
.crumbs span[aria-hidden]{opacity:.45}
.crumbs [aria-current]{color:#fff}

/* ---------- Media ---------- */
.media{position:relative;overflow:hidden;border-radius:var(--radius-card);background:var(--parchment)}
.media img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.media:hover img{transform:scale(1.035)}
.media--tall img{aspect-ratio:3/4}
.media--wide img{aspect-ratio:16/9}
/* Bild behaelt sein eigenes Seitenverhaeltnis — ohne aspect-ratio:auto erzwingt
   .media 4:3 und es entstehen weisse Balken oben und unten. */
.media--contain{background:#fff;border:1px solid var(--hairline)}
.media--contain img{aspect-ratio:auto;height:auto;object-fit:contain}

/* ---------- Zoombares Bild ---------- */
.zoom{
  display:block;width:100%;padding:0;border:0;background:none;font:inherit;color:inherit;
  cursor:zoom-in;position:relative;overflow:hidden;
}
.zoom.media--contain{border:1px solid var(--hairline)}
.zoom__hint{
  position:absolute;right:14px;bottom:14px;width:42px;height:42px;border-radius:50%;
  background:rgba(21,21,26,.78);color:#fff;display:grid;place-items:center;
  opacity:0;transform:translateY(8px) scale(.9);
  transition:opacity .28s ease,transform .28s cubic-bezier(.2,.7,.2,1);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;
}
.zoom:hover .zoom__hint,.zoom:focus-visible .zoom__hint{opacity:1;transform:none}

/* ---------- Lightbox ---------- */
.lightbox{
  --lb-pad:clamp(14px,4vw,56px);
  --lb-foot:64px;                 /* reservierter Streifen fuer die Bildunterschrift */
  position:fixed;inset:0;z-index:200;
  /* Flexbox statt Grid: bei display:grid mit auto-Zeile laesst sich
     max-height:100% am Bild nicht aufloesen — das Bild lief unten heraus. */
  display:flex;align-items:center;justify-content:center;
  padding:var(--lb-pad);
  padding-bottom:calc(var(--lb-pad) + var(--lb-foot));
  background:rgba(10,10,14,.93);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  opacity:0;transition:opacity .3s ease;
}
@media(max-width:600px){.lightbox{--lb-foot:82px}}
.lightbox[hidden]{display:none}
.lightbox.is-open{opacity:1}
.lightbox__img{
  /* Zusaetzlich zur Prozentangabe eine harte Grenze in Viewport-Einheiten,
     damit die Begrenzung in jeder Engine greift. */
  max-width:calc(100vw - var(--lb-pad) * 2);
  max-height:calc(100vh - var(--lb-pad) * 2 - var(--lb-foot));
  width:auto;height:auto;object-fit:contain;
  border-radius:10px;box-shadow:0 50px 110px -50px #000;cursor:zoom-out;
  transform:scale(.96);transition:transform .38s cubic-bezier(.2,.7,.2,1);
}
/* dvh beruecksichtigt die ein- und ausfahrende Browserleiste auf Mobilgeraeten */
@supports (height:100dvh){
  .lightbox__img{max-height:calc(100dvh - var(--lb-pad) * 2 - var(--lb-foot))}
}
.lightbox.is-open .lightbox__img{transform:none}
.lightbox__close{
  position:absolute;top:clamp(12px,2.5vw,28px);right:clamp(12px,2.5vw,28px);
  width:46px;height:46px;border-radius:50%;
  border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;
  display:grid;place-items:center;cursor:pointer;
  transition:background .2s ease,border-color .2s ease,transform .3s ease;
}
.lightbox__close:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.55);transform:rotate(90deg)}
.lightbox__caption{
  position:absolute;left:0;right:0;bottom:0;
  height:var(--lb-foot);display:flex;align-items:center;justify-content:center;
  text-align:center;padding-inline:clamp(16px,5vw,60px);
  font-size:.875rem;color:rgba(255,255,255,.72);line-height:1.45;margin:0;
  /* Lange Alt-Texte auf zwei Zeilen begrenzen, damit der reservierte
     Streifen nicht gesprengt wird. */
  overflow:hidden;
}
.lightbox__caption span{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;max-width:80ch;
}

@media(prefers-reduced-motion:reduce){
  .lightbox,.lightbox__img,.zoom__hint{transition:none}
  .lightbox__img{transform:none}
  .lightbox__close:hover{transform:none}
}
.figcap{margin-top:.85rem;font-size:.875rem;color:var(--text-muted);line-height:1.5}
.on-dark .figcap{color:var(--text-invert-muted)}

/* ---------- Karten ---------- */
.grid{display:grid;gap:clamp(20px,2.4vw,32px)}
.grid--2{grid-template-columns:1fr}
@media(min-width:760px){.grid--2{grid-template-columns:repeat(2,1fr)}}
.grid--3{grid-template-columns:1fr}
@media(min-width:720px){.grid--3{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.grid--3{grid-template-columns:repeat(3,1fr)}}
.grid--4{grid-template-columns:1fr}
@media(min-width:640px){.grid--4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1060px){.grid--4{grid-template-columns:repeat(4,1fr)}}

.card{background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--radius-card);overflow:hidden;display:flex;flex-direction:column;transition:border-color .25s ease,transform .25s ease}
.card:hover{border-color:var(--brand-ink);transform:translateY(-3px)}
.card__media{overflow:hidden;background:var(--parchment)}
.card__media img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.card:hover .card__media img{transform:scale(1.05)}
.card__body{padding:clamp(22px,2.4vw,32px);display:flex;flex-direction:column;gap:.85rem;flex:1}
.card__index{font-size:.75rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-accent)}
.card__body p{color:var(--text-muted);font-size:1rem}

.card--dark{background:var(--graphite);border:0;color:var(--text-invert)}
.card--dark:hover{transform:translateY(-3px)}
.card--dark p{color:var(--text-invert-muted)}
.card--dark .card__body{gap:1rem}
.card__icon{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.07);display:flex;align-items:center;justify-content:center;color:var(--brand-accent-soft);margin-bottom:.35rem}
.card--accent{background:var(--brand-accent);color:#fff;border:0}
.card--accent p,.card--accent .card__index{color:rgba(255,255,255,.86)}
.card--accent .card__icon{background:rgba(255,255,255,.18);color:#fff}
.card--complement{background:var(--brand-complement);color:#fff;border:0}
.card--complement p,.card--complement .card__index{color:rgba(255,255,255,.86)}
.card--complement .card__icon{background:rgba(255,255,255,.18);color:#fff}
.card--light-outline{background:transparent;border-color:var(--hairline-dark);color:var(--text-invert)}
.card--light-outline p{color:var(--text-invert-muted)}
.card--light-outline:hover{border-color:var(--brand-accent-soft)}

/* ---------- Team ---------- */
.people{display:grid;gap:clamp(24px,3vw,40px);grid-template-columns:repeat(2,1fr)}
@media(min-width:760px){.people{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1060px){.people--5{grid-template-columns:repeat(5,1fr)}}
.person__photo{
  position:relative;overflow:hidden;border-radius:var(--radius-card);background:var(--parchment);
  border:1px solid var(--hairline);
}
.person__photo img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center top;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.person:hover .person__photo img{transform:scale(1.04)}
.person__name{font-family:var(--font-display);font-size:1.0625rem;font-weight:600;letter-spacing:-.015em;line-height:1.25;margin-top:1rem}
.person__role{font-size:.875rem;color:var(--text-muted);margin-top:.3rem;line-height:1.45}
.on-dark .person__role{color:var(--text-invert-muted)}
.person--open .person__photo{border-style:dashed;border-color:#CFCCC5}
.person--open .person__photo img{opacity:.5}

/* ---------- Zweispaltiger Abschnittskopf ---------- */
.headline-split{display:grid;gap:clamp(18px,2.4vw,40px)}
@media(min-width:900px){
  .headline-split{grid-template-columns:1.15fr .85fr;align-items:end;gap:clamp(40px,5vw,88px)}
  .headline-split > :last-child{padding-bottom:.35rem}
}

/* ---------- Hoehenprofil (SVG) ---------- */
.profile{margin-top:clamp(44px,5.5vw,76px)}
.profile__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.profile svg{display:block;width:100%;min-width:640px;height:auto}

.profile .p-fill{fill:url(#lavegoRidge)}
.profile .p-ridge,.profile .p-cable,.profile .p-tower{fill:none;stroke-linecap:round}
.profile .p-ridge{stroke:rgba(255,255,255,.32);stroke-width:2}
.profile .p-tower{stroke:rgba(255,255,255,.34);stroke-width:2.5}
.profile .p-cable{stroke:rgba(255,255,255,.46);stroke-width:2}
.profile .p-dim{fill:none;stroke:rgba(255,255,255,.26);stroke-width:1;stroke-dasharray:4 5}
.profile .p-tick{stroke:rgba(255,255,255,.42);stroke-width:1.5;stroke-linecap:round}
.profile .p-station{fill:rgba(255,255,255,.92)}
.profile .p-cabin{fill:var(--brand-accent-soft)}
.profile .p-hanger{stroke:var(--brand-accent-soft);stroke-width:2;stroke-linecap:round}
.profile .p-label{fill:rgba(255,255,255,.64);font-family:var(--font-body);font-size:13px;font-weight:500;letter-spacing:.12em}
.profile .p-value{fill:#fff;font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:-.02em}

/* Zeichen- und Einblend-Animation — nur mit JS, sonst sofort sichtbar */
.js .profile .draw{stroke-dasharray:1;stroke-dashoffset:1}
.js .profile.in .draw{stroke-dashoffset:0}
.js .profile .p-ridge.draw{transition:stroke-dashoffset 1.8s cubic-bezier(.2,.7,.2,1) .15s}
.js .profile .p-tower.draw{transition:stroke-dashoffset .55s cubic-bezier(.2,.7,.2,1) var(--d,0s)}
.js .profile .p-cable.draw{transition:stroke-dashoffset 1.4s cubic-bezier(.2,.7,.2,1) .8s}
.js .profile .p-dim.draw{transition:stroke-dashoffset 1s ease 1.9s}

.js .profile .fade{opacity:0;transition:opacity .75s ease var(--d,0s)}
.js .profile.in .fade{opacity:1}

/* Die Kabine braucht 11,9 s fuer die Strecke — eine Sekunde je Minute Fahrzeit. */
.js .profile .p-carrier{opacity:0}
.js .profile.in .p-carrier{
  opacity:1;
  transition:opacity .6s ease 1.9s;
  animation:lavego-ride 11.9s linear 2.1s infinite;
}
@keyframes lavego-ride{
  from{transform:translate(0,0)}
  to  {transform:translate(950px,-236px)}
}

@media(prefers-reduced-motion:reduce){
  .js .profile .draw{stroke-dashoffset:0;transition:none}
  .js .profile .fade{opacity:1;transition:none}
  .js .profile .p-carrier,.js .profile.in .p-carrier{
    opacity:1;animation:none;transition:none;transform:translate(475px,-118px);
  }
}

/* ---------- Spec-Liste ---------- */
.specs{display:grid;gap:0;border-top:1px solid var(--hairline-dark)}
.specs li{display:flex;justify-content:space-between;align-items:baseline;gap:1.5rem;padding:1.05rem 0;border-bottom:1px solid var(--hairline-dark)}
.specs .k{color:var(--text-invert-muted);font-size:.9375rem}
.specs .v{font-family:var(--font-display);font-weight:600;font-size:1.0625rem;letter-spacing:-.01em;color:#fff;text-align:right}

.notes li{position:relative;padding:0 0 1.15rem 1.9rem;color:var(--text-invert-muted);font-size:1rem;line-height:1.6}
.notes li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--brand-complement-soft)}
.notes li:last-child{padding-bottom:0}

/* ---------- Checkliste ---------- */
.checks{display:grid;gap:.2rem}
.checks li{display:flex;gap:1rem;align-items:flex-start;padding:.85rem 0;border-bottom:1px solid var(--hairline)}
.checks li:last-child{border-bottom:0}
.checks svg{flex:none;margin-top:.28em;color:var(--brand-complement)}
.on-dark .checks li{border-bottom-color:var(--hairline-dark)}
.on-dark .checks svg{color:var(--brand-complement-soft)}

/* ---------- Statistik-Block ---------- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px);margin-block:clamp(28px,3vw,44px)}
.stat{border-top:2px solid var(--brand-accent);padding-top:1rem}
.stat__n{font-family:var(--font-display);font-size:clamp(1.9rem,3.2vw,2.85rem);font-weight:700;letter-spacing:-.035em;line-height:1}
.stat__l{margin-top:.5rem;font-size:.875rem;color:var(--text-muted);line-height:1.4}
.on-dark .stat{border-top-color:var(--brand-accent-soft)}
.on-dark .stat__l{color:var(--text-invert-muted)}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--hairline)}
.faq details{border-bottom:1px solid var(--hairline)}
.faq summary{
  list-style:none;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;
  padding:1.5rem 0;font-family:var(--font-display);font-size:clamp(1.1rem,1.6vw,1.35rem);font-weight:600;letter-spacing:-.02em;line-height:1.3;
  transition:color .2s ease;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::marker{content:""}
.faq summary:hover{color:var(--brand-accent)}

/* Icon als SVG-Kreuz: geometrisch exakt zentriert, dreht deshalb gleichmaessig.
   Ein Text-"+" hat asymmetrische Seitenraender und eiert beim Rotieren. */
.faq .sign{
  flex:none;width:32px;height:32px;border-radius:50%;border:1px solid var(--hairline);
  display:grid;place-items:center;color:var(--text);
  transition:transform .38s cubic-bezier(.2,.7,.2,1),background .28s ease,border-color .28s ease,color .28s ease;
}
.faq .sign svg{width:13px;height:13px;display:block}
.faq .sign line{stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
.faq summary:hover .sign{border-color:var(--brand-ink)}
.faq details[open] .sign{transform:rotate(135deg);background:var(--brand-accent);border-color:var(--brand-accent);color:#fff}
.faq .answer{padding:0 0 1.75rem;color:var(--text-muted);max-width:74ch}
.js .faq .answer{will-change:height}

@media(prefers-reduced-motion:reduce){
  .faq .sign{transition:background .01s,border-color .01s,color .01s}
  .faq details[open] .sign{transform:rotate(135deg)}
}

/* ---------- Prose (Rechtstexte) ---------- */
.prose{max-width:74ch}
.prose h2{font-size:clamp(1.4rem,2.2vw,1.9rem);letter-spacing:-.025em;margin:clamp(2.4rem,3.4vw,3.4rem) 0 .9rem;scroll-margin-top:120px}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:1.0625rem;font-weight:600;letter-spacing:-.01em;margin:1.8rem 0 .6rem}
.prose p{margin-bottom:1.1rem;color:var(--text-muted)}
.prose strong{color:var(--text);font-weight:600}
.prose a{color:var(--brand-accent);text-decoration:underline;text-underline-offset:.18em}
.prose ul{display:grid;gap:.55rem;margin:0 0 1.4rem}
.prose ul li{position:relative;padding-left:1.6rem;color:var(--text-muted)}
.prose ul li::before{content:"";position:absolute;left:.15rem;top:.66em;width:6px;height:6px;border-radius:50%;background:var(--brand-complement)}
.prose hr{border:0;border-top:1px solid var(--hairline);margin:2.6rem 0}
.prose__meta{
  display:inline-flex;align-items:center;gap:.6rem;font-size:.8125rem;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--brand-accent);margin-bottom:2rem;
}
.toc{position:sticky;top:110px;border-left:1px solid var(--hairline);padding-left:1.5rem;display:none}
@media(min-width:1000px){.toc{display:block}}
.toc h4{font-size:.75rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin-bottom:1rem}
.toc li{margin-bottom:.6rem}
.toc a{font-size:.9375rem;color:var(--text-muted);transition:color .2s ease;line-height:1.35;display:block}
.toc a:hover{color:var(--brand-accent)}
@media(min-width:1000px){
  .prose-layout{display:grid;grid-template-columns:1fr 260px;gap:clamp(48px,6vw,88px);align-items:start}
}

/* ---------- Info-/Kontaktlisten ---------- */
.info-list{display:grid;gap:0;border-top:1px solid var(--hairline)}
.info-list > div{display:grid;gap:.3rem;padding:1.3rem 0;border-bottom:1px solid var(--hairline)}
@media(min-width:560px){.info-list > div{grid-template-columns:180px 1fr;gap:1.5rem;align-items:baseline}}
.info-list dt{font-size:.75rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted)}
.info-list dd{margin:0;font-family:var(--font-display);font-size:1.0625rem;font-weight:600;letter-spacing:-.01em}
.info-list dd a:hover{color:var(--brand-accent)}
.info-list dd small{display:block;font-family:var(--font-body);font-size:.9375rem;font-weight:400;letter-spacing:0;color:var(--text-muted);margin-top:.3rem}
.on-dark .info-list,.on-dark .info-list > div{border-color:var(--hairline-dark)}
.on-dark .info-list dt{color:var(--text-invert-muted)}
.on-dark .info-list dd small{color:var(--text-invert-muted)}

/* ---------- Formular-Embed ---------- */
.embed-solo{max-width:660px;margin-inline:auto}
.embed{
  background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--radius-card);
  overflow:hidden;box-shadow:0 24px 60px -48px rgba(0,0,0,.55);
}
.embed iframe{display:block;width:100%;border:0;min-height:700px}
.embed__fallback{padding:1.15rem clamp(18px,2vw,26px);border-top:1px solid var(--hairline);font-size:.875rem;color:var(--text-muted)}
.embed__fallback a{color:var(--brand-accent);text-decoration:underline;text-underline-offset:.18em}

/* ---------- Hinweis-/Leerzustand ---------- */
.notice{
  border:1px solid var(--hairline);border-left:3px solid var(--brand-accent);border-radius:var(--radius-card);
  background:var(--canvas);padding:clamp(24px,3vw,40px);max-width:70ch;
}
.notice h3{font-size:1.25rem;margin-bottom:.7rem}
.notice p{color:var(--text-muted)}
.on-dark .notice{background:var(--graphite);border-color:var(--hairline-dark);border-left-color:var(--brand-accent-soft)}
.on-dark .notice p{color:var(--text-invert-muted)}

/* ---------- Investor-Bereich ---------- */
.gate__form{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.8rem}
.gate__form input{
  flex:1 1 220px;min-width:0;border:1px solid var(--hairline);border-radius:var(--radius-pill);
  padding:.95rem 1.4rem;font-family:var(--font-body);font-size:.9375rem;outline:none;transition:border-color .2s ease;
}
.gate__form input:focus{border-color:var(--brand-accent)}

.form-error{
  margin-top:1rem;font-size:.9375rem;color:#B3261E;
  display:flex;align-items:center;gap:.5rem;
}

.request-card{
  background:var(--parchment);border:1px solid var(--hairline);border-radius:var(--radius-card);
  padding:clamp(24px,3vw,40px);
}
.form-grid{display:grid;gap:1rem;margin-top:.4rem}
.form-row{display:grid;gap:.4rem;margin:0}
.form-row label{font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}
.form-row input,.form-row textarea{
  width:100%;border:1px solid var(--hairline);border-radius:10px;background:var(--canvas);
  padding:.8rem 1rem;font-family:var(--font-body);font-size:.9375rem;color:var(--text);
  outline:none;transition:border-color .2s ease;
}
.form-row textarea{resize:vertical;min-height:96px;line-height:1.55}
.form-row input:focus,.form-row textarea:focus{border-color:var(--brand-accent)}
.form-grid .btn{justify-self:start}

/* Honigtopf — fuer Menschen unsichtbar, fuer Bots verlockend.
   Nicht display:none, das erkennen manche Bots. */
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

.form-row--captcha{max-width:16rem}
.form-row--captcha label{text-transform:none;letter-spacing:0;font-size:.875rem;font-weight:500;color:var(--text)}
.form-row--captcha input{font-variant-numeric:tabular-nums}

.gate-bar{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding:.85rem 1.2rem;margin-bottom:clamp(28px,3.5vw,48px);
  border:1px solid var(--hairline);border-radius:var(--radius-pill);background:var(--parchment);
}
.gate-bar__state{
  display:inline-flex;align-items:center;gap:.55rem;
  font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--brand-complement);
}
.gate-bar__out{font-size:.875rem;color:var(--text-muted);text-decoration:underline;text-underline-offset:.18em}
.gate-bar__out:hover{color:var(--brand-accent)}

.investor-video{
  border-radius:var(--radius-card);overflow:hidden;background:var(--onyx);
  box-shadow:0 40px 90px -60px rgba(0,0,0,.8);
}
.investor-video video{display:block;width:100%;height:auto;max-height:78vh;background:#000}

/* ---------- Newsletter ----------
   Liegt als eigene Karte auf hellem Grund, damit sich der Block klar vom
   Footer absetzt. Vorher stiessen zwei fast gleiche Dunkeltoene aneinander. */
.newsletter-band{background:var(--canvas);padding-block:clamp(56px,7vw,96px)}
.subscribe-card{
  background:var(--graphite);color:var(--text-invert);
  border-radius:clamp(14px,1.6vw,22px);
  padding:clamp(30px,4.5vw,68px);
  box-shadow:0 40px 90px -60px rgba(0,0,0,.85);
}
.subscribe{display:grid;gap:clamp(24px,3.5vw,56px)}
@media(min-width:900px){.subscribe{grid-template-columns:1fr 1fr;align-items:center}}
.field{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.75rem}
.field input{
  flex:1 1 240px;min-width:0;background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;
  border-radius:var(--radius-pill);padding:.95rem 1.4rem;font-family:var(--font-body);font-size:.9375rem;outline:none;
  transition:border-color .2s ease;
}
.field input::placeholder{color:rgba(255,255,255,.5)}
.field input:focus{border-color:var(--brand-accent-soft)}
.field__note{margin-top:1rem;font-size:.8125rem;color:var(--text-invert-muted);max-width:52ch}
.field__note a{text-decoration:underline;text-underline-offset:.18em}
.form-status{margin-top:1rem;font-size:.9375rem;color:var(--brand-complement-soft)}

/* ---------- Footer ---------- */
.footer{background:var(--brand-ink);color:var(--text-invert-muted);padding-block:clamp(56px,7vw,92px) 0}
.footer__grid{display:grid;gap:clamp(32px,4vw,56px)}
@media(min-width:820px){.footer__grid{grid-template-columns:1.5fr 1fr 1fr}}
.footer__logo{height:70px;width:auto;margin-bottom:1.5rem}
.footer h4{font-family:var(--font-display);font-size:1.0625rem;font-weight:600;letter-spacing:-.01em;color:#fff;margin-bottom:1.15rem}
.footer li{margin-bottom:.7rem}
.footer a{transition:color .2s ease}
.footer a:hover{color:var(--brand-accent-soft)}
.footer__social{display:flex;gap:1.25rem;margin-top:1.6rem}
.footer__bar{margin-top:clamp(44px,5vw,72px);border-top:1px solid var(--hairline-dark);padding-block:1.75rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.875rem}

/* ---------- Zurück nach oben ----------
   Liegt unter Off-Canvas (120) und Lightbox (200), damit es dort nicht
   dazwischenfunkt. Solange der Consent-Banner offen ist, tritt es zurueck. */
.to-top{
  position:fixed;z-index:90;
  right:clamp(16px,2.5vw,32px);
  bottom:calc(clamp(16px,2.5vw,32px) + env(safe-area-inset-bottom));
  width:50px;height:50px;border-radius:50%;
  border:1px solid rgba(255,255,255,.14);
  background:var(--brand-ink);color:#fff;cursor:pointer;
  display:grid;place-items:center;
  box-shadow:0 16px 36px -18px rgba(0,0,0,.75);
  opacity:0;visibility:hidden;transform:translateY(14px);
  /* Kein scale(): das rechnet Icon und Rand auf krumme Pixel und laesst sie
     am Ende der Animation zurueckspringen.
     visibility schaltet beim Einblenden sofort (0s), beim Ausblenden erst
     nach dem Verschwinden (.35s Verzoegerung). Sonst wird der Knopf erst
     ganz am Schluss anfassbar und ein darueberliegender Mauszeiger loest
     den Hover-Effekt verspaetet aus — das sah aus wie ein Nachrucken. */
  transition:opacity .35s ease,
             transform .35s cubic-bezier(.2,.7,.2,1),
             visibility 0s linear .35s,
             background .22s ease,border-color .22s ease;
}
.to-top.is-visible{
  opacity:1;visibility:visible;transform:none;
  transition:opacity .35s ease,
             transform .35s cubic-bezier(.2,.7,.2,1),
             visibility 0s linear 0s,
             background .22s ease,border-color .22s ease;
}
.to-top:hover{background:var(--brand-accent);border-color:var(--brand-accent)}
.to-top:active{transform:translateY(1px)}
.to-top svg{transition:transform .28s cubic-bezier(.2,.7,.2,1)}
.to-top:hover svg{transform:translateY(-2px)}
/* Nicht ueber dem Consent-Banner schweben */
.to-top.is-blocked{opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .35s ease,transform .35s cubic-bezier(.2,.7,.2,1),visibility 0s linear .35s}

@media(prefers-reduced-motion:reduce){
  .to-top{transition:opacity .01s,visibility .01s;transform:none}
  .to-top.is-visible{transform:none}
  .to-top:hover svg{transform:none}
}

/* ---------- Consent-Banner ---------- */
.consent{
  position:fixed;left:0;right:0;bottom:0;z-index:150;
  background:var(--brand-ink);color:var(--text-invert);
  border-top:3px solid var(--brand-accent);
  box-shadow:0 -24px 60px -40px rgba(0,0,0,.9);
  padding:clamp(18px,2.6vw,26px) 0 calc(clamp(18px,2.6vw,26px) + env(safe-area-inset-bottom));
  transform:translateY(100%);
  transition:transform .45s cubic-bezier(.2,.7,.2,1);
}
.consent[hidden]{display:none}
.consent.is-open{transform:none}
.consent__inner{
  max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter);
  display:grid;gap:clamp(16px,2.2vw,32px);align-items:center;
}
@media(min-width:900px){.consent__inner{grid-template-columns:1fr auto}}
.consent__title{font-size:1.0625rem;font-weight:600;letter-spacing:-.01em;color:#fff;margin-bottom:.45rem}
.consent__text p{font-size:.9375rem;line-height:1.6;color:var(--text-invert-muted);max-width:74ch}
.consent__detail{margin-top:.8rem;padding-top:.8rem;border-top:1px solid var(--hairline-dark);font-size:.875rem}
.consent__detail strong{color:#fff;font-weight:600}
.consent__links{display:flex;gap:1.2rem;align-items:center;margin-top:.8rem;flex-wrap:wrap}
.consent__links a,.consent__more{
  font-size:.875rem;color:var(--text-invert-muted);
  background:none;border:0;padding:0;cursor:pointer;font-family:inherit;
  text-decoration:underline;text-underline-offset:.18em;
}
.consent__links a:hover,.consent__more:hover{color:#fff}
.consent__actions{display:flex;gap:.6rem;flex-wrap:wrap}
@media(max-width:559px){.consent__actions .btn{flex:1 1 100%;justify-content:center}}
.consent__actions .btn--ghost{color:#fff;border-color:rgba(255,255,255,.4)}
.consent__actions .btn--ghost:hover{background:#fff;color:var(--brand-ink);border-color:#fff}

/* Platzhalter fuer gesperrte Fremdinhalte */
.embed-gate{
  display:grid;gap:1.1rem;place-items:center;text-align:center;
  padding:clamp(32px,5vw,64px) clamp(20px,3vw,40px);
  background:var(--parchment);border:1px dashed #CFCCC5;border-radius:var(--radius-card);
  min-height:320px;align-content:center;
}
.embed-gate__icon{
  width:46px;height:46px;border-radius:50%;background:#fff;border:1px solid var(--hairline);
  display:grid;place-items:center;color:var(--brand-accent);
}
.embed-gate h3{font-size:1.0625rem;font-weight:600;letter-spacing:-.01em}
.embed-gate p{font-size:.9375rem;color:var(--text-muted);max-width:44ch;line-height:1.6}
.embed-gate a{color:var(--brand-accent);text-decoration:underline;text-underline-offset:.18em}

@media(prefers-reduced-motion:reduce){
  .consent{transition:none}
}

/* ---------- Reveal ---------- */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.js .rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .js .rv,.js .tick{opacity:1;transform:none;transition:none}
  .js .hero__ticker::after{width:100%;transition:none}
  html{scroll-behavior:auto}
  .media img,.card__media img,.person__photo img{transition:none}
  .btn:hover{transform:none}
}

/* ---------- Print ---------- */
@media print{
  .topbar,.nav,.mobile-menu,.hero__ticker,.footer__social,.embed,.skip-link{display:none!important}
  body{background:#fff;color:#000}
  .band-dark,.band-ink,.on-dark{background:#fff!important;color:#000!important}
  .rv{opacity:1;transform:none}
}
