
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/CormorantGaramond-300.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/CormorantGaramond-400.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/Inter-300.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/Inter-400.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/Inter-500.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/Inter-600.woff2) format('woff2')}



/* =========================================================
   Cura Thuja Campus
   Basis-System: "Ease Health — Botanical greenhouse on cream paper"
   Bildebene:    "Luffu — Family almanac printed on cream linen"
                 (grossformatige Fotografie, ueberdimensionierte
                  Wortmarke, editoriale Bildunterschriften)
   Display: Cormorant Garamond 300 · Body: Inter 300/400/600
   ========================================================= */

:root{
  --forest-ink:#0f3e17;
  --forest-shadow:#0c2f10;
  --sage-mist:#b1dbb8;
  --keylime-wash:#e1f4df;
  --mint-veil:#cfe7d3;
  --slate-hush:#b6ced5;
  --cream-paper:#fffefc;
  --charcoal:#222222;
  --border-mist:#efeeeb;

  --ground:var(--cream-paper);
  --linen:#f7f5ee;                /* Luffu-Ebene: waermeres Papier fuer Bildbaender */
  --logo-plate:#fffefc;           /* Traegerflaeche des Signets, in beiden Themes creme */
  --ink:var(--forest-ink);
  --ink-body:var(--charcoal);
  --ink-muted:#4a5a4c;
  --panel-1:var(--keylime-wash);
  --panel-2:var(--mint-veil);
  --panel-3:var(--sage-mist);
  --panel-slate:var(--slate-hush);
  --panel-inner:var(--cream-paper);
  --rule:var(--border-mist);
  --rule-strong:#dfe4dc;
  --btn-fill:var(--forest-ink);
  --btn-fill-hover:var(--forest-shadow);
  --btn-text:var(--cream-paper);
  --track:#e6e9e3;
  --wordmark-alpha:.11;

  --font-display:'Cormorant Garamond','Playfair Display',Georgia,serif;
  --font-body:'Inter','Helvetica Neue',Arial,sans-serif;
  --text-display:74px;
  --text-heading-lg:56px;
  --text-heading:40px;
  --text-heading-sm:23px;
  --text-subheading:18px;
  --text-body:14px;
  --text-caption:11px;

  --page:1200px;
  --r-card:14px;
  --r-nav:7px;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#0b1d10;
    --linen:#0e2413;
    --ink:#e4f2e2;
    --ink-body:#c9d8c8;
    --ink-muted:#9db09d;
    --panel-1:#12301a;
    --panel-2:#163821;
    --panel-3:#1d4527;
    --panel-slate:#20343b;
    --panel-inner:#0f2715;
    --rule:#22402a;
    --rule-strong:#2c4d34;
    --btn-fill:#b1dbb8;
    --btn-fill-hover:#cfe7d3;
    --btn-text:#0c2f10;
    --track:#22402a;
    --wordmark-alpha:.17;
  }
}
:root[data-theme="dark"]{
  --ground:#0b1d10;
  --linen:#0e2413;
  --ink:#e4f2e2;
  --ink-body:#c9d8c8;
  --ink-muted:#9db09d;
  --panel-1:#12301a;
  --panel-2:#163821;
  --panel-3:#1d4527;
  --panel-slate:#20343b;
  --panel-inner:#0f2715;
  --rule:#22402a;
  --rule-strong:#2c4d34;
  --btn-fill:#b1dbb8;
  --btn-fill-hover:#cfe7d3;
  --btn-text:#0c2f10;
  --track:#22402a;
  --wordmark-alpha:.17;
}

*,*::before,*::after{box-sizing:border-box}

body{
  margin:0;
  background:var(--ground);
  color:var(--ink-body);
  font-family:var(--font-body);
  font-size:var(--text-body);
  line-height:1.61;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3,h4{
  font-family:var(--font-display);font-weight:400;color:var(--ink);margin:0;text-wrap:balance;
}
h1{font-size:clamp(40px,6.2vw,var(--text-display));line-height:1.05;letter-spacing:-.03em}
h2{font-size:clamp(32px,4.6vw,var(--text-heading-lg));line-height:1.2;letter-spacing:-.03em}
h3{font-size:clamp(26px,3vw,var(--text-heading));line-height:1.35;letter-spacing:-.01em}
h4{font-size:var(--text-heading-sm);line-height:1.5}
p{margin:0}

.eyebrow{
  font-family:var(--font-body);font-size:var(--text-caption);font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin:0;
}
.lead{font-size:var(--text-subheading);font-weight:400;line-height:1.5;color:var(--ink-body)}
.muted{color:var(--ink-muted)}
.num{font-variant-numeric:tabular-nums}

a{color:var(--ink);text-decoration:none}
a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}

.page{max-width:var(--page);margin:0 auto;padding:0 28px}
section{padding:76px 0;position:relative}
.stack{display:flex;flex-direction:column;gap:21px}
.stack-sm{display:flex;flex-direction:column;gap:11px}
.section-head{display:flex;flex-direction:column;gap:14px;max-width:64ch;margin-bottom:42px}
.section-head.center{align-items:center;text-align:center;margin-left:auto;margin-right:auto;max-width:56ch}
.process.center{justify-content:center}

/* ---------- Navigation ---------- */
.nav{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:21px 0}
.brand{display:flex;align-items:center;gap:14px}
.logo-badge{
  flex:none;width:52px;height:52px;border-radius:999px;background:var(--logo-plate);
  background-image:url("/assets/img/logo-mark-v2.jpg");background-size:126%;background-position:center 46%;
  background-repeat:no-repeat;
}
.brand-name{font-family:var(--font-display);font-size:var(--text-heading-sm);color:var(--ink);letter-spacing:-.01em;line-height:1.1}
.brand-sub{font-size:var(--text-caption);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);white-space:nowrap}
.nav-links{display:flex;gap:4px;flex-wrap:wrap}
.nav-links{flex-wrap:nowrap}
.nav-links a{font-size:var(--text-body);color:var(--ink-body);padding:7px 10px;border-radius:var(--r-nav);white-space:nowrap}
.nav-links a:hover{background:var(--panel-1);color:var(--ink)}
.nav{position:relative}
.nav-toggle{display:none;flex:none;width:44px;height:44px;border-radius:999px;border:1px solid var(--rule-strong);background:transparent;color:var(--ink);align-items:center;justify-content:center;cursor:pointer;padding:0}
.nav-toggle span{display:block;width:18px;height:1.5px;background:currentColor;position:relative;transition:background .2s}
.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:0;width:18px;height:1.5px;background:currentColor;transition:transform .25s ease}
.nav-toggle span::before{top:-6px}.nav-toggle span::after{top:6px}
.nav.open .nav-toggle span{background:transparent}
.nav.open .nav-toggle span::before{transform:translateY(6px) rotate(45deg)}
.nav.open .nav-toggle span::after{transform:translateY(-6px) rotate(-45deg)}
.site-over .nav-toggle{color:var(--cream-paper);border-color:rgba(253,252,247,.45)}
.nav-cta-m{display:none}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--font-body);font-size:var(--text-body);
  background:var(--btn-fill);color:var(--btn-text);
  padding:14px 21px;border-radius:var(--r-card);border:0;cursor:pointer;
  white-space:nowrap;transition:background .2s ease;
}
.btn:hover{background:var(--btn-fill-hover)}
.btn-ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--rule-strong)}
.btn-ghost:hover{background:var(--panel-1)}
.btn-lg{padding:21px 28px;font-size:var(--text-subheading)}

/* ---------- Pills ---------- */
.pill{
  display:inline-flex;align-items:center;gap:7px;background:var(--panel-inner);color:var(--ink);
  border-radius:999px;padding:9px 14px;font-size:var(--text-body);line-height:1;
}
.pill-line{background:transparent;box-shadow:inset 0 0 0 1px var(--rule-strong);color:var(--ink-body)}
.pills{display:flex;flex-wrap:wrap;gap:7px}

/* ---------- Karten ---------- */
.card{border-radius:var(--r-card);padding:28px}
.card-lg{padding:42px}
.card h3{font-size:var(--text-heading-sm);line-height:1.5;letter-spacing:0}
.c-keylime{background:var(--panel-1)}
.c-mint{background:var(--panel-2)}
.c-sage{background:var(--panel-3)}
.c-slate{background:var(--panel-slate);color:#0f3e17}
.c-slate h2,.c-slate h3,.c-slate h4,.c-slate .eyebrow{color:#0f3e17}
.c-paper{background:var(--panel-inner);box-shadow:inset 0 0 0 1px var(--rule)}
:root[data-theme="dark"] .c-slate,
:root[data-theme="dark"] .c-slate h2,
:root[data-theme="dark"] .c-slate h3,
:root[data-theme="dark"] .c-slate h4,
:root[data-theme="dark"] .c-slate .eyebrow{color:var(--ink)}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .c-slate,
  :root:not([data-theme="light"]) .c-slate h2,
  :root:not([data-theme="light"]) .c-slate h3,
  :root:not([data-theme="light"]) .c-slate h4,
  :root:not([data-theme="light"]) .c-slate .eyebrow{color:var(--ink)}
}

/* ---------- Hero (Luffu-Ebene) ---------- */
.hero-band{background:var(--linen);padding:14px 0 0;overflow:hidden}
.hero{display:grid;grid-template-columns:1.02fr .98fr;gap:21px;align-items:center;padding:35px 0 21px}
.hero-copy{display:flex;flex-direction:column;gap:28px;padding-right:28px}
.hero-actions{display:flex;flex-wrap:wrap;gap:11px;align-items:center}
.hero-art{margin:0;display:flex;flex-direction:column;gap:11px}
.hero-art .art{
  aspect-ratio:1/1;border-radius:var(--r-card);background:var(--logo-plate);
  background-image:url("/assets/img/logo-art.jpg");background-size:96%;background-position:center 48%;
  background-repeat:no-repeat;
}
.hero-art figcaption{font-size:12px;color:var(--ink-muted);max-width:52ch}

/* Ueberdimensionierte Wortmarke, die ins Bild laeuft */
.wordmark{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(40px,13.2vw,220px);line-height:1.15;letter-spacing:-.035em;
  color:var(--ink);opacity:var(--wordmark-alpha);
  text-align:center;white-space:nowrap;user-select:none;
  padding:21px 0 21px;
}

/* ---------- Zielgruppen-Strip ---------- */
.strip{
  display:flex;flex-wrap:wrap;gap:42px;align-items:center;justify-content:space-between;
  padding:42px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
}
.strip span{font-size:var(--text-body);color:var(--ink-muted)}

/* ---------- Bildflaechen (Luffu) ---------- *
   Zum Austauschen: <div class="slot" …> durch
   <img class="shot" src="…" alt="…"> ersetzen.            */
.fig{margin:0;display:flex;flex-direction:column;gap:11px}
.slot,.shot{width:100%;border-radius:var(--r-card);aspect-ratio:var(--ar,16/9)}
.slot{
  background:var(--linen);box-shadow:inset 0 0 0 1px var(--rule);
  display:grid;place-items:center;padding:28px;text-align:center;
}
.shot{object-fit:cover;display:block}
.slot-in{display:flex;flex-direction:column;gap:9px;max-width:44ch}
.slot-label{font-size:var(--text-caption);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.slot-motif{font-family:var(--font-display);font-size:var(--text-heading-sm);line-height:1.3;color:var(--ink)}
.slot-spec{font-size:12px;color:var(--ink-muted);font-variant-numeric:tabular-nums}
.fig figcaption{font-size:12px;color:var(--ink-muted);max-width:70ch}
.bleed{padding:0}
.bleed .fig{gap:14px}
.bleed .slot,.bleed .shot{border-radius:0}
.bleed figcaption{max-width:var(--page);margin:0 auto;padding:0 28px}

/* ---------- Zitatband ---------- */
.interlude{background:linear-gradient(140deg,var(--ground) 0%,color-mix(in srgb,var(--panel-1) 70%,var(--ground)) 55%,color-mix(in srgb,var(--panel-slate) 26%,var(--ground)) 100%)}
.quote-band{background:linear-gradient(155deg,var(--ground) 0%,var(--panel-1) 45%,color-mix(in srgb,var(--panel-slate) 38%,var(--ground)) 100%)}
#transparenz{background:linear-gradient(200deg,var(--ground) 0%,color-mix(in srgb,var(--panel-2) 62%,var(--ground)) 55%,color-mix(in srgb,var(--panel-slate) 30%,var(--ground)) 100%)}
#garantie{background:linear-gradient(180deg,var(--ground) 0%,color-mix(in srgb,var(--panel-1) 55%,var(--ground)) 100%)}
.quote{
  margin:0;font-family:var(--font-display);font-weight:400;
  font-size:clamp(34px,5.4vw,var(--text-heading-lg));line-height:1.15;letter-spacing:-.03em;
  color:var(--ink);text-align:center;text-wrap:balance;
}
.quote-src{
  margin-top:21px;text-align:center;font-size:var(--text-caption);font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);
}

/* ---------- Prozess ---------- */
.process{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.process .node{background:var(--panel-1);color:var(--ink);border-radius:999px;padding:11px 18px;font-size:var(--text-body);line-height:1}
.process .sep{color:var(--ink-muted)}

/* ---------- Raster ---------- */
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}

/* ---------- Produktvorschau ---------- */
.preview{background:var(--panel-inner);border-radius:var(--r-card);padding:28px;display:flex;flex-direction:column;gap:14px}
.preview-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px}
.preview-title{font-family:var(--font-display);font-size:var(--text-heading-sm);color:var(--ink);line-height:1.2}
.path{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.path .step{font-size:12px;padding:7px 11px;border-radius:999px;background:var(--panel-1);color:var(--ink);line-height:1}
.path .step.done{background:var(--forest-ink);color:var(--cream-paper)}
.path .arrow{color:var(--ink-muted);font-size:12px}
.rows{display:flex;flex-direction:column;gap:11px}
.row{display:grid;grid-template-columns:1.2fr 1fr 76px;align-items:center;gap:14px;font-size:12px}
.row + .row{border-top:1px solid var(--rule);padding-top:11px}
.row-head{color:var(--ink-muted);font-size:var(--text-caption);letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.bar{position:relative;height:6px;border-radius:999px;background:var(--track);overflow:hidden}
.bar i{position:absolute;inset:0 auto 0 0;background:var(--forest-ink);border-radius:999px;display:block}
.row .pct{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}
:root[data-theme="dark"] .path .step.done{background:var(--sage-mist);color:var(--forest-shadow)}
:root[data-theme="dark"] .bar i{background:var(--sage-mist)}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .path .step.done{background:var(--sage-mist);color:var(--forest-shadow)}
  :root:not([data-theme="light"]) .bar i{background:var(--sage-mist)}
}

/* ---------- Module ---------- */
.mod{display:flex;flex-direction:column;gap:14px;height:100%}
.mod-top{display:flex;align-items:baseline;justify-content:space-between;gap:14px}
.mod-code{font-size:var(--text-caption);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.mod-ue{font-size:var(--text-caption);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);font-variant-numeric:tabular-nums}
.mod h3{font-family:var(--font-display);font-size:28px;line-height:1.2;letter-spacing:-.01em}
.mod-after{display:flex;flex-direction:column;gap:6px;margin-top:auto;padding-top:12px;border-top:1px solid var(--rule);font-size:13px;line-height:1.5;color:var(--ink-body)}
.mod-after b{font-weight:600;color:var(--ink)}

.lf{width:100%;border-collapse:collapse;font-size:var(--text-body)}
.lf caption{text-align:left;font-size:var(--text-caption);letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--ink);padding-bottom:14px}
.lf th{text-align:left;font-weight:600;font-size:var(--text-caption);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);padding:0 0 11px}
.lf td{padding:9px 0;border-top:1px solid var(--rule);color:var(--ink-body)}
.lf td:last-child,.lf th:last-child{text-align:right;font-variant-numeric:tabular-nums}
.lf tr.total td{border-top:1px solid var(--rule-strong);color:var(--ink);font-weight:500}
.scroll-x{overflow-x:auto}
.lf-details summary{
  list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:9px;
  background:var(--panel-inner);color:var(--ink);border-radius:999px;padding:11px 18px;
  font-size:var(--text-body);line-height:1;
}
.lf-details summary::-webkit-details-marker{display:none}
.lf-details summary::after{content:"+";font-size:16px;line-height:1}
.lf-details[open] summary::after{content:"\2212"}
.lf-details[open] summary{margin-bottom:14px}
.sr-only-cap{position:absolute;left:-9999px}

/* ---------- Programme ---------- */
.prog{display:flex;flex-direction:column;gap:18px;height:100%}
.prog .ue{font-family:var(--font-display);font-size:40px;line-height:1;color:var(--ink);letter-spacing:-.01em}
.prog .ue small{font-family:var(--font-body);font-size:var(--text-body);letter-spacing:0;color:var(--ink-muted);margin-left:7px}

/* ---------- Phasen ---------- */
.phase{display:flex;flex-direction:column;gap:11px;height:100%}
.phase-n{font-family:var(--font-display);font-size:40px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.ticks{display:flex;flex-direction:column;gap:7px;margin:0;padding:0;list-style:none}
.ticks li{display:flex;gap:9px;align-items:flex-start;color:var(--ink-body)}
.ticks li::before{content:"";flex:none;width:6px;height:6px;border-radius:999px;background:var(--ink);margin-top:8px}
.c-slate .ticks li::before{background:#0f3e17}

/* ---------- FAQ ---------- */
.faq{display:flex;flex-direction:column}
.faq-row{display:grid;grid-template-columns:1fr 1.15fr;gap:42px;padding:35px 0;border-top:1px solid var(--rule)}
.faq-row:last-child{border-bottom:1px solid var(--rule)}
.faq-q{font-family:var(--font-display);font-weight:400;font-size:clamp(24px,2.6vw,var(--text-heading));line-height:1.2;color:var(--ink);letter-spacing:-.01em}

/* ---------- CTA ---------- */
.cta{background:var(--panel-3);border-radius:var(--r-card);padding:76px 56px;display:flex;flex-wrap:wrap;gap:35px;align-items:center;justify-content:space-between}
.cta .stack{max-width:46ch}

/* ---------- Footer ---------- */
footer{border-top:1px solid var(--rule);padding:49px 0 76px}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:35px}
.foot .foot-h{font-family:var(--font-body);font-size:var(--text-caption);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin:0 0 14px}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.foot a{color:var(--ink-body)}
.foot a:hover{color:var(--ink)}
.foot-note{margin-top:42px;padding-top:21px;border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;font-size:12px;color:var(--ink-muted)}

.note{border-radius:var(--r-card);background:var(--panel-1);padding:21px 28px;font-size:12px;color:var(--ink-muted)}

/* Nav liegt transparent auf dem Hero (Luffu) */
body{position:relative}
.site-over{position:absolute;top:0;left:0;right:0;z-index:9;max-width:none;padding:0 28px}
.site-over .nav{max-width:var(--page);margin:0 auto}
.site-over .brand-name{color:var(--cream-paper)}
.site-over .brand-sub{color:rgba(253,252,247,.75)}
.site-over .nav-links a{color:rgba(253,252,247,.92)}
.site-over .nav-links a:hover{background:rgba(253,252,247,.14);color:var(--cream-paper)}

/* ---------- Foto-Hero (Luffu) ---------- */
.hero-photo{position:relative;min-height:min(94vh,900px);display:flex;flex-direction:column;overflow:hidden;background:var(--forest-shadow)}
.hero-img{position:absolute;inset:-10% 0;width:100%;height:120%;object-fit:cover;object-position:var(--fx,center) var(--fy,42%)}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,26,12,.34),rgba(10,26,12,0) 13%),linear-gradient(112deg,rgba(10,26,12,.78) 0%,rgba(10,26,12,.44) 42%,rgba(10,26,12,0) 66%),linear-gradient(0deg,rgba(10,26,12,.86) 0%,rgba(10,26,12,.74) 24%,rgba(10,26,12,.42) 40%,rgba(10,26,12,0) 56%)}
.hero-copy2{position:relative;z-index:6;width:100%;max-width:var(--page);margin:0 auto;padding:clamp(49px,9vh,96px) 28px 0;display:flex;flex-direction:column;gap:21px;max-width:var(--page)}
.hero-copy2 h1{color:var(--cream-paper);max-width:15ch}
@media (min-width:1000px){.hero-copy2 h1{font-size:min(clamp(40px,6.2vw,74px),8.6vh)}.hero-copy2{gap:clamp(11px,2.2vh,21px)}}
.hero-copy2 .lead{color:rgba(253,252,247,.92);max-width:46ch}
.eyebrow.on-photo{color:rgba(253,252,247,.95)}
.btn-onphoto{background:transparent;color:var(--cream-paper);box-shadow:inset 0 0 0 1px rgba(253,252,247,.55)}
.btn-onphoto:hover{background:rgba(253,252,247,.14)}
.wordmark-hero{
  position:relative;z-index:3;margin:auto 0 -0.06em;padding:clamp(21px,5vh,56px) 0 0;
  font-family:var(--font-display);font-weight:400;text-align:center;white-space:nowrap;
  font-size:min(clamp(44px,12.6vw,210px),23vh);line-height:.92;letter-spacing:-.035em;
  color:var(--cream-paper);pointer-events:none;user-select:none;
}

/* ---------- Bildrahmen mit Parallax-Raum ---------- */
.frame{position:relative;overflow:hidden;border-radius:var(--r-card);aspect-ratio:var(--ar,16/9);background:var(--panel-2)}
picture{display:contents}
.ki-badge{position:absolute;right:14px;bottom:14px;z-index:7;font-size:10px;line-height:1;letter-spacing:.08em;text-transform:uppercase;color:rgba(253,252,247,.78);background:rgba(10,26,12,.5);padding:6px 9px;border-radius:999px;pointer-events:none}
.ki-cap{color:var(--ink-muted)}
.journey-pin .ki-badge{top:14px;bottom:auto}   /* unten liegt der Text des Bildwechsels */
.frame img{position:absolute;inset:-12% 0;width:100%;height:124%;object-fit:cover;object-position:var(--fx,center) var(--fy,center)}
.bleed .frame{border-radius:0}
/* ---------- Der Weg (gepinnt) ---------- */
.journey{height:320vh}
.journey-pin{position:sticky;top:0;height:100vh;overflow:hidden;background:var(--forest-shadow)}
.j-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--fx,center) var(--fy,center);opacity:0;transition:opacity .8s ease}
.j-img.is-on{opacity:1}
.j-scrim{position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,26,12,.82) 0%,rgba(10,26,12,.55) 30%,rgba(10,26,12,.16) 58%,rgba(10,26,12,0) 78%)}
.j-copy{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:120px 0 76px;display:flex;justify-content:center;color:var(--cream-paper);
  background:linear-gradient(0deg,rgba(10,26,12,.78) 0%,rgba(10,26,12,.5) 55%,rgba(10,26,12,0) 100%)}
.j-copy-in{width:100%;max-width:var(--page);margin:0 auto;padding:0 28px;display:flex;flex-direction:column;gap:11px}
.j-title{color:var(--cream-paper);transition:opacity .5s ease}
.j-cap{max-width:52ch;color:rgba(253,252,247,.9);transition:opacity .5s ease}
.j-steps{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.j-step{font-size:12px;line-height:1;padding:8px 12px;border-radius:999px;color:rgba(253,252,247,.85);box-shadow:inset 0 0 0 1px rgba(253,252,247,.4);transition:background .5s ease,color .5s ease}
.j-step.done{background:var(--cream-paper);color:var(--forest-ink);box-shadow:none}
/* Fallback ohne Motion: drei Bilder normal untereinander */
.no-motion .journey{height:auto}
.no-motion .journey-pin{position:static;height:auto;display:flex;flex-direction:column}
.no-motion .j-img{position:static;opacity:1;height:auto;aspect-ratio:21/9;object-fit:cover}
.no-motion .j-scrim{display:none}
.no-motion .j-copy{position:static;padding:21px 0;color:var(--ink-body);background:none}
.no-motion .j-title{color:var(--ink)}
.no-motion .j-cap{color:var(--ink-muted)}

/* ---------- Animationspaket (nur transform/opacity, >=400ms, no-motion-sicher) ---------- */
@keyframes ct-rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}
html:not(.no-motion) .hero-copy2>*{animation:ct-rise .8s cubic-bezier(.22,.61,.36,1) both}
html:not(.no-motion) .hero-copy2>*:nth-child(1){animation-delay:.05s}
html:not(.no-motion) .hero-copy2>*:nth-child(2){animation-delay:.18s}
html:not(.no-motion) .hero-copy2>*:nth-child(3){animation-delay:.34s}
html:not(.no-motion) .hero-copy2>*:nth-child(4){animation-delay:.5s}
html:not(.no-motion) .wordmark-hero{animation:ct-rise 1s .45s cubic-bezier(.22,.61,.36,1) both}

html:not(.no-motion) .stagger>*{opacity:0;transform:translateY(16px);transition:opacity .65s ease,transform .65s ease}
html:not(.no-motion) .reveal.in .stagger>*,
html:not(.no-motion) .stagger.reveal.in>*{opacity:1;transform:translateY(0)}

@media (hover:hover){
  html:not(.no-motion) .grid>.card{transition:transform .4s cubic-bezier(.22,.61,.36,1)}
  html:not(.no-motion) .grid>.card:hover{transform:translateY(-5px)}
}

.bar i{transform-origin:left center}
html:not(.no-motion) .reveal .bar i{transform:scaleX(0);transition:transform .9s cubic-bezier(.22,.61,.36,1) .2s}
html:not(.no-motion) .reveal.in .bar i{transform:scaleX(1)}

html:not(.no-motion) .j-img{transform:scale(1.045);transition:opacity .8s ease,transform 5.5s ease}
html:not(.no-motion) .j-img.is-on{transform:scale(1)}
.ct-stageshot .j-img{transform:none !important}
.j-copy-in{transition:opacity .3s ease}
.j-copy-in.is-swapping{opacity:.15}

/* ---------- Wort-Kaskaden (Scroll-getrieben via Reveal) ---------- */
html:not(.no-motion) .w-split .w{display:inline-block;opacity:0;transform:translateY(.55em);transition:opacity .55s ease,transform .6s cubic-bezier(.22,.61,.36,1)}
html:not(.no-motion) .reveal.in .w-split .w,
html:not(.no-motion) .w-split.in .w{opacity:1;transform:translateY(0)}

/* Bilder setzen sich beim Erscheinen (scale-Property, kollidiert nicht mit Parallax-transform) */
html:not(.no-motion) .reveal .frame img{scale:1.07;transition:scale 1.3s cubic-bezier(.22,.61,.36,1)}
html:not(.no-motion) .reveal.in .frame img{scale:1}

/* Hero-Copy driftet beim Wegscrollen (JS-gesteuert, Scroll ist die Uhr) */
.hero-copy2{will-change:transform,opacity}

/* ---------- Baum-Akzente (Aquarell, Logo-Stil — nur auflockernd) ---------- */
main{position:relative}
.baum-mitte{display:flex;flex-direction:column;align-items:center;gap:9px;padding:70px 28px 0}
.ki-cap-ill{font-size:10px;line-height:1;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}
.baum-mitte img{width:min(300px,46vw);height:auto;mix-blend-mode:multiply;opacity:.94}
.baum-mitte.klein img{width:min(240px,40vw)}
.baum-mitte.breit img{width:min(440px,72vw)}
.baum-mitte.eng{padding-top:28px}
.teil-wrap{height:78px;display:flex;align-items:flex-end;margin-bottom:2px}
.teil-wrap img{height:100%;width:auto;max-width:100%;object-fit:contain;mix-blend-mode:multiply}
.teil-inline{height:40px;width:auto;vertical-align:middle;margin-right:10px;mix-blend-mode:multiply}
html:not(.no-motion) .baum-mitte img{scale:.93;transform-origin:bottom center;transition:scale 1.3s cubic-bezier(.22,.61,.36,1)}
html:not(.no-motion) .baum-mitte.reveal.in img{scale:1}
.tree-branch{
  position:absolute;top:44px;width:min(340px,23vw);height:auto;z-index:0;
  pointer-events:none;opacity:.9;
  /* Freigestellt (echtes Alpha, kein Rechteck) + weiche Blende:
     Stamm laeuft zum Fensterrand weich aus, Blattspitzen zur Mitte hin, oben/unten sanft.
     Beim rechten Ast spiegelt scaleX(-1) die Maske automatisch mit. */
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 24%,#000 70%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 12%,#000 84%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,transparent 0,#000 24%,#000 70%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 12%,#000 84%,transparent 100%);
  mask-composite:intersect;
}
.tree-branch.side-l{left:0}
.tree-branch.side-r{right:0;transform:scaleX(-1)}
html:not(.no-motion) .tree-branch.reveal{opacity:0;transition:opacity .9s ease,transform 1.1s cubic-bezier(.22,.61,.36,1)}
html:not(.no-motion) .tree-branch.side-l.reveal{transform:translateX(-30%)}
html:not(.no-motion) .tree-branch.side-r.reveal{transform:translateX(30%) scaleX(-1)}
html:not(.no-motion) .tree-branch.side-l.reveal.in{opacity:.9;transform:translateX(0)}
html:not(.no-motion) .tree-branch.side-r.reveal.in{opacity:.9;transform:translateX(0) scaleX(-1)}
@media (max-width:1100px){.tree-branch{display:none}}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(14px)}
.reveal.in{opacity:1;transform:none;transition:opacity .7s ease,transform .7s ease}
.tree-branch.side-r.reveal.in{transform:scaleX(-1)}
.tree-branch.side-l.reveal.in{transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal,.reveal.in{opacity:1;transform:none;transition:none}
}

/* ---------- Responsive ---------- */
@media (max-width:1000px){
  .hero{grid-template-columns:1fr;gap:35px}
  .hero-copy{padding-right:0}
  .g4,.g3{grid-template-columns:repeat(2,1fr)}
  .foot{grid-template-columns:repeat(2,1fr)}
  .nav{gap:14px}
  .nav-toggle{display:inline-flex;margin-left:auto}
  .nav-links{display:none}
  .nav.open .nav-links{display:flex;flex-direction:column;gap:4px;position:absolute;top:calc(100% - 7px);left:0;right:0;background:var(--forest-shadow);border-radius:var(--r-card);padding:14px;z-index:20;box-shadow:0 18px 40px rgba(10,26,12,.28)}
  .nav.open .nav-links a{color:rgba(253,252,247,.92);padding:12px 14px;font-size:17px;white-space:normal}
  .nav.open .nav-links a:hover,.nav.open .nav-links a[aria-current="page"]{background:rgba(253,252,247,.12);color:var(--cream-paper)}
  .nav.open .nav-links a.nav-cta-m{display:block;margin-top:8px;background:var(--cream-paper);color:var(--forest-shadow);text-align:center;border-radius:999px}
  .nav.open .nav-links a.nav-cta-m:hover{background:#fff;color:var(--forest-shadow)}
}
@media (min-width:1700px){
  .bleed .frame{max-height:min(66vh,820px)}
}
@media (max-width:720px){
  section{padding:56px 0}
  .g2,.g3,.g4{grid-template-columns:1fr}
  .faq-row{grid-template-columns:1fr;gap:14px}
  .cta{padding:42px 28px}
  .card-lg{padding:28px}
  .strip{gap:21px}
  .logo-badge{width:44px;height:44px}
  .hero-copy2{padding-top:56px}
  .j-copy{padding-bottom:35px}
  .j-steps{display:none}
  .slot{padding:21px}
  .slot,.shot,.frame{aspect-ratio:var(--ar-m,4/3)}
  .nav>.btn{display:none}
  .brand-sub{display:none}
  .frame img,.j-img{object-position:var(--fx-m,var(--fx,center)) var(--fy-m,var(--fy,center))}
  /* Handy: Foto oben frei sichtbar, Text darunter auf Gruen – statt Text ueber dem ganzen Bild */
  .hero-photo{min-height:0;display:block;padding:0 0 28px}
  .hero-photo>.ki-badge{bottom:auto;top:calc(125vw - 34px)}   /* section-Padding (56px) wuerde das Foto unter der Blende verschieben */
  .hero-img{position:relative;inset:auto;display:block;width:100%;height:125vw;max-height:none;aspect-ratio:auto;transform:none !important;object-position:var(--fx-m,var(--fx,center)) var(--fy-m,var(--fy,42%))}
  .hero-scrim{bottom:auto;height:125vw;background:linear-gradient(180deg,rgba(10,26,12,.55),rgba(10,26,12,0) 28%),linear-gradient(0deg,var(--forest-shadow) 0%,rgba(10,26,12,.35) 14%,rgba(10,26,12,0) 30%)}
  .hero-copy2{padding:8px 28px 0;gap:16px;opacity:1 !important;transform:none !important}
  .hero-copy2 h1{font-size:32px;max-width:none}
  .wordmark-hero{margin:18px 0 -0.06em;padding:0;font-size:min(13vw,56px);transform:none !important}
}

/* ---------- Mehrseiten-Ergaenzungen ---------- */
.subhero{position:relative;min-height:46vh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:var(--forest-shadow)}
.subhero .hero-img{position:absolute;inset:-10% 0;width:100%;height:120%;object-fit:cover;object-position:var(--fx,center) var(--fy,30%)}
@media (min-width:1700px){.subhero{min-height:60vh}}
@media (max-width:720px){.subhero{min-height:50vh}.subhero .hero-img{object-position:var(--fx-m,var(--fx,center)) var(--fy-m,var(--fy,30%))}}
.subhero .hero-scrim{position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,26,12,.78),rgba(10,26,12,.25) 60%,rgba(10,26,12,.35))}
.subhero .hero-copy2{padding-bottom:56px}
.subhero h1{font-size:clamp(34px,4.6vw,58px)}
.kurz{border-radius:var(--r-card);background:var(--panel-inner);box-shadow:inset 0 0 0 1px var(--rule);padding:28px 35px;max-width:820px;margin:0 auto}
.kurz p{color:var(--ink-body)}
.nav-links a[aria-current="page"]{background:var(--panel-1);color:var(--ink)}
