/* CICIPEEL — Design aus dem gewählten Homepage-Prototyp (claude.ai, 21./22.10.2026), auf Zola übertragen.
   Leitlinie Bewegung (Leo): ruhig und entspannt — Übergänge 0,9–1,4 s, weiche Kurven ohne Federn,
   Parallaxe dezent, nichts blinkt, nichts springt. Hero-Bild startet nie unsichtbar (LCP). */

@font-face{font-family:"Bodoni Moda";src:url("../fonts/bodoni-moda.woff2") format("woff2");font-weight:400 900;font-style:normal;font-display:swap}
@font-face{font-family:"Bodoni Moda";src:url("../fonts/bodoni-moda-italic.woff2") format("woff2");font-weight:400 900;font-style:italic;font-display:swap}
@font-face{font-family:"Jost";src:url("../fonts/jost.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  color-scheme:light;
  --ink:#171512;--ivory:#F2EFE9;--paper:#FAF8F4;--bordeaux:#800020;--bordeaux-hell:#D98A97;
  --stone:#D9D3C9;--muted:#5F584F;--ivory-dim:rgba(242,239,233,.8);
  --line:rgba(23,21,18,.14);--line-dark:rgba(242,239,233,.22);
  --text-2:#3E3933;--prosa:#2E2A25;--wort:#6B645B;--feld:rgba(23,21,18,.45);
  --display:"Bodoni Moda","Didot","Bodoni 72",Georgia,serif;
  --sans:"Jost","Futura","Century Gothic",system-ui,sans-serif;
  --gut:clamp(16px,4vw,56px);
  --ease:cubic-bezier(.25,.1,.25,1);         /* weich, ohne Überschwingen */
  --ease-out:cubic-bezier(.22,.61,.36,1);
  --t-slow:1.4s;--t:1.1s;--t-fast:.9s;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.7;font-weight:350;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{display:block;max-width:100%;height:auto}
picture{display:block}
figure{margin:0}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--bordeaux);outline-offset:4px}
.dark :focus-visible,.hero :focus-visible{outline-color:var(--ivory)}
h1,h2,h3,h4{font-weight:400;margin:0;text-wrap:balance}
p,ul{margin:0}
ul{padding:0;list-style:none}
em{font-style:italic}
main:focus{outline:none}
.wrap{padding-left:max(var(--gut),env(safe-area-inset-left,0px));padding-right:max(var(--gut),env(safe-area-inset-right,0px))}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;left:12px;top:-100px;z-index:100;background:var(--ink);color:var(--ivory);padding:12px 18px}
.skip:focus{top:12px}
.eyebrow{font-size:12px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--bordeaux)}
.dark .eyebrow{color:var(--bordeaux-hell)}
.label{font-size:12px;font-weight:500;letter-spacing:.24em;text-transform:uppercase}
.h-xl{font-family:var(--display);font-size:clamp(46px,6vw,92px);line-height:.98}
.h-xl em{display:block}
.h-lg{font-family:var(--display);font-size:clamp(38px,4.8vw,72px);line-height:1.04}
.body{font-size:17px;color:var(--muted);max-width:44ch}
.dark .body{color:var(--ivory-dim)}
.lede{color:var(--muted);max-width:36ch}
.todo{color:var(--bordeaux);font-size:14px;letter-spacing:.02em}
.link-line{display:inline-flex;align-items:center;gap:14px;font-size:12px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;padding:14px 0;border-bottom:1px solid currentColor;width:fit-content;min-height:48px}
.link-line::after{content:"";width:32px;height:1px;background:currentColor;transition:width var(--t) var(--ease)}
.link-line:hover::after{width:56px}
.link-line.ghost{border-bottom-color:transparent;opacity:.85}

/* ---------- Kopf ---------- */
.hdr{position:fixed;inset:0 0 auto 0;z-index:50;padding-top:env(safe-area-inset-top,0px);color:var(--ivory);transition:transform var(--t) var(--ease),background-color var(--t) var(--ease),color var(--t) var(--ease),box-shadow var(--t) var(--ease)}
.hdr-in{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:76px}
.hdr nav{display:flex;gap:clamp(20px,3vw,44px)}
.hdr nav a,.lang,.menu-btn{font-size:12px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;position:relative;padding:14px 0;min-height:44px;display:inline-flex;align-items:center}
.hdr nav a::after{content:"";position:absolute;left:0;right:100%;bottom:8px;height:1px;background:currentColor;transition:right var(--t) var(--ease)}
.hdr nav a:hover::after{right:0}
.hdr .right{display:flex;justify-content:flex-end;align-items:center;gap:clamp(20px,3vw,44px)}
.logo{font-family:var(--display);font-size:22px;letter-spacing:.32em;padding-left:.32em;opacity:0;transition:opacity var(--t) var(--ease);min-height:44px;display:inline-flex;align-items:center}
.hdr.solid{background:var(--ivory);color:var(--ink);box-shadow:0 1px 0 var(--line)}
.hdr.solid .logo,.hdr.nohero .logo{opacity:1}
.hdr.away{transform:translateY(-100%)}
.lang{border:1px solid currentColor;padding:6px 10px !important;min-height:36px !important;letter-spacing:.16em !important}
.menu-btn{display:none;background:none;border:0;cursor:pointer;justify-self:start}
html:not(.js) .logo{opacity:1}
/* 7 Navigationspunkte + Termin passen erst ab ~1240 px nebeneinander (gemessen 2026-11-13, EN „Appointment" am längsten) */
@media (max-width:1240px){.hdr nav{display:none}.menu-btn{display:inline-flex}}
@media (max-width:860px){
  .hdr-in{height:64px}
  .hdr nav{display:none}
  .menu-btn{display:inline-flex}
  .logo{font-size:18px}
}
.mnav{position:fixed;inset:0;z-index:60;background:var(--ink);color:var(--ivory);display:flex;flex-direction:column;justify-content:space-between;padding-top:calc(env(safe-area-inset-top,0px) + 12px);padding-bottom:calc(env(safe-area-inset-bottom,0px) + 28px)}
.mnav[hidden]{display:none}
.mnav.open{animation:menuein var(--t) var(--ease) both}
@keyframes menuein{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
.mnav .top{display:flex;justify-content:space-between;align-items:center;height:52px}
.logo-m{font-family:var(--display);font-size:18px;letter-spacing:.32em}
.mnav ul{display:flex;flex-direction:column;gap:6px}
.mnav ul a{font-family:var(--display);font-size:clamp(38px,11vw,64px);line-height:1.15;display:block}
.mnav .close{background:none;border:0;cursor:pointer;min-height:44px;font-size:12px;font-weight:500;letter-spacing:.24em;text-transform:uppercase}

/* ---------- Hero ---------- */
.hero{position:relative;height:max(560px,100svh);max-height:1200px;background:var(--ink);color:var(--ivory);overflow:hidden}
.hero-media{position:absolute;inset:0 0 -10% 0;will-change:transform}
.hero-poster,.hero-poster img,.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-poster img{object-position:62% 30%}
.hero-video{opacity:0;transition:opacity var(--t-slow) var(--ease)}
.hero-media.spielt .hero-video{opacity:1}
.ki-badge{position:absolute;z-index:3;top:calc(env(safe-area-inset-top,0px) + 92px);right:max(var(--gut),env(safe-area-inset-right,0px));display:none;align-items:center;gap:8px;background:rgba(23,21,18,.72);color:#fff;font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;padding:7px 12px 7px 8px;border:1px solid rgba(255,255,255,.5)}
.hero-media.hat-video .ki-badge{display:inline-flex}
.ki-icon{display:inline-grid;place-items:center;width:24px;height:24px;border:1px solid #fff;font-size:11px;letter-spacing:.04em}
.vbtn{position:absolute;z-index:4;right:max(var(--gut),env(safe-area-inset-right,0px));top:calc(env(safe-area-inset-top,0px) + 140px);width:48px;height:48px;border-radius:50%;border:1px solid rgba(242,239,233,.7);background:rgba(23,21,18,.35);cursor:pointer;display:grid;place-items:center}
.vbtn[hidden]{display:none}
.vbtn-i{width:12px;height:14px;border-left:3px solid var(--ivory);border-right:3px solid var(--ivory)}
.vbtn.pausiert .vbtn-i{width:0;height:0;border-style:solid;border-width:8px 0 8px 13px;border-color:transparent transparent transparent var(--ivory);margin-left:3px}
.hero .shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,21,18,.5) 0%,rgba(23,21,18,0) 22%,rgba(23,21,18,0) 38%,rgba(23,21,18,.55) 60%,rgba(23,21,18,.82) 100%),linear-gradient(90deg,rgba(23,21,18,.35) 0%,rgba(23,21,18,0) 55%);pointer-events:none}
.hero-in{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:clamp(16px,2.4vw,28px);padding-bottom:clamp(20px,2.5vw,36px);will-change:transform}
.hero-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px 40px;flex-wrap:wrap}
.claim{display:flex;flex-direction:column;gap:10px}
.claim .tag{font-size:13px;font-weight:500;letter-spacing:.32em}
.claim .sub{font-family:var(--display);font-style:italic;font-size:clamp(19px,1.8vw,25px);line-height:1.35;color:var(--ivory-dim);max-width:36ch}
.hero-ctas{display:flex;gap:28px;flex-wrap:wrap}
.wordmark{font-family:var(--display);font-weight:400;font-size:min(19vw,340px);line-height:.8;letter-spacing:.015em;white-space:nowrap;overflow:hidden;padding-top:.06em;margin-bottom:-.04em}
.wm-txt{display:inline-block}
/* Marke: ® hochgestellt und klein — im Fliesstext und in der Wortmarke */
sup.r{font-size:.55em;line-height:0;vertical-align:.6em;letter-spacing:0;margin-left:.04em;font-weight:inherit}
.logo sup.r,.logo-m sup.r,.ft .mark sup.r{font-size:.45em;vertical-align:1.1em;margin-left:-.22em}
.wordmark sup.r{font-size:.16em;vertical-align:4.2em;margin-left:.02em}
.js .wm-txt{animation:rise var(--t-slow) .15s var(--ease-out) both}
@keyframes rise{from{transform:translateY(102%)}to{transform:none}}
.js .hero-row{animation:aufwaerts 1.3s .7s var(--ease-out) both}
@keyframes aufwaerts{from{transform:translateY(16px)}to{transform:none}}
.claim .tag{text-transform:uppercase}
/* Hero-Überschrift als Satz (2026-11-13); Wortmarke darunter bleibt Gestaltungselement */
.hero-h{font-family:var(--display);font-size:clamp(30px,3.4vw,52px);line-height:1.08;max-width:19ch;color:var(--ivory)}
.hero-ctas{align-items:center}
.btn.btn-hell{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
.btn.btn-hell:hover{background:var(--bordeaux);border-color:var(--bordeaux);color:var(--ivory)}
@media (max-width:640px){.hero-ctas{gap:4px 22px}.claim .tag{font-size:12px;letter-spacing:.26em}.hero-h{font-size:clamp(28px,8vw,36px)}}

/* ---------- Statement ---------- */
.statement{background:var(--ivory);padding-block:clamp(96px,14vw,200px)}
.grid12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:32px}
.statement .eyebrow{grid-column:1 / span 3;padding-top:18px}
.statement .inner{grid-column:4 / span 9;display:flex;flex-direction:column;gap:clamp(32px,4vw,56px)}
.st-head{font-family:var(--display);font-size:clamp(42px,6.2vw,96px);line-height:1.02}
.st-head em{color:var(--bordeaux)}
.st-body{font-family:var(--display);font-size:clamp(22px,2.5vw,36px);line-height:1.38;max-width:32ch}
.st-body .w{transition:color var(--t) var(--ease)}
.st-body.split .w{color:var(--wort)}
.st-body.split .w.on{color:var(--ink)}
@media (max-width:860px){.statement .eyebrow,.statement .inner{grid-column:1 / -1}}

/* ---------- Lookbook: wischbare Reihe, NIE angeheftet ----------
   Senkrecht scrollt immer die Seite (kein Abfangen, touch-action Standard). Seitwärts nativ: Wischen, Trackpad,
   Shift+Rad, Pfeiltasten (Reihe fokussierbar), dazu Knöpfe. Snap nur „proximity" – nichts rastet ruckartig ein. */
.lookbook{background:var(--paper);position:relative;padding-block:72px 40px}
.lb-reihe{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scroll-padding-inline:max(var(--gut),env(safe-area-inset-left,0px)) max(var(--gut),env(safe-area-inset-right,0px));scrollbar-width:none;overscroll-behavior-x:contain;padding-bottom:8px}
.lb-reihe::-webkit-scrollbar{display:none}
.lb-reihe:focus-visible{outline-offset:-2px}
.lb-track{display:flex;align-items:flex-end;gap:clamp(20px,2.4vw,40px);width:max-content;padding-left:max(var(--gut),env(safe-area-inset-left,0px));padding-right:max(var(--gut),env(safe-area-inset-right,0px))}
.lb-intro{width:min(80vw,420px);display:flex;flex-direction:column;gap:24px;align-self:center;scroll-snap-align:start;padding-right:clamp(0px,4vw,80px)}
.hint{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.hint::after{content:"";width:48px;height:1px;background:currentColor}
.lb-panel{display:flex;flex-direction:column;gap:16px;scroll-snap-align:start}
.lb-panel .frame{position:relative;overflow:hidden;width:min(78vw,400px);aspect-ratio:3/4;background:var(--stone)}
@media (min-width:861px){.lb-panel .frame{width:min(400px,calc((100svh - 260px) * .75))}}
.lb-panel .frame img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-slow) var(--ease)}
.lb-panel:hover .frame img{transform:scale(1.03)}
.lb-meta{display:flex;align-items:baseline;gap:18px}
.idx{font-size:12px;font-weight:500;letter-spacing:.2em;color:var(--muted);font-variant-numeric:tabular-nums}
.lb-t{font-family:var(--display);font-size:clamp(22px,2vw,30px)}
.lb-end{align-self:center;font-family:var(--display);font-size:clamp(32px,3.4vw,52px);line-height:1.08;padding:0 clamp(24px,6vw,120px) 0 clamp(8px,2vw,40px);scroll-snap-align:end;display:flex;flex-direction:column;gap:20px}
.lb-end span{font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--bordeaux)}
.lb-end b{font-weight:400}
/* Fortschritt + Knöpfe: nur mit JS (ohne JS bleibt die Reihe nativ wisch-/scrollbar) */
.lb-nav{display:none;align-items:center;gap:12px;margin-top:28px;padding-inline:max(var(--gut),env(safe-area-inset-left,0px)) max(var(--gut),env(safe-area-inset-right,0px))}
.js .lb-nav{display:flex}
.lb-progress{position:relative;flex:1;height:1px;background:var(--line);margin-right:clamp(8px,2vw,24px)}
.lb-progress span{position:absolute;inset:0;background:var(--ink);transform-origin:left;transform:scaleX(0);transition:transform .5s var(--ease-out)}
.lb-pfeil{width:48px;height:48px;border-radius:50%;border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;display:grid;place-items:center;transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),opacity var(--t-fast) var(--ease)}
.lb-pfeil:hover:not(:disabled){background:var(--ink);color:var(--ivory)}
.lb-pfeil:disabled{opacity:.3;cursor:default}
.lb-pfeil-i{width:10px;height:10px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:translateX(-2px) rotate(45deg)}
.lb-pfeil-i.zurueck{transform:translateX(2px) rotate(-135deg)}
/* ruhiges Einblenden beim Seitwärtsblättern (scroll-driven an der Reihe, nur opacity/transform) */
@supports (animation-timeline:view(inline)){
  @media (prefers-reduced-motion:no-preference){
    .lb-panel .frame{animation:lbin linear both;animation-timeline:view(inline);animation-range:entry 0% entry 80%}
  }
}
@keyframes lbin{from{opacity:.35;transform:scale(.96)}to{opacity:1;transform:none}}

/* ---------- Parallaxe: reines CSS (scroll-driven), nur wo unterstützt; sonst statisch ---------- */
.px-wrap{overflow:hidden;position:relative}
.px-wrap picture,.px-wrap img{width:100%;height:100%;object-fit:cover}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .px-wrap .px img{height:112%;animation:px linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
    @keyframes px{from{transform:translateY(-6%)}to{transform:translateY(0)}}
    .ko-item img{animation:koin linear both;animation-timeline:view();animation-range:entry 0% entry 90%}
    @keyframes koin{from{transform:scale(1.06);filter:saturate(.7)}to{transform:none;filter:none}}
  }
}

/* ---------- Passform ---------- */
.philo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));background:var(--ivory)}
.philo-fig{min-height:min(92svh,900px)}
.philo .txt{display:flex;flex-direction:column;justify-content:center;gap:32px;padding-block:clamp(72px,10vw,140px)}
@media (max-width:860px){.philo{grid-template-columns:1fr}.philo-fig{min-height:0;aspect-ratio:4/5}}

/* ---------- Restyle ---------- */
.restyle{background:var(--ink);color:var(--ivory);padding-block:clamp(96px,12vw,170px)}
.rs-top{display:flex;flex-direction:column;gap:26px;max-width:760px}
.rs-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px clamp(32px,6vw,120px);margin-top:clamp(64px,8vw,110px)}
.rs-h{font-family:var(--display);font-style:italic;font-size:clamp(30px,3vw,46px);margin-bottom:28px}
.items{display:flex;flex-direction:column;gap:30px}
.item{border-top:1px solid var(--line-dark);padding-top:22px;display:flex;flex-direction:column;gap:10px;position:relative}
.item::before{content:"";position:absolute;top:-1px;left:0;height:1px;width:0;background:var(--ivory);transition:width var(--t-slow) var(--ease)}
.item:hover::before{width:100%}
.item h4{font-family:var(--display);font-size:clamp(22px,1.9vw,28px)}
.item p{font-size:16px;color:var(--ivory-dim)}
.rs-fig{aspect-ratio:4/5;overflow:hidden;background:#2a2622;margin-bottom:clamp(28px,3vw,40px)}
.rs-fig picture,.rs-fig img{width:100%;height:100%;object-fit:cover}
@media (max-width:760px){.rs-cols{grid-template-columns:1fr}}

/* ---------- Atelier ---------- */
.atelier{background:var(--paper);padding-block:clamp(96px,12vw,170px)}
.at-head{display:flex;flex-direction:column;gap:26px;max-width:640px;margin-bottom:clamp(48px,6vw,90px)}
.at-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(14px,2vw,28px);align-items:start}
.at-a{grid-column:1 / span 6;grid-row:1 / span 2;aspect-ratio:4/5}
.at-b{grid-column:7 / span 6}
.at-e{grid-column:8 / span 5}
@media (max-width:860px){.at-a{grid-column:1 / -1;grid-row:auto}.at-b{grid-column:1 / -1}.at-e{grid-column:1 / -1}}

/* ---------- Designerin ---------- */
.designer{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;background:var(--ivory);padding-block:clamp(80px,10vw,150px);align-items:center;row-gap:56px}
.ds-fig{grid-column:1 / span 6;aspect-ratio:4/5}
.designer .txt{grid-column:8 / span 5;display:flex;flex-direction:column;gap:26px}
.role{font-family:var(--display);font-style:italic;font-size:21px;color:var(--muted)}
@media (max-width:860px){.ds-fig,.designer .txt{grid-column:1 / -1}}

/* ---------- Kollektion ---------- */
.kollektion{background:var(--paper);padding-block:clamp(90px,11vw,160px)}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 60px;border-top:1px solid var(--line);padding-top:28px;margin-bottom:clamp(40px,5vw,72px);flex-wrap:wrap}
.sec-head>div{display:flex;flex-direction:column;gap:20px}
.ko-h{font-size:12px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin:0 0 20px}
.ko-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.6vw,24px);margin-bottom:clamp(56px,7vw,100px)}
.ko-grid.herren{margin-bottom:0}
.ko-item{overflow:hidden;aspect-ratio:3/4;background:var(--stone)}
.ko-item picture,.ko-item img{width:100%;height:100%;object-fit:cover}
.ko-grid .k2,.ko-grid .k4{margin-top:clamp(0px,4vw,64px)}
@media (max-width:860px){.ko-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ko-grid .k2,.ko-grid .k4{margin-top:32px}}

/* ---------- Kontakt ---------- */
.contact{background:var(--ivory);padding-block:clamp(110px,14vw,210px);text-align:center;display:flex;flex-direction:column;align-items:center;gap:30px}
.contact h2{font-family:var(--display);font-size:clamp(48px,10vw,160px);line-height:.95}
.contact .body{margin-inline:auto}
.ct-btns{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 36px;background:var(--ink);color:var(--ivory);border:1px solid var(--ink);font-size:12px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;transition:background-color var(--t) var(--ease),color var(--t) var(--ease)}
.btn:hover{background:var(--bordeaux);border-color:var(--bordeaux)}
.btn{transition:background-color var(--t) var(--ease),color var(--t) var(--ease),border-color var(--t) var(--ease),transform var(--t-fast) var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:none}
/* Danke-/Fehlerseite: Überschrift gleitet sanft herein (nur transform, sichtbar ab dem ersten Bild) */
.ks h1{animation:aufwaerts 1.2s .1s var(--ease-out) both}
.btn-o{background:transparent;color:var(--ink)}
.btn-o:hover{color:var(--ivory)}

/* ---------- Terminformular (POST an pixel.fatcatdigital.de, ohne JS) ---------- */
#termin{scroll-margin-top:96px}
.termin{width:100%;max-width:760px;margin-top:clamp(16px,3vw,40px);text-align:left;background:var(--paper);border:1px solid var(--line);padding:clamp(24px,4vw,56px);display:flex;flex-direction:column;gap:26px}
.fm-h{font-family:var(--display);font-size:clamp(32px,3.6vw,52px);line-height:1.05;margin-top:-10px}
.fm-lede{color:var(--muted);max-width:52ch}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.termin fieldset{border:0;margin:0;padding:0;min-width:0}
.termin legend,.fm-feld label{display:block;font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;padding:0}
.fm-feld label small{font-size:inherit;letter-spacing:inherit;text-transform:none;font-weight:350}
.fm-chips{display:flex;flex-wrap:wrap;gap:10px}
.fm-chips label{position:relative;cursor:pointer}
.fm-chips input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.fm-chips span{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:1px solid var(--line);font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}
.fm-chips label:hover span{border-color:var(--ink)}
.fm-chips input:checked+span{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.fm-chips input:focus-visible+span{outline:2px solid var(--bordeaux);outline-offset:3px}
.fm-reihe{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
@media (max-width:640px){.fm-reihe{grid-template-columns:1fr}}
.termin input:not([type=checkbox]):not([type=radio]),.termin textarea{width:100%;font:inherit;font-size:17px;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--feld);border-radius:0;padding:10px 0;transition:border-color var(--t-fast) var(--ease)}
.termin textarea{resize:vertical;min-height:132px;border:1px solid var(--feld);padding:12px 14px}
.termin textarea::placeholder{color:var(--muted);opacity:1}
.termin input:focus,.termin textarea:focus{outline:none;border-color:var(--bordeaux)}
.termin input:focus-visible,.termin textarea:focus-visible{outline:2px solid var(--bordeaux);outline-offset:2px}
.fm-ok{display:flex;gap:14px;align-items:flex-start;font-size:15px;line-height:1.6;color:var(--muted)}
.fm-ok input{width:22px;height:22px;flex:none;margin:2px 0 0;accent-color:var(--ink)}
.fm-ok a{text-decoration:underline;text-underline-offset:3px;color:var(--ink)}
.fm-fuss{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center}
.fm-fuss .btn{cursor:pointer;font-family:var(--sans)}
/* Fehlerzustand erst nach Interaktion (:user-invalid), Hinweis unter dem Feld */
.fm-fehler{display:none;font-size:14px;color:var(--bordeaux);margin-top:8px;letter-spacing:.01em}
.termin :user-invalid{border-color:var(--bordeaux)}
.fm-feld:has(:user-invalid) .fm-fehler,.fm-ok:has(:user-invalid) .fm-fehler{display:block}
.fm-feld:has(:user-invalid) label{color:var(--bordeaux)}
.fm-ok{flex-wrap:wrap}
.fm-ok label{flex:1 1 0;min-width:0}
.fm-ok .fm-fehler{flex-basis:100%;margin:0 0 0 36px}
.termin input:not([type=checkbox]):not([type=radio]):focus,.termin textarea:focus{border-bottom-color:var(--ink);box-shadow:0 1px 0 var(--ink)}
.termin .fm-feld,.termin .fm-ok,.termin .fm-anliegen{transition:opacity var(--t-fast) var(--ease)}
.termin.sendet .fm-feld,.termin.sendet .fm-ok,.termin.sendet .fm-anliegen{opacity:.55}
.termin.sendet .btn{background:var(--bordeaux);border-color:var(--bordeaux);cursor:progress}
.fm-hinweis{font-size:14px;color:var(--muted)}
.ct-oder{font-size:12px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-top:clamp(12px,2vw,24px)}
.hdr nav a.nav-termin{border:1px solid currentColor;padding:0 18px;min-height:40px;align-self:center}
.hdr nav a.nav-termin::after{display:none}
.hdr nav a.nav-termin:hover{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.hdr:not(.solid) nav a.nav-termin:hover{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}

/* ---------- Inhaltsseiten /ablauf/, /restyle/ ---------- */
.sz-kopf{padding-top:calc(76px + clamp(56px,9vw,130px));padding-bottom:clamp(48px,6vw,96px);display:flex;flex-direction:column;gap:22px;max-width:1100px}
.sz-schritte,.sz-drei{list-style:none;margin:0}
.sz-drei{padding-left:0}   /* .sz-schritte behält den .wrap-Rand: dort sitzt die Zeitleiste */
.sz-schritte{display:flex;flex-direction:column;position:relative}
/* Zeitleiste: senkrechte Linie links; zeichnet sich beim Scrollen (scroll-driven, nur transform). Ohne Unterstützung
   oder bei reduced-motion steht sie einfach da — nichts startet unsichtbar. */
.sz-schritte::before{content:"";position:absolute;top:0;bottom:0;left:max(var(--gut),env(safe-area-inset-left,0px));width:1px;background:var(--bordeaux);transform-origin:50% 0;opacity:.55}
.sz-schritt{padding-left:clamp(20px,3vw,44px)}
.sz-nr{position:relative}
.sz-nr::before{content:"";position:absolute;left:calc(-1 * clamp(20px,3vw,44px) - 4px);top:.42em;width:9px;height:9px;border-radius:50%;background:var(--ivory);border:1px solid var(--bordeaux)}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .sz-schritte{view-timeline:--ablauf block}
    .sz-schritte::before{animation:linie linear both;animation-timeline:--ablauf;animation-range:entry 10% exit 60%}
    @keyframes linie{from{transform:scaleY(.04)}to{transform:scaleY(1)}}
  }
}
.sz-schritt{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:28px;align-items:start;border-top:1px solid var(--line);padding-block:clamp(40px,5vw,80px)}
.sz-nr{grid-column:1 / span 2;font-family:var(--display);font-style:italic;font-size:clamp(56px,7vw,112px);line-height:.9;color:var(--bordeaux)}
.sz-txt{grid-column:3 / span 5;display:flex;flex-direction:column;gap:16px}
.sz-schritt:not(.mit-bild) .sz-txt{grid-column:3 / span 7}
.sz-h{font-family:var(--display);font-size:clamp(30px,3vw,46px);line-height:1.08}
.sz-txt p{color:var(--text-2);max-width:52ch}
.sz-txt .sz-zusatz{color:var(--muted);font-style:italic;font-family:var(--display);font-size:clamp(18px,1.6vw,22px);line-height:1.5}
.sz-fig{grid-column:8 / span 5;overflow:hidden;background:var(--stone);margin:0}
.sz-fig picture{overflow:hidden}
@media (max-width:860px){.sz-nr{grid-column:1 / -1}.sz-txt,.sz-schritt:not(.mit-bild) .sz-txt,.sz-fig{grid-column:1 / -1}}
.sz-info{padding-block:clamp(40px,5vw,72px);border-top:1px solid var(--line)}
.sz-info .label{color:var(--muted);margin-bottom:24px}
.sz-info dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;margin:0}
.sz-info dt{font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.sz-info dd{margin:6px 0 0;font-family:var(--display);font-size:clamp(22px,2vw,30px)}
.sz-btn{width:fit-content;margin-top:6px}
.sz-abschnitt{border-top:1px solid var(--line);padding-block:clamp(56px,7vw,110px);display:flex;flex-direction:column;gap:clamp(24px,3vw,40px)}
.sz-gross{font-family:var(--display);font-size:clamp(22px,2.2vw,32px);line-height:1.45;max-width:38ch}
.sz-drei{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px clamp(24px,3vw,56px)}
.sz-drei li{border-top:1px solid var(--line);padding-top:22px;display:flex;flex-direction:column;gap:10px}
.sz-drei h3{font-family:var(--display);font-size:clamp(22px,1.9vw,28px)}
.sz-drei p{color:var(--muted);font-size:16px}
.sz-nr-k{font-family:var(--display);font-style:italic;font-size:28px;color:var(--bordeaux);line-height:1}
@media (max-width:760px){.sz-drei{grid-template-columns:1fr}}
.sz-vn{display:flex;flex-direction:column;gap:18px}
.sz-vn-paar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.sz-vn-paar figcaption{font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:10px}
@media (max-width:760px){.sz-vn-paar{grid-template-columns:1fr}}
.bt-cta .u{text-decoration:underline;text-underline-offset:3px}
.ks-en{margin-top:56px;padding-top:8px;border-top:1px solid var(--line)}

/* ---------- Fuss ---------- */
.ft-wrap{border-top:1px solid var(--line);background:var(--ivory);padding-block:40px calc(40px + env(safe-area-inset-bottom,0px))}
.ft{display:flex;justify-content:space-between;align-items:center;gap:20px 24px;flex-wrap:wrap;font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ft .mark{font-family:var(--display);font-size:20px;letter-spacing:.3em;color:var(--ink);text-transform:none;font-weight:400}
.ft nav{display:flex;gap:28px;flex-wrap:wrap}
.ft nav a{padding:12px 0;min-height:44px;display:inline-flex;align-items:center}
.ft nav a:hover{color:var(--ink)}
.entwurf{display:block;width:fit-content;margin:24px auto 0 !important;font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;background:var(--bordeaux);color:var(--ivory);padding:7px 10px;max-width:calc(100% - 24px);margin:0}

/* ---------- Einblenden beim Scrollen (nur unterhalb des ersten Bildschirms, nur mit JS) ---------- */
.rv{transition:opacity var(--t-slow) var(--ease),transform var(--t-slow) var(--ease)}
.rv.hold{opacity:0;transform:translateY(24px)}

/* ---------- Rechtstexte ---------- */
.legal{overflow-wrap:break-word;hyphens:auto;max-width:760px;margin:0 auto;padding-top:calc(76px + clamp(48px,8vw,110px));padding-bottom:clamp(80px,10vw,140px)}
.legal h1{font-family:var(--display);font-size:clamp(40px,6vw,72px);line-height:1.05;margin-bottom:40px}
.legal h2{font-family:var(--display);font-size:clamp(24px,2.4vw,32px);margin:48px 0 14px}
.legal h3{font-size:16px;font-weight:500;letter-spacing:.04em;margin:28px 0 8px}
.legal p,.legal ul{margin:0 0 14px;color:var(--text-2)}
.legal ul{padding-left:1.2em;list-style:disc}
.legal a{text-decoration:underline;text-underline-offset:3px}
.legal .stand{color:var(--muted);font-size:15px}

/* ---------- Journal (Blog) — ruhig, editorial; Bewegung nur per scroll-driven CSS, wo unterstützt ---------- */
.hdr nav a[aria-current]::after{right:0}
.mnav ul small{font-family:var(--sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.7}
.crumbs{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:28px}
.crumbs a{padding:12px 0;margin:-12px 0}
.crumbs a:hover{color:var(--ink)}
.bl-kopf{padding-top:calc(76px + clamp(56px,9vw,130px));padding-bottom:clamp(40px,5vw,72px);display:flex;flex-direction:column;gap:22px;max-width:1100px}
.bl-h{font-family:var(--display);font-size:clamp(48px,8vw,128px);line-height:.98}
.bl-h em{color:var(--bordeaux)}
.bl-lede{font-family:var(--display);font-style:italic;font-size:clamp(20px,2vw,27px);line-height:1.4;color:var(--muted);max-width:40ch}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.chips a{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 18px;border:1px solid var(--line);font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;transition:border-color var(--t) var(--ease),background-color var(--t) var(--ease)}
.chips a:hover{border-color:var(--ink);background:var(--paper)}
.chips span{color:var(--muted);font-variant-numeric:tabular-nums}
.bl-liste{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(40px,5vw,72px) clamp(20px,2.4vw,40px);padding-bottom:clamp(80px,10vw,140px)}
.bk-link{display:flex;flex-direction:column;gap:22px;height:100%}
.bk-fig{overflow:hidden;aspect-ratio:4/5;background:var(--stone)}
.bk-fig picture,.bk-fig img{width:100%;height:100%;object-fit:cover}
.bk-fig img{transition:transform var(--t-slow) var(--ease)}
.bk-link:hover .bk-fig img{transform:scale(1.03)}
.bk-txt{display:flex;flex-direction:column;gap:12px}
.bk-h{font-family:var(--display);font-size:clamp(26px,2.2vw,34px);line-height:1.12}
.bk-link:hover .bk-h{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
.bk-lede{color:var(--muted);font-size:16px}
.bk-meta{font-size:13px;letter-spacing:.04em;color:var(--muted)}
.bk-gross{grid-column:1 / -1}
.bk-gross .bk-link{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:center;border-top:1px solid var(--line);padding-top:clamp(28px,3vw,44px)}
.bk-gross .bk-fig{grid-column:1 / span 6}
.bk-gross .bk-txt{grid-column:8 / span 5;gap:18px}
.bk-gross .bk-h{font-size:clamp(34px,4vw,60px);line-height:1.04}
.bk-gross .bk-lede{font-size:18px;max-width:40ch}
.bl-fuss{border-top:1px solid var(--line);padding-block:clamp(56px,7vw,100px) clamp(80px,10vw,140px);display:flex;flex-direction:column;gap:24px;align-items:flex-start}
.bl-fuss p{font-family:var(--display);font-size:clamp(24px,2.6vw,36px);line-height:1.3;max-width:34ch}
.bk:not(.bk-gross) .bk-fig{aspect-ratio:5/4}
.bk:not(.bk-gross) .bk-fig img{object-position:50% 22%}
@media (max-width:860px){
  .bk-gross .bk-link{display:flex;align-items:stretch}  /* sonst Breite 0 bis das lazy-Bild lädt → CLS 0,097 (gemessen 2026-11-12) */
  .bl-liste{grid-template-columns:1fr}
}

/* Beitrag */
.lesefortschritt{display:none}
@supports (animation-timeline:scroll()){
  @media (prefers-reduced-motion:no-preference){
    .lesefortschritt{display:block;position:fixed;top:0;left:0;right:0;height:2px;z-index:55;background:var(--bordeaux);transform-origin:0 50%;transform:scaleX(0);animation:lesen linear both;animation-timeline:scroll(root)}
    @keyframes lesen{to{transform:scaleX(1)}}
    .bf img{animation:bfin linear both;animation-timeline:view();animation-range:entry 0% entry 80%}
    @keyframes bfin{from{opacity:.4;transform:scale(1.04)}to{opacity:1;transform:none}}
    .bt-fig img{animation:btpx linear both;animation-timeline:view();animation-range:exit 0% exit 100%}
    @keyframes btpx{to{transform:translateY(6%)}}
  }
}
.bt-kopf{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:40px;align-items:end;padding-top:calc(76px + clamp(48px,7vw,110px));padding-bottom:clamp(56px,7vw,100px)}
.bt-kopf-txt{grid-column:1 / span 6;display:flex;flex-direction:column;gap:22px;padding-bottom:clamp(0px,2vw,24px)}
.bt-kopf .eyebrow a{padding:12px 0}
.bt-kopf .eyebrow a:hover{text-decoration:underline;text-underline-offset:4px}
.bt-h{font-family:var(--display);font-size:clamp(40px,5.4vw,84px);line-height:1.02}
.bt-lede{font-family:var(--display);font-style:italic;font-size:clamp(20px,1.9vw,26px);line-height:1.4;color:var(--muted);max-width:36ch}
.bt-meta{font-size:13px;letter-spacing:.06em;color:var(--muted);line-height:1.9;border-top:1px solid var(--line);padding-top:18px;max-width:36ch}
.bt-fig{grid-column:8 / span 5;overflow:hidden;aspect-ratio:4/5;background:var(--stone)}
.bt-fig picture,.bt-fig img{width:100%;height:100%;object-fit:cover}
@media (max-width:860px){.bt-kopf-txt,.bt-fig{grid-column:1 / -1}}
.prosa{max-width:calc(700px + 2 * var(--gut));margin:0 auto;font-size:clamp(17px,1.25vw,19px);line-height:1.78;color:var(--prosa);overflow-wrap:break-word;hyphens:auto}
.prosa>p:first-child{font-family:var(--display);font-size:clamp(21px,1.9vw,26px);line-height:1.5;color:var(--ink);margin-bottom:1.4em}
.prosa p{margin:0 0 1.2em}
.prosa h2{font-family:var(--display);font-size:clamp(28px,2.6vw,38px);line-height:1.15;margin:2.2em 0 .7em;color:var(--ink)}
.prosa strong{font-weight:500;color:var(--ink)}
.prosa a{text-decoration:underline;text-decoration-color:var(--bordeaux);text-decoration-thickness:1px;text-underline-offset:4px}
.prosa a:hover{color:var(--bordeaux)}
.prosa ul,.prosa ol{margin:0 0 1.2em;padding-left:1.2em}
.prosa ul{list-style:disc}
.bf{margin:clamp(40px,5vw,64px) 0;overflow:hidden}
.bf picture{overflow:hidden;background:var(--stone)}
.bf figcaption{font-size:14px;line-height:1.5;color:var(--muted);margin-top:12px;padding-left:16px;border-left:1px solid var(--bordeaux)}
.bt-hinweis{margin-top:clamp(48px,6vw,80px) !important;padding-top:20px;border-top:1px solid var(--line);font-size:14px;line-height:1.6;color:var(--muted)}
.bt-cta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 60px;align-items:end;background:var(--ink);color:var(--ivory);padding-block:clamp(64px,8vw,120px);margin-top:clamp(72px,9vw,130px)}
.bt-cta .eyebrow{color:var(--bordeaux-hell);margin-bottom:18px}
.bt-cta-h{font-family:var(--display);font-size:clamp(36px,4.6vw,68px);line-height:1.04;margin-bottom:20px}
.bt-cta .body{color:var(--ivory-dim)}
.bt-cta .ct-btns{justify-content:flex-start}
.bt-cta .btn{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
.bt-cta .btn:hover{background:var(--bordeaux);border-color:var(--bordeaux);color:var(--ivory)}
.bt-cta .btn-o{background:transparent;color:var(--ivory)}
.bt-cta :focus-visible{outline-color:var(--ivory)}
@media (max-width:760px){.bt-cta{grid-template-columns:1fr}}
.bt-weiter{padding-top:clamp(72px,9vw,130px);display:flex;flex-direction:column;gap:36px;padding-bottom:clamp(80px,10vw,140px)}
.bt-weiter .label{color:var(--muted)}
.bt-weiter .bl-liste{grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:0}
@media (max-width:760px){.bt-weiter .bl-liste{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}
  .rv.hold{opacity:1;transform:none}
  .hero-video,.ki-badge,.vbtn{display:none!important}
}

/* ---------- Farbschema: System (Standard) / Hell / Dunkel ----------
   Gewählt wird im Kopf (partials/header.html, js/site.js); gespeichert nur in localStorage („cicipeel-farbschema"), kein Cookie.
   Ohne Wahl folgt die Seite prefers-color-scheme; das Inline-Skript im <head> setzt data-theme vor dem ersten Bild.
   Dunkel: Seitenflächen werden dunkel, Text hell, Akzent Bordeaux → helles Rosé (Kontrast AA, gemessen 2026-11-13).
   Die ohnehin dunklen Bereiche (Hero, Restyle, Beitrags-CTA, Telefon-Menü, Kopf über dem Hero) behalten die hellen
   Tokens und sehen in beiden Schemata gleich aus. Token-Blöcke stehen doppelt (Media-Query + data-theme): CSS kennt
   kein „oder" über beides. */
@media (prefers-color-scheme:dark){
  :root:not([data-theme=light]){
    color-scheme:dark;
    --ink:#EDE8E0;--ivory:#1B1916;--paper:#221F1B;--stone:#2E2A25;--muted:#ADA597;
    --bordeaux:#E39AA7;--bordeaux-hell:#E39AA7;--line:rgba(237,232,224,.16);
    --text-2:#D8D2C8;--prosa:#DFD9CF;--wort:#9A9184;--feld:rgba(237,232,224,.5);
  }
  :root:not([data-theme=light]) :is(.hero,.dark,.bt-cta,.mnav,.skip,.hdr:not(.solid)){
    color-scheme:dark;
    --ink:#171512;--ivory:#F2EFE9;--paper:#FAF8F4;--stone:#D9D3C9;--muted:#5F584F;
    --bordeaux:#800020;--bordeaux-hell:#D98A97;--line:rgba(23,21,18,.14);
    --text-2:#3E3933;--prosa:#2E2A25;--wort:#6B645B;--feld:rgba(23,21,18,.45);
  }
}
:root[data-theme=dark]{
  color-scheme:dark;
  --ink:#EDE8E0;--ivory:#1B1916;--paper:#221F1B;--stone:#2E2A25;--muted:#ADA597;
  --bordeaux:#E39AA7;--bordeaux-hell:#E39AA7;--line:rgba(237,232,224,.16);
  --text-2:#D8D2C8;--prosa:#DFD9CF;--wort:#9A9184;--feld:rgba(237,232,224,.5);
}
:root[data-theme=dark] :is(.hero,.dark,.bt-cta,.mnav,.skip,.hdr:not(.solid)){
  color-scheme:dark;
  --ink:#171512;--ivory:#F2EFE9;--paper:#FAF8F4;--stone:#D9D3C9;--muted:#5F584F;
  --bordeaux:#800020;--bordeaux-hell:#D98A97;--line:rgba(23,21,18,.14);
  --text-2:#3E3933;--prosa:#2E2A25;--wort:#6B645B;--feld:rgba(23,21,18,.45);
}
/* Wechsel: ruhige Überblendung (View Transitions, ~0,9 s) — nur ohne reduced-motion, sonst sofort (js/site.js) */
::view-transition-old(root),::view-transition-new(root){animation-duration:.9s;animation-timing-function:cubic-bezier(.25,.1,.25,1)}

/* Schalter im Kopf: Knopf (Symbol des aktuellen Zustands) + kleines Menü mit drei Knöpfen (aria-pressed) */
.fs{position:relative;display:flex;align-items:center;margin-left:calc(-1 * clamp(8px,1.6vw,26px))}
html:not(.js) .fs{display:none}
.fs-btn{width:36px;height:36px;display:grid;place-items:center;padding:0;border:1px solid currentColor;background:none;color:inherit;cursor:pointer;transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.fs-btn:hover{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.hdr:not(.solid) .fs-btn:hover{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
.fs-i>*{display:none}
html[data-wahl=system] .fs-i-system,html[data-wahl=hell] .fs-i-hell,html[data-wahl=dunkel] .fs-i-dunkel{display:inline}
.fs-menu{position:absolute;right:0;top:calc(100% + 10px);z-index:70;min-width:168px;display:flex;flex-direction:column;padding:6px;background:var(--ivory);color:var(--ink);border:1px solid var(--line);box-shadow:0 14px 36px rgba(0,0,0,.2)}
.fs-menu[hidden]{display:none}
.fs-menu button{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 14px;border:0;background:none;color:inherit;cursor:pointer;text-align:left;font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;transition:background-color var(--t-fast) var(--ease)}
.fs-menu button::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;border:1px solid currentColor;opacity:.5}
.fs-menu button[aria-pressed=true]::before{background:var(--bordeaux);border-color:var(--bordeaux);opacity:1}
.fs-menu button:hover{background:var(--paper)}
.fs-menu :focus-visible{outline-offset:-2px}
@media (prefers-reduced-motion:no-preference){
  .fs-menu:not([hidden]){animation:fsein .5s var(--ease-out) both}
  @keyframes fsein{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
}

/* Sprachschalter-Hinweis: Seite ohne Übersetzung (z. B. Impressum) → kurzer Satz in der anderen Sprache oben */
.sprachhinweis{max-width:760px;margin:0 auto calc(-76px);padding-top:calc(76px + 22px + env(safe-area-inset-top,0px));font-size:14px;line-height:1.6;color:var(--muted)}
.sprachhinweis a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;padding-block:10px}
