/* Hideaway am See – Gestaltung „Leinen & Glut“
   Helle, warme Holz- und Leinentöne am Tag, Walnuss und Kaminglut am Abend (Dunkelmodus).
   Schriften lokal (SIL Open Font License), keine Verbindung zu fremden Servern. */

@font-face{font-family:"Gloock";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/gloock-400.woff2") format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/figtree-400.woff2") format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/figtree-600.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/ibm-plex-mono-500.woff2") format("woff2")}

/* ---------- Farben ---------- */
:root{
  --bg:#F3EBDD;        /* Leinen */
  --bg-2:#E8DAC3;      /* helles Kiefernholz */
  --wood:#CDAE82;      /* Balken */
  --ink:#2B1E16;       /* Walnuss */
  --ink-2:#6A5241;     /* Rinde */
  --line:#D6C4A7;
  --brick:#8F3A22;     /* Backstein */
  --brick-hover:#7A2F1A;
  --on-brick:#FFF8F0;
  --fir:#2F4A38;       /* Tanne */
  --water:#9DB3AE;
  --glow:#F2A04A;      /* Glut */
  --night:#1C1510;     /* Abschluss-Abschnitt in beiden Modi */
  --night-ink:#F2E7D7;
  --night-ink-2:#C4AD94;
  --card:#FBF6EE;
  --ph:#FFE45C;        /* Platzhalter-Gelb */
  --serif:"Gloock","Iowan Old Style",Georgia,serif;
  --sans:"Figtree","Helvetica Neue",Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --gutter:clamp(20px,5vw,56px);
  --max:1240px;
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#1C1510;
    --bg-2:#2A1F18;
    --wood:#5A4231;
    --ink:#F2E7D7;
    --ink-2:#C4AD94;
    --line:#3F3026;
    --brick:#B1472A;
    --brick-hover:#C25433;
    --fir:#A9C2A6;
    --water:#3C504D;
    --card:#241A14;
  }
}

/* ---------- Grundlagen ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:16px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.65 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
p,ul,ol,figure,blockquote,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.02;margin:0;letter-spacing:-.01em;text-wrap:balance}
p{text-wrap:pretty}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--brick);outline-offset:3px;border-radius:2px}
@media (prefers-color-scheme:dark){:focus-visible{outline-color:var(--glow)}}
.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:12px;top:-60px;z-index:100;background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:4px;text-decoration:none}
.skip:focus{top:12px}

.wrap{width:100%;max-width:calc(var(--max) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(72px,10vw,140px)}
.h2{font-size:clamp(2.25rem,5.4vw,4rem)}
.lede{font-size:clamp(1.125rem,1.6vw,1.25rem);color:var(--ink-2);max-width:56ch}
.h2+.lede{margin-top:16px}
.muted{color:var(--ink-2)}

/* Platzhalter: gelb markiert, bis der Kunde liefert */
.ph{background:var(--ph);color:#1A1A1A;padding:.05em .3em;border-radius:2px;box-decoration-break:clone;-webkit-box-decoration-break:clone}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:52px;padding:14px 24px;border:0;border-radius:4px;font:600 1rem/1.2 var(--sans);text-decoration:none;cursor:pointer;text-align:center;transition:background-color .18s ease,color .18s ease,box-shadow .18s ease}
.btn svg{width:18px;height:18px;flex:none}
.btn-primary{background:var(--brick);color:var(--on-brick)}
.btn-primary:hover{background:var(--brick-hover)}
.btn-ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px currentColor}
.btn-ghost:hover{background:color-mix(in srgb,var(--ink) 7%,transparent)}
.btn-small{min-height:44px;padding:10px 16px;font-size:.9375rem}

/* ---------- Kopfzeile ---------- */
.top{position:absolute;inset:0 0 auto;z-index:20}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:16px}
.brand{font:400 1.375rem/1 var(--serif);text-decoration:none;color:#FBF3E6;white-space:nowrap;padding-block:8px}
.top .btn-ghost{color:#FBF3E6}
.nav{display:none}
@media (min-width:1000px){
  .top .wrap{max-width:none;padding-left:max(var(--gutter),calc((100vw - var(--max))/2));padding-right:24px}
  .brand{color:var(--ink)}
  .top-cta{display:none}
  .nav{display:flex;gap:6px;align-items:center;padding:6px 6px 6px 18px;border-radius:6px;background:rgba(20,14,9,.5);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
  .nav a:not(.btn){color:#FBF3E6;text-decoration:none;font-size:.9375rem;padding:10px 12px}
  .nav a:not(.btn):hover{text-decoration:underline}
  .nav :focus-visible{outline-color:var(--glow)}
}

/* ---------- Hero ---------- */
.hero{position:relative;display:grid;grid-template-areas:"stack" "body";background:var(--bg)}
.hero-photo{grid-area:stack;position:relative;height:min(80svh,760px);min-height:480px;overflow:hidden;background:#1F2A1E}
.hero-photo picture{display:contents}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 72%}
/* Signature: Glut. Warmes Licht steigt von unten ins Bild und flackert kaum merklich */
.glow{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 58% at 30% 106%,rgba(242,140,52,.72),rgba(224,96,30,.3) 42%,rgba(224,96,30,0) 74%);
  mix-blend-mode:screen;opacity:.8;z-index:1}
.glow-b{background:radial-gradient(70% 40% at 66% 106%,rgba(255,178,92,.42),rgba(255,178,92,0) 70%)}
@media (prefers-reduced-motion:no-preference){
  .glow{animation:flicker 7.3s infinite steps(1,end)}
  .glow-b{animation-duration:5.1s;animation-delay:-2s}
}
@keyframes flicker{
  0%{opacity:.78}7%{opacity:.86}11%{opacity:.74}19%{opacity:.9}24%{opacity:.8}33%{opacity:.84}
  41%{opacity:.7}47%{opacity:.88}55%{opacity:.79}62%{opacity:.92}70%{opacity:.76}78%{opacity:.85}
  86%{opacity:.72}93%{opacity:.87}100%{opacity:.78}
}
/* Verlauf nur dort, wo Schrift auf dem Foto liegt */
.hero-photo::after{content:"";position:absolute;inset:auto 0 0;height:58%;background:linear-gradient(0deg,rgba(18,14,9,.8),rgba(18,14,9,0))}
.top-shade{position:absolute;inset:0 0 auto;height:120px;background:linear-gradient(180deg,rgba(18,14,9,.55),rgba(18,14,9,0))}
.hero-title{grid-area:stack;align-self:end;position:relative;z-index:2;padding:0 var(--gutter) clamp(26px,6vw,44px);color:#FBF3E6;font-size:clamp(2.5rem,12.6vw,4.5rem);line-height:.97;letter-spacing:-.015em}
.hero-title span{display:block;white-space:nowrap}
.hero-body{grid-area:body;padding:28px var(--gutter) 48px}
.hero-kicker{font-size:.9375rem;font-weight:600;color:var(--brick);margin-bottom:10px}
@media (prefers-color-scheme:dark){.hero-kicker{color:var(--glow)}}
.hero-text{font-size:1.125rem;max-width:44ch}
.trust{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.trust li{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--line);border-radius:999px;font-size:.875rem;line-height:1.3;background:var(--card)}
.trust svg{width:14px;height:14px;color:var(--brick)}
@media (prefers-color-scheme:dark){.trust svg{color:var(--glow)}}
.trust b{font-weight:600}

@media (min-width:1000px){
  .hero{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-rows:1fr auto;grid-template-areas:"title photo" "body photo";min-height:min(100svh,1000px)}
  .hero-photo{grid-area:photo;height:auto;min-height:0}
  .hero-photo::after,.top-shade{display:none}
  .hero-title{grid-area:title;color:var(--ink);font-size:clamp(4rem,5.6vw,6.75rem);line-height:.94;padding:128px clamp(32px,4vw,64px) 0 max(var(--gutter),calc((100vw - var(--max))/2))}
  .hero-body{padding:28px clamp(32px,4vw,64px) 56px max(var(--gutter),calc((100vw - var(--max))/2))}
}

/* ---------- Buchungskarte ---------- */
.booking{margin-top:28px;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:20px;box-shadow:0 24px 50px -32px rgba(60,32,12,.45);max-width:560px}
.booking-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px;margin-bottom:14px}
.booking-head h2{font-size:1.625rem}
.booking-head p{font-size:.875rem;color:var(--ink-2)}
.fields{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:4px;overflow:hidden}
.field{display:block;padding:10px 14px 12px;min-width:0;background:var(--bg)}
.field+.field{border-left:1px solid var(--line)}
.field-guests{grid-column:1/-1;border-left:0!important;border-top:1px solid var(--line)}
.field span{display:block;font-size:.8125rem;font-weight:600;color:var(--ink-2);margin-bottom:2px}
.field input,.field select{display:block;width:100%;min-width:0;border:0;background:transparent;color:var(--ink);font:500 1rem/1.4 var(--sans);padding:2px 0;min-height:28px;-webkit-appearance:none;appearance:none}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%236A5241' stroke-width='1.6'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 2px center;padding-right:20px}
.field input::-webkit-date-and-time-value{text-align:left}
.field:focus-within{box-shadow:inset 0 0 0 2px var(--brick)}
@media (prefers-color-scheme:dark){.field:focus-within{box-shadow:inset 0 0 0 2px var(--glow)}}
.field input:focus,.field select:focus{outline:none}
.form-msg{min-height:1.4em;margin-top:8px;font-size:.875rem;color:var(--ink-2)}
.form-msg.is-error{color:var(--brick);font-weight:600}
@media (prefers-color-scheme:dark){.form-msg.is-error{color:var(--glow)}}
.actions{display:grid;gap:10px;margin-top:6px}
@media (min-width:480px){.actions{grid-template-columns:1fr 1fr}}
.save-note{margin-top:12px;font-size:.875rem;color:var(--ink-2)}

/* ---------- Eckdaten ---------- */
.facts{border-block:1px solid var(--line);background:var(--bg-2)}
.facts ul{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;padding-block:22px}
.facts li{display:flex;align-items:baseline;gap:.4em;font-size:1rem}
.facts li:last-child{grid-column:1/-1}
@media (min-width:800px){
  .facts ul{display:flex;flex-wrap:wrap;gap:6px 0}
  .facts li{padding-right:20px;margin-right:20px;border-right:1px solid var(--wood)}
  .facts li:last-child{border-right:0;margin-right:0;padding-right:0}
}
.facts b{font:400 clamp(1.75rem,3vw,2.375rem)/1.1 var(--serif);color:var(--brick)}
@media (prefers-color-scheme:dark){.facts b{color:var(--glow)}}

/* ---------- Das Haus ---------- */
.house{display:grid;gap:48px;align-items:center}
.house-text p+p{margin-top:1.1em}
.house-text .h2{margin-bottom:28px}
.house-text p{max-width:58ch}
.house-note{margin-top:32px;padding:20px 22px;border-left:4px solid var(--brick);background:var(--bg-2);font:400 1.25rem/1.4 var(--serif);max-width:44ch}
@media (prefers-color-scheme:dark){.house-note{border-color:var(--glow)}}
.house-pics{position:relative;display:grid;grid-template-columns:repeat(12,1fr);min-width:0}
.house-pics .p1{grid-column:1/11;grid-row:1}
.house-pics .p2{grid-column:6/13;grid-row:1;align-self:end;margin-bottom:-48px;border:8px solid var(--bg)}
.house-pics img{width:100%;height:100%;object-fit:cover}
.house-pics .p1 img{aspect-ratio:3/4}
.house-pics .p2 img{aspect-ratio:3/2}
@media (min-width:900px){.house{grid-template-columns:1fr 1fr;gap:clamp(48px,7vw,110px)}.house-pics{order:-1}}

/* ---------- Galerie ---------- */
.gallery-head{display:grid;gap:12px;margin-bottom:36px}
@media (min-width:800px){.gallery-head{grid-template-columns:1fr auto;align-items:end}}
.mosaic{display:grid;gap:8px;grid-template-columns:1fr 1fr;grid-auto-rows:clamp(96px,27vw,150px);
  grid-template-areas:"a a" "a a" "b c" "b d" "e f" "e f" "g g" "g g"}
@media (min-width:800px){
  .mosaic{gap:10px;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(110px,11vw,170px);
    grid-template-areas:"a a a a b b" "a a a a b b" "c c d d b b" "e e f f g g" "e e f f g g"}
}
.tile{position:relative;padding:0;border:0;margin:0;background:var(--bg-2);overflow:hidden;cursor:zoom-in;display:block;width:100%;border-radius:2px;color:inherit}
.tile picture{display:contents}
.mosaic .tile{height:100%}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
@media (hover:hover) and (prefers-reduced-motion:no-preference){.tile:hover img{transform:scale(1.03)}}
.tile-a{grid-area:a}.tile-b{grid-area:b}.tile-c{grid-area:c}.tile-d{grid-area:d}.tile-e{grid-area:e}.tile-f{grid-area:f}.tile-g{grid-area:g}
.tile-more::after{content:"";position:absolute;inset:0;background:rgba(20,14,9,.48)}
.tile-more>span{position:absolute;inset:auto 16px 14px;z-index:1;color:#FBF3E6;font:400 1.375rem/1.1 var(--serif);text-align:left}

/* ---------- Zimmer ---------- */
.rooms-head{margin-bottom:40px}
.rooms{display:grid;gap:40px}
.room{margin:0}
.room img{aspect-ratio:3/2}
.room-1 img{aspect-ratio:4/5}
.room figcaption{padding-top:14px}
.room h3{font-size:clamp(1.5rem,2.4vw,1.875rem)}
.room h3 small{display:block;font:600 .875rem/1.4 var(--sans);color:var(--ink-2);margin-bottom:4px;letter-spacing:0}
.room p{margin-top:6px;color:var(--ink-2);max-width:42ch}
@media (min-width:800px){
  .rooms{grid-template-columns:5fr 7fr;column-gap:clamp(24px,4vw,56px);row-gap:48px}
  .room-1{grid-column:1;grid-row:1/3;align-self:start}
  .room-2{grid-column:2;grid-row:1}
  .room-3{grid-column:2;grid-row:2}
}

/* ---------- Draußen ---------- */
.outside{background:var(--bg-2)}
.outside-banner{position:relative;height:clamp(300px,52vw,640px);overflow:hidden}
.outside-banner .tile{height:100%;border-radius:0}
.outside-banner img{object-position:50% 45%}
.outside-grid{display:grid;gap:40px}
.outside-text .h2{margin-bottom:22px}
.features{margin-top:24px;border-top:1px solid var(--wood)}
.features li{padding:12px 0;border-bottom:1px solid var(--wood);font-size:1.0625rem}
.outside-pics{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.outside-pics .wide{grid-column:1/-1}
.outside-pics .wide img{aspect-ratio:4/3}
.outside-pics .tall img{aspect-ratio:3/4}
.outside-pics img{width:100%;object-fit:cover}
@media (min-width:900px){
  .outside-grid{grid-template-columns:4fr 8fr;gap:clamp(40px,6vw,88px);align-items:start}
  .outside-text{position:sticky;top:40px}
  .outside-pics{gap:10px}
}

/* ---------- Gut zu wissen ---------- */
.honest-grid{display:grid;gap:40px}
.honest-head .lede{margin-top:20px}
.honest-list>li{padding:26px 0;border-top:1px solid var(--line)}
.honest-list>li:last-child{border-bottom:1px solid var(--line)}
.honest-list h3{font-size:clamp(1.375rem,2.2vw,1.75rem);margin-bottom:8px}
.honest-list p{max-width:60ch}
.honest-list p+p{margin-top:.6em}
.wink{color:var(--ink-2);font-style:italic}
.fee{display:grid;grid-template-columns:auto 1fr;gap:4px 18px;margin-top:10px;font-size:1rem}
.fee dt{font-weight:600;font-variant-numeric:tabular-nums}
@media (min-width:900px){.honest-grid{grid-template-columns:4fr 8fr;gap:clamp(40px,6vw,88px)}.honest-head{position:sticky;top:40px;align-self:start}}

/* Kopfstoß-Messlatte */
.ruler{margin-top:22px;padding:18px 16px 12px;background:var(--card);border:1px solid var(--line);border-radius:4px;max-width:520px}
.ruler svg{width:100%;height:auto}
.ruler figcaption{font-size:.875rem;color:var(--ink-2);margin-top:6px}
.ml-ruler,.ml-tick{stroke:var(--ink-2);stroke-width:1.5}
.ml-num,.ml-label,.ml-185{font:500 11px var(--mono);fill:var(--ink-2)}
.ml-185{fill:var(--brick);font-size:12px}
.ml-p{fill:var(--ink-2);stroke:var(--ink-2);stroke-linecap:round}
.ml-p circle{stroke:none}
.ml-tall{fill:var(--brick);stroke:var(--brick)}
.ml-beam{fill:var(--wood)}
.ml-ceil{stroke:var(--brick);stroke-width:2;stroke-dasharray:6 4}
.ml-bonk{stroke:var(--brick);stroke-width:2.5;stroke-linecap:round}
@media (prefers-color-scheme:dark){.ml-185{fill:var(--glow)}.ml-tall{fill:var(--glow);stroke:var(--glow)}.ml-ceil,.ml-bonk{stroke:var(--glow)}}

/* ---------- Bewertungen ---------- */
.reviews{background:var(--bg-2)}
.reviews-grid{display:grid;gap:48px}
.score{display:flex;flex-direction:column;gap:8px}
.score .score-num{font:400 clamp(5rem,13vw,9rem)/.85 var(--serif);color:var(--ink)}
.score .stars{margin-top:10px}
.stars{display:flex;gap:4px;color:var(--brick)}
.stars svg{width:22px;height:22px}
@media (prefers-color-scheme:dark){.stars{color:var(--glow)}}
.score p{color:var(--ink-2)}
.cats h3,.tags h3{font:600 1rem/1.4 var(--sans);margin-bottom:12px}
.cats li{display:grid;grid-template-columns:8.5em 1fr 2.4em;align-items:center;gap:12px;padding:7px 0;font-size:.9375rem}
.bar{height:4px;background:var(--line);border-radius:2px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--fir)}
.cats b{font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.tags ul{display:flex;flex-wrap:wrap;gap:8px}
.tags li{padding:6px 12px;border:1px solid var(--wood);border-radius:999px;font-size:.9375rem;background:var(--bg)}
.tags li b{font-weight:600;margin-left:4px;font-variant-numeric:tabular-nums}
.reviews-link{display:inline-block;margin-top:22px}
@media (min-width:900px){.reviews-grid{grid-template-columns:4fr 5fr 4fr;gap:clamp(32px,5vw,72px);align-items:start}}

/* ---------- Gastgeberin ---------- */
.host{display:grid;gap:36px;align-items:center}
.host-photo{aspect-ratio:4/5;max-width:420px;background:repeating-linear-gradient(135deg,var(--ph) 0 14px,#F5D63C 14px 28px);display:grid;place-items:center;padding:24px;color:#1A1A1A;text-align:center;font-size:.9375rem;border-radius:2px}
.host-photo picture{display:contents}
.host-photo img{width:100%;height:100%;object-fit:cover;object-position:52% 30%}
.host-photo.has-photo{background:none;padding:0}
.host-photo .ph-box{background:var(--ph);padding:10px 14px;border-radius:2px;line-height:1.45}
.host-text .h2{margin-bottom:22px}
.host-text p{max-width:58ch}
.host-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:18px 24px;margin-top:30px;padding-top:22px;border-top:1px solid var(--line)}
.host-facts dt{font-size:.875rem;color:var(--ink-2)}
.host-facts dd{font:400 1.25rem/1.25 var(--serif)}
.host-insta{margin-top:24px;color:var(--ink-2)}
.host-insta a{color:var(--ink);font-weight:600}
@media (min-width:900px){.host{grid-template-columns:5fr 7fr;gap:clamp(40px,7vw,110px)}}

/* ---------- Lage ---------- */
.place-grid{display:grid;gap:40px}
.place-text .h2{margin-bottom:22px}
.place-text p+p{margin-top:1em}
.place-text p{max-width:56ch}
.address-note{margin-top:22px;padding:14px 16px;background:var(--bg-2);border-left:4px solid var(--fir);font-size:.9375rem}
.map{margin:0}
.map svg{width:100%;height:auto;background:var(--bg-2);border-radius:4px}
.map figcaption{font-size:.8125rem;color:var(--ink-2);margin-top:8px}
.m-water{fill:var(--water)}
.m-ditch{fill:none;stroke:var(--water);stroke-width:2.5;stroke-dasharray:2 5;stroke-linecap:round}
.m-forest{fill:var(--fir);opacity:.16}
.m-road{fill:none;stroke:var(--wood);stroke-width:3;stroke-linecap:round}
.m-town{fill:var(--ink-2)}
.m-label{font:400 16px var(--sans);fill:var(--ink)}
.m-label-s{font:400 14px var(--sans);fill:var(--ink-2)}
.m-big{font:400 22px var(--serif);fill:var(--ink)}
.m-house{fill:var(--brick)}
.m-ring{fill:none;stroke:var(--brick);stroke-width:1.5;opacity:.6}
.m-arrow{fill:none;stroke:var(--ink);stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
@media (prefers-color-scheme:dark){.m-house{fill:var(--glow)}.m-ring{stroke:var(--glow)}}
.place-photo{margin-top:28px}
.place-photo img{aspect-ratio:4/3;width:100%;object-fit:cover;object-position:50% 60%}
.place-photo figcaption{font-size:.8125rem;color:var(--ink-2);margin-top:8px}
@media (min-width:900px){.place-grid{grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,88px);align-items:start}}

/* ---------- Abschluss (immer abendlich) ---------- */
.finale{background:var(--night);color:var(--night-ink);position:relative;overflow:hidden;color-scheme:dark;
  --ink:var(--night-ink);--ink-2:var(--night-ink-2);--line:#3F3026;--card:#241A14;--bg:#1C1510;--brick:#B1472A;--brick-hover:#C25433;--wood:#5A4231}
.finale :focus-visible{outline-color:var(--glow)}
.finale .field:focus-within{box-shadow:inset 0 0 0 2px var(--glow)}
.finale .form-msg.is-error{color:var(--glow)}
.finale-grid{display:grid;gap:40px;position:relative;z-index:1}
.finale h2{font-size:clamp(2.75rem,8vw,5.5rem);line-height:.98}
.finale .lede{margin-top:22px;color:var(--night-ink-2)}
.finale .booking{background:#241A14;border-color:#3F3026;box-shadow:none;max-width:none}
.fire{position:relative;margin:0;align-self:start;max-width:440px;width:100%}
.fire video,.fire img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:2px;background:#120d09}
.fire figcaption{font-size:.8125rem;color:var(--night-ink-2);margin-top:8px}
.fire-btn{position:absolute;right:12px;top:12px;z-index:2;width:44px;height:44px;border-radius:50%;border:0;background:rgba(20,14,9,.6);color:#FBF3E6;display:grid;place-items:center;cursor:pointer}
.fire-btn svg{width:18px;height:18px}
.finale .glow{mix-blend-mode:normal;background:radial-gradient(60% 50% at 80% 100%,rgba(242,140,52,.26),rgba(242,140,52,0) 70%)}
.mail-line{margin-top:22px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:.9375rem;color:var(--night-ink-2)}
.mail-addr{font-weight:600;color:var(--night-ink);padding:.05em .3em;user-select:all;-webkit-user-select:all;word-break:break-all}
.mail-addr.ph{color:#1A1A1A}
.copy-btn{min-height:44px;padding:8px 14px;border:1px solid #5A4231;border-radius:4px;background:transparent;color:var(--night-ink);font:600 .875rem/1 var(--sans);cursor:pointer}
.copy-btn:hover{background:rgba(255,240,220,.08)}
.copy-status{font-size:.875rem;color:var(--glow)}
@media (min-width:900px){.finale-grid{grid-template-columns:7fr 5fr;gap:clamp(40px,6vw,96px);align-items:center}.fire{justify-self:end}.fire video,.fire img{aspect-ratio:9/16}}

/* ---------- Fußzeile ---------- */
.foot{padding-block:40px 120px;border-top:1px solid var(--line);font-size:.9375rem;color:var(--ink-2)}
.foot .wrap{display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:space-between;align-items:baseline}
.foot nav{display:flex;gap:24px}
.credit{order:3;width:100%}
@media (min-width:800px){
  .foot .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:baseline}
  .credit{order:0;width:auto;text-align:center}
  .foot nav{justify-self:end}
}
.foot a{padding-block:10px}
@media (min-width:1000px){.foot{padding-bottom:48px}}

/* ---------- Mobile Buchen-Leiste ---------- */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:30;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--bg) 94%,transparent);border-top:1px solid var(--line);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  display:flex;align-items:center;gap:10px;transform:translateY(110%);visibility:hidden;transition:transform .3s ease,visibility 0s linear .3s}
.dock.is-visible{transform:none;visibility:visible;transition:transform .3s ease,visibility 0s}
.dock-info{flex:1;min-width:0;font-size:.8125rem;line-height:1.3;color:var(--ink-2)}
.dock-info b{display:block;color:var(--ink);font-size:.9375rem}
.dock .btn{min-height:44px;padding:10px 14px;font-size:.9375rem}
@media (min-width:1000px){.dock{display:none}}
@media (prefers-reduced-motion:reduce){.dock,.dock.is-visible{transition:none}}

/* ---------- Vollbild-Galerie ---------- */
.lb{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#0F0B08;color:#F2E7D7}
.lb:not([open]){display:none}
.lb[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.lb::backdrop{background:#0F0B08}
.lb-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px 10px 20px}
.lb-count{font-size:.875rem;color:#C4AD94;font-variant-numeric:tabular-nums}
.lb-stage{position:relative;min-height:0;display:grid;grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;padding:0 8px;touch-action:pan-y;overflow:hidden}
.lb-stage>picture>img{grid-area:1/1}
.lb-stage picture{display:contents}
.lb-stage img{width:100%;height:100%;object-fit:contain}
.lb-cap{padding:10px 20px 18px;text-align:center;font-size:.9375rem;color:#C4AD94;min-height:3em}
.lb-btn{width:48px;height:48px;border-radius:50%;border:0;background:rgba(242,231,215,.1);color:#F2E7D7;display:grid;place-items:center;cursor:pointer}
.lb-btn:hover{background:rgba(242,231,215,.2)}
.lb-btn svg{width:22px;height:22px}
.lb :focus-visible{outline-color:var(--glow)}
.lb-prev,.lb-next{position:absolute;top:50%;transform:translateY(-50%)}
.lb-prev{left:12px}.lb-next{right:12px}
@media (max-width:599px){.lb-prev,.lb-next{top:auto;bottom:8px;transform:none}}

/* ---------- Bewegung reduzieren ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ---------- Rechtliche Seiten ---------- */
.legal-top{padding-block:22px;border-bottom:1px solid var(--line)}
.legal-top .brand{color:var(--ink)}
.legal{padding-block:clamp(56px,8vw,110px)}
.legal h1{font-size:clamp(2.5rem,7vw,4.5rem);margin-bottom:28px}
.legal h2{font-size:1.625rem;margin:40px 0 12px}
.legal p,.legal li,.legal address{max-width:66ch}
.legal address{font-style:normal}
.legal .stand{margin-top:48px;color:var(--ink-2);font-size:.9375rem}
.legal p+p{margin-top:1em}
.ph-block{margin-top:24px;padding:22px 24px;background:var(--ph);color:#1A1A1A;border-radius:2px;max-width:66ch}
.ph-block p+p{margin-top:.7em}
.ph-block a{color:#1A1A1A}
.back{display:inline-block;margin-top:48px}
