@charset "UTF-8";
/* =========================================================================
   Juwelier Fichtinger — Hauptplatz 16, 3300 Amstetten
   Designrichtung: Editorial-Schaufenster / Quiet Luxury
   CI: Logo-Schwarz #141414 · Elfenbein · Bordeaux-Akzent · Gold nur als Haarlinie
   Signature: die Facette (gekerbte Ecke) + die Meisterpunze
   ========================================================================= */

/* ------------------------------------------------------------------ Fonts */
@font-face{
  font-family:"Marcellus";
  src:url("fonts/marcellus-400.woff2") format("woff2");
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Hanken Grotesk";
  src:url("fonts/hanken-400.woff2") format("woff2");
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Hanken Grotesk";
  src:url("fonts/hanken-500.woff2") format("woff2");
  font-weight:500; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Hanken Grotesk";
  src:url("fonts/hanken-600.woff2") format("woff2");
  font-weight:600; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Hanken Grotesk";
  src:url("fonts/hanken-700.woff2") format("woff2");
  font-weight:700; font-style:normal; font-display:swap;
}

/* ----------------------------------------------------------------- Tokens */
:root{
  /* Farbe */
  --ink:#141414;
  --ink-80:#3A3733;
  --ink-60:#6A645C;
  --ink-40:#948D82;
  --paper:#FAF7F1;
  --paper-2:#F3EEE4;
  --white:#FFFFFF;
  --wine:#7A1526;
  --wine-dark:#5E0F1D;
  --wine-wash:#F7EDEE;
  --gold:#B8933F;
  --gold-soft:#D9C08A;
  --gold-wash:#F6F0E1;
  --rule:#E4DCCC;
  --rule-soft:#EFE9DC;

  /* Typografie */
  --display:"Marcellus",Georgia,"Times New Roman",serif;
  --sans:"Hanken Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;

  --t-xs:12px;
  --t-sm:14px;
  --t-base:clamp(15.5px,.95rem + .12vw,17px);
  --t-lg:clamp(18px,1.05rem + .35vw,21px);
  --t-xl:clamp(22px,1.2rem + .8vw,28px);
  --t-2xl:clamp(27px,1.4rem + 1.5vw,40px);
  --t-3xl:clamp(33px,1.6rem + 2.6vw,58px);
  --t-4xl:clamp(40px,1.8rem + 4.4vw,88px);
  --t-5xl:clamp(48px,2rem + 6.6vw,124px);

  /* Raum */
  --gut:clamp(18px,4.2vw,60px);
  --max:1360px;
  --sec:clamp(64px,9vw,132px);

  /* Bewegung */
  --t-fast:180ms;
  --t-med:420ms;
  --t-slow:820ms;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);

  /* Ebenen */
  --z-base:1;
  --z-sticky:100;
  --z-nav:200;
  --z-overlay:300;
  --z-cursor:9998;
  --z-modal:9999;

  /* Signature: die Facette */
  --facet:22px;
}

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

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:96px;
}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:var(--t-base);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  overflow-x:clip;
}
body.is-locked{overflow:hidden}

img,svg,video{max-width:100%;height:auto;display:block}
button,input,select,textarea{font:inherit;color:inherit}

::selection{background:var(--wine);color:var(--paper)}

:focus-visible{
  outline:2px solid var(--wine);
  outline-offset:3px;
  border-radius:1px;
}

/* ------------------------------------------------------------ Typografie */
h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:400;
  line-height:1.04;
  letter-spacing:-.014em;
  margin:0;
  text-wrap:balance;
  /* Deutsche Komposita sind lang. Ohne Trennung sprengt
     z. B. "Datenschutzerklaerung" am Telefon die Zeile. */
  overflow-wrap:break-word;
  -webkit-hyphens:auto;
  hyphens:auto;
}
.prose h1{font-size:clamp(34px,1.6rem + 3.4vw,64px)}
h1{font-size:var(--t-4xl)}
h2{font-size:var(--t-3xl)}
h3{font-size:var(--t-xl);line-height:1.16}
h4{font-size:var(--t-lg);line-height:1.2;letter-spacing:-.006em}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}

a{color:inherit;text-underline-offset:3px}

.eyebrow{
  font-family:var(--sans);
  font-size:11px;
  font-weight:500;
  letter-spacing:.19em;
  text-transform:uppercase;
  color:var(--wine);
  margin:0 0 18px;
  display:block;
}
.eyebrow--gold{color:var(--gold)}
.eyebrow--pale{color:var(--gold-soft)}

.lead{
  font-size:var(--t-lg);
  line-height:1.5;
  color:var(--ink-80);
  max-width:34em;
}
.prose{max-width:36em}
.prose p{margin-bottom:1.15em}
.prose a{color:var(--wine);text-decoration:underline;text-decoration-thickness:1px}
.prose a:hover{text-decoration-thickness:2px}

.num{font-variant-numeric:tabular-nums}

/* --------------------------------------------------------------- Struktur */
.wrap{
  width:100%;
  max-width:var(--max);
  margin-inline:auto;
  padding-inline:var(--gut);
}
.wrap--wide{max-width:1620px}
.wrap--narrow{max-width:900px}

section{position:relative}
.sec{padding-block:var(--sec)}
.sec--tight{padding-block:calc(var(--sec) * .58)}
.sec--dark{background:var(--ink);color:var(--paper)}
.sec--dark .eyebrow{color:var(--gold-soft)}
.sec--dark .lead{color:#C9C2B6}
.sec--paper2{background:var(--paper-2)}

.rule{height:1px;background:var(--rule);border:0;margin:0}

/* Sektionskopf: Label links, Titel gross, optionaler Beitext rechts */
.shead{
  display:grid;
  gap:clamp(18px,3vw,54px);
  align-items:end;
  margin-bottom:clamp(34px,5vw,64px);
}
@media(min-width:900px){
  .shead--split{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
}
.shead h2{max-width:16ch}
.shead--split h2{max-width:20ch}

/* --------------------------------------------------------------- Facette */
/* Die gekerbte Ecke: das wiederkehrende Formmotiv der Marke. */
.facet{
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - var(--facet)),
                    calc(100% - var(--facet)) 100%, 0 100%);
}
.facet--tl{
  clip-path:polygon(var(--facet) 0, 100% 0, 100% 100%, 0 100%, 0 var(--facet));
}
.facet--both{
  clip-path:polygon(var(--facet) 0, 100% 0, 100% calc(100% - var(--facet)),
                    calc(100% - var(--facet)) 100%, 0 100%, 0 var(--facet));
}

/* ---------------------------------------------------------------- Buttons */
.btn{
  --btn-bg:var(--ink);
  --btn-fg:var(--paper);
  --btn-bd:var(--ink);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:52px;
  padding:14px 30px;
  background:var(--btn-bg);
  color:var(--btn-fg);
  border:1px solid var(--btn-bd);
  border-radius:0;
  font-size:var(--t-sm);
  font-weight:600;
  letter-spacing:.055em;
  text-transform:uppercase;
  text-decoration:none;
  cursor:pointer;
  position:relative;
  overflow:hidden;
  transition:color var(--t-fast) var(--ease),
             border-color var(--t-fast) var(--ease),
             transform var(--t-fast) var(--ease);
  will-change:transform;
}
.btn::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--wine);
  transform:translateY(101%);
  transition:transform var(--t-med) var(--ease-out);
  z-index:0;
}
.btn > *{position:relative;z-index:1}
.btn:hover::before,.btn:focus-visible::before{transform:translateY(0)}
.btn:hover,.btn:focus-visible{border-color:var(--wine);color:#fff}
.btn:active{transform:translateY(1px)}

.btn--ghost{--btn-bg:transparent;--btn-fg:var(--ink);--btn-bd:var(--ink)}
.btn--ghost:hover,.btn--ghost:focus-visible{color:#fff}
.btn--light{--btn-bg:transparent;--btn-fg:var(--paper);--btn-bd:rgba(250,247,241,.42)}
.btn--gold{--btn-bg:var(--gold);--btn-fg:var(--ink);--btn-bd:var(--gold)}
.btn--sm{min-height:44px;padding:11px 20px;font-size:var(--t-xs)}
.btn--full{width:100%}

/* Magnetischer Effekt nur mit echtem Zeigegeraet */
@media(hover:hover) and (pointer:fine){
  .btn[data-magnetic]{transition:transform 260ms var(--ease-out),
                                 color var(--t-fast) var(--ease),
                                 border-color var(--t-fast) var(--ease)}
}

/* Textlink mit Pfeil */
.tlink{
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-size:var(--t-sm);
  font-weight:600;
  letter-spacing:.055em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--ink);
  padding-bottom:3px;
  border-bottom:1px solid var(--rule);
  transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease);
}
.tlink svg{transition:transform var(--t-med) var(--ease-out);flex:none}
.tlink:hover{color:var(--wine);border-color:var(--wine)}
.tlink:hover svg{transform:translateX(5px)}
.sec--dark .tlink{color:var(--paper);border-color:rgba(250,247,241,.3)}
.sec--dark .tlink:hover{color:var(--gold-soft);border-color:var(--gold-soft)}

/* ------------------------------------------------------------ Navigation */
.nav{
  position:fixed;
  inset:0 0 auto 0;
  z-index:var(--z-nav);
  transition:background var(--t-med) var(--ease),
             border-color var(--t-med) var(--ease),
             transform var(--t-med) var(--ease);
  border-bottom:1px solid transparent;
}
.nav__in{
  display:flex;
  align-items:center;
  gap:clamp(14px,2.4vw,40px);
  min-height:74px;
  padding-block:12px;
}
.nav[data-solid="true"]{
  background:rgba(250,247,241,.94);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom-color:var(--rule);
}
.nav[data-hidden="true"]{transform:translateY(-100%)}

.nav__logo{
  display:block;
  flex:none;
  color:var(--ink);
  text-decoration:none;
  width:clamp(126px,13vw,164px);
  transition:color var(--t-med) var(--ease),opacity var(--t-fast) var(--ease);
}
.nav__logo svg{width:100%;height:auto;display:block}
.nav__logo:hover{opacity:.72}

.nav__links{
  display:none;
  gap:clamp(14px,2vw,30px);
  margin-inline:auto;
}
@media(min-width:1080px){.nav__links{display:flex}}
.nav__link{
  position:relative;
  font-size:var(--t-xs);
  font-weight:500;
  letter-spacing:.13em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--ink-80);
  padding:8px 2px;
  transition:color var(--t-fast) var(--ease);
  white-space:nowrap;
}
.nav__link::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:2px;
  height:1px;
  background:var(--wine);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform var(--t-med) var(--ease-out);
}
.nav__link:hover{color:var(--ink)}
.nav__link:hover::after,.nav__link[aria-current="page"]::after{transform:scaleX(1)}
.nav__link[aria-current="page"]{color:var(--ink)}

.nav__side{display:flex;align-items:center;gap:8px;margin-left:auto;flex:none}
@media(min-width:1080px){.nav__side{margin-left:0}}

.nav__tel{
  display:none;
  font-size:var(--t-xs);
  font-weight:600;
  letter-spacing:.07em;
  text-decoration:none;
  color:var(--ink);
  padding:10px 12px;
  white-space:nowrap;
}
.nav__tel:hover{color:var(--wine)}
@media(min-width:720px){.nav__tel{display:inline-flex;align-items:center;gap:7px}}

/* Merkzettel-Knopf mit Zaehler */
.nav__merk{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;height:46px;
  background:none;
  border:1px solid transparent;
  cursor:pointer;
  color:var(--ink);
  transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease);
}
.nav__merk:hover{border-color:var(--rule);color:var(--wine)}
.nav__merk__count{
  position:absolute;
  top:5px; right:3px;
  min-width:17px;height:17px;
  padding:0 4px;
  display:grid;place-items:center;
  background:var(--wine);
  color:#fff;
  font-size:10px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  border-radius:99px;
  transform:scale(0);
  transition:transform 300ms var(--ease-out);
}
.nav__merk[data-count]:not([data-count="0"]) .nav__merk__count{transform:scale(1)}

.nav__burger{
  display:inline-flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:46px;height:46px;
  padding:0 11px;
  background:none;border:0;cursor:pointer;
  color:var(--ink);
}
@media(min-width:1080px){.nav__burger{display:none}}
.nav__burger i{
  display:block;height:1.5px;width:100%;
  background:currentColor;
  transition:transform var(--t-med) var(--ease-out),opacity var(--t-fast) var(--ease);
}
.nav__burger[aria-expanded="true"] i:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav__burger[aria-expanded="true"] i:nth-child(2){opacity:0}
.nav__burger[aria-expanded="true"] i:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

.nav__cta{display:none}
@media(min-width:560px){.nav__cta{display:inline-flex}}

/* Mobiles Menue — eigene Komposition, kein geschrumpftes Desktop-Menue */
.menu{
  position:fixed;
  inset:0;
  z-index:var(--z-overlay);
  background:var(--ink);
  color:var(--paper);
  display:flex;
  flex-direction:column;
  padding:96px var(--gut) calc(28px + env(safe-area-inset-bottom));
  overflow-y:auto;
  overscroll-behavior:contain;
  visibility:hidden;
  opacity:0;
  transition:opacity var(--t-med) var(--ease),visibility var(--t-med);
}
.menu[data-state="open"]{visibility:visible;opacity:1}
.menu__list{list-style:none;margin:0;padding:0;flex:1}
.menu__list li{
  border-bottom:1px solid rgba(250,247,241,.13);
  opacity:0;
  transform:translateY(14px);
}
.menu[data-state="open"] .menu__list li{
  animation:menuIn 560ms var(--ease-out) forwards;
}
.menu__list li:nth-child(1){animation-delay:70ms}
.menu__list li:nth-child(2){animation-delay:120ms}
.menu__list li:nth-child(3){animation-delay:170ms}
.menu__list li:nth-child(4){animation-delay:220ms}
.menu__list li:nth-child(5){animation-delay:270ms}
.menu__list li:nth-child(6){animation-delay:320ms}
.menu__list li:nth-child(7){animation-delay:370ms}
.menu__list li:nth-child(8){animation-delay:420ms}
.menu__list li:nth-child(9){animation-delay:470ms}
@keyframes menuIn{to{opacity:1;transform:none}}

.menu__link{
  display:flex;
  align-items:baseline;
  gap:16px;
  padding:17px 0;
  font-family:var(--display);
  font-size:clamp(27px,7.4vw,42px);
  line-height:1.05;
  text-decoration:none;
  color:var(--paper);
  transition:color var(--t-fast) var(--ease),padding-left var(--t-med) var(--ease-out);
}
.menu__link:hover,.menu__link:focus-visible{color:var(--gold-soft);padding-left:10px}
.menu__link span{
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:.16em;
  color:var(--gold);
  flex:none;
  font-variant-numeric:tabular-nums;
}
.menu__foot{
  padding-top:26px;
  display:grid;
  gap:14px;
  border-top:1px solid rgba(250,247,241,.13);
  margin-top:22px;
}
.menu__foot a{color:var(--paper);text-decoration:none}
.menu__foot .big{
  font-family:var(--display);
  font-size:var(--t-xl);
}
.menu__foot .small{font-size:var(--t-sm);color:#B7AF9F;line-height:1.5}

/* --------------------------------------------------------------- Hero */
.hero{
  position:relative;
  min-height:100svh;
  display:flex;
  align-items:flex-end;
  overflow:clip;
  background:var(--ink);
  color:var(--paper);
  isolation:isolate;
}
.hero__media{
  position:absolute;
  inset:0;
  z-index:-2;
}
.hero__media img{
  width:100%;height:100%;
  object-fit:cover;
  object-position:center 42%;
}
.hero__scrim{
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(180deg,rgba(20,20,20,.62) 0%,rgba(20,20,20,.12) 34%,rgba(20,20,20,.86) 100%),
    linear-gradient(90deg,rgba(20,20,20,.55) 0%,rgba(20,20,20,0) 62%);
}
.hero__in{
  width:100%;
  padding-block:clamp(34px,7vh,84px) clamp(96px,13vh,124px);
}
.hero__title{
  font-size:var(--t-5xl);
  line-height:.98;
  letter-spacing:-.022em;
  max-width:15ch;
  margin-bottom:22px;
}
.hero__title .l{display:block;overflow:hidden}
.hero__title .l > span{
  display:block;
  transform:translateY(105%);
  animation:lineUp 1000ms var(--ease-out) forwards;
}
.hero__title .l:nth-child(1) > span{animation-delay:120ms}
.hero__title .l:nth-child(2) > span{animation-delay:230ms}
.hero__title .l:nth-child(3) > span{animation-delay:340ms}
@keyframes lineUp{to{transform:none}}
.hero__title em{font-style:normal;color:var(--gold-soft)}

.hero__sub{
  font-size:var(--t-lg);
  line-height:1.45;
  color:#D6CFC3;
  max-width:30em;
  margin-bottom:30px;
  opacity:0;
  animation:fadeUp 900ms var(--ease-out) 460ms forwards;
}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

.hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  opacity:0;
  animation:fadeUp 900ms var(--ease-out) 580ms forwards;
}
.hero__trigger{
  margin-top:20px;
  font-size:var(--t-sm);
  color:#B7AF9F;
  display:flex;
  flex-wrap:wrap;
  gap:6px 18px;
  opacity:0;
  animation:fadeUp 900ms var(--ease-out) 700ms forwards;
}
.hero__trigger span{display:inline-flex;align-items:center;gap:7px}
.hero__trigger span::before{
  content:"";width:4px;height:4px;background:var(--gold);
  transform:rotate(45deg);flex:none;
}

/* Hero-Meta rechts unten (Desktop) */
.hero__meta{
  display:none;
  position:absolute;
  right:var(--gut);
  bottom:clamp(96px,13vh,124px);
  text-align:right;
  font-size:var(--t-xs);
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#A79F90;
  line-height:2;
  opacity:0;
  animation:fadeUp 900ms var(--ease-out) 820ms forwards;
}
@media(min-width:1080px){.hero__meta{display:block}}
.hero__meta b{color:var(--gold-soft);font-weight:500}

.hero__scroll{
  position:absolute;
  left:var(--gut);
  bottom:34px;
  display:flex;
  align-items:center;
  gap:11px;
  font-size:10.5px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:#9C9486;
}
.hero__scroll i{
  display:block;width:1px;height:34px;
  background:linear-gradient(180deg,var(--gold),transparent);
  animation:scrollHint 2.1s var(--ease) infinite;
  transform-origin:top;
}
@keyframes scrollHint{
  0%{transform:scaleY(0);opacity:0}
  35%{transform:scaleY(1);opacity:1}
  100%{transform:scaleY(1) translateY(34px);opacity:0}
}

/* Kleiner Seiten-Hero fuer Unterseiten */
.phero{
  position:relative;
  background:var(--ink);
  color:var(--paper);
  overflow:clip;
  isolation:isolate;
  padding-block:clamp(112px,17vh,180px) clamp(44px,7vh,76px);
}
.phero__media{position:absolute;inset:0;z-index:-2}
.phero__media img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.phero__scrim{
  position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(20,20,20,.8) 0%,rgba(20,20,20,.5) 45%,rgba(20,20,20,.9) 100%);
}
.phero h1{font-size:var(--t-4xl);max-width:16ch;margin-bottom:18px}
.phero .lead{color:#D2CBBF;max-width:32em}
.phero__crumb{
  display:flex;flex-wrap:wrap;gap:8px;
  font-size:11px;letter-spacing:.15em;text-transform:uppercase;
  color:#9C9486;margin-bottom:20px;
}
.phero__crumb a{color:var(--gold-soft);text-decoration:none}
.phero__crumb a:hover{text-decoration:underline}

/* ------------------------------------------------- Signature: Die Werkbank */
.bench{background:var(--ink);color:var(--paper);position:relative}
.bench__intro{padding-block:var(--sec) 0}

/* Desktop: gepinnte, scroll-gescrubbte Sequenz */
.bench__track{position:relative}
.bench__stage{
  position:sticky;
  top:0;
  min-height:100svh;
  display:grid;
  align-items:center;
  overflow:clip;
}
.bench__step{
  grid-area:1/1;
  opacity:0;
  transition:opacity var(--t-slow) var(--ease);
  pointer-events:none;
}
.bench__step[data-active="true"]{opacity:1;pointer-events:auto}
.bench__grid{
  display:grid;
  gap:clamp(24px,4vw,64px);
  align-items:center;
}
@media(min-width:900px){.bench__grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}}

.bench__num{
  font-family:var(--display);
  font-size:clamp(56px,9vw,120px);
  line-height:1;
  color:transparent;
  -webkit-text-stroke:1px var(--gold);
  margin-bottom:14px;
  display:block;
}
.bench__step h3{font-size:var(--t-2xl);margin-bottom:16px}
.bench__step p{color:#C3BCB0;max-width:32em}
.bench__quote{
  margin-top:18px;
  padding-left:18px;
  border-left:1px solid var(--gold);
  font-family:var(--display);
  font-size:var(--t-lg);
  line-height:1.4;
  color:var(--paper);
}
.bench__fig{position:relative;aspect-ratio:4/5}
@media(min-width:900px){.bench__fig{aspect-ratio:1/1}}
.bench__fig img{
  width:100%;height:100%;object-fit:cover;
  --facet:clamp(24px,4vw,58px);
}
.bench__fig figcaption{
  position:absolute;
  left:0;bottom:-30px;
  font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#8F877A;
}

/* Fortschritt der Sequenz */
.bench__dots{
  position:sticky;
  top:50svh;
  z-index:2;
  display:none;
  flex-direction:column;
  gap:12px;
  margin-left:auto;
  width:max-content;
  padding-right:var(--gut);
}
@media(min-width:900px){.bench__dots{display:flex}}
.bench__dot{
  width:26px;height:1px;background:rgba(250,247,241,.28);
  transition:background var(--t-med) var(--ease),width var(--t-med) var(--ease);
}
.bench__dot[data-active="true"]{background:var(--gold);width:42px}

/* Mobil: eine Karte pro Bildschirm, gewischt statt gescrubbt */
.bench__swipe{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:86%;
  gap:14px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-padding-inline:var(--gut);
  padding-inline:var(--gut);
  padding-bottom:8px;
  margin-inline:calc(var(--gut) * -1);
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.bench__swipe::-webkit-scrollbar{display:none}
.bench__card{scroll-snap-align:start}
.bench__card img{aspect-ratio:4/5;object-fit:cover;width:100%;--facet:24px}
.bench__card .bench__num{font-size:44px;margin:16px 0 8px}

/* -------------------------------------------------------- Punze / Signet */
.punze{width:clamp(58px,7vw,86px);height:auto;color:var(--gold)}
.punze path,.punze circle,.punze ellipse{
  fill:none;
  stroke:currentColor;
  stroke-width:1.4;
  vector-effect:non-scaling-stroke;
}
.punze[data-draw] path,.punze[data-draw] circle,.punze[data-draw] ellipse{
  stroke-dasharray:var(--len,600);
  stroke-dashoffset:var(--len,600);
}
.punze[data-draw="in"] path,.punze[data-draw="in"] circle,.punze[data-draw="in"] ellipse{
  animation:draw 1500ms var(--ease-out) forwards;
}
.punze[data-draw="in"] path:nth-child(2){animation-delay:180ms}
.punze[data-draw="in"] path:nth-child(3){animation-delay:340ms}
@keyframes draw{to{stroke-dashoffset:0}}

.divider{
  display:flex;
  align-items:center;
  gap:20px;
  padding-block:clamp(26px,4vw,44px);
}
.divider::before,.divider::after{
  content:"";height:1px;background:var(--rule);flex:1;
}
.sec--dark .divider::before,.sec--dark .divider::after{background:rgba(250,247,241,.16)}

/* ------------------------------------------------------- Vertrauensleiste */
.trust{
  display:grid;
  gap:1px;
  background:var(--rule);
  border-block:1px solid var(--rule);
  grid-template-columns:repeat(2,minmax(0,1fr));
}
@media(min-width:820px){.trust{grid-template-columns:repeat(4,minmax(0,1fr))}}
.trust__i{
  background:var(--paper);
  padding:clamp(20px,3vw,34px) clamp(14px,2vw,26px);
  display:flex;flex-direction:column;gap:5px;
  text-decoration:none;color:inherit;
  transition:background var(--t-fast) var(--ease);
}
a.trust__i:hover{background:var(--gold-wash)}
.trust__v{
  font-family:var(--display);
  font-size:clamp(26px,3.4vw,40px);
  line-height:1;
  color:var(--ink);
}
.trust__v .st{color:var(--gold);font-size:.62em;letter-spacing:.04em}
.trust__l{
  font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-60);
  line-height:1.45;
}
.trust__src{font-size:11px;color:var(--gold);margin-top:auto;padding-top:6px}

/* ------------------------------------------------------------ Bildkacheln */
.tiles{
  display:grid;
  gap:clamp(12px,1.6vw,22px);
  grid-template-columns:1fr;
}
@media(min-width:700px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1080px){
  .tiles--3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tiles--offset > *:nth-child(even){transform:translateY(clamp(20px,3.4vw,58px))}
}

.tile{
  position:relative;
  display:block;
  text-decoration:none;
  color:inherit;
  overflow:hidden;
  background:var(--ink);
  --facet:clamp(20px,2.6vw,40px);
}
.tile__fig{position:relative;overflow:hidden;aspect-ratio:4/5}
.tile--wide .tile__fig{aspect-ratio:16/11}
.tile__fig img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1100ms var(--ease-out),filter var(--t-med) var(--ease);
}
.tile:hover .tile__fig img,.tile:focus-visible .tile__fig img{transform:scale(1.045)}
.tile__grad{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,20,20,0) 38%,rgba(20,20,20,.86) 100%);
}
.tile__body{
  position:absolute;
  inset:auto 0 0 0;
  padding:clamp(18px,2.4vw,30px);
  color:var(--paper);
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
}
.tile__body h3{font-size:var(--t-xl);margin-bottom:5px}
.tile__body p{font-size:var(--t-sm);color:#C7C0B4;margin:0;max-width:30ch}
.tile__arrow{
  flex:none;
  width:44px;height:44px;
  display:grid;place-items:center;
  border:1px solid rgba(250,247,241,.4);
  color:var(--paper);
  transition:background var(--t-med) var(--ease),
             color var(--t-med) var(--ease),
             border-color var(--t-med) var(--ease),
             transform var(--t-med) var(--ease-out);
}
.tile:hover .tile__arrow,.tile:focus-visible .tile__arrow{
  background:var(--gold);color:var(--ink);border-color:var(--gold);transform:translate(3px,-3px);
}

/* ------------------------------------------------------- Produkt / Katalog */
.filters{
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding-bottom:10px;
  margin-bottom:26px;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  margin-inline:calc(var(--gut) * -1);
  padding-inline:var(--gut);
}
.filters::-webkit-scrollbar{display:none}
@media(min-width:900px){
  .filters{flex-wrap:wrap;overflow:visible;margin-inline:0;padding-inline:0}
}
.chip{
  flex:none;
  min-height:42px;
  padding:9px 18px;
  background:transparent;
  border:1px solid var(--rule);
  color:var(--ink-60);
  font-size:var(--t-xs);
  font-weight:500;
  letter-spacing:.09em;
  text-transform:uppercase;
  cursor:pointer;
  white-space:nowrap;
  transition:all var(--t-fast) var(--ease);
}
.chip:hover{border-color:var(--ink-40);color:var(--ink)}
.chip[aria-pressed="true"],.chip[data-state="active"]{
  background:var(--ink);border-color:var(--ink);color:var(--paper);
}

.grid-prod{
  display:grid;
  gap:clamp(14px,2vw,26px) clamp(10px,1.6vw,20px);
  grid-template-columns:repeat(2,minmax(0,1fr));
}
@media(min-width:760px){.grid-prod{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1180px){.grid-prod{grid-template-columns:repeat(4,minmax(0,1fr))}}

.prod{
  position:relative;
  display:flex;
  flex-direction:column;
  background:var(--white);
  border:1px solid var(--rule-soft);
  transition:border-color var(--t-med) var(--ease),transform var(--t-med) var(--ease-out);
}
.prod:hover{border-color:var(--gold-soft);transform:translateY(-3px)}
.prod[hidden]{display:none}
.prod__fig{position:relative;overflow:hidden;aspect-ratio:1/1;background:var(--paper-2)}
.prod__fig img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 900ms var(--ease-out);
}
.prod:hover .prod__fig img{transform:scale(1.05)}
.prod__body{padding:14px 15px 16px;display:flex;flex-direction:column;gap:5px;flex:1}
.prod__brand{
  font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);
}
.prod__name{
  font-family:var(--display);
  font-size:var(--t-base);
  line-height:1.2;
  margin:0;
  overflow-wrap:anywhere;
}
.prod__brand,.prod__meta{overflow-wrap:anywhere}
.prod__name a{text-decoration:none}
.prod__name a::after{content:"";position:absolute;inset:0}
.prod__meta{font-size:var(--t-xs);color:var(--ink-60);line-height:1.45}
.prod__foot{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:8px 10px;margin-top:auto;padding-top:10px;
}
.prod__price{
  font-family:var(--display);
  font-size:var(--t-lg);
  font-variant-numeric:tabular-nums;
}
.prod__price small{font-size:11px;font-family:var(--sans);color:var(--ink-40);display:block;letter-spacing:.06em}

/* Herz / Merken */
.heart{
  position:relative;
  z-index:2;
  width:42px;height:42px;
  display:grid;place-items:center;
  background:rgba(255,255,255,.9);
  border:1px solid var(--rule);
  cursor:pointer;
  color:var(--ink-60);
  transition:all var(--t-fast) var(--ease);
}
.prod__fig .heart{position:absolute;top:9px;right:9px}
.heart:hover{color:var(--wine);border-color:var(--wine)}
.heart svg{width:19px;height:19px;transition:transform var(--t-med) var(--ease-out)}
.heart[aria-pressed="true"]{color:var(--wine);border-color:var(--wine);background:var(--wine-wash)}
.heart[aria-pressed="true"] svg{fill:currentColor;animation:pop 420ms var(--ease-out)}
@keyframes pop{
  0%{transform:scale(1)} 40%{transform:scale(1.32)} 100%{transform:scale(1)}
}

/* Bild-CTA direkt am Bild */
.figcta{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 15px;
  border-top:1px solid var(--rule-soft);
  font-size:var(--t-xs);
  color:var(--ink-60);
}

/* --------------------------------------------------------- CTA-Bausteine */
.ctaline{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 18px;
  padding-block:clamp(20px,3vw,30px);
  border-top:1px solid var(--rule);
  font-size:var(--t-base);
  color:var(--ink-60);
}
.ctaline a{color:var(--wine);font-weight:600;text-decoration:none;border-bottom:1px solid currentColor}
.ctaline a:hover{color:var(--ink)}
.sec--dark .ctaline{border-color:rgba(250,247,241,.16);color:#B7AF9F}
.sec--dark .ctaline a{color:var(--gold-soft)}

.callstrip{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:clamp(20px,3vw,30px) clamp(20px,3.4vw,40px);
  background:var(--gold-wash);
  border:1px solid var(--gold-soft);
  --facet:26px;
}
.callstrip p{margin:0;max-width:44ch}
.callstrip strong{font-family:var(--display);font-size:var(--t-lg);display:block;margin-bottom:2px}

/* Desktop-Anruf-Chip */
.callchip{
  position:fixed;
  right:22px;bottom:22px;
  z-index:var(--z-sticky);
  display:none;
  align-items:center;gap:10px;
  padding:13px 20px;
  background:var(--ink);
  color:var(--paper);
  font-size:var(--t-sm);
  font-weight:600;
  letter-spacing:.05em;
  text-decoration:none;
  box-shadow:0 12px 40px -12px rgba(20,20,20,.55);
  opacity:0;
  transform:translateY(14px);
  transition:opacity var(--t-med) var(--ease),transform var(--t-med) var(--ease-out),background var(--t-fast) var(--ease);
  --facet:14px;
}
@media(min-width:1080px){.callchip{display:inline-flex}}
.callchip[data-show="true"]{opacity:1;transform:none}
.callchip:hover{background:var(--wine)}

/* Mobile Sticky-Leiste */
.sticky{
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:var(--z-sticky);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);
  gap:8px;
  padding:9px var(--gut) calc(9px + env(safe-area-inset-bottom));
  background:rgba(250,247,241,.95);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-top:1px solid var(--rule);
  transform:translateY(110%);
  transition:transform var(--t-med) var(--ease-out);
}
@media(min-width:1080px){.sticky{display:none}}
.sticky[data-show="true"]{transform:none}
.sticky .btn{min-height:50px;padding:12px 14px;font-size:11.5px;letter-spacing:.06em}
body:has(.sticky[data-show="true"]) {padding-bottom:0}

/* ----------------------------------------------------- Akkordeon (FAQ) */
.acc{border-top:1px solid var(--rule)}
.acc__item{border-bottom:1px solid var(--rule)}
.acc__btn{
  width:100%;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding:clamp(18px,2.4vw,26px) 0;
  background:none;border:0;
  text-align:left;
  cursor:pointer;
  font-family:var(--display);
  font-size:var(--t-lg);
  line-height:1.25;
  color:var(--ink);
  transition:color var(--t-fast) var(--ease);
}
.acc__btn:hover{color:var(--wine)}
.acc__ico{
  flex:none;
  width:26px;height:26px;
  position:relative;
  margin-top:3px;
}
.acc__ico::before,.acc__ico::after{
  content:"";position:absolute;background:currentColor;
  left:50%;top:50%;
}
.acc__ico::before{width:13px;height:1.5px;transform:translate(-50%,-50%)}
.acc__ico::after{
  width:1.5px;height:13px;transform:translate(-50%,-50%);
  transition:transform var(--t-med) var(--ease-out),opacity var(--t-med) var(--ease);
}
.acc__btn[aria-expanded="true"] .acc__ico::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0}
.acc__panel{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows var(--t-med) var(--ease-out);
}
.acc__panel[data-state="open"]{grid-template-rows:1fr}
.acc__panel > div{overflow:hidden}
.acc__panel .inner{padding-bottom:clamp(18px,2.4vw,26px);max-width:56ch;color:var(--ink-80)}
.acc__panel .inner a{color:var(--wine);font-weight:600}

/* -------------------------------------------------------------- Tabs */
.tabs__list{
  display:flex;gap:4px;
  border-bottom:1px solid var(--rule);
  overflow-x:auto;scrollbar-width:none;
  margin-bottom:clamp(24px,3.4vw,40px);
}
.tabs__list::-webkit-scrollbar{display:none}
.tabs__tab{
  flex:none;
  padding:13px 20px;
  background:none;border:0;
  border-bottom:2px solid transparent;
  margin-bottom:-1px;
  cursor:pointer;
  font-size:var(--t-xs);
  font-weight:600;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--ink-40);
  white-space:nowrap;
  transition:color var(--t-fast) var(--ease),border-color var(--t-med) var(--ease);
}
.tabs__tab:hover{color:var(--ink)}
.tabs__tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--wine)}
.tabs__panel[hidden]{display:none}
.tabs__panel{animation:tabIn 400ms var(--ease-out)}
@keyframes tabIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ------------------------------------------------------ Sheet (Merkzettel) */
.sheet{
  position:fixed;
  inset:0;
  z-index:var(--z-modal);
  visibility:hidden;
  pointer-events:none;
}
.sheet[data-state="open"]{visibility:visible;pointer-events:auto}
.sheet__ovl{
  position:absolute;inset:0;
  background:rgba(20,20,20,.5);
  opacity:0;
  transition:opacity var(--t-med) var(--ease);
  border:0;width:100%;cursor:pointer;
}
.sheet[data-state="open"] .sheet__ovl{opacity:1}
.sheet__panel{
  position:absolute;
  top:0;right:0;bottom:0;
  width:min(430px,100%);
  background:var(--paper);
  display:flex;flex-direction:column;
  transform:translateX(100%);
  transition:transform var(--t-med) var(--ease-out);
  box-shadow:-20px 0 60px -30px rgba(20,20,20,.6);
}
.sheet[data-state="open"] .sheet__panel{transform:none}
.sheet__head{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:20px var(--gut);
  border-bottom:1px solid var(--rule);
}
.sheet__head h2{font-size:var(--t-xl)}
.sheet__body{
  flex:1;overflow-y:auto;overscroll-behavior:contain;
  padding:14px var(--gut);
}
.sheet__foot{
  padding:16px var(--gut) calc(16px + env(safe-area-inset-bottom));
  border-top:1px solid var(--rule);
  display:grid;gap:10px;
}
.iconbtn{
  width:44px;height:44px;
  display:grid;place-items:center;
  background:none;border:1px solid var(--rule);
  cursor:pointer;color:var(--ink);
  transition:all var(--t-fast) var(--ease);
}
.iconbtn:hover{border-color:var(--wine);color:var(--wine)}

.mitem{
  display:grid;
  grid-template-columns:72px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:12px 0;
  border-bottom:1px solid var(--rule-soft);
}
.mitem img{width:72px;height:72px;object-fit:cover;background:var(--paper-2)}
.mitem b{font-family:var(--display);font-weight:400;font-size:var(--t-base);display:block}
.mitem span{font-size:var(--t-xs);color:var(--ink-60)}
.mempty{
  padding:40px 0;text-align:center;color:var(--ink-60);
}
.mempty .punze{margin:0 auto 16px;color:var(--rule)}

/* --------------------------------------------------------------- Toast */
.toasts{
  position:fixed;
  left:50%;
  bottom:calc(84px + env(safe-area-inset-bottom));
  transform:translateX(-50%);
  z-index:var(--z-modal);
  display:flex;flex-direction:column;gap:8px;
  width:min(390px,calc(100vw - 32px));
  pointer-events:none;
}
@media(min-width:1080px){.toasts{bottom:26px;left:26px;transform:none}}
.toast{
  display:flex;align-items:center;gap:12px;
  padding:14px 18px;
  background:var(--ink);
  color:var(--paper);
  font-size:var(--t-sm);
  box-shadow:0 16px 44px -18px rgba(20,20,20,.7);
  animation:toastIn 340ms var(--ease-out);
  --facet:12px;
}
.toast[data-leaving="true"]{animation:toastOut 260ms var(--ease) forwards}
.toast svg{flex:none;color:var(--gold)}
@keyframes toastIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes toastOut{to{opacity:0;transform:translateY(10px)}}

/* -------------------------------------------------------------- Formular */
.form{display:grid;gap:20px}
.field{display:grid;gap:7px}
.field > label{
  font-size:var(--t-xs);
  font-weight:600;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--ink-60);
}
.field .req{color:var(--wine)}
.field input,.field textarea,.field select{
  width:100%;
  min-height:52px;
  padding:14px 16px;
  font-size:16px; /* verhindert iOS-Zoom */
  background:var(--white);
  border:1px solid var(--rule);
  border-radius:0;
  color:var(--ink);
  transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease);
  -webkit-appearance:none;
  appearance:none;
}
.field textarea{min-height:132px;resize:vertical;line-height:1.55}
.field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236A645C' stroke-width='1.4' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 16px center;
  padding-right:44px;
}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none;
  border-color:var(--wine);
  box-shadow:0 0 0 3px var(--wine-wash);
}
.field .hint{font-size:var(--t-xs);color:var(--ink-40)}
.field .err{
  font-size:var(--t-xs);
  color:var(--wine);
  font-weight:600;
  display:none;
  align-items:center;
  gap:6px;
}
.field[data-invalid="true"] input,
.field[data-invalid="true"] textarea,
.field[data-invalid="true"] select{border-color:var(--wine);background:var(--wine-wash)}
.field[data-invalid="true"] .err{display:flex}

.row2{display:grid;gap:20px}
@media(min-width:640px){.row2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Auswahlkarten (Radio als Karte) */
.pick{display:grid;gap:10px}
@media(min-width:640px){.pick--3{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:520px){.pick--2{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pick label{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--white);
  border:1px solid var(--rule);
  cursor:pointer;
  min-height:56px;
  transition:all var(--t-fast) var(--ease);
}
.pick label:hover{border-color:var(--ink-40)}
.pick input{position:absolute;opacity:0;width:1px;height:1px}
.pick input:focus-visible + .pt{outline:2px solid var(--wine);outline-offset:5px}
.pick .pt{font-weight:600;font-size:var(--t-base)}
.pick .pd{font-size:var(--t-xs);color:var(--ink-60);line-height:1.45}
.pick label:has(input:checked){
  border-color:var(--ink);
  background:var(--ink);
  color:var(--paper);
}
.pick label:has(input:checked) .pd{color:#B7AF9F}

/* Mehrstufig */
.steps__head{
  display:flex;align-items:center;gap:16px;
  margin-bottom:clamp(22px,3vw,34px);
}
.steps__label{
  font-size:var(--t-xs);letter-spacing:.13em;text-transform:uppercase;color:var(--ink-60);
}
.fstep[hidden]{display:none}
.fstep{animation:tabIn 380ms var(--ease-out)}
.fnav{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}

/* Facetten-Brillant als Fortschritt */
.brill{width:52px;height:52px;flex:none;overflow:visible}
.brill .f{
  fill:none;stroke:var(--rule);stroke-width:1.2;
  transition:fill var(--t-med) var(--ease),stroke var(--t-med) var(--ease);
}
.brill .f[data-on="true"]{fill:var(--gold);stroke:var(--gold)}
.brill .o{fill:none;stroke:var(--ink);stroke-width:1.3}

/* Zusammenfassungskarte */
.summary{
  background:var(--white);
  border:1px solid var(--rule);
  padding:clamp(18px,2.4vw,26px);
  --facet:20px;
  position:sticky;
  top:100px;
}
.summary h3{font-size:var(--t-lg);margin-bottom:14px}
.summary dl{display:grid;gap:9px;margin:0}
.summary .r{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:baseline;
  padding-bottom:9px;border-bottom:1px solid var(--rule-soft);
}
.summary dt{
  font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-40);
  white-space:nowrap;
}
.summary dd{margin:0;font-size:var(--t-sm);text-align:right;font-weight:500}
.summary .empty{color:var(--ink-40);font-style:italic;font-weight:400}

/* Erfolgszustand */
.done{
  display:none;
  text-align:center;
  padding:clamp(32px,6vw,64px) clamp(20px,4vw,44px);
  background:var(--white);
  border:1px solid var(--gold-soft);
  --facet:28px;
}
.done[data-state="on"]{display:block;animation:tabIn 500ms var(--ease-out)}
.done .punze{margin:0 auto 20px}
.done h3{font-size:var(--t-2xl);margin-bottom:12px}
.done p{color:var(--ink-80);max-width:44ch;margin-inline:auto}

/* ------------------------------------------------------------ Konfigurator */
.cfg{display:grid;gap:clamp(22px,3.4vw,44px)}
@media(min-width:960px){.cfg{grid-template-columns:minmax(0,1fr) minmax(0,420px)}}

.cfg__stage{
  position:relative;
  background:
    radial-gradient(120% 90% at 50% 34%,#FFFFFF 0%,var(--paper-2) 62%,#E7E0D2 100%);
  border:1px solid var(--rule);
  display:grid;
  place-items:center;
  aspect-ratio:1/1;
  overflow:hidden;
  --facet:clamp(22px,3vw,40px);
}
@media(min-width:960px){.cfg__stage{aspect-ratio:4/3;position:sticky;top:100px}}
.cfg__svg{width:min(84%,460px);height:auto}
.cfg__badge{
  position:absolute;
  left:16px;top:16px;
  font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-60);
  background:rgba(255,255,255,.86);
  padding:7px 12px;
  border:1px solid var(--rule);
}
.cfg__price{
  position:absolute;
  right:16px;bottom:16px;
  text-align:right;
}
.cfg__price b{
  display:block;
  font-family:var(--display);
  font-size:var(--t-xl);
  font-variant-numeric:tabular-nums;
}
.cfg__price span{font-size:11px;color:var(--ink-60);letter-spacing:.06em}

.cfg__panel{display:grid;gap:22px;align-content:start}
.cfg__group{display:grid;gap:10px}
.cfg__group > h3{
  font-family:var(--sans);
  font-size:11px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;
  color:var(--ink-60);
}
.opts{
  display:flex;gap:8px;flex-wrap:wrap;
}
.opts--scroll{
  flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
  margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);
}
.opts--scroll::-webkit-scrollbar{display:none}
@media(min-width:960px){
  .opts--scroll{flex-wrap:wrap;overflow:visible;margin-inline:0;padding-inline:0}
}
.opt{
  flex:none;
  display:inline-flex;align-items:center;gap:8px;
  min-height:46px;
  padding:10px 15px;
  background:var(--white);
  border:1px solid var(--rule);
  cursor:pointer;
  font-size:var(--t-sm);
  transition:all var(--t-fast) var(--ease);
  white-space:nowrap;
}
.opt:hover{border-color:var(--ink-40)}
.opt[aria-pressed="true"]{border-color:var(--ink);background:var(--ink);color:var(--paper)}
.opt .dot{
  width:17px;height:17px;border-radius:50%;flex:none;
  border:1px solid rgba(20,20,20,.22);
}
.opt[aria-pressed="true"] .dot{border-color:rgba(250,247,241,.5)}

/* Ringmass */
.gauge{
  display:grid;gap:clamp(20px,3vw,36px);
}
@media(min-width:900px){.gauge{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.gauge__card{
  background:var(--white);
  border:1px solid var(--rule);
  padding:clamp(20px,3vw,30px);
  --facet:22px;
}
.gauge__card h3{font-size:var(--t-lg);margin-bottom:8px}
.gauge__card > p{font-size:var(--t-sm);color:var(--ink-60);margin-bottom:18px}

.calib{
  position:relative;
  background:var(--paper-2);
  border:1px dashed var(--rule);
  padding:18px;
  overflow:hidden;
}
.cardgfx{
  height:54px;
  background:linear-gradient(112deg,var(--ink) 0%,#2C2925 58%,var(--ink) 100%);
  border-radius:5px;
  position:relative;
  margin-bottom:12px;
  box-shadow:0 8px 22px -14px rgba(20,20,20,.9);
}
.cardgfx::before{
  content:"";position:absolute;left:12px;top:16px;
  width:24px;height:18px;border-radius:2px;
  background:linear-gradient(135deg,var(--gold-soft),var(--gold));
}
.cardgfx span{
  position:absolute;right:12px;bottom:7px;
  font-size:9.5px;letter-spacing:.13em;color:rgba(250,247,241,.55);
}
.calib{overflow-x:auto}
input[type="range"]{
  -webkit-appearance:none;appearance:none;
  width:100%;height:34px;background:transparent;cursor:pointer;
}
input[type="range"]::-webkit-slider-runnable-track{
  height:2px;background:var(--rule);
}
input[type="range"]::-moz-range-track{height:2px;background:var(--rule)}
input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;
  width:28px;height:28px;margin-top:-13px;
  background:var(--ink);border:0;border-radius:50%;
  box-shadow:0 2px 8px rgba(20,20,20,.35);
}
input[type="range"]::-moz-range-thumb{
  width:28px;height:28px;background:var(--ink);border:0;border-radius:50%;
}

.ringview{
  display:grid;place-items:center;
  padding:22px 0;
  min-height:190px;
}
.ringcircle{
  border:2px solid var(--wine);
  border-radius:50%;
  position:relative;
  display:grid;place-items:center;
  background:repeating-conic-gradient(var(--paper-2) 0 25%, var(--white) 0 50%);
  background-size:11px 11px;
}
.ringcircle span{
  font-family:var(--display);
  font-size:var(--t-lg);
  font-variant-numeric:tabular-nums;
  background:var(--white);
  padding:2px 8px;
}
.gauge__out{
  display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  padding-top:16px;border-top:1px solid var(--rule);margin-top:16px;
}
.gauge__out b{font-family:var(--display);font-size:var(--t-2xl);font-variant-numeric:tabular-nums}
.gauge__out span{font-size:var(--t-xs);color:var(--ink-60);letter-spacing:.1em;text-transform:uppercase}

/* -------------------------------------------------------------- Team */
.team{
  display:grid;
  gap:clamp(14px,2vw,26px);
  grid-template-columns:repeat(2,minmax(0,1fr));
}
@media(min-width:820px){.team{grid-template-columns:repeat(4,minmax(0,1fr))}}
.tm__fig{
  aspect-ratio:3/4;background:var(--paper-2);overflow:hidden;margin-bottom:12px;
  --facet:18px;
}
.tm__fig img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:filter var(--t-slow) var(--ease)}
.tm:hover .tm__fig img{filter:grayscale(0)}
.tm h3{font-size:var(--t-lg);margin-bottom:2px}
.tm p{font-size:var(--t-sm);color:var(--ink-60);margin:0}
.tm .role{
  font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);
  display:block;margin-bottom:6px;
}

/* Platzhalter-Portraet, wenn kein echtes Foto vorliegt */
.tm__ph{
  width:100%;height:100%;
  display:grid;place-items:center;
  background:linear-gradient(150deg,var(--paper-2),var(--rule-soft));
  font-family:var(--display);
  font-size:clamp(34px,5vw,56px);
  color:var(--gold);
}

/* ------------------------------------------------------------- Marken */
.brands{
  display:grid;
  gap:1px;
  background:var(--rule);
  border:1px solid var(--rule);
  grid-template-columns:repeat(2,minmax(0,1fr));
}
@media(min-width:700px){.brands{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1080px){.brands{grid-template-columns:repeat(4,minmax(0,1fr))}}
.brand{
  background:var(--white);
  padding:clamp(18px,2.4vw,26px);
  display:flex;flex-direction:column;gap:6px;
  min-height:130px;
  text-decoration:none;color:inherit;
  transition:background var(--t-fast) var(--ease);
}
.brand:hover{background:var(--gold-wash)}
.brand b{font-family:var(--display);font-weight:400;font-size:var(--t-lg);line-height:1.15}
.brand span{font-size:var(--t-xs);color:var(--ink-60);line-height:1.45}
.brand .cat{
  margin-top:auto;padding-top:8px;
  font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);
}

/* ---------------------------------------------------------- Zitat / Beweis */
.quote{
  font-family:var(--display);
  font-size:var(--t-2xl);
  line-height:1.22;
  max-width:22ch;
  letter-spacing:-.012em;
}
.quote--wide{max-width:26ch}
.qsrc{
  margin-top:18px;
  font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-40);
}
.sec--dark .qsrc{color:#8F877A}

.reviews{
  display:grid;gap:clamp(12px,1.6vw,20px);
  grid-template-columns:1fr;
}
@media(min-width:760px){.reviews{grid-template-columns:repeat(3,minmax(0,1fr))}}
.rev{
  background:var(--white);
  border:1px solid var(--rule);
  padding:clamp(20px,2.6vw,28px);
  display:flex;flex-direction:column;gap:12px;
  --facet:20px;
}
.rev__st{color:var(--gold);letter-spacing:.14em;font-size:var(--t-sm)}
.rev p{font-family:var(--display);font-size:var(--t-lg);line-height:1.35;margin:0;flex:1}
.rev__m{font-size:var(--t-xs);color:var(--ink-60);letter-spacing:.06em}

/* --------------------------------------------------------------- Citability */
.cite{
  max-width:62ch;
  font-size:var(--t-base);
  color:var(--ink-80);
  line-height:1.7;
}

/* ---------------------------------------------------------------- Karte */
.mapbox{
  position:relative;
  aspect-ratio:16/10;
  background:var(--paper-2);
  border:1px solid var(--rule);
  display:grid;place-items:center;
  text-align:center;
  padding:clamp(20px,4vw,44px);
  overflow:hidden;
  --facet:24px;
}
@media(min-width:900px){.mapbox{aspect-ratio:16/7}}
.mapbox__grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(var(--rule-soft) 1px,transparent 1px),
    linear-gradient(90deg,var(--rule-soft) 1px,transparent 1px);
  background-size:44px 44px;
  opacity:.85;
}
.mapbox__in{position:relative;max-width:40ch}
.mapbox iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---------------------------------------------------------------- Footer */
.foot{background:var(--ink);color:#B7AF9F;padding-block:clamp(48px,7vw,86px) 28px}
.foot__top{
  display:grid;gap:clamp(28px,4vw,54px);
  padding-bottom:clamp(32px,4vw,52px);
  border-bottom:1px solid rgba(250,247,241,.14);
}
@media(min-width:900px){.foot__top{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.1fr)}}
.foot__logo{width:170px;color:var(--paper);margin-bottom:18px}
.foot h4{
  font-family:var(--sans);
  font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold);margin-bottom:14px;
}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.foot a{color:#B7AF9F;text-decoration:none;transition:color var(--t-fast) var(--ease)}
.foot a:hover{color:var(--paper)}
.foot__big{
  font-family:var(--display);
  font-size:var(--t-lg);
  color:var(--paper);
  display:block;
}
.foot__bar{
  display:flex;flex-wrap:wrap;gap:10px 26px;
  padding-top:24px;
  font-size:var(--t-xs);
}
.foot__bar .sp{margin-left:auto}

.oh{display:grid;gap:6px;font-size:var(--t-sm)}
.oh div{display:flex;justify-content:space-between;gap:16px}
.oh dt{color:#8F877A}
.oh dd{margin:0;font-variant-numeric:tabular-nums}
.oh__now{
  display:inline-flex;align-items:center;gap:7px;
  font-size:var(--t-xs);letter-spacing:.1em;text-transform:uppercase;
  margin-top:8px;
}
.oh__now i{width:7px;height:7px;border-radius:50%;background:var(--ink-40)}
.oh__now[data-open="true"]{color:#8FC79A}
.oh__now[data-open="true"] i{background:#8FC79A;box-shadow:0 0 0 3px rgba(143,199,154,.2)}
.oh__now[data-open="false"]{color:#C99A9A}
.oh__now[data-open="false"] i{background:#C99A9A}

/* -------------------------------------------------------- Custom Cursor */
.cursor,.cursor-dot{
  position:fixed;
  top:0;left:0;
  pointer-events:none;
  z-index:var(--z-cursor);
  border-radius:50%;
  opacity:0;
  transition:opacity var(--t-med) var(--ease),
             width var(--t-med) var(--ease-out),
             height var(--t-med) var(--ease-out),
             background var(--t-med) var(--ease),
             border-color var(--t-med) var(--ease);
  will-change:transform;
}
.cursor{
  width:32px;height:32px;
  border:1px solid var(--ink);
  margin:-16px 0 0 -16px;
}
.cursor-dot{
  width:5px;height:5px;
  background:var(--ink);
  margin:-2.5px 0 0 -2.5px;
}
html[data-cursor="on"] .cursor,html[data-cursor="on"] .cursor-dot{opacity:1}
html[data-cursor-state="link"] .cursor{width:56px;height:56px;margin:-28px 0 0 -28px;background:rgba(122,21,38,.1);border-color:var(--wine)}
html[data-cursor-state="link"] .cursor-dot{opacity:0}
html[data-cursor-state="dark"] .cursor{border-color:var(--gold-soft)}
html[data-cursor-state="dark"] .cursor-dot{background:var(--gold-soft)}
/* Nie ueber Eingabefeldern */
html[data-cursor-state="text"] .cursor,html[data-cursor-state="text"] .cursor-dot{opacity:0}

@media(hover:none),(pointer:coarse){
  .cursor,.cursor-dot{display:none!important}
}

/* ------------------------------------------------------------- Reveals */
[data-reveal]{
  opacity:0;
  transform:translateY(22px);
  transition:opacity var(--t-slow) var(--ease-out),transform var(--t-slow) var(--ease-out);
}
[data-reveal][data-shown="true"]{opacity:1;transform:none}
[data-reveal="mask"]{transform:translateY(0);clip-path:inset(0 0 100% 0);transition:clip-path 1100ms var(--ease-out),opacity var(--t-med) var(--ease)}
[data-reveal="mask"][data-shown="true"]{clip-path:inset(0 0 0 0)}
[data-reveal="right"]{transform:translateX(-24px)}
[data-reveal="scale"]{transform:scale(.965)}

/* Skeleton */
.skel{
  background:linear-gradient(90deg,var(--paper-2) 25%,var(--rule-soft) 50%,var(--paper-2) 75%);
  background-size:200% 100%;
  animation:shimmer 1.5s linear infinite;
}
@keyframes shimmer{to{background-position:-200% 0}}

/* Intro-Vorhang */
.intro{
  position:fixed;
  inset:0;
  z-index:var(--z-modal);
  background:var(--ink);
  display:grid;
  place-items:center;
  transition:opacity 620ms var(--ease),visibility 620ms;
}
.intro[data-state="done"]{opacity:0;visibility:hidden;pointer-events:none}
.intro__logo{width:min(240px,58vw);color:var(--paper)}
.intro__bar{
  position:absolute;
  left:50%;bottom:16%;
  transform:translateX(-50%);
  width:min(190px,42vw);height:1px;
  background:rgba(250,247,241,.2);
  overflow:hidden;
}
.intro__bar i{
  display:block;height:100%;width:100%;background:var(--gold);
  transform:scaleX(0);transform-origin:left;
  animation:introBar 1250ms var(--ease-out) forwards;
}
@keyframes introBar{to{transform:scaleX(1)}}

/* --------------------------------------------------------------- Utility */
.visually-hidden{
  position:absolute!important;width:1px;height:1px;
  padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.skip{
  position:absolute;left:-9999px;
  z-index:var(--z-modal);
  padding:14px 22px;background:var(--ink);color:var(--paper);
  text-decoration:none;font-size:var(--t-sm);
}
.skip:focus{left:12px;top:12px}

.stack{display:grid}
.stack--sm{gap:12px}
.stack--md{gap:22px}
.stack--lg{gap:clamp(28px,4vw,48px)}
.flex{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.mt-lg{margin-top:clamp(28px,4vw,48px)}
.mt-md{margin-top:22px}
.center{text-align:center}
.maxw{max-width:56ch}

.split{display:grid;gap:clamp(26px,4vw,64px);align-items:center}
@media(min-width:900px){
  .split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .split--wideL{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}
  .split--wideR{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr)}
}
.split__fig{position:relative;--facet:clamp(22px,3vw,46px)}
.split__fig img{width:100%;aspect-ratio:4/5;object-fit:cover}
.split__fig--wide img{aspect-ratio:4/3}

.figcap{
  margin-top:12px;
  font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-40);
}

/* Datenliste */
.dl{display:grid;gap:0;border-top:1px solid var(--rule)}
.dl__r{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;
  padding:14px 0;border-bottom:1px solid var(--rule);
  align-items:baseline;
}
.dl__r dt{font-size:var(--t-base)}
.dl__r dd{margin:0;font-variant-numeric:tabular-nums;font-weight:600;text-align:right}
.dl__r .sub{display:block;font-size:var(--t-xs);color:var(--ink-60);font-weight:400}

/* Prozessleiste */
.proc{
  display:grid;gap:1px;background:var(--rule);
  border:1px solid var(--rule);
}
@media(min-width:760px){.proc{grid-template-columns:repeat(4,minmax(0,1fr))}}
.proc__i{
  background:var(--paper);
  padding:clamp(20px,2.6vw,30px);
  display:grid;gap:8px;align-content:start;
}
.proc__n{
  font-family:var(--display);font-size:var(--t-xl);color:var(--gold);
}
.proc__i h4{font-size:var(--t-base);font-family:var(--sans);font-weight:600;letter-spacing:0}
.proc__i p{font-size:var(--t-sm);color:var(--ink-60);margin:0}

/* Hinweisbox */
.callout{
  border-left:2px solid var(--gold);
  background:var(--gold-wash);
  padding:18px 22px;
}
.callout--wine{border-left-color:var(--wine);background:var(--wine-wash)}
.callout b{display:block;margin-bottom:5px;font-family:var(--display);font-weight:400;font-size:var(--t-lg)}
.callout p{font-size:var(--t-sm);color:var(--ink-80);margin:0}

/* ------------------------------------------------- Reduzierte Bewegung */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
  [data-reveal]{opacity:1!important;transform:none!important;clip-path:none!important}
  .hero__title .l > span{transform:none}
  .hero__sub,.hero__actions,.hero__trigger,.hero__meta{opacity:1}
  .intro{display:none}
  .cursor,.cursor-dot{display:none}
}

/* --------------------------------------------------------------- Druck */
@media print{
  .nav,.sticky,.callchip,.cursor,.cursor-dot,.intro,.sheet,.toasts,.hero__scroll{display:none!important}
  body{background:#fff;color:#000}
  .sec--dark,.foot{background:#fff!important;color:#000!important}
}

/* ---------------------------------------------- Werkbank: Buehne pro Geraet */
/* Desktop bekommt die gescrubbte, gepinnte Sequenz.
   Am Telefon waere Pinning eine Sackgasse — dort wird gewischt. */
@media(max-width:899px){
  .bench__track{display:none}
  .bench__dots{display:none}
}
@media(min-width:900px){
  .bench__swipe{display:none}
}

/* ------------------------------------------------------- Wortmarke als Maske */
.logomark{
  display:block;
  width:100%;
  aspect-ratio:187 / 84.552;
  background:currentColor;
  -webkit-mask:url("logo.svg") no-repeat center / contain;
  mask:url("logo.svg") no-repeat center / contain;
}
.intro__logo.logomark{width:min(240px,58vw)}
.foot__logo .logomark,.foot__logo{width:170px}

/* ============================================================
   Navigation ueber einem dunklen Hero
   Solange die Leiste transparent ist, steht sie auf dem Bild —
   dort muss sie hell sein, sonst verschwindet die Wortmarke.
   ============================================================ */
body[data-hero="dark"] .nav:not([data-solid="true"]) .nav__logo,
body[data-hero="dark"] .nav:not([data-solid="true"]) .nav__tel,
body[data-hero="dark"] .nav:not([data-solid="true"]) .nav__merk,
body[data-hero="dark"] .nav:not([data-solid="true"]) .nav__burger{
  color:var(--paper);
}
body[data-hero="dark"] .nav:not([data-solid="true"]) .nav__link{
  color:rgba(250,247,241,.82);
}
body[data-hero="dark"] .nav:not([data-solid="true"]) .nav__link:hover,
body[data-hero="dark"] .nav:not([data-solid="true"]) .nav__link[aria-current="page"]{
  color:var(--paper);
}
body[data-hero="dark"] .nav:not([data-solid="true"]) .nav__link::after{background:var(--gold)}
body[data-hero="dark"] .nav:not([data-solid="true"]) .nav__merk:hover{
  border-color:rgba(250,247,241,.4);color:var(--gold-soft);
}
body[data-hero="dark"] .nav:not([data-solid="true"]) .nav__cta{
  background:transparent;color:var(--paper);border-color:rgba(250,247,241,.45);
}
/* Die Leiste bekommt zusaetzlich einen weichen Schleier, damit die Wortmarke
   auch auf einem hellen Bildbereich lesbar bleibt. */
body[data-hero="dark"] .nav:not([data-solid="true"])::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(20,20,20,.55),rgba(20,20,20,0));
  pointer-events:none;
  z-index:-1;
}
.nav{isolation:isolate}

/* ============================================================
   Telefon: eigene Hero-Komposition, kein geschrumpfter Desktop
   ============================================================ */
@media(max-width:719px){
  .hero{min-height:100svh;align-items:flex-end}
  .hero__in{padding-block:clamp(24px,5vh,44px) clamp(104px,15vh,132px)}
  .hero__title{
    font-size:clamp(33px,8.6vw,44px);
    line-height:1.06;
    letter-spacing:-.014em;
    max-width:none;
    margin-bottom:16px;
  }
  .hero__sub{font-size:16px;line-height:1.5;margin-bottom:22px}
  .hero__actions{display:grid;grid-template-columns:minmax(0,1fr);gap:9px;width:100%}
  .hero__actions .btn{width:100%}
  .hero__trigger{margin-top:16px;font-size:13px;gap:5px 14px}
  .hero__scroll{display:none}      /* am Telefon wischt man ohnehin */
  .hero__scrim{
    background:
      linear-gradient(180deg,rgba(20,20,20,.72) 0%,rgba(20,20,20,.28) 30%,rgba(20,20,20,.9) 100%);
  }
  .phero{padding-block:clamp(104px,15vh,150px) clamp(34px,6vh,56px)}
  .phero h1{font-size:clamp(31px,8.2vw,42px);line-height:1.07}
  .phero .lead{font-size:16px}
  .phero .flex{display:grid;grid-template-columns:minmax(0,1fr);gap:9px}
  .phero .flex .btn{width:100%}
}

/* -------------------------------------------------- Primary-CTA (Hierarchie) */
/* Der eine Weg zur Anfrage. Sieht ueberall gleich aus, heisst ueberall gleich. */
.btn--primary{font-weight:700}

/* Ueberschriften in Fliesstext- und Formularbereichen:
   semantisch H2, optisch die kleinere Stufe. */
.prose h2{font-family:var(--display);font-size:var(--t-xl);line-height:1.18;margin:34px 0 10px}
.prose h2:first-of-type{margin-top:0}
.fstep > h2,.summary h2,.done h2,.mapbox__in h2{
  font-family:var(--display);font-size:var(--t-xl);line-height:1.18;letter-spacing:-.008em;
}
.done h2{font-size:var(--t-2xl)}
.sheet__head h2{font-size:var(--t-xl)}

/* Citability-Block: ein Absatz, optisch zweigeteilt */
.cite__p{display:block}
.cite__p + .cite__p{margin-top:1em}
/* Click-Trigger als Fliesstext (Punkte kommen aus dem Text, nicht aus CSS) */
.hero__trigger{display:block}

/* ============================================================
   Touch-Ziele
   Am Telefon wird mit dem Daumen getippt, nicht mit einem Zeiger.
   Alles, was man antippt, bekommt mindestens 44 px Hoehe.
   ============================================================ */
.heart{width:44px;height:44px}
.prod__fig .heart{top:8px;right:8px}

@media(max-width:1079px){
  .tlink{padding-block:9px}
  .ctaline{gap:4px 16px}
  .ctaline a{display:inline-block;padding-block:11px}
  .ctaline span{display:inline-block}
  .foot ul{gap:2px}
  .foot ul a{display:inline-block;padding-block:11px}
  .foot__bar{gap:2px 22px}
  .foot__bar a{display:inline-block;padding-block:11px}
  .foot__big{display:inline-block;padding-block:8px}
  .acc__panel .inner a{padding-block:6px;display:inline-block}
  .phero__crumb a{display:inline-block;padding-block:8px}
}

/* Der geschlossene Merkzettel steht rechts ausserhalb des Bildschirms.
   Ohne diese Klammer vergroessert er die Scrollbreite der ganzen Seite.
   Wichtig: die Klammer sitzt hier und NICHT am <html>-Element — dort
   wuerde overflow auf den Viewport durchschlagen und das Scrollen der
   ganzen Seite abschalten. */
.sheet{overflow:hidden}

@media(max-width:1079px){
  .chip{min-height:44px}
  .phero__crumb{gap:2px 8px}
  .phero__crumb a{padding-block:11px}
  .foot p a,.foot__top p a{display:inline-block;padding-block:11px}
  .ctaline span a{display:inline-block;padding-block:11px}
  .dl__r dd a{display:inline-block;padding-block:10px}
  .prose p a{padding-block:6px;display:inline-block}
}

@media(max-width:1079px){
  .tlink{padding-block:11px}
  .phero__crumb a{padding-block:13px}
  .foot__bar a{padding-block:13px}
  .foot ul a{padding-block:12px}
  .prose p a,.acc__panel .inner a{padding-block:9px}
  .foot p a,.foot__top p a{padding-block:13px}
}

@media(max-width:1079px){
  .prose p a,.acc__panel .inner a{padding-block:10px}
  .phero__crumb a{padding-block:14px;min-width:44px;text-align:center}
}

/* ============================================================
   Hero auf grossen Schirmen
   Die Headline ist bewusst lang (sie traegt die Tatsache).
   Damit sie nicht unter die Navigationsleiste laeuft, wird die
   Schriftgroesse zusaetzlich an die Fensterhoehe gekoppelt und
   die Zeile darf breiter laufen — vier Zeilen statt sechs.
   ============================================================ */
@media(min-width:1080px){
  .hero__in{padding-block:118px clamp(96px,13vh,124px)}
  .hero__title{
    font-size:min(clamp(48px,2rem + 6.6vw,124px), 10.2vh);
    max-width:22ch;
    line-height:1.01;
  }
  .hero__sub{font-size:clamp(17px,.9rem + .5vw,21px);margin-bottom:26px}
}
@media(min-width:1080px) and (max-height:820px){
  .hero__in{padding-block:104px clamp(84px,11vh,112px)}
  .hero__title{margin-bottom:16px}
  .hero__sub{margin-bottom:20px}
}

/* Tablet-Bereich: gleiche Hoehenkopplung, sonst rutscht der CTA
   auf niedrigen Fenstern (z. B. 1024x700) unter die Kante. */
@media(min-width:720px) and (max-width:1079px){
  .hero__in{padding-block:104px clamp(96px,13vh,124px)}
  .hero__title{
    font-size:min(clamp(48px,2rem + 6.6vw,124px), 10.2vh);
    max-width:22ch;
    line-height:1.02;
  }
}
