/* =========================================================================
   GRÜNE OASE — München-Obermenzing
   Design-System
   ========================================================================= */

:root{
  /* Farben */
  --ink:        #05080F;
  --ink-2:      #080D18;
  --navy:       #0C1526;
  --navy-2:     #101B30;
  --navy-3:     #16243D;
  --gold:       #C6A15B;
  --gold-lt:    #E0C48C;
  --gold-dk:    #8E703A;
  --ice:        #9FBDD8;
  --ice-dk:     #6E8CA8;
  --beige:      #E7DECE;
  --sand:       #C9BEA9;
  --grey:       #7F8A9C;
  --grey-lt:    #A9B3C2;
  --white:      #F4F1EA;

  --line:       rgba(198,161,91,.20);
  --line-soft:  rgba(159,189,216,.13);

  /* Typografie */
  --serif: "Cormorant Garamond", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --sans:  "Jost", "Avenir Next", "Helvetica Neue", Helvetica, Arial, sans-serif;

  /* Maße */
  --pad: clamp(1.25rem, 5vw, 5.5rem);
  --maxw: 1520px;
  --nav-h: 84px;

  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
}

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

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--ink);
  color:var(--grey-lt);
  font-family:var(--sans);
  font-size:16.5px;
  font-weight:300;
  line-height:1.75;
  letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

/* feines Filmkorn über der gesamten Seite */
body::after{
  content:""; position:fixed; inset:0; z-index:9998; pointer-events:none;
  opacity:.035; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }

::selection{ background:rgba(198,161,91,.28); color:var(--white); }

/* ---------- Typografie-Bausteine ---------- */

h1,h2,h3,h4{ font-family:var(--serif); font-weight:300; color:var(--white); margin:0;
  letter-spacing:.005em; }

.display{ font-size:clamp(3rem, 9.5vw, 8.2rem); line-height:.94; letter-spacing:-.018em; }
.h1{ font-size:clamp(2.4rem, 5.6vw, 4.9rem); line-height:1.03; letter-spacing:-.012em; }
.h2{ font-size:clamp(1.85rem, 3.3vw, 3.05rem); line-height:1.12; letter-spacing:-.008em; }
.h3{ font-size:clamp(1.3rem, 2vw, 1.72rem); line-height:1.25; }
.it{ font-style:italic; color:var(--gold-lt); }

.eyebrow{
  font-family:var(--sans); font-size:.75rem; font-weight:400;
  letter-spacing:.34em; text-transform:uppercase; color:var(--gold);
  display:flex; align-items:center; gap:1.1em; margin:0 0 1.5rem;
}
.eyebrow::before{ content:""; width:clamp(28px,4vw,58px); height:1px;
  background:linear-gradient(90deg, transparent, var(--gold)); flex:none; }
.eyebrow.center{ justify-content:center; }
.eyebrow.center::after{ content:""; width:clamp(28px,4vw,58px); height:1px;
  background:linear-gradient(90deg, var(--gold), transparent); flex:none; }
.eyebrow.no-rule::before{ display:none; }

.lead{ font-size:clamp(1.02rem,1.28vw,1.185rem); line-height:1.85; color:var(--grey-lt); font-weight:300; }
.muted{ color:var(--grey); }
.small{ font-size:.9rem; line-height:1.7; }

.num{
  font-family:var(--serif); font-weight:300;
  font-size:clamp(2.4rem,4.2vw,3.6rem); letter-spacing:.02em;
  color:transparent; -webkit-text-stroke:1px rgba(198,161,91,.45);
  text-transform:none; margin:0 0 .1em; line-height:.9; display:block;
}
@supports not (-webkit-text-stroke: 1px red){ .num{ color:var(--gold-dk); } }
/* in den Raumkacheln bleibt die Nummer klein */
.num--room{
  font-family:var(--sans); font-size:.82rem; letter-spacing:.26em;
  color:var(--gold); -webkit-text-stroke:0; line-height:1.2;
  text-transform:uppercase; margin:0;
}

/* ---------- Layout ---------- */

.wrap{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad); }
.section{ padding-block:clamp(5rem, 11vh, 9.5rem); position:relative; }
section[id]{ scroll-margin-top:74px; }
.hero{ scroll-margin-top:0; }
.section--tight{ padding-block:clamp(3.5rem, 7vh, 6rem); }
.section-head{ max-width:none; margin-bottom:clamp(2.5rem,5vw,4.5rem); }
.section-head.center{ margin-inline:auto; text-align:center; }
.section-head p{ margin:1.4rem 0 0; }

.rule{ height:1px; background:linear-gradient(90deg,transparent,var(--line),transparent); border:0; margin:0; }

.grid{ display:grid; gap:clamp(1.5rem,3vw,3rem); }
.g2{ grid-template-columns:repeat(2,1fr); }
.g3{ grid-template-columns:repeat(3,1fr); }
.g4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:980px){ .g3,.g4{ grid-template-columns:repeat(2,1fr);} }
@media (max-width:700px){ .g2,.g3,.g4{ grid-template-columns:1fr; } }

/* ---------- Buttons ---------- */

.btn{
  display:inline-flex; align-items:center; gap:.85em;
  font-family:var(--sans); font-size:.735rem; font-weight:400;
  letter-spacing:.22em; text-transform:uppercase;
  padding:1.05em 2.05em; border:1px solid var(--line);
  color:var(--beige); background:transparent;
  position:relative; overflow:hidden; isolation:isolate;
  transition:color .5s var(--ease), border-color .5s var(--ease);
}
.btn::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(100deg,var(--gold-dk),var(--gold));
  transform:translateY(101%); transition:transform .55s var(--ease-out);
}
.btn:hover{ color:#0B0F18; border-color:var(--gold); }
.btn:hover::before{ transform:translateY(0); }
.btn--solid{ background:linear-gradient(100deg,var(--gold-dk),var(--gold)); color:#0B0F18; border-color:transparent; }
.btn--solid::before{ background:var(--white); }
.btn--ghost{ border-color:var(--line-soft); color:var(--grey-lt); }
.btn .ar{ transition:transform .45s var(--ease); }
.btn:hover .ar{ transform:translateX(4px); }

.link-u{
  display:inline-flex; align-items:center; gap:.6em; color:var(--gold-lt);
  font-size:.735rem; letter-spacing:.2em; text-transform:uppercase;
  padding-bottom:.35em; border-bottom:1px solid var(--line);
  transition:border-color .4s var(--ease), color .4s var(--ease);
}
.link-u:hover{ color:var(--white); border-color:var(--gold); }

/* =========================================================================
   NAVIGATION
   ========================================================================= */

.nav{
  position:fixed; inset:0 0 auto 0; z-index:1000; height:var(--nav-h);
  display:flex; align-items:center;
  transition:background .55s var(--ease), height .55s var(--ease), border-color .55s var(--ease);
  border-bottom:1px solid transparent;
}
/* Hinweis: backdrop-filter darf NICHT auf .nav selbst liegen — es würde einen
   Containing Block erzeugen und das fixierte Mobilmenü auf Kopfzeilenhöhe
   zusammenstauchen. Deshalb liegt der Effekt auf dem Pseudoelement. */
.nav::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(5,8,15,.78), rgba(5,8,15,0));
  transition:background .5s var(--ease), backdrop-filter .5s var(--ease);
}
.nav.is-stuck{ height:70px; border-bottom-color:var(--line-soft); }
.nav.is-stuck::before{
  background:rgba(6,10,19,.92);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
}
/* Lesbarkeit über hellen Bildbereichen, solange die Leiste transparent ist */
.nav:not(.is-stuck) .brand__txt strong,
.nav:not(.is-stuck) .brand__txt em,
.nav:not(.is-stuck) .nav__link{ text-shadow:0 1px 14px rgba(5,8,15,.85); }

.nav__in{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad);
  display:flex; align-items:center; justify-content:space-between; gap:2rem; }

.brand{ display:flex; align-items:center; gap:1.05rem; flex:none; }
.brand__mark{
  width:46px; height:46px; flex:none; display:grid; place-items:center; position:relative;
}
.brand__mark span{
  font-family:var(--serif); font-weight:300; font-size:2.35rem; line-height:1;
  letter-spacing:0; padding-bottom:.06em;
  background:linear-gradient(160deg, var(--gold-lt) 8%, var(--gold) 46%, var(--gold-dk) 96%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.brand__txt strong{ display:block; font-family:var(--sans); font-weight:400; font-size:1.12rem;
  color:var(--white); letter-spacing:.26em; line-height:1.1; text-transform:uppercase; }
@media (max-width:520px){
  .brand{ gap:.75rem; }
  .brand__mark{ width:36px; height:36px; }
  .brand__mark span{ font-size:1.85rem; }
  .brand__txt strong{ font-size:.92rem; letter-spacing:.2em; }
}
.brand__txt em{ display:block; font-style:normal; font-size:.63rem; letter-spacing:.3em;
  text-transform:uppercase; color:var(--gold-dk); margin-top:.28em; }
@media (max-width:560px){ .brand__txt em{ display:none; } }

.nav__menu{ display:flex; align-items:center; gap:clamp(1rem,2vw,2.1rem); }
.nav__link{
  position:relative; font-size:.725rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--grey-lt); padding:.7em 0; white-space:nowrap;
  transition:color .35s var(--ease);
}
.nav__link::after{
  content:""; position:absolute; left:0; bottom:.25em; height:1px; width:100%;
  background:var(--gold); opacity:0;
  transform:scaleX(0); transform-origin:left center;
  transition:transform .45s var(--ease-out), opacity .28s var(--ease);
}
.nav__link:hover,.nav__link.is-active{ color:var(--white); }
.nav__link:hover::after,.nav__link.is-active::after{ transform:scaleX(1); opacity:1; }
/* Der Browser zeichnet nach einem Klick sonst einen Fokusring, der auf dem
   0 Pixel breiten Unterstrich als kleiner Punkt sichtbar bleibt. */
.nav__link:focus{ outline:none; }
.nav__link:focus:not(:focus-visible):not(:hover):not(.is-active)::after{
  transform:scaleX(0); opacity:0; }
.nav__link:focus-visible{ outline:1px solid var(--gold); outline-offset:5px; }
.nav__link::after{ pointer-events:none; }

/* Dropdown */
.nav__item{ position:relative; }
.nav__link--drop{ display:inline-flex; align-items:center; gap:.5em; }
.nav__link--drop svg{ transition:transform .4s var(--ease); opacity:.7; }
.nav__item:hover .nav__link--drop svg,
.nav__item.is-open .nav__link--drop svg{ transform:rotate(180deg); }

.drop{
  position:absolute; top:calc(100% + 14px); left:50%; transform:translate(-50%,10px);
  min-width:308px; padding:1.15rem 0;
  background:rgba(9,14,25,.97); backdrop-filter:blur(22px);
  -webkit-backdrop-filter:blur(22px);
  border:1px solid var(--line-soft);
  box-shadow:0 30px 70px rgba(0,0,0,.6);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .38s var(--ease), transform .38s var(--ease-out), visibility .38s;
}
.nav__item:hover .drop,.nav__item.is-open .drop{
  opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0);
}
.drop::before{ content:""; position:absolute; top:-14px; left:0; right:0; height:14px; }
.drop__hd{ font-size:.66rem; letter-spacing:.26em; text-transform:uppercase; color:var(--gold-dk);
  padding:0 1.5rem .7rem; }
.drop a{
  display:flex; align-items:center; justify-content:space-between; gap:1.4rem;
  padding:.62rem 1.5rem; font-size:.87rem; letter-spacing:.02em; color:var(--grey-lt);
  transition:color .3s var(--ease), background .3s var(--ease), padding .35s var(--ease);
}
.drop a span:last-child{ font-size:.68rem; letter-spacing:.12em; color:var(--gold-dk); text-transform:uppercase; }
.drop a:hover{ color:var(--white); background:rgba(198,161,91,.07); padding-left:1.85rem; }

.nav__side{ display:flex; align-items:center; gap:1.15rem; flex:none; }

.lang{ display:flex; align-items:center; border:1px solid var(--line-soft); }
.lang button{
  font-size:.68rem; letter-spacing:.14em; padding:.55em .82em; color:var(--grey);
  transition:color .3s, background .3s;
}
.lang button.is-on{ color:#0B0F18; background:var(--gold); }
.lang button:hover:not(.is-on){ color:var(--white); }

.burger{ display:none; width:44px; height:44px; border:1px solid var(--line-soft);
  place-items:center; flex:none; }
.burger i{ display:block; width:17px; height:1px; background:var(--beige); position:relative; transition:.4s var(--ease); }
.burger i::before,.burger i::after{ content:""; position:absolute; left:0; width:17px; height:1px;
  background:var(--beige); transition:.4s var(--ease); }
.burger i::before{ top:-5px; } .burger i::after{ top:5px; }
.burger.is-on i{ background:transparent; }
.burger.is-on i::before{ top:0; transform:rotate(45deg); }
.burger.is-on i::after{ top:0; transform:rotate(-45deg); }

@media (max-width:1180px){
  .burger{ display:grid; }
  .nav__menu{
    position:fixed; inset:0; flex-direction:column; justify-content:flex-start;
    align-items:stretch; gap:0; overflow-y:auto;
    padding:calc(var(--nav-h) + 1.6rem) var(--pad) 4rem;
    background:rgba(6,10,19,.985); backdrop-filter:blur(20px);
    transform:translateY(-100%); visibility:hidden;
    transition:transform .6s var(--ease-out), visibility .6s;
  }
  .nav__menu.is-open{ transform:translateY(0); visibility:visible; }
  .brand,.nav__side{ position:relative; z-index:2; }
  .nav__link{ font-size:.9rem; letter-spacing:.16em; padding:1.05rem 0;
    border-bottom:1px solid rgba(159,189,216,.07); }
  .nav__link::after{ display:none; }
  .drop{ position:static; transform:none; opacity:1; visibility:visible; pointer-events:auto;
    min-width:0; background:transparent; border:0; box-shadow:none; padding:.3rem 0 1rem;
    display:none; }
  .nav__item.is-open .drop{ display:block; }
  .drop a{ padding:.5rem 1.1rem; }
  .drop__hd{ padding-left:1.1rem; }
}

/* =========================================================================
   HERO
   ========================================================================= */

.hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end;
  overflow:hidden; }
.hero__bg{ position:absolute; inset:0; z-index:-2; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; object-position:center 58%;
  animation:kb 26s ease-in-out infinite alternate; }
@keyframes kb{ from{ transform:scale(1.0) translateY(0);} to{ transform:scale(1.09) translateY(-1.2%);} }
@media (prefers-reduced-motion: reduce){ .hero__bg img{ animation:none; } }
.hero__bg::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(5,8,15,.78) 0%, rgba(5,8,15,.28) 26%, rgba(5,8,15,.24) 44%, rgba(5,8,15,.62) 76%, rgba(5,8,15,.95) 100%),
    linear-gradient(96deg, rgba(5,8,15,.74) 0%, rgba(5,8,15,.42) 34%, rgba(5,8,15,.06) 62%, rgba(5,8,15,0) 100%),
    radial-gradient(ellipse 120% 78% at 50% 100%, rgba(5,8,15,.75), transparent 70%);
}
@media (max-width:760px){
  .hero__bg::after{
    background:linear-gradient(180deg, rgba(5,8,15,.82) 0%, rgba(5,8,15,.42) 28%, rgba(5,8,15,.62) 62%, rgba(5,8,15,.98) 100%);
  }
}
.hero__in{ position:relative; width:100%; padding-bottom:clamp(3.2rem,7vh,6rem);
  padding-top:calc(var(--nav-h) + 4rem); }
.hero h1{ margin:.2em 0 0; text-shadow:0 2px 40px rgba(5,8,15,.55); }
.hero .eyebrow{ text-shadow:0 1px 16px rgba(5,8,15,.95); }
@media (max-width:600px){ .hero .eyebrow::before{ display:none; } }
.hero h1 .l2{ display:block; font-style:italic; color:var(--gold-lt); padding-left:.09em; }
.hero__sub{ max-width:48ch; margin:1.9rem 0 0; font-size:clamp(.95rem,1.15vw,1.09rem);
  color:var(--beige); opacity:.94; text-shadow:0 1px 18px rgba(5,8,15,.9); }
.hero__cta{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:2.6rem; }

.hero__facts{
  display:flex; flex-wrap:wrap; gap:0; margin-top:clamp(2.8rem,6vh,4.6rem);
  border-top:1px solid var(--line);
}
.hero__facts div{
  flex:1 1 0; min-width:132px; padding:1.35rem 1.5rem 0 0;
}
.hero__facts b{ display:block; font-family:var(--serif); font-weight:300; font-size:clamp(1.5rem,2.4vw,2.15rem);
  color:var(--white); line-height:1; }
.hero__facts b sup, .stats b sup{ font-size:.46em; vertical-align:baseline; top:0;
  letter-spacing:.02em; opacity:.85; }
.stats b sup{ color:var(--gold); }
.hero__facts span{ display:block; margin-top:.6rem; font-size:.7rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--gold-dk); }

.scrollcue{ position:absolute; right:var(--pad); bottom:clamp(3.2rem,7vh,6rem); z-index:3;
  display:flex; align-items:center; gap:.8rem; cursor:pointer;
  transition:color .4s var(--ease); font-size:.66rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--grey); }
.scrollcue i{ display:block; width:1px; height:52px; background:linear-gradient(180deg,var(--gold),transparent);
  position:relative; overflow:hidden; }
.scrollcue i::after{ content:""; position:absolute; inset:0; background:var(--white);
  animation:cue 2.4s var(--ease) infinite; }
@keyframes cue{ 0%{transform:translateY(-100%)} 60%,100%{transform:translateY(100%)} }
@media (max-width:900px){ .scrollcue{ display:none; } }

/* =========================================================================
   INTRO / SPLIT
   ========================================================================= */

.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,5.5rem); align-items:center; }
.split--rev .split__media{ order:2; }
@media (max-width:900px){ .split{ grid-template-columns:1fr; } .split--rev .split__media{ order:0; } }

.figure{ position:relative; overflow:hidden; background:var(--navy); }
.figure img{ width:100%; height:100%; object-fit:cover; transition:transform 1.5s var(--ease-out); }
.figure:hover img{ transform:scale(1.045); }
.figure--tall{ aspect-ratio:4/5; }
.figure--wide{ aspect-ratio:3/2; }
.figure__cap{ position:absolute; left:0; bottom:0; padding:1rem 1.3rem;
  background:linear-gradient(180deg,transparent,rgba(5,8,15,.85));
  width:100%; font-size:.69rem; letter-spacing:.2em; text-transform:uppercase; color:var(--beige); }

.quote{ border-left:1px solid var(--line); padding:.4rem 0 .4rem 2rem; margin:2.6rem 0 0; }
.quote p{ font-family:var(--serif); font-style:italic; font-size:clamp(1.2rem,1.75vw,1.55rem);
  line-height:1.5; color:var(--beige); margin:0; }
.quote cite{ display:block; margin-top:1rem; font-style:normal; font-size:.69rem;
  letter-spacing:.22em; text-transform:uppercase; color:var(--gold-dk); }

/* ---------- Merkmalliste ---------- */
.feats{ list-style:none; margin:2.4rem 0 0; padding:0; display:grid;
  grid-template-columns:repeat(2,1fr); gap:.1rem 2rem; }
@media (max-width:560px){ .feats{ grid-template-columns:1fr; } }
.feats li{ display:flex; gap:.9rem; align-items:baseline; padding:.62rem 0;
  border-bottom:1px solid rgba(159,189,216,.08); font-size:.96rem; }
.feats li::before{ content:""; width:5px; height:5px; flex:none; transform:rotate(45deg);
  border:1px solid var(--gold); margin-top:.45em; }

/* =========================================================================
   KENNZAHLEN
   ========================================================================= */

.stats{ display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line-soft); }
@media (max-width:820px){ .stats{ grid-template-columns:repeat(2,1fr); } }
.stats > div{ padding:clamp(1.6rem,3vw,2.7rem); border-right:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft); position:relative; overflow:hidden; }
.stats > div::after{ content:""; position:absolute; left:0; top:0; width:100%; height:1px;
  background:linear-gradient(90deg,var(--gold),transparent); transform:scaleX(0);
  transform-origin:left; transition:transform .8s var(--ease-out); }
.stats > div:hover::after{ transform:scaleX(1); }
.stats b{ display:block; font-family:var(--serif); font-weight:300;
  font-size:clamp(2.1rem,3.6vw,3.1rem); color:var(--white); line-height:1; }
.stats > div > span{ display:block; margin-top:.9rem; font-size:.7rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--gold-dk); }
.stats p{ margin:.95rem 0 0; font-size:.875rem; line-height:1.65; color:var(--grey); }

/* =========================================================================
   RÄUME
   ========================================================================= */

.rooms{ display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(1rem,2vw,1.8rem); }
@media (max-width:900px){ .rooms{ grid-template-columns:repeat(6,1fr); } }
@media (max-width:620px){ .rooms{ grid-template-columns:1fr; } }

.room{ position:relative; overflow:hidden; background:var(--navy); display:block;
  grid-column:span 4; aspect-ratio:4/3.35; }
.room--wide{ grid-column:span 8; aspect-ratio:16/9.2; }
.room--half{ grid-column:span 6; aspect-ratio:16/10.4; }
@media (max-width:900px){
  .room{ grid-column:span 3; } .room--wide{ grid-column:span 6; } .room--half{ grid-column:span 3; }
}
@media (max-width:620px){
  .room,.room--wide,.room--half{ grid-column:1; aspect-ratio:4/3.1; }
}
.room img{ width:100%; height:100%; object-fit:cover; object-position:center 62%;
  transition:transform 1.7s var(--ease-out), filter .8s; filter:saturate(.97) brightness(.97); }
.room:hover img{ transform:scale(1.06); filter:saturate(1.03) brightness(1.03); }
.room__v{ position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(5,8,15,.06) 22%, rgba(5,8,15,.30) 46%, rgba(5,8,15,.72) 72%, rgba(5,8,15,.97) 100%); }
.room__t{ position:absolute; left:0; right:0; bottom:0; padding:clamp(1.2rem,2.2vw,2rem); }
.room__t .num{ display:block; margin-bottom:.6rem; color:var(--gold);
  text-shadow:0 1px 12px rgba(5,8,15,.9); }
.room__t h3, .room__t p{ text-shadow:0 1px 16px rgba(5,8,15,.85); }
.room__t h3{ font-size:clamp(1.22rem,1.75vw,1.62rem); }
.room__t p{ margin:.6rem 0 0; font-size:.875rem; line-height:1.6; color:var(--grey-lt);
  max-width:44ch; opacity:0; transform:translateY(9px);
  transition:opacity .55s var(--ease), transform .55s var(--ease-out); }
.room:hover .room__t p{ opacity:1; transform:translateY(0); }
.room__meta{ position:absolute; top:clamp(1.1rem,2vw,1.7rem); right:clamp(1.1rem,2vw,1.7rem);
  font-size:.66rem; letter-spacing:.17em; text-transform:uppercase; color:var(--beige);
  background:rgba(5,8,15,.5); backdrop-filter:blur(8px); padding:.45em .85em;
  border:1px solid var(--line-soft); }

/* =========================================================================
   GALERIE
   ========================================================================= */

/* Filterleiste bleibt beim Scrollen durch die Galerie oben stehen und
   blendet weich aus, sobald man die Galerie verlässt. */
.gal-bar{
  position:sticky; top:70px; z-index:60;
  padding:.3rem 0 1.9rem; margin-bottom:.2rem;
  background:linear-gradient(180deg, var(--ink) 0%, var(--ink) 82%, rgba(5,8,15,0) 100%);
  transition:opacity .55s var(--ease), transform .55s var(--ease-out);
}
.gal-bar::after{
  content:""; position:absolute; left:0; right:0; bottom:1.05rem; height:1px;
  background:linear-gradient(90deg, var(--line), transparent);
  opacity:0; transition:opacity .55s var(--ease);
}
.gal-bar.is-pinned::after{ opacity:1; }
.gal-bar.is-out{ opacity:0; transform:translateY(-10px); pointer-events:none; }
@media (max-width:1180px){ .gal-bar{ top:70px; } }

.filters{ display:flex; flex-wrap:wrap; gap:.55rem; margin-bottom:0; }
.filters button{
  font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--grey);
  padding:.72em 1.32em; border:1px solid var(--line-soft);
  transition:color .35s, border-color .35s, background .35s;
}
.filters button:hover{ color:var(--beige); border-color:var(--line); }
.filters button.is-on{ color:#0B0F18; background:var(--gold); border-color:var(--gold); }

.gal{ columns:3; column-gap:clamp(.7rem,1.4vw,1.25rem); }
@media (max-width:980px){ .gal{ columns:2; } }
@media (max-width:560px){ .gal{ columns:1; } }
.gal figure{ margin:0 0 clamp(.7rem,1.4vw,1.25rem); break-inside:avoid; position:relative;
  overflow:hidden; background:var(--navy); cursor:pointer; }
.gal img{ width:100%; transition:transform 1.4s var(--ease-out), filter .7s; filter:brightness(.93) saturate(.95); }
.gal figure:hover img{ transform:scale(1.05); filter:brightness(1.03) saturate(1.02); }
.gal figcaption{
  position:absolute; inset:auto 0 0 0; padding:1.5rem 1.15rem .95rem;
  background:linear-gradient(180deg,transparent,rgba(5,8,15,.88));
  font-size:.71rem; letter-spacing:.17em; text-transform:uppercase; color:var(--beige);
  opacity:0; transform:translateY(8px); transition:.5s var(--ease);
}
.gal figure:hover figcaption{ opacity:1; transform:translateY(0); }
.gal figure.is-hidden{ display:none; }
.gal__more{ display:flex; justify-content:center; margin-top:clamp(2rem,4vw,3.2rem); }
.gal__more button[hidden]{ display:none; }

/* Lightbox */
.lb{ position:fixed; inset:0; z-index:2000; background:rgba(3,5,10,.975);
  backdrop-filter:blur(10px); display:none; place-items:center; }
.lb.is-open{ display:grid; animation:fade .4s var(--ease); }
@keyframes fade{ from{opacity:0} to{opacity:1} }
.lb__img{ max-width:min(92vw,1560px); max-height:72vh; object-fit:contain;
  box-shadow:0 40px 120px rgba(0,0,0,.7); }
.lb__cap{ position:absolute; left:0; right:0; bottom:clamp(1.6rem,5vh,3.4rem); text-align:center;
  font-size:.815rem; letter-spacing:.2em; padding-inline:clamp(1rem,6vw,5rem); text-transform:uppercase; color:var(--beige); }
.lb__cap b{ display:block; font-weight:400; color:var(--gold-dk); font-size:.735rem; margin-top:.75rem; letter-spacing:.26em; }
.lb__x{ position:absolute; top:clamp(1rem,3vh,2rem); right:clamp(1rem,3vw,2.4rem);
  width:48px; height:48px; display:grid; place-items:center; border:1px solid var(--line-soft);
  color:var(--beige); transition:.35s; }
.lb__x:hover{ border-color:var(--gold); color:var(--gold-lt); transform:rotate(90deg); }
.lb__nav{ position:absolute; top:50%; transform:translateY(-50%); width:56px; height:56px;
  display:grid; place-items:center; border:1px solid var(--line-soft); color:var(--beige);
  transition:.35s; }
.lb__nav:hover{ border-color:var(--gold); color:var(--gold-lt); background:rgba(198,161,91,.08); }
.lb__nav--p{ left:clamp(.6rem,2.4vw,2.4rem); } .lb__nav--n{ right:clamp(.6rem,2.4vw,2.4rem); }
@media (max-width:640px){ .lb__nav{ width:44px;height:44px; } .lb__img{ max-height:66vh; } }

/* =========================================================================
   GRUNDRISSE
   ========================================================================= */

.plans__tabs{ display:flex; gap:0; border-bottom:1px solid var(--line-soft); margin-bottom:2.4rem;
  flex-wrap:wrap; }
.plans__tabs button{ font-size:.71rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--grey); padding:1.05em 1.7em; position:relative; transition:color .35s; }
.plans__tabs button::after{ content:""; position:absolute; left:0; bottom:-1px; height:1px; width:0;
  background:var(--gold); transition:width .5s var(--ease-out); }
.plans__tabs button.is-on{ color:var(--white); }
.plans__tabs button.is-on::after{ width:100%; }
.plans__stage{ background:var(--ink-2); border:1px solid var(--line-soft); padding:clamp(.5rem,1.1vw,1rem);
  display:grid; place-items:center; min-height:340px; }
.plans__stage img{ max-height:74vh; width:100%; height:auto; object-fit:contain; opacity:0; transition:opacity .5s; }
.plans__stage img.is-on{ opacity:1; }
.plans__stage img:not(.is-on){ display:none; }

/* =========================================================================
   VERFÜGBARKEIT / KALENDER
   ========================================================================= */

.cal{ border:1px solid var(--line-soft); background:linear-gradient(180deg,var(--ink-2),var(--ink)); }
.cal__bar{ display:flex; align-items:center; justify-content:space-between; gap:1.2rem;
  padding:clamp(1rem,2vw,1.5rem) clamp(1.1rem,2.4vw,2rem); border-bottom:1px solid var(--line-soft);
  flex-wrap:wrap; }
.cal__nav{ display:flex; align-items:center; gap:.5rem; flex:none; min-width:0; }
.cal__nav button{ width:42px; height:42px; display:grid; place-items:center;
  border:1px solid var(--line-soft); color:var(--beige); transition:.35s; }
.cal__nav button:hover:not(:disabled){ border-color:var(--gold); color:var(--gold-lt); background:rgba(198,161,91,.07); }
.cal__nav button:disabled{ opacity:.22; cursor:not-allowed; }
.cal__title{ font-family:var(--serif); font-size:1.42rem; color:var(--white); min-width:16ch;
  text-align:center; flex:1; letter-spacing:.02em; }
.cal__nav--r{ justify-content:flex-end; }

.cal__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.3rem,2.6vw,2.6rem);
  padding:clamp(1.3rem,2.6vw,2.4rem); }
@media (max-width:1120px){ .cal__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:760px){ .cal__grid{ grid-template-columns:1fr; } }

.mon__hd{ font-family:var(--serif); font-size:1.06rem; color:var(--beige); text-align:center;
  padding-bottom:.9rem; margin-bottom:.9rem; border-bottom:1px solid var(--line-soft); letter-spacing:.04em; }
.mon__dow{ display:grid; grid-template-columns:repeat(7,1fr); margin-bottom:.35rem; }
.mon__dow span{ text-align:center; font-size:.63rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--gold-dk); padding:.35rem 0; }
.mon__days{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }

.d{ position:relative; aspect-ratio:1/1; display:grid; place-items:center;
  font-size:.85rem; color:var(--grey-lt); font-variant-numeric:tabular-nums;
  border:1px solid transparent; transition:.28s var(--ease); }
.d--pad{ visibility:hidden; }
.d--free{ cursor:pointer; }
.d--free:hover{ border-color:var(--gold); color:var(--white); background:rgba(198,161,91,.09); }
.d--past{ color:rgba(127,138,156,.3); }
.d--today{ font-weight:500; }
.d--today::after{ content:""; position:absolute; bottom:11%; left:50%; transform:translateX(-50%);
  width:4px; height:4px; border-radius:50%; background:var(--gold); }
/* belegt */
.d--busy{ color:rgba(127,138,156,.42); background:rgba(159,189,216,.045); cursor:not-allowed; }
.d--busy::before{
  content:""; position:absolute; left:14%; right:14%; top:50%; height:1px;
  background:var(--ice-dk); opacity:.62; transform:rotate(-24deg);
}
/* Wechseltag: An- und Abreise am selben Tag möglich */
.d--turn{ color:var(--grey-lt); cursor:pointer; }
.d--turn::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(159,189,216,.14) 0 48%, transparent 52% 100%);
}
.d--turn-out::before{
  background:linear-gradient(315deg, rgba(159,189,216,.14) 0 48%, transparent 52% 100%);
}
/* Auswahl */
.d--sel{ background:rgba(198,161,91,.20); color:var(--white); border-color:rgba(198,161,91,.45); }
.d--sel-a,.d--sel-b{ background:var(--gold); color:#0B0F18; border-color:var(--gold); font-weight:500; }

.cal__legend{ display:flex; flex-wrap:wrap; gap:1.7rem; padding:0 clamp(1.1rem,2.4vw,2rem) clamp(1.3rem,2.6vw,2rem);
  font-size:.79rem; color:var(--grey); }
.cal__legend div{ display:flex; align-items:center; gap:.65rem; }
.cal__legend i{ width:19px; height:19px; border:1px solid var(--line-soft); position:relative; flex:none; }
.cal__legend i.busy{ background:rgba(159,189,216,.045); }
.cal__legend i.busy::before{ content:""; position:absolute; left:12%; right:12%; top:50%; height:1px;
  background:var(--ice-dk); opacity:.62; transform:rotate(-24deg); }
.cal__legend i.turn::before{ content:""; position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(159,189,216,.16) 0 48%, transparent 52% 100%); }
.cal__legend i.gold{ background:var(--gold); border-color:var(--gold); }

.cal__sel{ display:flex; align-items:center; justify-content:space-between; gap:1.2rem;
  flex-wrap:wrap; padding:clamp(1rem,2vw,1.4rem) clamp(1.1rem,2.4vw,2rem);
  border-top:1px solid var(--line-soft); background:rgba(198,161,91,.045); }
.cal__sel[hidden]{ display:none; }
.cal__sel p{ margin:0; font-size:.96rem; color:var(--beige); }
.cal__sel p b{ color:var(--white); font-weight:400; }
.cal__sel .btn:disabled{ opacity:.45; cursor:not-allowed; filter:saturate(.35); }
.cal__note{ margin:1.6rem 0 0; font-size:.885rem; color:var(--grey); max-width:none; }
.cal__note--full{ max-width:100%; }

/* =========================================================================
   LAGE / ANFAHRT
   ========================================================================= */

.dist{ list-style:none; margin:0; padding:0; }
.dist li{ display:flex; align-items:baseline; gap:1.2rem; padding:.95rem 0;
  border-bottom:1px solid rgba(159,189,216,.08); }
.dist li span:first-child{ flex:1; font-size:.99rem; color:var(--beige); }
.dist li span:last-child{ font-size:.79rem; letter-spacing:.11em; text-transform:uppercase;
  color:var(--gold); white-space:nowrap; font-variant-numeric:tabular-nums; }

.map{ position:relative; aspect-ratio:16/11; background:var(--navy); border:1px solid var(--line-soft);
  display:grid; place-items:center; overflow:hidden; }
.map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0;
  filter:grayscale(.12) contrast(1.02) saturate(.94); }
.map__ph{ text-align:center; padding:2rem; max-width:44ch; }
.map__ph p{ margin:.9rem 0 1.6rem; font-size:.92rem; color:var(--grey); }

/* =========================================================================
   UMGEBUNGS-GUIDE
   ========================================================================= */

.guide__tabs{ display:flex; flex-wrap:wrap; gap:0; border-bottom:1px solid var(--line-soft);
  margin-bottom:clamp(2rem,4vw,3.2rem); overflow-x:auto; }
.guide__tabs button{ font-size:.71rem; letter-spacing:.18em; text-transform:uppercase; color:var(--grey);
  padding:1.15em 1.5em; position:relative; white-space:nowrap; transition:color .35s; }
.guide__tabs button::after{ content:""; position:absolute; left:0; bottom:-1px; height:1px; width:0;
  background:var(--gold); transition:width .5s var(--ease-out); }
.guide__tabs button.is-on{ color:var(--white); }
.guide__tabs button.is-on::after{ width:100%; }
.guide__tabs button i{ font-style:normal; color:var(--gold-dk); margin-left:.7em; font-size:.85em; }

.guide__panel{ display:none; }
.guide__panel.is-on{ display:block; animation:rise .55s var(--ease-out); }
@keyframes rise{ from{opacity:0; transform:translateY(14px)} to{opacity:1; transform:none} }
.guide__intro{ max-width:none; margin:0 0 clamp(2rem,3.5vw,2.8rem); }

.cards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr));
  gap:clamp(1rem,1.8vw,1.5rem); }
.card{ border:1px solid var(--line-soft); padding:clamp(1.4rem,2.2vw,1.9rem);
  background:linear-gradient(170deg, rgba(16,27,48,.42), rgba(8,13,24,.42));
  position:relative; overflow:hidden; display:flex; flex-direction:column;
  transition:border-color .5s var(--ease), transform .5s var(--ease-out); }
.card::after{ content:""; position:absolute; top:0; left:0; width:100%; height:1px;
  background:linear-gradient(90deg,var(--gold),transparent); transform:scaleX(0); transform-origin:left;
  transition:transform .7s var(--ease-out); }
.card:hover{ border-color:var(--line); transform:translateY(-3px); }
.card:hover::after{ transform:scaleX(1); }
.card__top{ display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:.7rem; }
.card h4{ font-family:var(--serif); font-weight:400; font-size:1.28rem; color:var(--white);
  margin:0; line-height:1.28; min-height:2.56em; display:flex; align-items:flex-start; }
@media (max-width:520px){ .card h4{ min-height:0; } }
.card__tag{ font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-dk);
  border:1px solid var(--line); padding:.35em .7em; white-space:nowrap; flex:none; }
.card p{ margin:0 0 1.1rem; font-size:.925rem; line-height:1.72; color:var(--grey-lt); flex:1; }
.card__foot{ display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding-top:.9rem; border-top:1px solid rgba(159,189,216,.08); }
.card__dist{ font-size:.71rem; letter-spacing:.13em; text-transform:uppercase; color:var(--gold); }
.card__map{ font-size:.7rem; letter-spacing:.13em; text-transform:uppercase; color:var(--grey);
  display:inline-flex; align-items:center; gap:.45em; transition:color .35s; }
.card__map:hover{ color:var(--gold-lt); }

.notice{ border:1px solid var(--line); background:rgba(198,161,91,.05);
  padding:clamp(1.3rem,2.4vw,1.9rem); margin-top:clamp(1.6rem,3vw,2.4rem); }
.notice h4{ font-family:var(--sans); font-weight:400; font-size:.74rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--gold); margin:0 0 .9rem; }
.notice p{ margin:0; font-size:.92rem; color:var(--grey-lt); }
.notice ul{ margin:.7rem 0 0; padding-left:1.1rem; font-size:.92rem; color:var(--grey-lt); }
.notice ul li{ margin:.3rem 0; }

/* =========================================================================
   BEWERTUNGEN
   ========================================================================= */

.rating{ display:grid; grid-template-columns:auto 1fr; gap:clamp(2rem,5vw,5rem); align-items:center; }
@media (max-width:820px){ .rating{ grid-template-columns:1fr; } }
.rating__score{ text-align:center; }
.rating__score b{ display:block; font-family:var(--serif); font-weight:300; font-size:clamp(4rem,8vw,6.4rem);
  color:var(--white); line-height:.9; }
.rating__stars{ color:var(--gold); letter-spacing:.34em; font-size:.95rem; margin:.9rem 0 .7rem; }
.rating__score span{ font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-dk); }
.bars{ display:grid; gap:.95rem; }
.bar{ display:grid; grid-template-columns:11ch 1fr 3.6ch; align-items:center; gap:1.1rem; font-size:.86rem; }
.bar span:first-child{ color:var(--grey-lt); }
.bar i{ display:block; height:1px; background:rgba(159,189,216,.14); position:relative; }
.bar i::after{ content:""; position:absolute; inset:0 auto 0 0; width:var(--w,100%);
  background:linear-gradient(90deg,var(--gold-dk),var(--gold)); }
.bar span:last-child{ color:var(--gold); text-align:right; font-variant-numeric:tabular-nums; }
/* ---------- Auszeichnung „Gäste-Favorit" ---------- */

.laurel{ display:inline-flex; align-items:center; gap:.85rem; }
.laurel svg{ width:23px; height:31px; flex:none; color:var(--gold); }
.laurel svg:last-of-type{ transform:scaleX(-1); }
.laurel__txt{ text-align:center; line-height:1.2; }
.laurel__txt b{ display:block; font-family:var(--sans); font-weight:400; font-size:.78rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--beige); }
.laurel__txt span{ display:block; margin-top:.3rem; font-size:.66rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--gold-dk); }

/* im Hero: zurückhaltend, über der Kennzahlenzeile */
.hero .laurel{ margin-bottom:1.6rem; }
.hero .laurel svg{ width:20px; height:27px; }
.hero .laurel__txt b{ font-size:.72rem; }
.hero .laurel__txt{ text-align:left; }
@media (max-width:640px){
  .hero .laurel{ margin-bottom:1.2rem; }
  .hero .laurel svg{ width:17px; height:23px; }
  .hero .laurel__txt b{ font-size:.64rem; letter-spacing:.16em; }
  .hero .laurel__txt span{ font-size:.58rem; }
}

/* im Bewertungsbereich: als eigenständiges Siegel */
.laurel--seal{ border:1px solid var(--line); padding:1.1rem 1.7rem;
  background:rgba(198,161,91,.05); }
.laurel--seal svg{ width:30px; height:40px; }
.laurel--seal .laurel__txt b{ font-size:.88rem; }

/* ---------- Rezensions-Karussell ---------- */

.revs{ margin-top:clamp(3rem,6vw,5rem); }
.revs__hd{ display:flex; align-items:flex-end; justify-content:space-between; gap:2rem;
  flex-wrap:wrap; margin-bottom:clamp(1.6rem,3vw,2.4rem); }
.revs__nav{ display:flex; gap:.6rem; flex:none; }
.revs__nav button{ width:52px; height:52px; display:grid; place-items:center;
  border:1px solid var(--line-soft); color:var(--beige); transition:.35s var(--ease); }
.revs__nav button:hover:not(:disabled){ border-color:var(--gold); color:var(--gold-lt);
  background:rgba(198,161,91,.08); }
.revs__nav button:disabled{ opacity:.2; cursor:not-allowed; }

.revs__track{
  display:flex; gap:clamp(1rem,1.8vw,1.6rem); overflow-x:auto; scroll-behavior:smooth;
  scroll-snap-type:x mandatory; padding-bottom:1.4rem;
  scrollbar-width:none; -ms-overflow-style:none;
}
.revs__track::-webkit-scrollbar{ display:none; }

.rev{
  flex:0 0 clamp(280px, 31.5%, 460px); scroll-snap-align:start;
  border:1px solid var(--line-soft); padding:clamp(1.7rem,2.6vw,2.4rem);
  background:linear-gradient(170deg, rgba(16,27,48,.46), rgba(8,13,24,.46));
  display:flex; flex-direction:column; position:relative; overflow:hidden;
  transition:border-color .5s var(--ease);
}
.rev:hover{ border-color:var(--line); }
.rev::before{
  content:"\201C"; position:absolute; top:-.16em; right:.16em;
  font-family:var(--serif); font-size:9rem; line-height:1; color:rgba(198,161,91,.09);
  pointer-events:none;
}
.rev__stars{ color:var(--gold); letter-spacing:.24em; font-size:.8rem; margin-bottom:1.15rem; }
.rev blockquote{
  margin:0 0 1.1rem; flex:1;
  font-family:var(--serif); font-style:italic; font-weight:300;
  font-size:clamp(1.06rem,1.3vw,1.22rem); line-height:1.62; color:var(--beige);
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:11;
  overflow:hidden;
}
.rev.is-open blockquote{ -webkit-line-clamp:unset; overflow:visible; }
.rev__more{
  align-self:flex-start; margin-bottom:1.3rem; padding:0 0 .3em;
  font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-lt);
  border-bottom:1px solid var(--line); transition:color .35s, border-color .35s;
}
.rev__more:hover{ color:var(--white); border-color:var(--gold); }
.rev__more[hidden]{ display:none; }
.revs__track{ align-items:stretch; }
.rev__who{ display:flex; align-items:baseline; justify-content:space-between; gap:1rem;
  padding-top:1.1rem; border-top:1px solid rgba(159,189,216,.09); }
.rev__who b{ font-family:var(--sans); font-weight:400; font-size:.82rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--white); }
.rev__who span{ font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-dk);
  text-align:right; }
@media (max-width:900px){ .rev{ flex-basis:clamp(260px, 78%, 420px); } }

.revs__dots{ display:flex; gap:.5rem; justify-content:center; margin-top:.6rem; }
.revs__dots i{ width:20px; height:1px; background:rgba(159,189,216,.22); transition:.4s var(--ease); }
.revs__dots i.is-on{ background:var(--gold); }

.themes{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:2.2rem; }
.themes span{ font-size:.7rem; letter-spacing:.15em; text-transform:uppercase; color:var(--beige);
  border:1px solid var(--line-soft); padding:.55em 1.05em; }

/* =========================================================================
   KONTAKT
   ========================================================================= */

.contact{ position:relative; background:linear-gradient(180deg,var(--ink),var(--ink-2)); }
.contact__grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2.2rem,5vw,5.5rem); }
@media (max-width:900px){ .contact__grid{ grid-template-columns:1fr; } }

.info{ list-style:none; margin:2.4rem 0 0; padding:0; }
.info li{ padding:1.15rem 0; border-bottom:1px solid rgba(159,189,216,.08); }
.info b{ display:block; font-family:var(--sans); font-weight:400; font-size:.68rem;
  letter-spacing:.22em; text-transform:uppercase; color:var(--gold-dk); margin-bottom:.5rem; }
.info a,.info span{ font-size:1.06rem; color:var(--beige); transition:color .35s; }
.info a:hover{ color:var(--gold-lt); }

.price{ border:1px solid var(--line); padding:clamp(1.4rem,2.4vw,1.9rem); margin-top:2.4rem;
  background:rgba(198,161,91,.045); }
.price b{ display:block; font-family:var(--serif); font-weight:300; font-size:clamp(1.9rem,3vw,2.5rem);
  color:var(--white); line-height:1; }
.price b em{ font-style:normal; font-size:.4em; color:var(--gold); letter-spacing:.02em; }
.price > span{ display:block; font-size:.68rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold-dk); margin-bottom:.8rem; }
.price b .ph{ font-size:.92em; }
.price p{ margin:.95rem 0 0; font-size:.875rem; color:var(--grey); }

.form{ display:grid; gap:1.35rem; }
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:1.35rem; }
@media (max-width:600px){ .form__row{ grid-template-columns:1fr; } }
.field{ position:relative; }
.field label{ display:block; font-size:.67rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold-dk); margin-bottom:.7rem; }
.field input,.field select,.field textarea{
  width:100%; background:rgba(159,189,216,.035); border:1px solid var(--line-soft);
  color:var(--white); font-family:var(--sans); font-size:.94rem; font-weight:300;
  padding:.95em 1.05em; transition:border-color .4s var(--ease), background .4s var(--ease);
  border-radius:0; -webkit-appearance:none; appearance:none;
}
.field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' fill='none' stroke='%23C6A15B' stroke-width='1.3'%3E%3Cpath d='M1 1l4.5 4.5L10 1'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 1.05em center; padding-right:2.6em;
}
.field select option{ background:#0C1526; color:var(--white); }
.field textarea{ resize:vertical; min-height:132px; }
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--gold); background:rgba(198,161,91,.05); }
.field input::placeholder,.field textarea::placeholder{ color:rgba(127,138,156,.55); }
.field input[type="date"]::-webkit-calendar-picker-indicator{ filter:invert(.7) sepia(1) saturate(3) hue-rotate(5deg); cursor:pointer; }

.consent{ display:flex; gap:.9rem; align-items:flex-start; font-size:.86rem; color:var(--grey); line-height:1.65; }
.consent input{ width:17px; height:17px; flex:none; margin-top:.22em; accent-color:var(--gold); }
.consent a{ color:var(--gold-lt); border-bottom:1px solid var(--line); }

.form__msg{ font-size:.89rem; padding:.9rem 1.1rem; border:1px solid var(--line); background:rgba(198,161,91,.06);
  color:var(--beige); }
.form__msg[hidden]{ display:none; }

.assure{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.2rem,2.4vw,2.2rem);
  margin-top:clamp(2.6rem,5vw,4rem); padding-top:clamp(2rem,3.5vw,2.8rem);
  border-top:1px solid var(--line-soft); }
@media (max-width:760px){ .assure{ grid-template-columns:1fr; } }
.assure b{ display:block; font-family:var(--sans); font-weight:400; font-size:.7rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:.85rem; }
.assure p{ margin:0; font-size:.9rem; line-height:1.72; color:var(--grey); }

/* =========================================================================
   FOOTER
   ========================================================================= */

.foot{ border-top:1px solid var(--line-soft); background:var(--ink); }
.foot__top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:clamp(1.8rem,3.5vw,3.5rem);
  padding-block:clamp(3rem,6vw,5rem); }
@media (max-width:900px){ .foot__top{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .foot__top{ grid-template-columns:1fr; } }
.foot h5{ font-family:var(--sans); font-weight:400; font-size:.68rem; letter-spacing:.23em;
  text-transform:uppercase; color:var(--gold-dk); margin:0 0 1.3rem; }
.foot ul{ list-style:none; margin:0; padding:0; display:grid; gap:.62rem; }
.foot ul a,.foot ul span{ font-size:.92rem; color:var(--grey-lt); transition:color .35s; }
.foot ul a:hover{ color:var(--gold-lt); }
.foot__bot{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  flex-wrap:wrap; padding-block:1.8rem; border-top:1px solid rgba(159,189,216,.07);
  font-size:.79rem; color:var(--grey); }
.foot__bot nav{ display:flex; gap:1.6rem; flex-wrap:wrap; }
.foot__bot a:hover{ color:var(--gold-lt); }

/* Fortschrittsbalken */
.prog{ position:fixed; top:0; left:0; height:2px; z-index:1001; width:0;
  background:linear-gradient(90deg,var(--gold-dk),var(--gold),var(--gold-lt)); transition:width .12s linear; }

/* Reveal-Animation */
.rv{ opacity:0; transform:translateY(26px); transition:opacity 1s var(--ease-out), transform 1s var(--ease-out); }
.rv.is-in{ opacity:1; transform:none; }
.rv-d1{ transition-delay:.09s } .rv-d2{ transition-delay:.18s } .rv-d3{ transition-delay:.27s }
.rv-d4{ transition-delay:.36s }
@media (prefers-reduced-motion: reduce){ .rv{ opacity:1; transform:none; transition:none; } }

/* Sprachumschaltung */
[data-lang-de],[data-lang-en]{ display:none; }
html[lang="de"] [data-lang-de]{ display:revert; }
html[lang="en"] [data-lang-en]{ display:revert; }

/* Rechtstexte */
.legal{ max-width:82ch; }
.legal h2{ margin-top:3rem; }
.legal h3{ margin-top:2.2rem; font-size:1.18rem; }
.legal p,.legal li{ font-size:.93rem; line-height:1.85; }
.legal ul{ padding-left:1.2rem; }
.legal .ph{ color:var(--gold-lt); background:rgba(198,161,91,.09); padding:.08em .45em;
  border:1px dashed rgba(198,161,91,.35); font-size:.92em; }

.ph{ color:var(--gold-lt); }

@media print{
  .nav,.scrollcue,.prog,.lb{ display:none !important; }
  body{ background:#fff; color:#111; }
}


/* =========================================================================
   ERGÄNZUNGEN
   ========================================================================= */

/* Raumkacheln: Verweis in die Galerie, erscheint mit der Beschreibung */
.room__foot{ display:flex; justify-content:flex-end; margin-top:.95rem;
  opacity:0; transform:translateY(9px);
  transition:opacity .55s var(--ease), transform .55s var(--ease-out); }
.room:hover .room__foot,.room:focus-within .room__foot{ opacity:1; transform:translateY(0); }
.room__all{
  display:inline-flex; align-items:center; gap:.55em;
  font-size:.6rem; letter-spacing:.18em; text-transform:uppercase;
  color:#0B0F18; background:linear-gradient(100deg,var(--gold-dk),var(--gold));
  padding:.62em .95em; transition:filter .35s;
}
.room__all:hover{ filter:brightness(1.12); }
.room__all svg{ transition:transform .35s var(--ease); }
.room__all:hover svg{ transform:translateY(2px); }
@media (hover:none){
  .room__foot{ opacity:1; transform:none; }
  .room__t p{ opacity:1 !important; transform:none !important; }
}

/* Grundrisse: Liste links, mit den Reitern verbunden */
.plans__list{ list-style:none; margin:2.4rem 0 0; padding:0; }
.plans__list li{ border-bottom:1px solid rgba(159,189,216,.08); }
.plans__list button{
  width:100%; text-align:left; display:flex; gap:.9rem; align-items:baseline;
  padding:.85rem 0; font-size:.96rem; color:var(--grey-lt);
  transition:color .35s var(--ease), padding-left .4s var(--ease);
}
.plans__list button::before{ content:""; width:5px; height:5px; flex:none; transform:rotate(45deg);
  border:1px solid var(--gold-dk); margin-top:.45em; transition:.35s var(--ease); }
.plans__list button:hover{ color:var(--beige); padding-left:.4rem; }
.plans__list button.is-on{ color:var(--white); padding-left:.4rem; }
.plans__list button.is-on::before{ background:var(--gold); border-color:var(--gold); }

/* Kalender: Heute-Schaltfläche */
.cal__today{
  flex:none; white-space:nowrap; align-self:center; line-height:1;
  font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-lt);
  border:1px solid var(--line); padding:1.1em 1.3em; margin-left:.6rem;
  opacity:0; visibility:hidden; transform:translateX(-6px);
  transition:opacity .45s var(--ease), transform .45s var(--ease-out), visibility .45s,
             background .35s, color .35s;
}
.cal__today.is-on{ opacity:1; visibility:visible; transform:none; }
.cal__today:hover{ background:rgba(198,161,91,.12); color:var(--white); }

/* Kalender: Auswahl, die über belegte Nächte läuft */
.d--conflict{ background:rgba(150,42,42,.34) !important; color:#F0D6D6 !important;
  border-color:rgba(190,70,70,.55) !important; }
.d--conflict::before{ background:#E08A8A !important; opacity:.85 !important; }
.cal__sel.is-conflict{ background:rgba(150,42,42,.12); }
.btn--warn{ background:linear-gradient(100deg,#7E2B2B,#B14747); color:#FBECEC; border-color:transparent; }
.btn--warn::before{ background:#D96A6A; }
.btn--warn:hover{ color:#2A0C0C; }

.cal__alert{ display:flex; align-items:flex-start; gap:1.2rem; flex-wrap:wrap;
  justify-content:space-between;
  padding:clamp(1rem,2vw,1.4rem) clamp(1.1rem,2.4vw,2rem);
  border-top:1px solid rgba(190,70,70,.35); background:rgba(150,42,42,.14); }
.cal__alert[hidden]{ display:none; }
.cal__alert p{ margin:0; font-size:.92rem; color:#F3DCDC; max-width:none; flex:1; min-width:min(100%,46ch); }
.cal__alert p b{ display:block; font-weight:400; color:#FFF1F1; margin-bottom:.35rem;
  font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; }

/* Umgebungs-Guide: Reiter bleiben beim Scrollen stehen */
.guide-bar{
  position:sticky; top:70px; z-index:60;
  padding:.3rem 0 1.1rem; margin-bottom:clamp(1.6rem,3vw,2.6rem);
  background:linear-gradient(180deg, var(--ink) 0%, var(--ink) 86%, rgba(5,8,15,0) 100%);
  transition:opacity .55s var(--ease), transform .55s var(--ease-out);
}
.cal__alert--neutral{ background:rgba(198,161,91,.09); border-color:rgba(198,161,91,.34); }
.cal__alert--neutral p{ color:var(--beige); }
.cal__alert--neutral p b{ color:var(--gold-lt); }
.statusFacts{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px;
  margin:2.2rem 0 0; background:rgba(198,161,91,.2); border:1px solid rgba(198,161,91,.2); }
.statusFacts[hidden]{ display:none; }
.statusFacts div{ background:var(--ink); padding:1rem 1.1rem; }
.statusFacts dt{ color:var(--gray); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; }
.statusFacts dd{ margin:.35rem 0 0; color:var(--beige); overflow-wrap:anywhere; }
@media(max-width:620px){ .statusFacts{ grid-template-columns:1fr; } }
.guide-bar.is-out{ opacity:0; transform:translateY(-10px); pointer-events:none; }
.guide-bar .guide__tabs{ margin-bottom:0; }

/* =========================================================================
   MOBILANSICHT
   Auf schmalen Displays dürfen Textblöcke nicht auf 70 % beschnitten werden,
   und die Anzeigegrößen der Überschriften brauchen etwas weniger Wucht.
   ========================================================================= */

@media (max-width:900px){
  .section-head,
  .guide__intro,
  .cal__note,
  .cal__note--full,
  [style*="max-width:70%"]{ max-width:100% !important; }
}

@media (max-width:760px){
  :root{ --nav-h:70px; }

  .display{ font-size:clamp(2.9rem,15vw,4.4rem); line-height:.98; }
  .h1{ font-size:clamp(2rem,8.6vw,2.9rem); line-height:1.08; }
  .h2{ font-size:clamp(1.6rem,6.6vw,2.2rem); }
  .lead{ font-size:1.02rem; line-height:1.75; }
  body{ font-size:16px; }

  .section{ padding-block:clamp(3.6rem,9vh,5.5rem); }
  .section-head{ margin-bottom:2.2rem; }

  /* Titelbild: Kennzahlen zweispaltig, Höhe nicht erzwingen */
  .hero{ min-height:auto; padding-bottom:2.4rem; }
  .hero__in{ padding-top:calc(var(--nav-h) + 3.2rem); }
  .hero__facts div{ min-width:0; flex:1 1 46%; padding-right:1rem; }
  .hero__cta{ gap:.7rem; }
  .hero__cta .btn{ width:100%; justify-content:center; }

  /* Raumkacheln: Text immer sichtbar, keine Hover-Abhängigkeit */
  .room,.room--wide,.room--half{ aspect-ratio:4/3.4; }
  .room__t{ padding:1.2rem 1.15rem 1.35rem; }
  .room__t p{ font-size:.86rem; }
  .room__all{ right:1.15rem; bottom:1.15rem; font-size:.6rem; padding:.7em .95em; }

  /* Galerie */
  .gal-bar{ top:var(--nav-h); padding:.7rem 0 1.1rem; }
  .filters{ flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none;
    margin-inline:calc(var(--pad) * -1); padding-inline:var(--pad); }
  .filters::-webkit-scrollbar{ display:none; }
  .filters button{ flex:none; }

  /* Kalender */
  .cal__bar{ gap:.6rem; padding:1rem; }
  .cal__title{ order:-1; flex-basis:100%; font-size:1.24rem; min-width:0; }
  .cal__nav{ flex:1; }
  .cal__nav--r{ justify-content:flex-end; }
  .cal__today{ margin-left:.4rem; font-size:.6rem; padding:.8em .85em; }
  .cal__grid{ padding:1.1rem; }
  .d{ font-size:.9rem; }
  .cal__legend{ gap:.9rem 1.2rem; font-size:.74rem; padding:0 1.1rem 1.4rem; }
  .cal__sel,.cal__alert{ padding:1.1rem; }
.cal__sel .btn,.cal__alert .btn{ width:100%; justify-content:center; }
.cal__sel .btn:disabled{ opacity:.45; cursor:not-allowed; }
  .cal__sel > div{ width:100%; }

  /* Umgebung */
  .guide-bar{ top:var(--nav-h); }
  .guide__tabs{ flex-wrap:nowrap; margin-inline:calc(var(--pad) * -1);
    padding-inline:var(--pad); }
  .guide__tabs button{ padding:1em 1.1em; }
  .cards{ grid-template-columns:1fr; }

  /* Bewertungen */
  .revs__hd{ gap:1.4rem; }
  .revs__nav{ order:3; }
  .laurel--seal{ padding:.9rem 1.1rem; }
  .laurel--seal svg{ width:24px; height:32px; }
  .laurel--seal .laurel__txt b{ font-size:.74rem; }
  .laurel__txt span{ font-size:.58rem; letter-spacing:.12em; }
  .rev{ flex-basis:82%; padding:1.5rem 1.4rem; }
  .rev blockquote{ font-size:1.04rem; -webkit-line-clamp:9; }

  /* Grundrisse */
  .plans__stage{ min-height:0; }
  .plans__stage img{ max-height:60vh; }
  .plans__tabs button{ padding:.95em 1em; }

  /* Lage */
  .map{ aspect-ratio:4/3.4; }
  .dist li{ gap:.9rem; }
  .dist li span:first-child{ font-size:.92rem; }

  /* Kontakt */
  .price b{ font-size:1.9rem; }
  .form__row{ gap:1.1rem; }
  .contact__grid{ gap:2.6rem; }

  /* Fußzeile */
  .foot__bot{ flex-direction:column; align-items:flex-start; gap:1rem; }
}

@media (max-width:420px){
  .display{ font-size:clamp(2.6rem,14vw,3.6rem); }
  .h1{ font-size:1.95rem; }
  .eyebrow{ font-size:.68rem; letter-spacing:.24em; }
  .rev{ flex-basis:88%; }
  .hero__facts b{ font-size:1.45rem; }
}

@media (max-width:760px){
  /* Bildausschnitt des Titelbilds: das Haus soll als Ganzes lesbar bleiben */
  .hero__bg img{ object-position:48% 40%; }

  /* Auszeichnung im Titelbild: nur ein Zweig, links ausgerichtet */
  .hero .laurel{ align-items:center; gap:.7rem; }
  .hero .laurel svg:last-of-type{ display:none; }
  .hero .laurel__txt{ text-align:left; }
}


/* Lorbeerkranz rechts neben den Schaltflächen im Titelbild */
.hero__cta{ align-items:center; }
.hero__cta .laurel{ margin-left:auto; margin-bottom:0; }
@media (max-width:900px){
  .hero__cta{ flex-wrap:wrap; }
  .hero__cta .laurel{ margin-left:0; width:100%; margin-top:.4rem; }
}


/* Grundrisse: die Höhe wird per Skript an die Etagenliste angeglichen,
   damit Plan und Liste unten bündig abschließen. */
.plans-split{ align-items:start; }
.plans-split .split__media{ display:flex; flex-direction:column; min-height:0; }
.plans-split .plans__stage{ display:block; min-height:0; overflow:hidden; }
.plans-split .plans__stage img.is-on{
  display:block; width:100%; height:100%; max-height:none; object-fit:contain;
}
@media (max-width:900px){
  .plans-split .plans__stage{ height:auto !important; }
  .plans-split .plans__stage img{ height:auto; max-height:62vh; }
}

/* Aufmacherbild im Umgebungs-Guide */
.guide__fig{ margin:0 0 clamp(1.6rem,3vw,2.4rem); position:relative; overflow:hidden;
  background:var(--navy); aspect-ratio:21/9; }
.guide__fig img{ width:100%; height:100%; object-fit:cover;
  transition:transform 1.5s var(--ease-out); }
.guide__fig:hover img{ transform:scale(1.035); }
.guide__fig figcaption{ position:absolute; left:0; right:0; bottom:0;
  padding:1.4rem clamp(1.1rem,2vw,1.6rem) 1rem;
  background:linear-gradient(180deg,transparent,rgba(5,8,15,.88));
  font-size:.69rem; letter-spacing:.2em; text-transform:uppercase; color:var(--beige); }
@media (max-width:760px){ .guide__fig{ aspect-ratio:16/10; } }

/* =========================================================================
   PREISE IM KALENDER
   ========================================================================= */

.d{ flex-direction:column; gap:0; }
.d__n{ display:block; line-height:1.05; }
.d__p{ display:block; font-size:.585rem; letter-spacing:.02em; line-height:1;
  margin-top:.24em; color:var(--gold-dk); font-variant-numeric:tabular-nums;
  transition:color .28s var(--ease); }
.d--free:hover .d__p{ color:var(--gold-lt); }
.d--sel .d__p,.d--sel-a .d__p,.d--sel-b .d__p{ color:rgba(11,15,24,.72); }
.d--sel-a .d__p,.d--sel-b .d__p{ color:rgba(11,15,24,.8); }
.d--conflict .d__p{ color:#F0C9C9 !important; }
@media (max-width:520px){ .d__p{ font-size:.55rem; } }


/* ---------- Aufstellung und Summe ---------- */

.calp{ border-top:1px solid var(--line-soft); padding:clamp(1.4rem,2.6vw,2rem) clamp(1.1rem,2.4vw,2rem); }
.calp[hidden]{ display:none; }
.calp__head{ margin-bottom:1.2rem; }

.calp__list{ list-style:none; margin:0 0 .3rem; padding:0; }
.calp__list li{ display:grid; grid-template-columns:1fr auto; gap:1.2rem;
  align-items:baseline; padding:.72rem 0; border-bottom:1px solid rgba(159,189,216,.08);
  font-size:.98rem; }
.calp__list li > span:first-child{ color:var(--beige); }
.calp__mid{ font-size:.83rem; color:var(--grey); font-variant-numeric:tabular-nums;
  text-align:right; }
.calp__sum{ min-width:7ch; text-align:right; color:var(--white);
  font-variant-numeric:tabular-nums; }


.calp__total{ display:flex; align-items:baseline; justify-content:space-between;
  gap:1.5rem; padding:1.35rem 0 .2rem; }
.calp__total span{ font-size:.7rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold-dk); }
.calp__total b{ font-family:var(--serif); font-weight:300;
  font-size:clamp(1.9rem,3.2vw,2.7rem); color:var(--white); line-height:1;
  font-variant-numeric:tabular-nums; }

.calp__warn{ margin:1rem 0 0; font-size:.9rem; color:#E9C79A;
  border-left:1px solid var(--gold); padding-left:1rem; }

.calp__inkl{ margin-top:1.8rem; padding-top:1.5rem; border-top:1px solid rgba(159,189,216,.08); }
.calp__inkl b{ display:block; font-family:var(--sans); font-weight:400; font-size:.68rem;
  letter-spacing:.22em; text-transform:uppercase; color:var(--gold-dk); margin-bottom:.9rem; }
.calp__inkl ul{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap;
  gap:.5rem .6rem; }
.calp__inkl li{ font-size:.8rem; letter-spacing:.06em; color:var(--beige);
  border:1px solid var(--line-soft); padding:.42em .85em; }
.calp__inkl p{ margin:1.1rem 0 0; font-size:.86rem; color:var(--grey); max-width:none; }

/* Das HTML-Attribut hidden muss die Anzeigeart der Schaltflächen schlagen */
.btn[hidden]{ display:none !important; }

/* =========================================================================
   RESERVIERUNGSDIALOG
   ========================================================================= */

.buch{ position:fixed; inset:0; z-index:2500; display:none; place-items:center;
  padding:clamp(1rem,4vh,3rem) var(--pad);
  background:rgba(3,5,10,.9); backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px); overflow-y:auto; }
.buch.is-open{ display:grid; animation:fade .35s var(--ease); }

.buch__box{ position:relative; width:min(780px,100%); margin:auto;
  background:linear-gradient(170deg, var(--navy) 0%, var(--ink-2) 100%);
  border:1px solid var(--line); padding:clamp(1.6rem,4vw,3.2rem); }
.buch__box::before{ content:""; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg,var(--gold),transparent); }

.buch__x{ position:absolute; top:1rem; right:1rem; width:42px; height:42px;
  display:grid; place-items:center; border:1px solid var(--line-soft);
  color:var(--beige); transition:.35s; }
.buch__x:hover{ border-color:var(--gold); color:var(--gold-lt); transform:rotate(90deg); }

.buch h3{ margin:.2rem 0 0; }

.buch__sum{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem;
  margin:1.8rem 0 2rem; padding:1.3rem 0; border-block:1px solid var(--line-soft); }
.buch__sum span{ display:block; font-size:.62rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--gold-dk); margin-bottom:.45rem; }
.buch__sum b{ font-family:var(--serif); font-weight:300; font-size:1.28rem;
  color:var(--white); line-height:1.15; }
.buch__sum div:last-child b{ color:var(--gold-lt); }
@media (max-width:560px){ .buch__sum{ grid-template-columns:1fr; gap:.9rem; text-align:left; } }

.buch__form .consent{ font-size:.83rem; }
.buch__form .consent a{ color:var(--gold-lt); border-bottom:1px solid var(--line); }
.buch__form .btn{ width:100%; justify-content:center; }
.buch__form .btn:disabled{ opacity:.5; cursor:wait; }


/* Auf dem Desktop laufen Fließtexte über die volle Spaltenbreite.
   Die Zeilenlänge bleibt dank der Seitenränder lesbar. */
@media (min-width:901px){
  .section-head,
  .section-head p,
  .guide__intro,
  .cal__note,
  .calp__inkl p,
  .notice p{ max-width:none; }
}
