/* =====================================================================
   Tönsberghaus – Haupt-Stylesheet (Sektions-Baukasten, Komponenten, Patterns)
   Struktur: 1 Basis/Utilities · 2 Sektionen & Bühnen · 3 Erzählen & Scrollen · 4 Interaktion · 5 Beweis & Vertrauen
             6 Buchung & Formular · 7 Footer & Sticky · 8 Motion-Hooks · 9 Print
   Tokens: critical.css (inline). Pattern-Doku: .claude/section-playbook.md
   ===================================================================== */

/* 1 · Basis & Utilities ------------------------------------------------ */
.main{display:block}
.section{padding-block:var(--sp-section)}
.section--tight{padding-block:var(--sp-block)}
.section--stone{background:var(--c-stone)}
.section--sky{background:var(--c-sky)}
.section--green{background:var(--c-green);color:var(--c-ink)}
.section--forest{background:var(--c-forest);color:#fff}
.section--forest a:not(.btn){color:#cfe6b0}
.section--forest .eyebrow{color:var(--c-green)}
.section--white{background:#fff}
.section--texture{background:var(--c-stone) url("/assets/img/textur/putz.svg") repeat;background-size:400px}
.stack>*+*{margin-top:1rem}
.prose{max-width:66ch}
.prose h2,.prose h3{margin-top:1.6em}
.prose ul,.prose ol{padding-left:1.2em}
.prose li{margin-bottom:.35em}
.prose table{margin:1.5em 0}
.small{font-size:var(--fs-small);color:var(--c-ink-2)}
.muted{color:var(--c-ink-2)}
.center{text-align:center}
.grid{display:grid;gap:var(--sp-block)}
.cols-2{grid-template-columns:1fr}
.cols-3{grid-template-columns:1fr}
.cols-4{grid-template-columns:1fr 1fr}
@media (min-width:48em){.cols-2{grid-template-columns:1fr 1fr}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}}
.split{display:grid;gap:var(--sp-block);align-items:center}
@media (min-width:56em){.split{grid-template-columns:1fr 1fr}.split--wide-media{grid-template-columns:1.25fr 1fr}.split--rev>:first-child{order:2}}
.offset{display:grid;gap:var(--sp-block)}
@media (min-width:56em){.offset{grid-template-columns:5fr 7fr}.offset>:first-child{margin-top:clamp(2rem,8vw,7rem)}.offset--rev{grid-template-columns:7fr 5fr}.offset--rev>:first-child{margin-top:0}.offset--rev>:last-child{margin-top:clamp(2rem,8vw,7rem)}}
.display{font-family:var(--f-display);font-size:var(--fs-giant);line-height:.85;letter-spacing:-.04em;font-weight:500;font-variation-settings:"SOFT" 60,"WONK" 1,"opsz" 144;font-variant-numeric:tabular-nums}
.display--outline{color:transparent;-webkit-text-stroke:2px currentColor}
.display--ghost{opacity:.12}
.giant-num{font-family:var(--f-display);font-size:var(--fs-giant);line-height:.85;letter-spacing:-.04em;font-weight:500;font-variant-numeric:tabular-nums;font-variation-settings:"opsz" 144,"SOFT" 50}
.giant-num small{font-size:.28em;letter-spacing:0;vertical-align:baseline;margin-left:.1em;font-family:var(--f-text);font-weight:600}
.h-lg{font-size:clamp(2.4rem,1.5rem + 4vw,5rem);line-height:.98}
.tabular{font-variant-numeric:tabular-nums}
.check-list{list-style:none;margin:0;padding:0}
.check-list li{position:relative;padding-left:2rem;margin-bottom:.6rem}
.check-list li::before{content:"";position:absolute;left:0;top:.35em;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--c-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5' fill='none' stroke='%231b1f1a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/70% no-repeat}
.section--forest .check-list li::before{background-color:var(--c-green)}
.tag{display:inline-block;padding:.25rem .65rem;border-radius:999px;background:var(--c-stone);font-size:.8rem;font-weight:600;letter-spacing:.02em}
.tag--green{background:var(--c-green);color:var(--c-ink)}
.tag--dark{background:var(--c-ink);color:#fff}
.updated{font-size:var(--fs-small);color:var(--c-ink-3)}
.crumbs{font-size:.85rem;padding:.9rem 0}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.3rem}
.crumbs li+li::before{content:"/";margin-right:.3rem;color:var(--c-ink-3)}
.crumbs a{color:var(--c-ink-2);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.crumbs [aria-current]{color:var(--c-ink)}
.hero .crumbs,.hero .crumbs a,.hero .crumbs [aria-current]{color:rgba(255,255,255,.8)}
.hero .crumbs{padding:0 0 1.5rem}
.review-note{display:none}
table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
th,td{text-align:left;padding:.7rem .8rem;border-bottom:1px solid var(--c-stone-2);vertical-align:top}
th{font-weight:700;background:rgba(27,31,26,.04)}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.card{position:relative;display:block;overflow:hidden;border-radius:var(--r-m);background:var(--c-forest);color:#fff;text-decoration:none;aspect-ratio:4/5;isolation:isolate}
.card img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.card:hover img{transform:scale(1.05)}
.card__body{position:absolute;inset:auto 0 0 0;padding:1.4rem;background:linear-gradient(180deg,rgba(18,38,27,0),rgba(18,38,27,.85));color:#fff}
.card__body h3{color:#fff;margin:0 0 .3rem}
.card__meta{font-size:.9rem;opacity:.9;margin:0}
.card--wide{aspect-ratio:16/10}
.card--tall{aspect-ratio:3/4}

/* 2 · Sektionen & Bühnen ----------------------------------------------- */
.hero--split{min-height:auto;background:var(--c-sand);color:var(--c-ink);align-items:stretch}
.hero--split .hero__inner{display:grid;gap:var(--sp-block);padding-top:var(--sp-block)}
.hero--split .lead{color:var(--c-ink-2)}
.hero--split h1{text-shadow:none}
@media (min-width:56em){.hero--split .hero__inner{grid-template-columns:1.1fr 1fr;align-items:end}}
.hero--split .hero__media{position:relative;inset:auto;z-index:0;border-radius:var(--r-m);overflow:hidden;box-shadow:var(--shadow)}
.hero--split .hero__media img{aspect-ratio:4/3;height:auto}
.hero--short{min-height:min(62svh,44rem)}
.hero__note{position:absolute;right:var(--gutter);bottom:1rem;font-size:.75rem;opacity:.75;max-width:22rem;text-align:right}
.hero__giant{position:absolute;right:-.05em;bottom:-.1em;z-index:0;font-family:var(--f-display);font-size:clamp(8rem,28vw,32rem);line-height:.8;letter-spacing:-.05em;color:rgba(255,255,255,.08);pointer-events:none;user-select:none;font-variation-settings:"opsz" 144}
.band{position:relative;min-height:clamp(22rem,56vw,38rem);display:grid;align-items:end;color:#fff;background:var(--c-forest);isolation:isolate;overflow:hidden}
.band__media{position:absolute;inset:0;z-index:-2}
.band__media img{width:100%;height:100%;object-fit:cover}
.band__media--fixed img{object-position:center 60%}
.band__scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(18,38,27,.75) 0%,rgba(18,38,27,.25) 60%,rgba(18,38,27,.05) 100%)}
.band--bottom .band__scrim{background:linear-gradient(180deg,rgba(18,38,27,0) 30%,rgba(18,38,27,.8) 100%)}
.band__inner{padding:var(--sp-section) var(--gutter);max-width:var(--wrap-wide);margin:0 auto;width:100%}
.band h2{max-width:16ch;font-size:clamp(2.2rem,1.4rem + 4vw,5.2rem)}
.band .lead{color:rgba(255,255,255,.9)}
.band__giant{font-family:var(--f-display);font-size:clamp(5rem,20vw,20rem);line-height:.8;letter-spacing:-.04em;margin:0;font-variation-settings:"opsz" 144}
.band__giant small{font-family:var(--f-text);font-size:.2em;letter-spacing:.02em;font-weight:600;margin-left:.2em}
.break{padding-block:var(--sp-section);color:var(--c-ink)}
.break--green{background:var(--c-green)}
.break--forest{background:var(--c-forest);color:#fff}
.break--stone{background:var(--c-stone)}
.break__inner{display:grid;gap:var(--sp-block);align-items:center}
@media (min-width:56em){.break__inner{grid-template-columns:2fr 1fr}}
.break h2{font-size:clamp(2.2rem,1.4rem + 4vw,5rem);max-width:14ch}
.duo{display:grid;gap:.5rem}
@media (min-width:48em){.duo{grid-template-columns:1fr 1fr}}
.duo__tile{position:relative;min-height:clamp(22rem,50vw,36rem);display:grid;align-items:end;color:#fff;text-decoration:none;overflow:hidden;isolation:isolate}
.duo__tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.4s var(--ease)}
.duo__tile:hover img{transform:scale(1.04)}
.duo__tile::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(18,38,27,0) 30%,rgba(18,38,27,.85))}
.duo__body{padding:2rem var(--gutter)}
.duo__body h2,.duo__body h3{color:#fff;font-size:clamp(2rem,1.5rem + 2.5vw,3.6rem);margin-bottom:.4rem}
.duo__body p{max-width:34ch;margin-bottom:1rem}
.duo__body .btn{margin-top:.3rem}
.duo__label{display:inline-block;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--c-green);margin-bottom:.6rem}
.frame{border-radius:var(--r-m);overflow:hidden;box-shadow:var(--shadow)}
.frame img{width:100%}
.figure{margin:0}
.figure figcaption{font-size:var(--fs-small);color:var(--c-ink-2);padding:.6rem 0}
.bleed-right{margin-right:calc(-1*var(--gutter))}
.bleed-left{margin-left:calc(-1*var(--gutter))}
@media (min-width:96em){.bleed-right,.bleed-left{margin:0}}
.overlap-up{margin-top:calc(-1*clamp(3rem,10vw,9rem));position:relative;z-index:2}
.overlap-down{margin-bottom:calc(-1*clamp(3rem,8vw,7rem));position:relative;z-index:2}
.float-obj{position:relative}
@media (min-width:56em){.float-obj--out{margin-right:-15%}.float-obj--in{margin-left:-12%}}

/* 3 · Erzählen & Scrollen ---------------------------------------------- */
.numbers{display:grid;gap:2rem;padding-block:var(--sp-section)}
@media (min-width:48em){.numbers{grid-template-columns:repeat(2,1fr)}}
@media (min-width:64em){.numbers{grid-template-columns:repeat(4,1fr)}}
.numbers__item{border-top:2px solid currentColor;padding-top:1rem}
.numbers__value{display:block;font-family:var(--f-display);font-size:clamp(3.5rem,2rem + 6vw,7rem);line-height:.9;letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-variation-settings:"opsz" 144,"SOFT" 50}
.numbers__value small{font-size:.35em;font-family:var(--f-text);font-weight:600;letter-spacing:0;margin-left:.15em}
.numbers__label{display:block;margin-top:.6rem;font-weight:600}
.numbers__note{display:block;font-size:var(--fs-small);color:inherit;opacity:.75}
.story{position:relative}
.story__stage{position:sticky;top:var(--header-h);height:calc(100svh - var(--header-h));overflow:hidden;background:var(--c-forest)}
.story__frame{position:absolute;inset:0;opacity:0;transition:opacity .8s var(--ease)}
.story__frame.is-active{opacity:1}
.story__frame img{width:100%;height:100%;object-fit:cover}
.story__frame::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,38,27,.7),rgba(18,38,27,.1))}
.story__steps{position:relative;z-index:1;margin-top:calc(-100svh + var(--header-h));padding-bottom:20svh}
.story__step{min-height:80svh;display:flex;align-items:center;padding:0 var(--gutter)}
.story__card{max-width:34rem;background:rgba(246,242,234,.96);color:var(--c-ink);padding:2rem;border-radius:var(--r-m);box-shadow:var(--shadow)}
.story__card .eyebrow{margin-bottom:.4rem}
.story__card h3{font-size:clamp(1.6rem,1.2rem + 1.6vw,2.4rem)}
.no-js .story__stage,.reduced .story__stage{position:relative;height:auto}
.no-js .story__frame,.reduced .story__frame{position:relative;opacity:1;aspect-ratio:16/9}
.no-js .story__steps,.reduced .story__steps{margin-top:0}
.no-js .story__step,.reduced .story__step{min-height:auto;padding-block:1.5rem}
.rail{position:relative}
.rail__head{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}
.rail__nav{display:flex;gap:.5rem}
.rail__btn{width:3rem;height:3rem;border-radius:50%;border:2px solid currentColor;background:transparent;color:inherit;display:inline-grid;place-items:center;cursor:pointer}
.rail__btn:hover{background:var(--c-ink);color:#fff;border-color:var(--c-ink)}
.rail__track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--gutter) 1rem;margin:0 calc(-1*var(--gutter));scrollbar-width:none;cursor:grab}
.rail__track::-webkit-scrollbar{display:none}
.rail__track.is-dragging{cursor:grabbing;scroll-snap-type:none}
.rail__item{flex:0 0 min(78vw,22rem);scroll-snap-align:start}
.rail__item--wide{flex-basis:min(85vw,30rem)}
.rail__card{background:#fff;border-radius:var(--r-m);overflow:hidden;height:100%;display:flex;flex-direction:column;box-shadow:0 10px 30px -18px rgba(20,30,20,.35)}
.rail__card img{aspect-ratio:4/3;object-fit:cover;width:100%}
.rail__body{padding:1.2rem 1.3rem 1.4rem;display:flex;flex-direction:column;gap:.4rem}
.rail__body h3{margin:0;font-size:1.25rem}
.rail__km{font-family:var(--f-display);font-size:2rem;line-height:1;font-variant-numeric:tabular-nums;color:var(--c-green-ink)}
.rail__km small{font-size:.45em;font-family:var(--f-text);font-weight:600}
.rail__body p{margin:0;font-size:.95rem;color:var(--c-ink-2)}
.stack-cards{display:grid;gap:1rem}
.stack-card{position:sticky;top:calc(var(--header-h) + 1rem);background:#fff;border-radius:var(--r-l);padding:clamp(1.5rem,4vw,3rem);box-shadow:0 -10px 40px -20px rgba(20,30,20,.3);border:1px solid var(--c-stone-2);display:grid;gap:1.5rem}
.stack-card:nth-child(2){top:calc(var(--header-h) + 2.5rem)}
.stack-card:nth-child(3){top:calc(var(--header-h) + 4rem)}
.stack-card:nth-child(4){top:calc(var(--header-h) + 5.5rem)}
.stack-card:nth-child(5){top:calc(var(--header-h) + 7rem)}
@media (min-width:56em){.stack-card{grid-template-columns:1fr 1fr;align-items:center}}
.stack-card__num{font-family:var(--f-display);font-size:clamp(3rem,6vw,6rem);line-height:.9;color:var(--c-green);font-variation-settings:"opsz" 144}
.stack-card h3{font-size:clamp(1.6rem,1.2rem + 1.5vw,2.4rem)}
.stack-card img{border-radius:var(--r-m);aspect-ratio:4/3;object-fit:cover;width:100%}
.stack-card--forest{background:var(--c-forest);color:#fff;border-color:transparent}
.stack-card--forest h3{color:#fff}
.stack-card--green{background:var(--c-green);border-color:transparent}
.stack-card--stone{background:var(--c-stone);border-color:transparent}
.stack-card--sky{background:var(--c-sky);border-color:transparent}
.sticky-split{display:grid;gap:var(--sp-block)}
@media (min-width:56em){.sticky-split{grid-template-columns:1fr 1fr;align-items:start}.sticky-split__media{position:sticky;top:calc(var(--header-h) + 1.5rem)}}
.sticky-split__text>*+*{margin-top:var(--sp-block)}
.timeline{list-style:none;margin:0;padding:0;display:grid;gap:clamp(2rem,6vw,4rem)}
.timeline__item{display:grid;gap:1rem;position:relative;padding-left:1.5rem;border-left:2px solid var(--c-stone-2)}
@media (min-width:56em){.timeline__item{grid-template-columns:minmax(10rem,1fr) 2fr;gap:2rem;padding-left:0;border-left:0}}
.timeline__year{font-family:var(--f-display);font-size:clamp(3rem,2rem + 6vw,7.5rem);line-height:.85;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--c-green-ink);font-variation-settings:"opsz" 144}
.timeline__year small{display:block;font-family:var(--f-text);font-size:.2em;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--c-ink-2);margin-top:.5em}
.timeline__body h3{font-size:clamp(1.4rem,1.2rem + 1vw,2rem)}
.timeline__body img{border-radius:var(--r-m);margin-top:1rem;max-width:26rem}
.marquee{overflow:hidden;position:relative;padding:1.1rem 0;border-block:1px solid rgba(27,31,26,.12);background:var(--c-sand)}
.marquee__track{display:flex;gap:3rem;width:max-content;animation:marquee 60s linear infinite;padding-left:1rem}
.marquee:hover .marquee__track,.marquee.is-paused .marquee__track{animation-play-state:paused}
.marquee__item{white-space:nowrap;font-family:var(--f-display);font-size:clamp(1.3rem,1rem + 1.4vw,2.2rem);font-variation-settings:"opsz" 48,"SOFT" 40}
.marquee__item b{font-family:var(--f-text);font-size:.55em;font-weight:700;color:var(--c-green-ink);margin-left:.4em;vertical-align:middle}
.marquee__toggle{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);width:2.4rem;height:2.4rem;border-radius:50%;border:0;background:var(--c-ink);color:#fff;display:grid;place-items:center;cursor:pointer;z-index:2}
@keyframes marquee{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marquee__track{animation:none;flex-wrap:wrap;width:auto;gap:1rem 2rem}.marquee__toggle{display:none}}
.parallax-layer{will-change:transform}

/* 4 · Interaktion & Exploration ---------------------------------------- */
.tabs__list{display:flex;flex-wrap:wrap;gap:.4rem;border-bottom:2px solid var(--c-stone-2);margin-bottom:var(--sp-block);list-style:none;padding:0}
.tabs__tab{background:transparent;border:0;border-bottom:3px solid transparent;margin-bottom:-2px;padding:.8rem 1rem;font:inherit;font-weight:600;color:var(--c-ink-2);cursor:pointer}
.tabs__tab[aria-selected="true"]{color:var(--c-ink);border-bottom-color:var(--c-green)}
.tabs__panel[hidden]{display:none}
.no-js .tabs__list{display:none}
.no-js .tabs__panel[hidden]{display:block}
.no-js .tabs__panel+.tabs__panel{margin-top:var(--sp-block);padding-top:var(--sp-block);border-top:1px solid var(--c-stone-2)}
.switch{display:inline-flex;background:var(--c-stone);border-radius:999px;padding:.3rem;gap:.2rem}
.switch__btn{border:0;background:transparent;padding:.6rem 1.2rem;border-radius:999px;font:inherit;font-weight:600;color:var(--c-ink-2);cursor:pointer}
.switch__btn[aria-pressed="true"]{background:var(--c-ink);color:#fff}
.faq__head{margin-bottom:var(--sp-block)}
.faq__list{display:grid;gap:.5rem}
.faq__item{background:#fff;border:1px solid var(--c-stone-2);border-radius:var(--r-m)}
.section--forest .faq__item{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.15)}
.section--stone .faq__item,.section--sky .faq__item{background:#fff}
.faq__item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.3rem;font-weight:700;font-size:1.05rem}
.faq__item summary::-webkit-details-marker{display:none}
.faq__icon{transition:transform .3s;width:1.4rem;height:1.4rem}
.faq__item[open] .faq__icon{transform:rotate(45deg)}
.faq__body{padding:0 1.3rem 1.3rem;max-width:70ch}
.faq__body p:last-child{margin-bottom:0}
.hotspots{position:relative;max-width:56rem;margin-inline:auto}
.hotspots__figure{margin:0;position:relative;background:#fff;border-radius:var(--r-m);padding:clamp(.5rem,2vw,1.5rem);box-shadow:var(--shadow)}
.hotspots__figure img{width:100%;height:auto}
.hotspot{position:absolute;width:2.2rem;height:2.2rem;margin:-1.1rem 0 0 -1.1rem;border-radius:50%;border:0;background:var(--c-green);color:var(--c-ink);font-weight:800;font-size:.9rem;display:grid;place-items:center;cursor:pointer;box-shadow:0 0 0 4px rgba(143,202,70,.35);transition:transform .25s}
.hotspot:hover,.hotspot[aria-expanded="true"]{transform:scale(1.15);background:var(--c-ink);color:#fff}
.hotspot__pop{position:absolute;z-index:5;width:min(18rem,80vw);background:var(--c-ink);color:#fff;padding:.9rem 1rem;border-radius:var(--r-s);font-size:.92rem;line-height:1.45;box-shadow:var(--shadow);transform:translate(-50%,.8rem)}
.hotspot__pop[hidden]{display:none}
.hotspot__pop strong{display:block;margin-bottom:.2rem;color:var(--c-green)}
.hotspots__legend{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.4rem 1.5rem;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));font-size:.95rem}
.hotspots__legend b{display:inline-grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--c-green);color:var(--c-ink);font-size:.75rem;margin-right:.5rem}
.no-js .hotspot{display:none}
.no-js .hotspot__pop{display:block;position:static;transform:none;width:auto;margin-top:.5rem}
.compare__filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:var(--sp-block);align-items:center}
.compare__filters span{font-weight:600;margin-right:.5rem}
.chip{border:2px solid var(--c-ink);background:transparent;color:var(--c-ink);border-radius:999px;padding:.45rem 1rem;font:inherit;font-weight:600;cursor:pointer}
.chip[aria-pressed="true"]{background:var(--c-ink);color:#fff}
.compare__grid{display:grid;gap:1.2rem}
@media (min-width:48em){.compare__grid{grid-template-columns:1fr 1fr}}
@media (min-width:72em){.compare__grid{grid-template-columns:repeat(4,1fr)}}
.apt-card{background:#fff;border-radius:var(--r-m);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 12px 30px -18px rgba(20,30,20,.35);transition:opacity .3s,transform .3s}
.apt-card.is-dim{opacity:.35}
.apt-card img{aspect-ratio:4/3;object-fit:cover;width:100%}
.apt-card__body{padding:1.3rem 1.4rem 1.5rem;display:grid;gap:.6rem;flex:1}
.apt-card__title{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.apt-card__title h3{margin:0;font-size:1.6rem}
.apt-card__area{font-family:var(--f-display);font-size:1.6rem;color:var(--c-green-ink);font-variant-numeric:tabular-nums}
.apt-card__specs{display:flex;flex-wrap:wrap;gap:.4rem .9rem;font-size:.92rem;color:var(--c-ink-2);margin:0;padding:0;list-style:none}
.apt-card__specs li{display:inline-flex;align-items:center;gap:.35rem}
.apt-card__price{margin-top:auto;padding-top:.6rem;border-top:1px solid var(--c-stone-2);display:flex;justify-content:space-between;align-items:end;gap:1rem}
.apt-card__price strong{font-size:1.25rem}
.apt-card__price small{color:var(--c-ink-2)}
.apt-card__actions{display:flex;gap:.5rem;flex-wrap:wrap}
.gallery__filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:var(--sp-block)}
.gallery__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}
@media (min-width:48em){.gallery__grid{grid-template-columns:repeat(3,1fr)}}
@media (min-width:72em){.gallery__grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:16rem;grid-auto-flow:dense}}
.gallery__item{position:relative;margin:0;border-radius:var(--r-s);overflow:hidden;background:var(--c-stone)}
.gallery__item img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;transition:transform 1s var(--ease)}
@media (min-width:72em){.gallery__item img{aspect-ratio:auto}.gallery__item--wide{grid-column:span 2}.gallery__item--tall{grid-row:span 2}}
.gallery__item:hover img{transform:scale(1.04)}
.gallery__item.is-hidden{display:none}
.gallery__btn{position:absolute;inset:0;width:100%;height:100%;background:transparent;border:0;cursor:zoom-in;color:transparent}
.gallery__btn:focus-visible{outline-offset:-4px}
.gallery__cap{position:absolute;left:0;right:0;bottom:0;padding:.6rem .8rem;background:linear-gradient(180deg,transparent,rgba(18,38,27,.8));color:#fff;font-size:.85rem;pointer-events:none}
.lightbox{border:0;padding:0;background:transparent;max-width:min(96vw,90rem);width:auto}
.lightbox::backdrop{background:rgba(18,38,27,.92)}
.lightbox__inner{position:relative;color:#fff}
.lightbox__inner img{max-height:82vh;width:auto;max-width:96vw;object-fit:contain;border-radius:var(--r-s)}
.lightbox__cap{padding:.8rem 0;font-size:.95rem}
.lightbox__close,.lightbox__prev,.lightbox__next{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;width:3rem;height:3rem;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.lightbox__close{top:.5rem;right:.5rem}
.lightbox__prev{left:.5rem;top:50%;transform:translateY(-50%)}
.lightbox__next{right:.5rem;top:50%;transform:translateY(-50%)}
.bento{display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr)}
@media (min-width:56em){.bento{grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(14rem,auto)}}
.bento__tile{position:relative;overflow:hidden;border-radius:var(--r-m);background:var(--c-forest);color:#fff;text-decoration:none;display:grid;align-items:end;min-height:12rem;isolation:isolate}
.bento__tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.2s var(--ease)}
.bento__tile:hover img{transform:scale(1.05)}
.bento__tile::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(18,38,27,0) 35%,rgba(18,38,27,.85))}
.bento__tile--text{background:var(--c-green);color:var(--c-ink);align-items:start}
.bento__tile--text::after{display:none}
.bento__tile--stone{background:var(--c-stone);color:var(--c-ink)}
.bento__tile--stone::after{display:none}
.bento__body{padding:1.2rem 1.3rem}
.bento__body h3{margin:0 0 .2rem;font-size:1.35rem;color:inherit}
.bento__body p{margin:0;font-size:.92rem;opacity:.9}
@media (min-width:56em){.bento__tile--2x{grid-column:span 2}.bento__tile--2y{grid-row:span 2}}
.expand{border:1px solid var(--c-stone-2);border-radius:var(--r-m);background:#fff}
.expand summary{padding:1rem 1.3rem;cursor:pointer;font-weight:700}
.expand__body{padding:0 1.3rem 1.3rem}
.scrollspy{position:sticky;top:var(--header-h);z-index:50;background:rgba(246,242,234,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(27,31,26,.1)}
.scrollspy ul{list-style:none;margin:0 auto;padding:0 var(--gutter);display:flex;gap:.2rem;overflow-x:auto;max-width:var(--wrap-wide);scrollbar-width:none}
.scrollspy ul::-webkit-scrollbar{display:none}
.scrollspy a{display:block;padding:.8rem .7rem;white-space:nowrap;font-size:.9rem;font-weight:600;color:var(--c-ink-2);text-decoration:none;border-bottom:3px solid transparent}
.scrollspy a.is-active{color:var(--c-ink);border-bottom-color:var(--c-green)}
.scrollspy .d21-trigger-ibe{margin-left:auto;align-self:center;padding:.5rem 1rem;font-size:.9rem;border-bottom:0;color:var(--c-ink)}
.tour{margin:0}
.tour__stage{position:relative;aspect-ratio:16/9;background:var(--c-forest);border-radius:var(--r-m);overflow:hidden;box-shadow:var(--shadow)}
.tour__stage img,.tour__stage iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0}
.tour__overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:rgba(18,38,27,.45);color:#fff;text-align:center;padding:1rem}
.tour__link{color:#fff;font-size:.9rem}
.tour__caption{font-size:var(--fs-small);color:var(--c-ink-2);padding:.6rem 0}
.tour.is-loaded .tour__overlay,.tour.is-loaded .tour__preview{display:none}
.map__stage{position:relative;aspect-ratio:16/10;border-radius:var(--r-m);overflow:hidden;background:var(--c-stone);box-shadow:var(--shadow)}
.map__svg{width:100%;height:100%;font-family:var(--f-text)}
.map__load{position:absolute;left:50%;bottom:1rem;transform:translateX(-50%)}
.map__stage iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map__note{font-size:var(--fs-small);color:var(--c-ink-2);margin:.6rem 0}
.map__links{display:flex;flex-wrap:wrap;gap:.5rem}
.map.is-loaded .map__load,.map.is-loaded .map__svg{display:none}

/* 5 · Beweis & Vertrauen ------------------------------------------------ */
.host{display:grid;gap:1.2rem;grid-template-columns:auto 1fr;align-items:start;background:#fff;border-radius:var(--r-m);padding:clamp(1.2rem,3vw,2rem);border:1px solid var(--c-stone-2)}
.host__mark{width:4.5rem;height:4.5rem;border-radius:50%;background:var(--c-forest);color:var(--c-green);display:grid;place-items:center;font-family:var(--f-display);font-size:1.6rem;grid-auto-flow:column;gap:.1rem}
.host__body p:last-child{margin:0}
.host__contact{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}
.host__contact a{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;text-decoration:none}
.quote{position:relative;padding:clamp(1.5rem,4vw,3rem);background:#fff;border-radius:var(--r-m);border-left:6px solid var(--c-green)}
.quote blockquote{margin:0;font-family:var(--f-display);font-size:clamp(1.3rem,1.1rem + 1vw,1.8rem);line-height:1.3;font-variation-settings:"SOFT" 60,"opsz" 32}
.quote cite{display:block;margin-top:1rem;font-style:normal;font-size:.9rem;color:var(--c-ink-2)}
.matrix{overflow-x:auto;background:#fff;border-radius:var(--r-m);box-shadow:var(--shadow)}
.matrix__table{min-width:64rem}
.matrix__caption{caption-side:bottom;text-align:left;padding:1rem 1.2rem;font-size:var(--fs-small);color:var(--c-ink-2)}
.matrix__table th[scope="row"] a{font-family:var(--f-display);font-size:1.4rem;text-decoration:none;color:var(--c-ink)}
.matrix__table th[scope="row"] a:hover{color:var(--c-green-deep)}
.matrix__table td small{display:block;color:var(--c-ink-3);font-size:.8rem}
.spec{display:grid;gap:.6rem;grid-template-columns:repeat(2,1fr)}
@media (min-width:48em){.spec{grid-template-columns:repeat(3,1fr)}}
.spec__item{background:#fff;border:1px solid var(--c-stone-2);border-radius:var(--r-m);padding:1rem 1.1rem}
.spec__item .icon{width:1.6rem;height:1.6rem;color:var(--c-green-ink);margin-bottom:.5rem}
.spec__value{display:block;font-family:var(--f-display);font-size:1.9rem;line-height:1;font-variant-numeric:tabular-nums}
.spec__value small{font-size:.5em;font-family:var(--f-text);font-weight:600}
.spec__label{display:block;font-size:.9rem;color:var(--c-ink-2);margin-top:.3rem}
.amenities{list-style:none;margin:0;padding:0;display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr)}
@media (min-width:48em){.amenities{grid-template-columns:repeat(3,1fr)}}
@media (min-width:64em){.amenities{grid-template-columns:repeat(4,1fr)}}
.amenities li{display:flex;gap:.8rem;align-items:center;padding:.9rem 1rem;border-radius:var(--r-m);background:rgba(255,255,255,.7)}
.section--forest .amenities li{background:rgba(255,255,255,.07)}
.amenities .icon{width:1.8rem;height:1.8rem;color:var(--c-green-ink)}
.section--forest .amenities .icon{color:var(--c-green)}
.amenities span{font-weight:600;font-size:.95rem}
.place{display:grid;gap:var(--sp-block)}
@media (min-width:56em){.place{grid-template-columns:1.2fr 1fr;align-items:start}}
.distances{background:#fff;border-radius:var(--r-m);overflow:hidden}
.distances th,.distances td{padding:.6rem .9rem}
.distances td:nth-child(2),.distances td:nth-child(3){text-align:right;white-space:nowrap}
.cta-band{padding-block:var(--sp-section);background:var(--c-forest);color:#fff}
.cta-band--green{background:var(--c-green);color:var(--c-ink)}
.cta-band__inner{display:grid;gap:1.5rem;align-items:center}
@media (min-width:56em){.cta-band__inner{grid-template-columns:1.4fr 1fr}}
.cta-band h2{font-size:clamp(2rem,1.3rem + 3.2vw,4rem);max-width:16ch}
.cta-band__actions{display:flex;flex-wrap:wrap;gap:.8rem}
.cta-band--green .eyebrow{color:var(--c-green-deep)}
.pricebox{background:#fff;border-radius:var(--r-m);padding:clamp(1.3rem,3vw,2rem);border:1px solid var(--c-stone-2)}
.pricebox__lead{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}
.pricebox__from{font-family:var(--f-display);font-size:clamp(2.6rem,2rem + 2vw,4rem);line-height:1;font-variant-numeric:tabular-nums}
.pricebox__from small{font-family:var(--f-text);font-size:.32em;font-weight:600;color:var(--c-ink-2)}
.pricebox table{margin-top:1rem;font-size:.95rem}
.pricebox td:last-child{text-align:right;white-space:nowrap}
.pricebox__note{font-size:var(--fs-small);color:var(--c-ink-2);margin:1rem 0 0}
.example{background:var(--c-green-soft);border-radius:var(--r-m);padding:1.2rem 1.4rem}
.example strong{font-family:var(--f-display);font-size:1.6rem}
.persona{display:grid;gap:1rem}
@media (min-width:48em){.persona{grid-template-columns:1fr 1fr}}
.persona__item{background:#fff;border-radius:var(--r-m);padding:1.4rem;border-top:4px solid var(--c-green)}
.persona__item h3{font-size:1.3rem}
.persona__item p{margin:0;color:var(--c-ink-2);font-size:.98rem}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:1rem;counter-reset:s}
@media (min-width:48em){.steps{grid-template-columns:repeat(3,1fr)}}
.steps li{counter-increment:s;position:relative;padding:1.2rem 1.2rem 1.2rem 4rem;background:#fff;border-radius:var(--r-m);border:1px solid var(--c-stone-2)}
.steps li::before{content:counter(s);position:absolute;left:1.1rem;top:1.1rem;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--c-green);color:var(--c-ink);font-weight:800;display:grid;place-items:center}
.steps h3{font-size:1.15rem;margin-bottom:.3rem}
.steps p{margin:0;font-size:.95rem;color:var(--c-ink-2)}
.section--forest .steps li{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.15)}
.section--forest .steps p{color:rgba(255,255,255,.8)}
.section--forest .steps h3{color:#fff}
.def{border-left:4px solid var(--c-green);padding:.2rem 0 .2rem 1.2rem;font-size:var(--fs-lead);line-height:1.45;max-width:62ch}
.quick-answer{background:#fff;border-radius:var(--r-m);padding:clamp(1.2rem,3vw,2rem);border:1px solid var(--c-stone-2);max-width:70ch}
.quick-answer .eyebrow{margin-bottom:.4rem}
.quick-answer p{margin:0;font-size:1.08rem}
.article-head{padding-block:var(--sp-block) 0}
.article-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;font-size:var(--fs-small);color:var(--c-ink-2);margin-bottom:var(--sp-block)}
.toc{background:#fff;border-radius:var(--r-m);padding:1.2rem 1.4rem;border:1px solid var(--c-stone-2);margin-bottom:var(--sp-block)}
.toc ol{margin:0;padding-left:1.2em}
.article-grid{display:grid;gap:var(--sp-block)}
@media (min-width:64em){.article-grid{grid-template-columns:minmax(0,1fr) 20rem;align-items:start}.article-grid aside{position:sticky;top:calc(var(--header-h) + 1.5rem)}}
.aside-box{background:var(--c-forest);color:#fff;border-radius:var(--r-m);padding:1.5rem}
.aside-box h2,.aside-box h3{color:#fff;font-size:1.3rem}
.aside-box .btn{margin-top:.6rem}
.aside-box ul{padding-left:1.1em;margin:.5rem 0 0}
.aside-box a{color:#cfe6b0}

/* 6 · Buchung & Formular ------------------------------------------------ */
.booking{position:relative;background:var(--c-stone);padding-block:var(--sp-section);z-index:3}
.booking--overlap{margin-top:calc(-1*clamp(2rem,6vw,5rem));padding-top:0;background:transparent}
.booking--overlap .booking__inner{background:var(--c-stone);border-radius:var(--r-l);padding:clamp(1.5rem,4vw,3rem);box-shadow:var(--shadow)}
.booking--compact{padding-block:var(--sp-block)}
.booking__inner{width:min(100% - 2*var(--gutter),var(--wrap));margin-inline:auto;display:grid;gap:1.5rem}
.booking__head h2{margin-bottom:.4rem}
.booking__lead{max-width:60ch;color:var(--c-ink-2);margin:0}
.booking__widget{min-height:9rem;display:grid;align-items:center}
#d21-quickbook{z-index:10000}
.booking__nojs{background:#fff;padding:1rem 1.2rem;border-radius:var(--r-m)}
.booking__steps{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
@media (min-width:48em){.booking__steps{grid-template-columns:repeat(3,1fr)}}
.booking__steps li{display:flex;gap:.7rem;align-items:center;font-size:.95rem;color:var(--c-ink-2)}
.booking__num{flex:none;width:1.9rem;height:1.9rem;border-radius:50%;background:var(--c-ink);color:#fff;display:grid;place-items:center;font-weight:800;font-size:.85rem}
.booking__trust{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;font-weight:600;font-size:.95rem}
.booking__trust li{display:inline-flex;align-items:center;gap:.4rem}
.booking__trust .icon{color:var(--c-green-ink)}
.booking__alt{margin:0;font-size:.95rem;color:var(--c-ink-2)}
.form{background:#fff;border-radius:var(--r-l);padding:clamp(1.3rem,4vw,3rem);border:1px solid var(--c-stone-2)}
.form__head h2{margin-bottom:.4rem}
.form__intro{max-width:60ch;color:var(--c-ink-2)}
.form fieldset{border:0;padding:0;margin:0 0 var(--sp-block)}
.form legend{font-family:var(--f-display);font-size:1.5rem;margin-bottom:1rem;padding:0}
.field{display:grid;gap:.35rem;margin-bottom:1.1rem}
.field label,.field__label{font-weight:600}
.field small{color:var(--c-ink-2);font-size:.85rem}
.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea{width:100%;padding:.85rem 1rem;border:2px solid var(--c-stone-2);border-radius:var(--r-s);font:inherit;background:#fff;color:var(--c-ink)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--c-green-ink);outline:none;box-shadow:0 0 0 3px rgba(143,202,70,.35)}
.field.is-invalid input,.field.is-invalid select,.field.is-invalid textarea{border-color:var(--c-clay)}
.field__error{color:var(--c-clay);font-weight:600;font-size:.9rem}
.field--check{grid-template-columns:auto 1fr;align-items:start;gap:.7rem}
.field--check input{width:1.4rem;height:1.4rem;margin-top:.2rem;accent-color:var(--c-green-ink)}
.field--check label{font-weight:400}
.field-row{display:grid;gap:0 1rem}
@media (min-width:48em){.field-row{grid-template-columns:1fr 1fr}.field-row--3{grid-template-columns:repeat(3,1fr)}}
.choice{display:grid;gap:.6rem}
@media (min-width:48em){.choice{grid-template-columns:1fr 1fr}}
.choice label{display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:start;padding:1rem 1.1rem;border:2px solid var(--c-stone-2);border-radius:var(--r-m);cursor:pointer;background:var(--c-sand)}
.choice label:has(input:checked){border-color:var(--c-green-ink);background:var(--c-green-soft)}
.choice input{width:1.3rem;height:1.3rem;margin-top:.25rem;accent-color:var(--c-green-ink)}
.choice strong{display:block}
.choice small{color:var(--c-ink-2)}
.radio-row{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem}
.radio-row label{display:inline-flex;align-items:center;gap:.4rem;font-weight:400}
.form__alert{background:#fbeae4;border-left:4px solid var(--c-clay);padding:1rem 1.2rem;border-radius:var(--r-s);margin-bottom:1.5rem}
.form__alert ul{margin:.5rem 0 0;padding-left:1.2em}
.form__group[hidden]{display:none}
.no-js .form__group[hidden]{display:block}
.form__group{padding:1.2rem;border:1px dashed var(--c-stone-2);border-radius:var(--r-m);margin-bottom:1.2rem}
.form__group h3{font-size:1.1rem;margin-bottom:.8rem}
.form__nav{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-top:1rem}
.form__progress{display:flex;gap:.4rem;list-style:none;margin:0 0 1.5rem;padding:0;font-size:.85rem;font-weight:600;color:var(--c-ink-3)}
.form__progress li{padding:.4rem .8rem;border-radius:999px;background:var(--c-stone)}
.form__progress li.is-current{background:var(--c-ink);color:#fff}
.no-js .form__progress{display:none}
.js .form.is-wizard .form__step[hidden]{display:none}
.hp{position:absolute!important;left:-10000px!important;top:auto;width:1px;height:1px;overflow:hidden}
.form__alt{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--c-stone-2);display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;align-items:center}
.form__alt a{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;text-decoration:none}
.thanks{padding-block:var(--sp-section);text-align:center}
.thanks h1{font-size:clamp(2.4rem,1.5rem + 4vw,5rem)}

/* 7 · Footer & Sticky-Leiste -------------------------------------------- */
.site-footer{background:var(--c-forest-deep);color:rgba(255,255,255,.85);margin-top:0;padding-bottom:5rem}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{color:var(--c-green)}
.site-footer__top{display:grid;gap:var(--sp-block);padding:var(--sp-section) var(--gutter) var(--sp-block);max-width:var(--wrap-wide);margin:0 auto}
@media (min-width:56em){.site-footer__top{grid-template-columns:1.3fr 2fr}}
.site-footer__logo{width:10rem;height:auto;filter:brightness(1.6)}
.site-footer__claim{font-family:var(--f-display);font-size:1.4rem;margin:1rem 0;color:#fff}
.nap{font-style:normal;line-height:1.7}
.site-footer__cta{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.2rem}
.site-footer__nav{display:grid;gap:1.5rem;grid-template-columns:1fr 1fr}
@media (min-width:64em){.site-footer__nav{grid-template-columns:repeat(4,1fr)}}
.site-footer__h{font-family:var(--f-text);font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--c-green);margin-bottom:.8rem}
.site-footer__col ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem;font-size:.95rem}
.site-footer__bottom{border-top:1px solid rgba(255,255,255,.12);padding:1.2rem var(--gutter);max-width:var(--wrap-wide);margin:0 auto;display:flex;flex-wrap:wrap;gap:.5rem 2rem;justify-content:space-between;font-size:.85rem;color:rgba(255,255,255,.65)}
.site-footer__bottom p{margin:0}
.site-footer__legal{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:1.2rem}
.sticky-bar{position:fixed;left:0;right:0;bottom:0;z-index:800;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:1px;background:var(--c-forest-deep);box-shadow:0 -10px 30px -10px rgba(0,0,0,.35);transition:transform .35s var(--ease)}
.sticky-bar.is-hidden{transform:translateY(110%)}
.sticky-bar__btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.95rem .5rem;background:var(--c-forest);color:#fff;font-weight:700;text-decoration:none;font-size:.95rem}
.sticky-bar__btn--book{background:var(--c-green);color:var(--c-ink)}
@media (min-width:68em){.sticky-bar{display:none}.site-footer{padding-bottom:0}}
.apt-nav{display:grid;gap:1rem;padding-block:var(--sp-block)}
@media (min-width:48em){.apt-nav{grid-template-columns:1fr auto 1fr;align-items:center}}
.apt-nav__link{display:inline-flex;align-items:center;gap:.8rem;text-decoration:none;color:var(--c-ink);padding:1rem;border-radius:var(--r-m);background:#fff;border:1px solid var(--c-stone-2)}
.apt-nav__link--next{justify-self:end;text-align:right}
.apt-nav__link strong{font-family:var(--f-display);font-size:1.4rem;display:block}
.apt-nav__link small{color:var(--c-ink-2)}
.apt-nav__label{display:block;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--c-ink-3)}
.apt-nav__all{text-align:center;font-weight:600}

/* 8 · Motion-Hooks (GSAP setzt nur bei aktivem JS und ohne reduced motion) --------- */
.js:not(.reduced) [data-reveal]{opacity:0;transform:translateY(24px)}
.js:not(.reduced) [data-reveal].is-in{opacity:1;transform:none;transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js:not(.reduced) [data-reveal="fade"]{transform:none}
.js:not(.reduced) [data-reveal="left"]{transform:translateX(-30px)}
.js:not(.reduced) [data-reveal="right"]{transform:translateX(30px)}
.js:not(.reduced) [data-reveal="scale"]{transform:scale(.94)}
.js:not(.reduced) [data-stagger]>*{opacity:0;transform:translateY(20px)}
.js:not(.reduced) [data-stagger].is-in>*{opacity:1;transform:none;transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js:not(.reduced) [data-stagger].is-in>*:nth-child(2){transition-delay:.08s}
.js:not(.reduced) [data-stagger].is-in>*:nth-child(3){transition-delay:.16s}
.js:not(.reduced) [data-stagger].is-in>*:nth-child(4){transition-delay:.24s}
.js:not(.reduced) [data-stagger].is-in>*:nth-child(5){transition-delay:.32s}
.js:not(.reduced) [data-stagger].is-in>*:nth-child(6){transition-delay:.4s}
@media (prefers-reduced-motion:reduce){[data-reveal],[data-stagger]>*{opacity:1!important;transform:none!important}}

/* 9 · Print --------------------------------------------------------------- */
@media print{.site-header,.sticky-bar,.booking,.site-footer__cta,.nav-toggle,.tour__overlay,.map__load{display:none!important}body{background:#fff}.hero{min-height:auto;color:#000}.hero__scrim,.hero__media{display:none}}

/* Startseiten-Hero: Typo-Bühne + Panorama-Streifen, Fernsicht-Objekt überlappt in die Buchungs-Sektion */
.hero--home{min-height:auto;background:var(--c-forest);padding-bottom:0}
.hero--home .hero__scrim{background:radial-gradient(120% 80% at 20% 10%,rgba(143,202,70,.18),transparent 60%)}
.hero--home .hero__inner{padding-bottom:clamp(2rem,6vw,5rem)}
.hero__strip{position:relative;z-index:1;margin-top:clamp(1rem,3vw,2rem)}
.hero__strip img{width:100%;height:clamp(9rem,22vw,22rem);object-fit:cover;object-position:center 40%}
.float-obj--home{margin-top:calc(-1*clamp(3rem,8vw,7rem));display:flex;justify-content:flex-end;position:relative;z-index:4;pointer-events:none}
.float-obj--home .figure{width:min(34rem,80vw);pointer-events:auto;background:#fff;padding:.5rem;border-radius:var(--r-m)}
.float-obj--home .figure img{border-radius:6px}
.float-obj--home figcaption{padding:.6rem .4rem .2rem}
@media (min-width:64em){.float-obj--home{margin-right:var(--gutter)}}
.hero--page{min-height:min(70svh,46rem)}
.hero--page h1{font-size:clamp(2.4rem,1.2rem + 5vw,6rem)}
.hero--text{background:var(--c-sand);color:var(--c-ink);min-height:auto}
.hero--text .hero__inner{padding-top:var(--sp-block)}
.hero--text .lead{color:var(--c-ink-2)}
.hero--text h1{text-shadow:none}
.hero--text .eyebrow{color:var(--c-green-ink)}
.hero--text .crumbs,.hero--text .crumbs a,.hero--text .crumbs [aria-current]{color:var(--c-ink-2)}
.apt-hero{display:grid;gap:var(--sp-block)}
@media (min-width:64em){.apt-hero{grid-template-columns:1.1fr .9fr;align-items:end}}
.apt-hero__media{position:relative}
.apt-hero__media .frame img{aspect-ratio:4/3;object-fit:cover}
.apt-hero__badge{position:absolute;left:-.5rem;top:-1rem;background:var(--c-green);color:var(--c-ink);font-family:var(--f-display);font-size:clamp(1.6rem,1.2rem + 1.5vw,2.6rem);padding:.4rem 1rem;border-radius:var(--r-s);transform:rotate(-2deg);box-shadow:var(--shadow)}
.apt-hero__badge small{font-family:var(--f-text);font-size:.45em;font-weight:700;display:block;letter-spacing:.08em;text-transform:uppercase}

/* Hero-Badge (Typo als Bild + Layering): rotierte Marke, die die Sektionsgrenze überschreitet */
.hero--text{overflow:visible}
.hero__badge{position:absolute;right:var(--gutter);bottom:-1.6rem;z-index:5;background:var(--c-green);color:var(--c-ink);font-family:var(--f-display);font-size:clamp(1.5rem,1.1rem + 1.6vw,2.6rem);line-height:1;padding:.55rem 1rem .5rem;border-radius:var(--r-s);transform:rotate(-2.5deg);box-shadow:var(--shadow);font-variant-numeric:tabular-nums;font-variation-settings:"opsz" 96,"SOFT" 50}
.hero__badge small{display:block;font-family:var(--f-text);font-size:.42em;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-top:.2rem}
.hero--page .hero__badge{bottom:-1.6rem}
.hero--page{overflow:visible}
.hero--page .hero__media{overflow:hidden}
.overlap-up .quick-answer,.overlap-up .def-card{box-shadow:var(--shadow)}
.giant-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1.5rem}

/* <picture> als transparenter Wrapper in Bühnen (img füllt den Container) */
.hero__media picture,.band__media picture,.duo__tile picture,.story__frame picture,.card picture,.bento__tile picture,.tour__stage picture,.gallery__item picture,.apt-card>a picture,.rail__card picture{display:contents}
.hero__scrim{background:linear-gradient(180deg,rgba(18,38,27,.35) 0%,rgba(18,38,27,.25) 35%,rgba(18,38,27,.85) 100%)}
