/* ---------- Tokens ---------- */
:root{
  --bg:        #0e0d0b;
  --bg-2:      #16140f;
  --surface:   #1d1a14;
  --line:      rgba(255,255,255,.08);
  --line-2:    rgba(255,255,255,.14);
  --text:      #f4efe6;
  --text-dim:  #b9b1a1;
  --text-mute: #847c6e;

  --gold:      #d4a64a;
  --gold-2:    #f0c674;
  --gold-soft: rgba(212,166,74,.16);

  --radius:    18px;
  --radius-lg: 28px;

  --container: 1200px;
  --gap:       clamp(16px, 2vw, 28px);

  --shadow-sm: 0 4px 14px rgba(0,0,0,.25);
  --shadow:    0 18px 50px rgba(0,0,0,.45);

  --ease:      cubic-bezier(.2,.7,.2,1);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter', system-ui, -apple-system, Segoe UI, sans-serif;
  font-weight:400;
  font-size:17px;
  line-height:1.6;
  color:var(--text);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

/* ---------- Typography ---------- */
h1,h2,h3,h4{
  font-family:'Fraunces', 'Times New Roman', serif;
  font-weight:500;
  letter-spacing:-.01em;
  line-height:1.08;
  margin:0 0 .4em;
  color:var(--text);
}
h1{font-size:clamp(2.6rem, 6vw + .5rem, 5.4rem); font-weight:500}
h2{font-size:clamp(2rem, 3.4vw + .4rem, 3.2rem); font-weight:500}
h3{font-size:1.35rem; font-weight:600}
h4{font-size:1rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--text-dim)}
p{margin:0 0 1em}
em{font-style:italic; color:var(--gold-2)}

.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family:'Inter', sans-serif;
  font-size:.78rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.18em;
  color:var(--gold-2);
  margin:0 0 1.2em;
}
.eyebrow .dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 0 4px var(--gold-soft);
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:14px 26px;
  border-radius:999px;
  font-weight:600; font-size:.95rem;
  letter-spacing:.01em;
  transition:transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease);
  white-space:nowrap;
}
.btn:hover{transform:translateY(-2px)}
.btn--primary{
  background:linear-gradient(180deg, var(--gold-2), var(--gold));
  color:#1a1408;
  box-shadow:0 10px 28px rgba(212,166,74,.28), inset 0 1px 0 rgba(255,255,255,.4);
}
.btn--primary:hover{
  box-shadow:0 16px 36px rgba(212,166,74,.4), inset 0 1px 0 rgba(255,255,255,.5);
}
.btn--ghost{
  border:1px solid var(--line-2);
  color:var(--text);
  background:rgba(255,255,255,.02);
  backdrop-filter:blur(8px);
}
.btn--ghost:hover{
  border-color:var(--gold);
  color:var(--gold-2);
}

/* ---------- Layout helpers ---------- */
.section{
  padding:clamp(80px, 9vw, 140px) clamp(20px, 4vw, 48px);
  max-width:var(--container);
  margin:0 auto;
}
.section--alt{
  max-width:none;
  background:linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 50%, var(--bg) 100%);
}
.section--alt > *{max-width:var(--container); margin-inline:auto}
.section__head{
  max-width:720px;
  margin-bottom:clamp(40px, 5vw, 64px);
}
.section__lede{color:var(--text-dim); font-size:1.1rem; max-width:60ch}

/* ---------- NAV ---------- */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:50;
  padding:14px 0;
  transition:background .3s var(--ease), backdrop-filter .3s var(--ease), border-color .3s var(--ease), padding .3s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.is-stuck{
  background:rgba(14,13,11,.78);
  backdrop-filter:saturate(140%) blur(14px);
  border-bottom-color:var(--line);
  padding:8px 0;
}
.nav__inner{
  max-width:var(--container);
  margin:0 auto;
  padding:0 clamp(20px, 4vw, 48px);
  display:flex; align-items:center; gap:24px;
}
.brand{
  display:inline-flex; align-items:center; gap:10px;
  font-family:'Fraunces', serif;
  font-weight:600; font-size:1.35rem; letter-spacing:.005em;
  color:var(--text);
}
.brand__mark{
  display:inline-grid; place-items:center;
  width:36px; height:36px; border-radius:10px;
  background:linear-gradient(180deg, var(--gold-2), var(--gold));
  color:#1a1408;
  box-shadow:0 6px 18px rgba(212,166,74,.35);
}
.brand__accent{color:var(--gold-2)}
.nav__links{
  display:flex; gap:6px; margin-left:auto;
}
.nav__links a{
  padding:10px 14px;
  font-size:.95rem; font-weight:500;
  color:var(--text-dim);
  border-radius:999px;
  transition:color .25s var(--ease), background .25s var(--ease);
}
.nav__links a:hover{color:var(--text); background:rgba(255,255,255,.04)}
.nav__cta{padding:11px 22px; font-size:.9rem}
.nav__burger{
  display:none;
  width:40px; height:40px; border-radius:10px;
  border:1px solid var(--line-2);
  position:relative;
}
.nav__burger span{
  position:absolute; left:10px; right:10px; height:2px;
  background:var(--text);
  transition:transform .3s var(--ease), opacity .2s var(--ease), top .3s var(--ease);
}
.nav__burger span:nth-child(1){top:13px}
.nav__burger span:nth-child(2){top:19px}
.nav__burger span:nth-child(3){top:25px}
.nav.is-open .nav__burger span:nth-child(1){top:19px; transform:rotate(45deg)}
.nav.is-open .nav__burger span:nth-child(2){opacity:0}
.nav.is-open .nav__burger span:nth-child(3){top:19px; transform:rotate(-45deg)}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  min-height:100vh;
  min-height:100svh;
  display:grid;
  align-items:end;
  padding:140px clamp(20px, 4vw, 48px) clamp(60px, 8vw, 110px);
  overflow:hidden;
  isolation:isolate;
}
.hero__media{position:absolute; inset:0; z-index:-1}
.hero__media img{
  width:100%; height:100%; object-fit:cover;
  transform:scale(1.06);
  animation:slowZoom 24s ease-out forwards;
}
@keyframes slowZoom{ to { transform:scale(1) } }
.hero__veil{
  position:absolute; inset:0;
  background:
    radial-gradient(120% 80% at 20% 80%, rgba(0,0,0,.65) 0%, rgba(0,0,0,0) 60%),
    linear-gradient(180deg, rgba(14,13,11,.55) 0%, rgba(14,13,11,.2) 35%, rgba(14,13,11,.92) 100%);
}
.hero__content{
  max-width:var(--container);
  width:100%;
  margin:0 auto;
  position:relative;
  animation:rise .9s var(--ease) both;
}
@keyframes rise{
  from{opacity:0; transform:translateY(20px)}
  to{opacity:1; transform:none}
}
.hero h1{max-width:14ch}
.hero .lede{
  max-width:46ch;
  font-size:clamp(1.05rem, 1.1vw + .6rem, 1.25rem);
  color:var(--text-dim);
  margin-bottom:2rem;
}
.hero__cta{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:2.4rem}
.hero__chips{
  display:flex; flex-wrap:wrap; gap:8px;
  list-style:none; padding:0; margin:0;
}
.hero__chips li{
  padding:8px 14px;
  border:1px solid var(--line-2);
  border-radius:999px;
  font-size:.85rem; color:var(--text-dim);
  background:rgba(255,255,255,.03);
  backdrop-filter:blur(6px);
}
.hero__scroll{
  position:absolute;
  bottom:28px; left:50%; transform:translateX(-50%);
  width:24px; height:38px;
  border:1px solid var(--line-2);
  border-radius:14px;
}
.hero__scroll span{
  position:absolute; left:50%; top:8px;
  width:2px; height:8px;
  background:var(--gold-2);
  transform:translateX(-50%);
  border-radius:2px;
  animation:scrollDot 1.8s ease-in-out infinite;
}
@keyframes scrollDot{
  0%,100%{opacity:0; transform:translate(-50%, 0)}
  40%{opacity:1}
  80%{opacity:0; transform:translate(-50%, 12px)}
}

/* ---------- TRUST STRIP ---------- */
.strip{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:var(--bg-2);
}
.strip__inner{
  max-width:var(--container); margin:0 auto;
  padding:28px clamp(20px, 4vw, 48px);
  display:grid; gap:20px;
  grid-template-columns:repeat(4, 1fr);
}
.strip__inner > div{display:flex; flex-direction:column; gap:4px}
.strip__inner strong{
  font-family:'Fraunces', serif;
  font-size:clamp(1.6rem, 2vw + .4rem, 2.2rem);
  color:var(--gold-2);
  font-weight:500;
}
.strip__inner span{color:var(--text-dim); font-size:.92rem}

/* ---------- CARDS (Leistungen) ---------- */
.cards{
  display:grid;
  gap:var(--gap);
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
}
.card{
  position:relative;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  transition:transform .4s var(--ease), border-color .25s var(--ease), box-shadow .4s var(--ease);
}
.card:hover{
  transform:translateY(-6px);
  border-color:var(--line-2);
  box-shadow:var(--shadow);
}
.card__media{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
}
.card__media img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .8s var(--ease);
}
.card:hover .card__media img{transform:scale(1.06)}
.card__media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 60%, rgba(0,0,0,.4) 100%);
}
.card__body{padding:22px 24px 26px}
.card__body p{color:var(--text-dim); margin:0; font-size:.95rem}

/* ---------- STEPS ---------- */
.steps{
  list-style:none; padding:0; margin:0;
  display:grid;
  gap:var(--gap);
  grid-template-columns:repeat(3, minmax(0, 1fr));
  counter-reset:steps;
}
#ablauf{
  display:flex;
  flex-direction:column;
  align-items:center;
}
#ablauf .section__head,
#ablauf .steps{
  width:100%;
  max-width:1120px;
  margin-inline:0;
}
#ablauf .section__head{
  margin-bottom:clamp(40px, 5vw, 64px);
}
.step{
  position:relative;
  padding:34px 28px 30px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.step__num{
  display:inline-block;
  font-family:'Fraunces', serif;
  font-size:1rem; font-weight:600;
  color:var(--gold-2);
  letter-spacing:.1em;
  margin-bottom:14px;
}
.step h3{margin-bottom:.4em}
.step p{color:var(--text-dim); margin:0; font-size:.95rem}

/* ---------- GALLERY ---------- */
.gallery{
  display:grid;
  gap:var(--gap);
  grid-template-columns:repeat(6, 1fr);
  grid-auto-rows:180px;
}
.gallery__item{
  margin:0;
  border-radius:var(--radius);
  overflow:hidden;
  position:relative;
  grid-column:span 2;
  grid-row:span 1;
  background:var(--surface);
}
.gallery__item img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .8s var(--ease), filter .4s var(--ease);
  filter:saturate(.96);
}
.gallery__item:hover img{transform:scale(1.05); filter:saturate(1.1)}
.gallery__item--big{grid-column:span 4; grid-row:span 2}
.gallery__item--wide{grid-column:span 4; grid-row:span 2}

/* ---------- ABOUT ---------- */
.about{
  display:grid;
  gap:clamp(40px, 6vw, 80px);
  grid-template-columns:1fr 1fr;
  align-items:center;
}
.about__media{
  position:relative;
  border-radius:var(--radius-lg);
  overflow:hidden;
  aspect-ratio:4/5;
  box-shadow:var(--shadow);
}
.about__media img{width:100%; height:100%; object-fit:cover}
.about__badge{
  position:absolute;
  bottom:22px; left:22px; right:22px;
  padding:14px 18px;
  background:rgba(14,13,11,.78);
  backdrop-filter:blur(10px);
  border:1px solid var(--line-2);
  border-radius:14px;
  display:flex; flex-direction:column;
}
.about__badge strong{color:var(--gold-2); font-family:'Fraunces',serif}
.about__badge span{color:var(--text-dim); font-size:.85rem}
.ticks{
  list-style:none; padding:0; margin:0 0 1.8em;
  display:grid; gap:10px;
}
.ticks li{
  position:relative;
  padding-left:30px;
  color:var(--text-dim);
}
.ticks li::before{
  content:""; position:absolute; left:0; top:.55em;
  width:18px; height:18px; border-radius:50%;
  background:var(--gold-soft);
  border:1px solid var(--gold);
}
.ticks li::after{
  content:""; position:absolute;
  left:5px; top:.85em;
  width:8px; height:4px;
  border-left:2px solid var(--gold-2);
  border-bottom:2px solid var(--gold-2);
  transform:rotate(-45deg);
}

/* ---------- CONTACT ---------- */
.contact{
  background:linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%);
  max-width:none;
  border-top:1px solid var(--line);
}
.contact__inner{
  max-width:var(--container);
  margin:0 auto;
  display:grid;
  gap:clamp(40px, 6vw, 80px);
  grid-template-columns:1fr 1.1fr;
}
.contact__intro h2{margin-bottom:.5em}
.contact__intro > p{color:var(--text-dim); max-width:46ch; font-size:1.05rem}
.contact__meta{
  list-style:none; padding:0; margin:36px 0 0;
  display:grid; gap:18px;
}
.contact__meta li{
  display:grid; gap:6px;
  padding:18px 20px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:14px;
}
.contact__label{
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold-2); font-weight:600;
}
.contact__meta a:hover{color:var(--gold-2)}

.form{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:clamp(28px, 3vw, 40px);
  display:grid; gap:18px;
  align-self:start;
}
.form__row{display:grid; gap:18px; grid-template-columns:1fr 1fr}
.form label{display:grid; gap:6px}
.form label > span{
  font-size:.78rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase;
  color:var(--text-dim);
}
.form input, .form select, .form textarea{
  font:inherit; color:var(--text);
  background:rgba(0,0,0,.25);
  border:1px solid var(--line-2);
  border-radius:12px;
  padding:13px 14px;
  outline:none;
  transition:border-color .2s var(--ease), background .2s var(--ease);
}
.form input:focus, .form select:focus, .form textarea:focus{
  border-color:var(--gold);
  background:rgba(0,0,0,.4);
}
.form textarea{resize:vertical; min-height:120px}
.form select{appearance:none; background-image:linear-gradient(45deg, transparent 50%, var(--text-dim) 50%), linear-gradient(135deg, var(--text-dim) 50%, transparent 50%); background-position:calc(100% - 18px) 50%, calc(100% - 13px) 50%; background-size:5px 5px; background-repeat:no-repeat}
.form__check{
  display:grid; grid-template-columns:auto 1fr; gap:12px;
  align-items:start;
  font-size:.88rem; color:var(--text-dim);
}
.form__check input{accent-color:var(--gold)}
.form__submit{justify-self:start; margin-top:6px}
.form__note{
  margin:8px 0 0; padding:12px 14px;
  background:var(--gold-soft);
  border:1px solid var(--gold);
  border-radius:10px;
  color:var(--gold-2);
  font-size:.92rem;
}

/* ---------- BOOKING ---------- */
.booking{
  position:relative;
  max-width:none;
  background:
    radial-gradient(60% 120% at 8% 18%, rgba(212,166,74,.13) 0%, rgba(212,166,74,0) 52%),
    radial-gradient(48% 80% at 92% 24%, rgba(255,255,255,.05) 0%, rgba(255,255,255,0) 55%),
    linear-gradient(180deg, #120f0c 0%, #18140f 48%, #0c0b09 100%);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.booking::before{
  content:"";
  position:absolute;
  top:44px;
  left:50%;
  width:min(82vw, 920px);
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(240,198,116,.65), transparent);
  transform:translateX(-50%);
  opacity:.75;
}
.booking__inner{
  max-width:var(--container);
  margin:0 auto;
  position:relative;
}
.booking__intro{
  max-width:720px;
  margin-bottom:clamp(36px, 4vw, 56px);
}
.booking__shell{
  display:grid;
  grid-template-columns:minmax(0, 1.08fr) minmax(320px, .92fr);
  gap:clamp(24px, 3vw, 36px);
  align-items:start;
  padding:clamp(24px, 3vw, 34px);
  border:1px solid var(--line);
  border-radius:calc(var(--radius-lg) + 4px);
  background:linear-gradient(180deg, rgba(29,26,20,.88), rgba(14,13,11,.96));
  box-shadow:var(--shadow);
}
.booking-tool{
  display:grid;
  gap:22px;
}
.booking-tool__group{
  display:grid;
  gap:14px;
  margin:0;
  padding:0;
  border:0;
}
.booking-tool__group--split{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}
.booking-tool label{
  display:grid;
  gap:8px;
}
.booking-tool label > span,
.booking-tool legend,
.booking-tool__label{
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--text-dim);
}
.booking-tool legend{
  padding:0;
  margin:0 0 2px;
}
.booking-tool input[type="text"],
.booking-tool input[type="date"],
.booking-tool select{
  width:100%;
  font:inherit;
  color:var(--text);
  background:rgba(0,0,0,.25);
  border:1px solid var(--line-2);
  border-radius:12px;
  padding:13px 14px;
  outline:none;
  transition:border-color .2s var(--ease), background .2s var(--ease), box-shadow .25s var(--ease);
}
.booking-tool input[type="text"]:focus,
.booking-tool input[type="date"]:focus,
.booking-tool select:focus{
  border-color:var(--gold);
  background:rgba(0,0,0,.4);
  box-shadow:0 0 0 4px rgba(212,166,74,.1);
}
.booking-tool input[type="text"]::placeholder{color:var(--text-mute)}
.booking-tool select{
  appearance:none;
  background-image:linear-gradient(45deg, transparent 50%, var(--text-dim) 50%), linear-gradient(135deg, var(--text-dim) 50%, transparent 50%);
  background-position:calc(100% - 18px) 50%, calc(100% - 13px) 50%;
  background-size:5px 5px;
  background-repeat:no-repeat;
}
.booking-tool input[type="date"]::-webkit-calendar-picker-indicator{
  filter:invert(.82);
  opacity:.9;
}
.booking-tool__range{
  display:grid;
  gap:10px;
  padding:18px 18px 16px;
  background:rgba(255,255,255,.02);
  border:1px solid var(--line);
  border-radius:16px;
}
.booking-tool__range-meta{
  display:flex;
  align-items:baseline;
  gap:8px;
}
.booking-tool__range-meta strong{
  font-family:'Fraunces', serif;
  font-size:2rem;
  font-weight:500;
  line-height:1;
  color:var(--gold-2);
}
.booking-tool__range-meta small{
  color:var(--text-dim);
  font-size:.92rem;
}
.booking-tool__range input[type="range"]{
  width:100%;
  margin:0;
  accent-color:var(--gold);
}
.booking-choice{
  display:grid;
  gap:12px;
}
.booking-choice--three{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}
.booking-choice__card{
  position:relative;
  display:block;
  cursor:pointer;
}
.booking-choice__input{
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
}
.booking-choice__content{
  display:grid;
  gap:8px;
  height:100%;
  padding:18px 16px;
  background:rgba(255,255,255,.02);
  border:1px solid var(--line);
  border-radius:18px;
  transition:transform .3s var(--ease), border-color .25s var(--ease), background .25s var(--ease), box-shadow .3s var(--ease);
}
.booking-choice__content strong{
  font-family:'Fraunces', serif;
  font-size:1.06rem;
  font-weight:500;
  line-height:1.2;
}
.booking-choice__content small{
  color:var(--text-dim);
  line-height:1.55;
}
.booking-choice__card:hover .booking-choice__content{
  border-color:var(--line-2);
  transform:translateY(-2px);
}
.booking-choice__input:checked + .booking-choice__content{
  border-color:rgba(240,198,116,.65);
  background:linear-gradient(180deg, rgba(212,166,74,.2), rgba(212,166,74,.06));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 14px 28px rgba(0,0,0,.18);
}
.booking-chipset{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.booking-chip{
  position:relative;
  display:inline-flex;
  cursor:pointer;
}
.booking-chip__input{
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
}
.booking-chip__label{
  display:inline-flex;
  align-items:center;
  padding:12px 16px;
  border-radius:999px;
  border:1px solid var(--line-2);
  background:rgba(255,255,255,.03);
  color:var(--text-dim);
  transition:border-color .25s var(--ease), background .25s var(--ease), color .25s var(--ease), transform .25s var(--ease);
}
.booking-chip:hover .booking-chip__label{
  border-color:var(--gold);
  transform:translateY(-1px);
}
.booking-chip__input:checked + .booking-chip__label{
  border-color:rgba(240,198,116,.65);
  background:var(--gold-soft);
  color:var(--gold-2);
}
.booking-tool__footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding-top:8px;
  border-top:1px solid var(--line);
}
.booking-tool__footer p{
  margin:0;
  max-width:44ch;
  color:var(--text-mute);
  font-size:.92rem;
}
.booking-preview{
  position:relative;
  padding:clamp(26px, 3vw, 34px);
  border-radius:26px;
  border:1px solid rgba(240,198,116,.28);
  background:
    linear-gradient(180deg, rgba(240,198,116,.18) 0%, rgba(240,198,116,.06) 16%, rgba(12,11,9,.95) 100%);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.booking-preview::before{
  content:"";
  position:absolute;
  inset:auto -40px -70px auto;
  width:260px;
  height:260px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(212,166,74,.32) 0%, rgba(212,166,74,0) 72%);
  filter:blur(8px);
  pointer-events:none;
}
.booking-preview > *{
  position:relative;
  z-index:1;
}
.booking-preview__top{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  margin-bottom:26px;
}
.booking-preview__pill{
  display:inline-flex;
  align-items:center;
  padding:9px 14px;
  border-radius:999px;
  border:1px solid rgba(240,198,116,.4);
  background:rgba(0,0,0,.26);
  color:var(--gold-2);
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.booking-preview__status{
  margin:0;
  color:var(--text-dim);
  flex:1 1 240px;
}
.booking-preview__kicker{
  display:inline-block;
  margin-bottom:12px;
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--gold-2);
}
.booking-preview__hero h3{
  margin-bottom:.35em;
  font-size:clamp(2rem, 2.2vw + .8rem, 3rem);
}
.booking-preview__hero p{
  margin:0;
  color:var(--text-dim);
  font-size:1.05rem;
  max-width:34ch;
}
.booking-preview__stats{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
  margin:26px 0;
}
.booking-preview__stats div{
  padding:16px 18px;
  border-radius:16px;
  background:rgba(0,0,0,.24);
  border:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(10px);
}
.booking-preview__stats span{
  display:block;
  margin-bottom:7px;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--text-mute);
}
.booking-preview__stats strong{
  font-family:'Fraunces', serif;
  font-size:1.18rem;
  font-weight:500;
  line-height:1.25;
}
.booking-preview__story{
  padding:22px 22px 18px;
  border-radius:20px;
  background:rgba(0,0,0,.24);
  border:1px solid rgba(255,255,255,.08);
}
.booking-preview__story h4{
  margin:0;
  color:var(--gold-2);
}
.booking-preview__list{
  list-style:none;
  padding:0;
  margin:16px 0 0;
  display:grid;
  gap:12px;
}
.booking-preview__list li{
  position:relative;
  padding-left:26px;
  color:var(--text-dim);
}
.booking-preview__list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.6em;
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--gold-2);
  box-shadow:0 0 0 5px rgba(212,166,74,.12);
}
.booking-preview__footer{
  display:grid;
  gap:14px;
  margin-top:24px;
}
.booking-preview__footer .btn{
  justify-self:start;
}
.booking-preview__note{
  margin:0;
  color:var(--text-dim);
  font-size:.92rem;
}
.booking-preview__note.is-success{
  color:var(--gold-2);
}

/* ---------- FOOTER ---------- */
.footer{
  background:#0a0907;
  border-top:1px solid var(--line);
  padding:64px 0 24px;
}
.footer__inner{
  max-width:var(--container);
  margin:0 auto;
  padding:0 clamp(20px, 4vw, 48px);
  display:grid;
  gap:48px;
  grid-template-columns:1.2fr 2fr;
}
.footer__brand p{color:var(--text-mute); margin-top:14px; font-size:.9rem}
.footer__cols{
  display:grid; gap:24px;
  grid-template-columns:repeat(3, 1fr);
}
.footer__cols p{color:var(--text-dim); font-size:.92rem; margin:0; line-height:1.8}
.footer__cols a:hover{color:var(--gold-2)}
.footer__base{
  max-width:var(--container);
  margin:36px auto 0;
  padding:18px clamp(20px, 4vw, 48px) 0;
  border-top:1px solid var(--line);
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
  color:var(--text-mute); font-size:.82rem;
}

/* ---------- Reveal animations ---------- */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease), transform .8s var(--ease)}
.reveal.is-in{opacity:1; transform:none}

/* ---------- Responsive ---------- */
@media (max-width: 960px){
  .strip__inner{grid-template-columns:repeat(2, 1fr)}
  .about{grid-template-columns:1fr}
  .about__media{aspect-ratio:4/3; max-height:520px}
  .contact__inner{grid-template-columns:1fr}
  .booking__shell{grid-template-columns:1fr}
  .booking-choice--three{grid-template-columns:repeat(2, minmax(0, 1fr))}
  .footer__inner{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(4,1fr); grid-auto-rows:160px}
  .gallery__item{grid-column:span 2}
  .gallery__item--big{grid-column:span 4; grid-row:span 2}
  .gallery__item--wide{grid-column:span 4; grid-row:span 2}
  #ablauf .steps{grid-template-columns:repeat(2, minmax(0, 1fr))}
}

@media (max-width: 720px){
  body{font-size:16px}
  .nav__links, .nav__cta{display:none}
  .nav__burger{display:block; margin-left:auto}
  .nav.is-open .nav__links{
    display:flex; flex-direction:column; gap:0;
    position:absolute; top:100%; left:0; right:0;
    background:rgba(14,13,11,.96);
    backdrop-filter:blur(14px);
    border-top:1px solid var(--line);
    padding:14px 24px 22px;
  }
  .nav.is-open .nav__links a{padding:14px 4px; border-bottom:1px solid var(--line)}
  .nav.is-open .nav__cta{display:inline-flex; margin-top:14px; align-self:flex-start}
  .hero{padding-top:120px}
  .booking__shell{padding:22px 18px}
  .booking-tool__group--split,
  .booking-choice--three,
  .booking-preview__stats{grid-template-columns:1fr}
  .booking-tool__footer{flex-direction:column; align-items:flex-start}
  .form__row{grid-template-columns:1fr}
  .footer__cols{grid-template-columns:1fr 1fr}
  .gallery{grid-template-columns:repeat(2,1fr); grid-auto-rows:140px}
  .gallery__item{grid-column:span 1}
  .gallery__item--big{grid-column:span 2; grid-row:span 2}
  .gallery__item--wide{grid-column:span 2; grid-row:span 1}
  #ablauf .steps{grid-template-columns:1fr}
}

@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important}
}
