:root{
  --ink:#15120d; --ink-2:#1f1b15; --ink-soft:#2c271f;
  --cream:#f7f3ea; --cream-2:#efe7d8; --cream-3:#e6dcc9;
  --gold:#bd9a57; --gold-deep:#7d6026; --gold-soft:#d8c08a;
  --line:rgba(21,18,13,.14); --line-light:rgba(247,243,234,.18);
  --danger:#b3402f;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --serif:'Fraunces','Cormorant Garamond',Georgia,'Times New Roman',serif;
  --maxw:1200px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
/* Anchor targets must clear the sticky header (~73px) — without this a jump to
   #buchen hides the section heading underneath it. site.js refines this further
   (it pins the heading, not the padded section top); this is the no-JS floor. */
:target{scroll-margin-top:88px}
body{font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.05;letter-spacing:-.01em}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem)}
.narrow{max-width:760px}
.eyebrow{font:500 .72rem/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep)}
.eyebrow.light{color:var(--gold-soft)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:1rem;top:.4rem;z-index:200;background:var(--gold);color:#1a1610;padding:.5rem .9rem;border-radius:3px}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.intro{position:fixed;inset:0;z-index:1000;background:#100d09;display:flex;align-items:center;justify-content:center;overflow:hidden}
/* Der Schriftzug mass bei 390px Fensterbreite 389px und wurde während der
   Animation (grösserer Laufweite) über beide Ränder geschoben. Kleinere
   Untergrenze + kürzere Anfangs-Laufweite halten ihn auf jedem Handy im Bild. */
.intro-name{position:relative;max-width:100%;text-align:center;white-space:nowrap;font-family:var(--serif);font-weight:500;color:var(--cream);font-size:clamp(.95rem,5vw,4.6rem);letter-spacing:.18em;text-transform:uppercase;padding-bottom:.5rem}
.intro-name::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);transform-origin:left}
@media(prefers-reduced-motion:reduce){.intro{display:none}}
@media(prefers-reduced-motion:no-preference){
  /* Zusammen 1,3s statt 2,8s: aus der Instagram-Story kommend las sich der
     lange schwarze Bildschirm wie eine kaputte Seite. */
  .intro{animation:introOut .5s .8s cubic-bezier(.7,0,.3,1) forwards}
  .intro-name{animation:introName .8s cubic-bezier(.2,.7,.2,1) both}
  .intro-name::after{animation:introLine .45s .4s ease both}
}
@keyframes introName{0%{opacity:0;letter-spacing:.3em;transform:translateY(14px)}45%{opacity:1}100%{opacity:1;letter-spacing:.18em;transform:none}}
@keyframes introLine{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes introOut{to{transform:translateY(-101%);visibility:hidden}}

/* preview ribbon */
.ribbon{background:var(--ink);color:rgba(247,243,234,.55);font-size:.72rem;letter-spacing:.04em;text-align:center;padding:.45rem 1rem;border-bottom:1px solid var(--line-light)}
.ribbon b{color:var(--gold-soft);font-weight:500}

/* header */
header{position:sticky;top:0;z-index:50;background:rgba(18,15,11,.94);border-bottom:1px solid var(--line-light)}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px;gap:1rem}
.brand{font:500 1.02rem/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--cream);white-space:nowrap;display:inline-block;padding:.85rem 0}
.nav-links{display:flex;gap:2.1rem}
.nav-links a{font:500 .82rem/1 var(--sans);letter-spacing:.04em;color:rgba(247,243,234,.78);transition:color .2s;padding:.4rem 0;position:relative}
.nav-links a:hover{color:var(--gold-soft)}
.nav-links a.active{color:var(--gold-soft)}
.nav-links a.active::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--gold-soft)}
.nav-right{display:flex;align-items:center;gap:1.3rem}
.lang{font:500 .75rem/1 var(--sans);letter-spacing:.08em;color:rgba(247,243,234,.6)}
.lang b{color:var(--cream)}
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;background:transparent;border:1px solid var(--line-light);border-radius:3px;cursor:pointer}
.nav-toggle span{display:block;width:18px;height:1.5px;background:var(--cream);margin:0 auto;transition:.25s}
.nav-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.mobile-menu{display:none;flex-direction:column;background:rgba(16,13,9,.98);border-top:1px solid var(--line-light);max-height:0;overflow:hidden;transition:max-height .3s ease}
.mobile-menu.open{max-height:420px}
.mobile-menu a{color:rgba(247,243,234,.85);font:500 .95rem/1 var(--sans);letter-spacing:.03em;padding:1.05rem clamp(1.25rem,4vw,3rem);border-bottom:1px solid var(--line-light)}
.mobile-menu a:hover{color:var(--gold-soft);background:rgba(255,255,255,.03)}
.mobile-menu .mm-cta{color:var(--gold-soft)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.55em;padding:.92rem 1.6rem;border-radius:2px;font:500 .85rem/1 var(--sans);letter-spacing:.03em;cursor:pointer;border:1px solid transparent;transition:.25s;white-space:nowrap}
.btn-gold{background:var(--gold);color:#1a1610}
.btn-gold:hover{background:var(--gold-deep);color:#fff}
.btn-ghost{background:transparent;border-color:rgba(247,243,234,.38);color:var(--cream)}
.btn-ghost:hover{border-color:var(--gold-soft);color:var(--gold-soft)}
.btn-dark{background:var(--ink);color:var(--cream)}
.btn-dark:hover{background:var(--ink-soft)}
.btn-outline{background:transparent;border-color:var(--line);color:var(--ink)}
.btn-outline:hover{border-color:var(--ink);background:var(--ink);color:var(--cream)}
.btn.sm{padding:.7rem 1.15rem;font-size:.8rem}
.btn.lg{padding:1.05rem 2rem;font-size:.92rem}
.btn[disabled]{opacity:.6;cursor:not-allowed}
.link-arrow{position:relative;display:inline-flex;align-items:center;gap:.5em;font:500 .85rem/1 var(--sans);letter-spacing:.03em;color:var(--gold-deep);border-bottom:1px solid transparent;padding-bottom:2px;transition:.2s}
/* Unsichtbare Vergrösserung der Trefferfläche auf ~44px: der sichtbare
   Unterstrich bleibt am Text, der Daumen trifft trotzdem. */
.link-arrow::after{content:"";position:absolute;left:0;right:0;top:-13px;bottom:-13px}
.link-arrow:hover{border-color:var(--gold-deep)}
.link-arrow.light{color:var(--gold-soft)}
.link-arrow.light:hover{border-color:var(--gold-soft)}

/* image placeholder */
.ph{position:relative;overflow:hidden;background:
    repeating-linear-gradient(45deg,rgba(21,18,13,.035) 0 12px,transparent 12px 24px),
    linear-gradient(135deg,var(--cream-2),var(--cream-3));
    border:1px solid var(--line)}
.ph::after{content:attr(data-label);position:absolute;left:14px;bottom:12px;font:500 .64rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:rgba(21,18,13,.42)}
.ph.dark{background:
    repeating-linear-gradient(45deg,rgba(247,243,234,.03) 0 12px,transparent 12px 24px),
    linear-gradient(135deg,var(--ink-soft),var(--ink));border-color:var(--line-light)}
.ph.dark::after{color:rgba(247,243,234,.4)}
.photo{background-size:cover;background-position:center;border:1px solid var(--line);border-radius:3px}
.ph-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.ecard:hover .ph-img,.frow:hover .ph-img{transform:scale(1.06)}

/* showreel + lightbox */
.imgband{position:relative;overflow:hidden;background:var(--ink)}
.imgband img{width:100%;height:clamp(260px,42vw,480px);object-fit:cover;object-position:center 28%}

/* homepage hero */
.hero{position:relative;min-height:90vh;display:flex;align-items:flex-end;color:var(--cream);overflow:hidden;background:#16130d}
.hero-media{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-layer{position:absolute;inset:0;background:radial-gradient(120% 80% at 50% 0%,rgba(46,34,20,.5),transparent 62%),linear-gradient(180deg,#1c1813,#100e0a)}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;opacity:0;transition:opacity 1.1s ease}
.hero-video.playing{opacity:1}
/* Still-photo hero, cross-fading. Same slot as .hero-video — swap the element,
   keep the scrim and the type. Three of her own photos dissolve into each other
   with a slow push, which reads as motion without a video file: no download, no
   autoplay policy to fight, and it survives on a phone. object-position leans
   high so her face survives the crop on a short viewport.

   Each photo is visible for roughly a third of the 24s cycle; the delays below
   space them evenly. The scale runs while the photo is on screen and holds
   after, so the push never snaps back in view. */
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center var(--hero-y,30%);z-index:1;filter:saturate(1) brightness(1.08);opacity:0;will-change:opacity,transform;animation:heroKen 24s cubic-bezier(.4,0,.2,1) infinite}
.hero-photo:nth-of-type(1){animation-delay:0s}
.hero-photo:nth-of-type(2){animation-delay:8s}
.hero-photo:nth-of-type(3){animation-delay:16s}
@keyframes heroKen{
  0%{opacity:0;transform:scale(1.02)}
  4%{opacity:1}
  30%{opacity:1}
  36%{opacity:0;transform:scale(1.13)}
  100%{opacity:0;transform:scale(1.13)}
}
/* Reduced motion: no dissolve, no push — the first photo simply stays. */
@media(prefers-reduced-motion:reduce){
  .hero-photo{animation:none;opacity:0;transform:none}
  .hero-photo:nth-of-type(1){opacity:1}
}
/* z-index matters here: .hero-video/.hero-photo sit at z-index 1, so a scrim
   with `auto` painted UNDERNEATH the media and did nothing at all. It went
   unnoticed while the hero was a dark stock clip; a real photo made it obvious.
   Same level, later in the DOM → paints on top, still below .hero-inner. */
/* Der waagerechte Verlauf lag mit 92% Schwarz links und noch 50% in der
   Bildmitte — also genau über Ekat. Er ist jetzt deutlich dünner; die
   Abdunklung, die der Text braucht, macht der senkrechte Verlauf, und der
   sitzt eng am unteren Rand statt bis in die Bildmitte zu reichen. */
.hero-scrim{position:absolute;inset:0;z-index:1;background:
    /* Nur die Ecke, in der der Text steht — läuft nach 70% aus und lässt ihr
       Gesicht (Mitte, weiter oben) unberührt. */
    radial-gradient(125% 118% at 6% 100%,rgba(12,10,7,.76) 0%,rgba(12,10,7,.5) 34%,rgba(12,10,7,.22) 56%,transparent 78%),
    linear-gradient(95deg,rgba(12,10,7,.7) 0%,rgba(12,10,7,.44) 30%,rgba(12,10,7,.18) 58%,rgba(12,10,7,.04) 100%),
    linear-gradient(0deg,rgba(12,10,7,.93) 0%,rgba(12,10,7,.72) 18%,rgba(12,10,7,.34) 38%,transparent 58%)}
.hero-inner{z-index:2;position:relative;padding-top:clamp(3rem,9vh,7rem);padding-bottom:clamp(1.8rem,3.5vh,2.8rem)}
.hero-credit{z-index:2;position:absolute;right:clamp(1.25rem,4vw,3rem);bottom:1.1rem;font:500 .62rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:rgba(247,243,234,.34)}
.hero h1{font-size:clamp(2.9rem,8.2vw,6.6rem);font-weight:500;max-width:14ch;margin:.7rem 0 1.4rem;overflow-wrap:break-word;hyphens:auto}
.hero .lede{font-size:clamp(1.02rem,1.7vw,1.26rem);max-width:46ch;color:rgba(247,243,234,.84);line-height:1.6}
.hero-cta{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2.2rem}
.hero-name{font:500 .8rem/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--gold-soft);text-shadow:0 1px 2px rgba(12,10,7,.9),0 2px 14px rgba(12,10,7,.85)}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.16)}}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:no-preference){
  .hero-layer{animation:kenburns 22s ease-in-out infinite alternate}
  .page-hero-bg{animation:kenburns 30s ease-in-out infinite alternate}
  .hero-name,.hero h1,.hero .lede,.hero-cta{opacity:0;animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards}
  .hero h1{animation-delay:.12s}
  .hero .lede{animation-delay:.26s}
  .hero-cta{animation-delay:.4s}
}

/* sub-page header */
.page-hero{position:relative;overflow:hidden;background:#16130d;color:var(--cream);padding:clamp(5rem,13vh,8.5rem) 0 clamp(2.6rem,6vh,4rem)}
/* --hero-y: je Seite gesetzt, weil der Bildausschnitt vom Foto abhängt.
   Achtung beim Justieren: .page-hero-bg zoomt per Ken-Burns bis scale(1.16),
   der Ausschnitt wandert also — immer im vollen Zoom gegenprüfen. */
.page-hero-bg{position:absolute;inset:-4%;background-size:cover;background-position:center var(--hero-y,22%)}
.page-hero-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,10,7,.9) 0%,rgba(12,10,7,.7) 45%,rgba(12,10,7,.42) 100%)}
.page-hero .wrap{position:relative;z-index:2}
.page-hero h1{font-size:clamp(2.4rem,5.6vw,4.3rem);font-weight:500;margin:.8rem 0 .6rem;max-width:20ch}
.page-hero .lede{max-width:54ch;color:rgba(247,243,234,.82);font-size:clamp(1rem,1.5vw,1.18rem);line-height:1.6}

/* stats */
.stats{background:var(--ink);color:var(--cream);border-top:1px solid var(--line-light)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:2.5rem clamp(1rem,2.5vw,2rem);border-right:1px solid var(--line-light)}
.stat:last-child{border-right:0}
.stat .num{font-family:var(--serif);font-size:clamp(2.2rem,3.6vw,3.1rem);font-weight:500;color:var(--gold-soft);line-height:1}
.stat .lab{font:500 .82rem/1.3 var(--sans);letter-spacing:.02em;margin-top:.7rem}
.stat .sub{font-size:.76rem;color:rgba(247,243,234,.55);margin-top:.25rem;letter-spacing:.03em}

/* section base */
section.band{padding:clamp(4.5rem,10vh,8rem) 0}
section.band.tight{padding:clamp(3rem,6vh,4.5rem) 0}
.band.alt{background:var(--cream-2)}
.band.dark{background:var(--ink);color:var(--cream)}
.band.dark h2,.band.dark h3{color:var(--cream)}
.section-head{max-width:52ch}
.section-head h2{font-size:clamp(2rem,4.4vw,3.4rem);margin:1rem 0 .5rem}
.section-head p{margin-top:.7rem;color:#524c3b;font-size:1.05rem}
.band.dark .section-head p{color:rgba(247,243,234,.72)}

/* story */
.story-grid{display:grid;grid-template-columns:0.85fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.story .story-photo{aspect-ratio:4/5;border-radius:2px;border:1px solid var(--line);background:#e6dcc9 url('../media/portrait-studio.jpg') 50% 16%/cover no-repeat}
.story p{margin-top:1.1rem;font-size:1.06rem;color:#46402f;max-width:46ch}
.story .lead,.book-strip .lead{font-family:var(--serif);font-size:1.5rem;line-height:1.35;color:var(--ink);max-width:30ch}
.story .link-arrow{margin-top:1.8rem}

/* workshops (dark band) */
.work{background:var(--ink);color:var(--cream)}
.work .section-head h2{color:var(--cream)}
.work .section-head p{color:rgba(247,243,234,.72);margin-top:.6rem;font-size:1.05rem}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:3rem}
.wcard{background:var(--ink-2);border:1px solid var(--line-light);border-radius:3px;padding:1.6rem;display:flex;flex-direction:column;transition:.25s}
.wcard:hover{border-color:rgba(216,192,138,.5);transform:translateY(-3px)}
.wcard .date{font:500 .74rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-soft)}
.wcard h3{font-size:1.5rem;margin:.8rem 0 .9rem;color:var(--cream)}
.wmeta{list-style:none;display:flex;flex-direction:column;gap:.45rem;font-size:.9rem;color:rgba(247,243,234,.74);margin-bottom:1.3rem}
.wmeta span{color:var(--gold-soft);width:5.5rem;display:inline-block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.wcard .foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1.1rem;border-top:1px solid var(--line-light)}
.wcard .price{font-family:var(--serif);font-size:1.5rem;color:var(--cream)}
.seats{font-size:.74rem;color:var(--gold-soft);letter-spacing:.04em;margin-top:.2rem}
.seats.few{color:#e0a96d}
.work-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.2rem;margin-top:2.6rem;padding-top:1.8rem;border-top:1px solid var(--line-light)}
.work-foot p{color:rgba(247,243,234,.66);font-size:.95rem}
.note{font-size:.78rem;color:rgba(21,18,13,.5);letter-spacing:.02em;margin-top:1.4rem;font-style:italic}
.note.light{color:rgba(247,243,234,.45)}

/* workshop list (light, full page) */
.wlist{display:flex;flex-direction:column;gap:1rem;margin-top:2.5rem}
.wrow{display:grid;grid-template-columns:auto 1fr auto;gap:1.5rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:4px;padding:1.4rem 1.6rem;transition:.2s}
.wrow:hover{border-color:var(--gold);box-shadow:0 6px 26px -18px rgba(21,18,13,.5)}
.wrow .wdate{text-align:center;min-width:62px}
.wrow .wdate .d{font-family:var(--serif);font-size:1.8rem;line-height:1;color:var(--ink)}
.wrow .wdate .m{font:500 .68rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);margin-top:.35rem}
.wrow h3{font-size:1.35rem;margin-bottom:.3rem}
.wrow .meta{font-size:.85rem;color:#6a6450}
.wrow .wdesc{font-size:.92rem;line-height:1.55;color:var(--ink-soft);margin-top:.4rem;max-width:56ch;white-space:pre-line}
.wrow .pricing{text-align:right}
.wrow .pricing .p{font-family:var(--serif);font-size:1.4rem;color:var(--ink)}
.wrow .pricing .s{font-size:.74rem;color:var(--gold-deep);margin-top:.2rem}
.wrow .wdate .d.range{font-size:1.25rem;letter-spacing:-.02em}

/* termine: category chip + filter bar */
.trow-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.7rem}
.tchip{font:500 .64rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);border:1px solid rgba(125,96,38,.35);border-radius:999px;padding:.34rem .6rem;white-space:nowrap}
.tsold{color:#8a6a2e;font-weight:500}
.tfilter{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:2.2rem}
.tfilter[hidden]{display:none}
.tfilter-btn{font:500 .8rem/1 var(--sans);letter-spacing:.02em;color:#6a6450;background:transparent;border:1px solid var(--line);border-radius:999px;padding:.6rem 1.05rem;cursor:pointer;transition:.2s}
.tfilter-btn:hover{border-color:var(--gold);color:var(--gold-deep)}
.tfilter-btn.on{background:var(--ink);border-color:var(--ink);color:var(--cream)}
.wrow[hidden]{display:none}
.tempty{margin-top:2.5rem;border:1px dashed var(--line);border-radius:4px;padding:2.4rem 1.6rem;text-align:center;color:#6a6450}

/* form-level error (a failed submit must never look like a success) */
.form-error{background:rgba(179,64,47,.07);border:1px solid rgba(179,64,47,.35);border-radius:3px;color:#8f3325;font-size:.9rem;padding:.85rem 1rem;margin-bottom:1.2rem}
.form-error[hidden]{display:none}

/* format cards — five side by side instead of five full-width alternating
   rows. The portrait ratio matters: the source photos are all portrait, and a
   landscape crop cut people's heads off. */
.fmt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:1.1rem;margin-top:2.8rem}
.fmt .ph{aspect-ratio:3/4;border-radius:4px;margin-bottom:1rem}
.fmt h3{font-size:1.28rem;margin-bottom:.4rem;line-height:1.15}
.fmt p{font-size:.9rem;line-height:1.55;color:#524c3b}
.fmt:hover .ph-img{transform:scale(1.05)}

/* routed contact blocks (who answers what) */
.route-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:2.5rem}
.route{background:#fff;border:1px solid var(--line);border-radius:5px;padding:1.9rem 1.8rem;display:flex;flex-direction:column}
.route.dark{background:var(--ink);color:var(--cream);border-color:transparent}
.route .rlab{font:500 .72rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep)}
.route.dark .rlab{color:var(--gold-soft)}
.route h3{font-size:1.55rem;margin:.8rem 0 .5rem}
.route.dark h3{color:var(--cream)}
.route p{font-size:.96rem;color:#524c3b;margin-bottom:1rem}
.route.dark p{color:rgba(247,243,234,.75)}
.route ul{list-style:none;font-size:.94rem;color:#524c3b;display:flex;flex-direction:column;gap:.45rem;margin-bottom:1.4rem}
.route.dark ul{color:rgba(247,243,234,.75)}
.route li::before{content:"— ";color:var(--gold-deep)}
.route.dark li::before{color:var(--gold-soft)}
.route .rfoot{margin-top:auto;padding-top:1.2rem;border-top:1px solid var(--line);font-size:.9rem}
.route.dark .rfoot{border-color:var(--line-light)}
.route a{color:var(--gold-deep);border-bottom:1px solid rgba(125,96,38,.4)}
.route.dark a{color:var(--gold-soft);border-bottom-color:rgba(216,192,138,.4)}

/* autographs: the address block is the page */
.addr{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:start;margin-top:2.5rem}
.addr-card{background:var(--ink);color:var(--cream);border-radius:8px;padding:clamp(1.8rem,4vw,2.6rem)}
.addr-card .alab{font:500 .72rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft)}
.addr-card address{font-style:normal;font-family:var(--serif);font-size:clamp(1.4rem,2.6vw,1.9rem);line-height:1.4;margin-top:1.1rem;color:var(--cream)}
.addr-card #copy-addr{margin-top:1.4rem;min-height:44px}
.addr-card .anote{margin-top:1.5rem;padding-top:1.3rem;border-top:1px solid var(--line-light);font-size:.88rem;color:rgba(247,243,234,.7)}
.addr-steps{list-style:none;counter-reset:s;margin-top:1.4rem}
.addr-steps li{counter-increment:s;position:relative;padding:0 0 1.35rem 3rem;color:#3f3a2c}
.addr-steps li::before{content:counter(s);position:absolute;left:0;top:-.15rem;width:2rem;height:2rem;border-radius:50%;border:1px solid var(--gold);color:var(--gold-deep);font:500 .85rem/2rem var(--sans);text-align:center}
.addr-steps b{font-weight:500}

/* social hub */
.slink-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem;margin-top:2.6rem}
.slink{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:5px;padding:1.7rem 1.6rem;transition:.22s}
.slink:hover{border-color:var(--gold);transform:translateY(-3px)}
.slink .sname{font-family:var(--serif);font-size:1.5rem;margin-bottom:.35rem}
.slink .shandle{font-size:.86rem;color:var(--gold-deep);letter-spacing:.02em}
.slink .sdesc{font-size:.92rem;color:#524c3b;margin-top:.7rem}
.slink .sgo{margin-top:1.2rem;font:500 .8rem/1 var(--sans);letter-spacing:.03em;color:var(--gold-deep)}
.slink.primary{background:var(--ink);border-color:transparent;color:var(--cream)}
.slink.primary .sname{color:var(--cream)}
.slink.primary .shandle,.slink.primary .sgo{color:var(--gold-soft)}
.slink.primary .sdesc{color:rgba(247,243,234,.75)}

/* paths */
.paths-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:3rem}
.pcard{border:1px solid var(--line);border-radius:3px;padding:2rem 1.8rem 1.8rem;background:#fbf8f1;transition:.25s;display:flex;flex-direction:column;min-height:230px}
.pcard:hover{border-color:var(--gold);background:#fff;transform:translateY(-3px)}
.pcard .pn{font:500 .72rem/1 var(--sans);letter-spacing:.14em;color:var(--gold-deep);text-transform:uppercase}
.pcard h3{font-size:1.7rem;margin:.9rem 0 .7rem}
.pcard p{color:#524c3b;font-size:.98rem;margin-bottom:1.4rem}
.pcard .link-arrow{margin-top:auto}

/* events */
.events{background:linear-gradient(180deg,#f4eede,#efe7d8)}
.events .section-head p{margin-top:.7rem;color:#524c3b;font-size:1.05rem}
.egrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;margin-top:3rem}
.ecard .ph{aspect-ratio:4/3;border-radius:3px;margin-bottom:1.1rem}
.ecard h3{font-size:1.4rem;margin-bottom:.45rem}
.ecard p{color:#524c3b;font-size:.92rem;line-height:1.55}
.events-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.4rem;margin-top:2.8rem;padding-top:1.8rem;border-top:1px solid var(--line)}
.events-foot p{max-width:54ch;color:#6a6450;font-size:.95rem;font-style:italic}

/* feature rows (events detail) */
.frow{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;margin-top:3rem}
.frow:nth-child(even) .frow-media{order:2}
.frow .ph{aspect-ratio:16/11;border-radius:4px}
.frow h3{font-size:1.8rem;margin-bottom:.7rem}
.frow p{color:#524c3b;max-width:46ch}

/* bekannt aus */
.known{background:var(--cream-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.known .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(1.4rem,4vw,3.4rem);padding-top:2.3rem;padding-bottom:2.3rem}
.known .lab{font:500 .72rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#6f6450}
.known .item{font-family:var(--serif);font-size:clamp(1.05rem,1.8vw,1.35rem);color:#3f3a2c;font-weight:500}

/* prose (about / legal) */
.prose{max-width:720px}
.prose.wide{max-width:820px}
.prose p{margin-bottom:1.15rem;color:#3f3a2c;font-size:1.05rem}
.prose .lead{font-family:var(--serif);font-size:1.5rem;line-height:1.4;color:var(--ink);margin-bottom:1.6rem}
.prose h2{font-size:clamp(1.6rem,3vw,2.2rem);margin:2.4rem 0 .9rem}
.prose h3{font-size:1.25rem;margin:1.8rem 0 .5rem;font-family:var(--sans);font-weight:500;letter-spacing:0}
.prose ul{margin:0 0 1.2rem 1.1rem}
.prose li{margin-bottom:.5rem;color:#3f3a2c}
.prose a{color:var(--gold-deep);border-bottom:1px solid rgba(125,96,38,.4)}
.prose a:hover{border-color:var(--gold-deep)}
.prose strong{font-weight:500}

/* timeline */
.timeline{margin-top:2.5rem;border-left:1px solid var(--line)}
.tl-item{position:relative;padding:0 0 1.8rem 1.8rem}
.tl-item::before{content:"";position:absolute;left:-5px;top:.45rem;width:9px;height:9px;border-radius:50%;background:var(--gold)}
.tl-item .yr{font:500 .78rem/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep)}
.tl-item h3{font-family:var(--sans);font-weight:500;font-size:1.05rem;letter-spacing:0;margin:.35rem 0 .25rem}
.tl-item p{color:#6a6450;font-size:.95rem;max-width:48ch}

/* FAQ */
.faq{margin-top:2.5rem;max-width:760px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:1.15rem 0;font-weight:500;font-size:1.05rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--serif);font-size:1.5rem;color:var(--gold-deep);transition:.2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 1.2rem;color:#6a6450;max-width:62ch}

/* forms */
.form-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:start;margin-top:2.5rem}
.formwrap{background:#fff;border:1px solid var(--line);border-radius:5px;padding:clamp(1.6rem,3vw,2.4rem)}
.form .field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.1rem}
.form label{font:500 .8rem/1.3 var(--sans);letter-spacing:.02em;color:#3f3a2c}
.form .req{color:var(--gold-deep)}
.form input,.form select,.form textarea{font:400 1rem/1.5 var(--sans);color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:3px;padding:.78rem .9rem;width:100%;transition:.18s}
.form textarea{min-height:130px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(189,154,87,.18)}
.form .field.error input,.form .field.error select,.form .field.error textarea{border-color:var(--danger);box-shadow:0 0 0 3px rgba(179,64,47,.13)}
.err-msg{display:none;font-size:.76rem;color:var(--danger)}
.field.error .err-msg{display:block}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.consent{display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-start;gap:.65rem;margin:.4rem 0 1.4rem}
/* Ohne diese drei Regeln scheitert die Checkbox lautlos: das JS setzt .error auf
   .consent, aber die Fehler-Regeln oben greifen nur auf .field. */
.consent .err-msg{flex:0 0 100%;margin-left:1.65rem}
.consent.error .err-msg{display:block}
.consent.error input{outline:2px solid var(--danger);outline-offset:2px}
.consent input{width:auto;margin-top:.25rem;flex:none;accent-color:var(--gold-deep)}
.consent label{font-size:.82rem;color:#6a6450;font-weight:400;line-height:1.5}
.consent a{color:var(--gold-deep);border-bottom:1px solid rgba(125,96,38,.4)}
.form .hint{font-size:.8rem;color:#8a7c5f;margin-top:-.4rem;margin-bottom:1.2rem}
.form-success{background:#fff;border:1px solid var(--gold);border-radius:5px;padding:clamp(2rem,4vw,3rem);text-align:center}
.form-success .check{width:54px;height:54px;border-radius:50%;background:rgba(189,154,87,.15);color:var(--gold-deep);display:flex;align-items:center;justify-content:center;margin:0 auto 1.2rem;font-size:1.6rem}
.form-success h3{font-size:1.7rem;margin-bottom:.6rem}
.form-success p{color:#6a6450;max-width:42ch;margin:0 auto}
.form-aside{font-size:.95rem}
.form-aside h3{font-family:var(--sans);font-weight:500;font-size:1.05rem;letter-spacing:0;margin-bottom:.8rem}
.form-aside p{color:#6a6450;margin-bottom:1.2rem;max-width:38ch}

/* info / contact cards */
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.4rem;margin-top:2.5rem}
.info-card{background:#fff;border:1px solid var(--line);border-radius:5px;padding:1.8rem}
.info-card .ic-lab{font:500 .72rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep)}
.info-card h3{font-family:var(--sans);font-weight:500;font-size:1.15rem;letter-spacing:0;margin:.7rem 0 .4rem}
.info-card p,.info-card a{color:#524c3b;font-size:.95rem}
.info-card a{display:inline-block;max-width:100%;overflow-wrap:anywhere;border-bottom:1px solid rgba(125,96,38,.4);color:var(--gold-deep)}
.social-row{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:.8rem}
.social-row a{font-size:.82rem;border:1px solid var(--line);border-radius:2px;padding:.5rem .85rem;color:#524c3b;transition:.2s}
.social-row a:hover{border-color:var(--gold);color:var(--gold-deep)}

/* press list */
.press-list{margin-top:2.5rem;border-top:1px solid var(--line)}
.press-list .pr{display:grid;grid-template-columns:auto 1fr auto;gap:1.4rem;align-items:center;padding:1.15rem 0;border-bottom:1px solid var(--line)}
.press-list .pr .yr{font-family:var(--serif);font-size:1.3rem;color:var(--gold-deep);min-width:3.5rem}
.press-list .pr .t{font-weight:500}
.press-list .pr .src{font-size:.85rem;color:#8a7c5f}
.dl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2rem}
.dl{display:block;background:#fff;border:1px solid var(--line);border-radius:4px;padding:1.3rem 1.4rem;transition:.2s}
.dl:hover{border-color:var(--gold)}
.dl .dt{font-weight:500;margin-bottom:.2rem}
.dl .dm{font-size:.8rem;color:#8a7c5f}

/* cta band */
.cta{background:
    radial-gradient(100% 120% at 50% 0%,rgba(189,154,87,.18),transparent 60%),
    linear-gradient(180deg,#16130d,#13100b);background-color:var(--ink);color:var(--cream);text-align:center}
.cta h2{font-size:clamp(2.1rem,4.6vw,3.6rem);max-width:18ch;margin:0 auto .9rem}
.cta p{color:rgba(247,243,234,.78);max-width:44ch;margin:0 auto 2rem;font-size:1.08rem}
.cta-btns{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap}

/* footer */
footer{background:#100d09;color:rgba(247,243,234,.62);padding:clamp(3.5rem,7vh,5rem) 0 2rem}
.foot-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2rem}
.foot-brand .brand{color:var(--cream);display:block;margin-bottom:.8rem}
.foot-brand p{font-size:.9rem;max-width:30ch}
.foot-col h4{font:500 .74rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:1.1rem}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:.6rem}
.foot-col a{font-size:.9rem;transition:color .2s}
.foot-col a:hover{color:var(--gold-soft)}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.6rem;border-top:1px solid var(--line-light);font-size:.78rem;color:rgba(247,243,234,.4)}
.foot-bottom a{border-bottom:1px solid rgba(247,243,234,.25)}
.foot-bottom a:hover{color:var(--gold-soft)}

@media(max-width:900px){
  .nav-links,.lang{display:none}
  .nav-toggle{display:flex}
  .mobile-menu{display:flex}
  .nav-right{gap:.8rem}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(1),.stat:nth-child(2){border-bottom:1px solid var(--line-light)}
  .story-grid{grid-template-columns:1fr}
  .cards,.paths-grid{grid-template-columns:1fr}
  .egrid{grid-template-columns:1fr 1fr}
  .form-layout{grid-template-columns:1fr}
  .dl-grid{grid-template-columns:1fr}
  .frow{grid-template-columns:1fr}
  .frow:nth-child(even) .frow-media{order:0}
  .wrow{grid-template-columns:auto 1fr;gap:1rem}
  .wrow .pricing{grid-column:2;text-align:left}
  .wrow .wbtn{grid-column:1/-1}
  .route-grid{grid-template-columns:1fr}
  .fmt-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
  .addr{grid-template-columns:1fr}
  .foot-top{grid-template-columns:1fr 1fr}
  .foot-brand{grid-column:1/-1}
}
@media(max-width:560px){
  .stats-grid{grid-template-columns:1fr}
  .stat{border-right:0;border-bottom:1px solid var(--line-light)}
  .foot-top{grid-template-columns:1fr}
  .brand{font-size:.92rem;letter-spacing:.12em}
  .hero h1{font-size:clamp(2.3rem,10vw,3rem)}
  .hero .lede{font-size:1.02rem}
  .egrid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .nav-right .btn-gold{display:none}
}

/* ============ BOOK PAGE (»Bittersüßer Tanz«) ============ */
.book-hero{background:var(--ink);color:var(--cream);padding:clamp(4.5rem,10vw,7.5rem) 0 clamp(3.5rem,8vw,6rem)}
.book-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.book-hero-text h1{font-family:var(--serif);font-weight:500;font-size:clamp(2.6rem,6vw,4.6rem);line-height:1.02;margin:.6rem 0 1rem}
.book-hero-text .lede{color:rgba(247,243,234,.82);font-size:clamp(1.02rem,1.6vw,1.22rem);line-height:1.6;max-width:36ch}
.book-hero .cta-btns{justify-content:flex-start;margin-top:1.8rem}
.book-hero-meta{margin-top:1.5rem;font-size:.8rem;letter-spacing:.05em;color:rgba(247,243,234,.5)}
.book-hero-cover{display:flex;justify-content:center}
.book-hero-cover img{width:100%;max-width:340px;height:auto;border-radius:3px;box-shadow:0 32px 70px rgba(0,0,0,.55);transform:rotate(-2.5deg);transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.book-hero-cover img:hover{transform:rotate(0)}
.block-h{font-family:var(--serif);font-weight:500;font-size:clamp(1.8rem,3.6vw,2.8rem);line-height:1.08;margin:.5rem 0 1.4rem;max-width:22ch}
.pullquote-band{text-align:center}
.pullquote{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(1.6rem,4.2vw,2.9rem);line-height:1.25;max-width:22ch;margin:0 auto;color:var(--ink)}
.book-themes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.4rem;margin-top:2.4rem}
.book-themes .bt{padding:1.7rem 1.5rem;background:var(--cream-2);border:1px solid var(--line);border-radius:6px}
.book-themes .bt h3{font-family:var(--serif);font-weight:500;font-size:1.3rem;margin-bottom:.5rem}
.book-themes .bt p{font-size:.95rem;line-height:1.55;color:#4a4434}
.book-facts-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.book-facts{margin-top:1.2rem}
.book-facts>div{display:grid;grid-template-columns:8.5rem 1fr;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}
.book-facts dt{font:600 .74rem/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep)}
.book-facts dd{font-size:1rem;color:var(--ink)}
.book-order{background:var(--ink);color:var(--cream);padding:clamp(1.8rem,4vw,2.4rem);border-radius:8px}
.book-order h3{font-family:var(--serif);font-weight:500;font-size:1.6rem;margin-bottom:.6rem}
.book-order p{color:rgba(247,243,234,.78);font-size:.96rem;line-height:1.55;margin-bottom:1.5rem}
.book-order .btn{width:100%;justify-content:center}
.book-order .link-arrow{display:inline-flex;margin-top:1.1rem}
/* Homepage book callout band */
.book-cta{background:var(--ink-2);color:var(--cream)}
.book-cta .wrap{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(1.5rem,4vw,3rem);align-items:center}
.book-cta .bc-cover{width:96px;height:auto;border-radius:2px;box-shadow:0 14px 34px rgba(0,0,0,.5);flex:none}
.book-cta .bc-eyebrow{color:var(--gold-soft);font:500 .72rem/1 var(--sans);letter-spacing:.22em;text-transform:uppercase}
.book-cta h2{font-family:var(--serif);font-weight:500;font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.12;margin:.5rem 0 .4rem}
.book-cta p{color:rgba(247,243,234,.74);font-size:.98rem;max-width:46ch}
.book-cta .bc-lesungen{margin-top:.7rem;font-size:.9rem;color:rgba(247,243,234,.85)}
.book-cta .bc-lesungen strong{color:var(--gold-soft);font-weight:500}
.book-cta .bc-lesungen a{color:var(--gold-soft);border-bottom:1px solid rgba(216,192,138,.4);margin-left:.35rem;white-space:nowrap;transition:border-color .2s}
.book-cta .bc-lesungen a:hover{border-bottom-color:var(--gold-soft)}
/* About-page book strip */
.book-strip-cover{display:flex;justify-content:center}
.book-strip-cover img{width:auto;max-width:100%;max-height:400px;height:auto;border-radius:3px;box-shadow:0 24px 54px rgba(21,18,13,.28);transform:rotate(-2deg)}
@media(max-width:820px){
  .book-hero-grid{grid-template-columns:1fr;text-align:center}
  .book-hero-cover{order:-1;margin-bottom:1.5rem}
  .book-hero-cover img{max-width:230px;transform:none}
  .book-hero-text .lede{margin-left:auto;margin-right:auto}
  .book-hero .cta-btns{justify-content:center}
  .book-facts-grid{grid-template-columns:1fr}
  .book-facts>div{grid-template-columns:7rem 1fr}
  .book-cta .wrap{grid-template-columns:1fr;text-align:center;justify-items:center}
  .book-cta p{margin-left:auto;margin-right:auto}
}

/* ---- Druck ----------------------------------------------------------------
   Veranstalter und Redaktionen drucken die Anfragen-, Kontakt- und Vita-Seiten
   aus. Ohne diese Regeln landen Navigation, Hero-Bild und Footer mit auf dem
   Papier — und alles, was .reveal noch nicht eingeblendet hat, bleibt weiss. */
@media print{
  .ribbon,header,.mobile-menu,.nav-toggle,footer,.intro,.skip,
  .hero-media,.hero-scrim,.page-hero-bg,.page-hero-scrim,
  .btn,.cta-btns,.tfilter,.link-arrow::after{display:none!important}
  .reveal{opacity:1!important;transform:none!important}
  body{background:#fff;color:#000}
  .hero,.page-hero{min-height:auto;padding:0 0 1.5rem;color:#000}
  .hero h1,.page-hero h1,.hero .lede,.page-hero .lede,.eyebrow.light{color:#000}
  .band{padding:1.2rem 0!important;break-inside:avoid}
  .wrow,.info-card,.pcard,.addr-card,.faq details{break-inside:avoid}
  /* Kein ::after mit der URL: E-Mail und Telefon stehen auf diesen Seiten
     ohnehin als Text im Link — angehängt käme jede Angabe doppelt aufs Papier. */
}

/* ---- Shop --------------------------------------------------------------- */
.shopgroup{font-family:var(--serif);font-weight:400;font-size:clamp(1.3rem,2.4vw,1.75rem);letter-spacing:-.01em;margin:2.6rem 0 1.2rem}
#ekat-shop{margin-top:.4rem}
.shopgroup:first-child{margin-top:0}
.shopgrid{gap:1.3rem}
.shopcard{display:flex;flex-direction:column;gap:.85rem;padding:1rem 1rem 1.2rem}
/* Quadratischer Rahmen, damit unterschiedlich beschnittene Produktfotos in
   einer Reihe nicht springen. */
.shopimg{position:relative;aspect-ratio:1;overflow:hidden;border-radius:3px;background:var(--cream-2)}
.shopimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.shopcard:hover .shopimg img{transform:scale(1.04)}
.shopcard h3{font-family:var(--serif);font-weight:400;font-size:1.02rem;line-height:1.25}
.shopcard .link-arrow{margin-top:auto}
@media(max-width:640px){
  .shopgrid{grid-template-columns:repeat(2,1fr);gap:.9rem}
  .shopcard{padding:.7rem .7rem 1rem}
  .shopcard h3{font-size:.92rem}
  .shopcard .link-arrow{font-size:.76rem}
}
.shopnote{color:#6a6450;font-size:.95rem;margin-bottom:2.2rem}

/* Der Buchblock beginnt auf schmalen Bildschirmen mit dem Cover statt mit
   einer Überschrift. Bild plus voller Blockabstand ergab über 200px Leere —
   ein Viertel eines Handybildschirms. */
@media(max-width:900px){
  section.band.book-strip{padding-top:clamp(1.5rem,3vh,2.5rem)}
  /* Der Abstand entsteht aus zwei Blöcken. Wo :has() fehlt, greift nur die
     Regel darüber — dann bleibt es beim bisherigen, schon besseren Wert. */
  .band:has(+ .book-strip){padding-bottom:clamp(1.5rem,3vh,2.5rem)}
}
