@import url("../fonts/fonts.css");

/* ============================================================
   SHIMA BEAUTY & CUT BY ELMEDIN — Design System
   Palette: cream / beige / gold   ·   minimalist luxury
   ============================================================ */

:root{
  /* Farben */
  --cream:        #F7F2EA;
  --cream-soft:   #FBF8F3;
  --cream-deep:   #F1E7D9;
  --sand:         #EAE0D1;
  --beige:        #DFCFB9;
  --gold:         #B98C55;
  --gold-soft:    #CFA874;
  --bronze:       #8C704C;
  --ink:          #241E18;
  --ink-2:        #3A3129;
  --ink-soft:     #6F6255;
  --ink-faint:    #9C8E7E;
  --white:        #FFFFFF;

  /* Typografie */
  --serif: "Cormorant Garamond", "Times New Roman", Georgia, serif;
  --sans:  "Jost", "Helvetica Neue", Arial, sans-serif;

  /* Layout */
  --maxw: 1280px;
  --pad: clamp(1.25rem, 5vw, 4rem);
  --radius-s: 4px;
  --radius: 10px;
  --radius-l: 20px;

  /* Schatten */
  --sh-s: 0 2px 10px rgba(36,30,24,.05);
  --sh-m: 0 14px 40px -18px rgba(36,30,24,.22);
  --sh-l: 0 40px 80px -40px rgba(36,30,24,.35);

  /* Bewegung */
  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
  --t: .6s var(--ease-out);
}

body.theme-dark{
  --cream:#171513;
  --cream-soft:#211e1a;
  --cream-deep:#28221d;
  --sand:#382f27;
  --beige:#554638;
  --gold:#D5A968;
  --gold-soft:#E1BC81;
  --bronze:#AA8255;
  --ink:#F7F2EA;
  --ink-2:#E8DED2;
  --ink-soft:#C4B5A5;
  --ink-faint:#9C8E7E;
}

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

html{
  scroll-behavior:smooth;
  scroll-padding-top: 96px;
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  background:var(--cream);
  color:var(--ink-2);
  font-family:var(--sans);
  font-weight:300;
  font-size:clamp(1rem,.96rem + .18vw,1.075rem);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

body.is-locked{ overflow:hidden; }

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

::selection{ background:var(--gold); color:var(--cream-soft); }

/* Scrollbar */
::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:var(--cream); }
::-webkit-scrollbar-thumb{ background:var(--beige); border-radius:20px; border:3px solid var(--cream); }
::-webkit-scrollbar-thumb:hover{ background:var(--gold); }

/* ---------- Grundtypografie ---------- */
h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:400;
  color:var(--ink);
  line-height:1.08;
  letter-spacing:-.01em;
  margin:0;
}
h1{ font-size:clamp(2.7rem,1.4rem + 6vw,5.4rem); }
h2{ font-size:clamp(2.1rem,1.3rem + 3.4vw,3.9rem); }
h3{ font-size:clamp(1.35rem,1.1rem + .8vw,1.9rem); line-height:1.2; }
h4{ font-size:1.15rem; line-height:1.3; }
p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }

em,i{ font-style:italic; }

.italic{ font-style:italic; }
.gold{ color:var(--gold); }

/* ---------- Layout-Helfer ---------- */
.container{
  width:100%;
  max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:var(--pad);
}
.container--narrow{ max-width:920px; }

section{ position:relative; }

.section{ padding-block:clamp(4.5rem,9vw,8.5rem); }
.section--tight{ padding-block:clamp(3rem,6vw,5.5rem); }

.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:2rem;
  margin-bottom:clamp(2.5rem,5vw,4rem);
  flex-wrap:wrap;
}
.section-head__text{ max-width:44ch; }
.section-head.center{
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.section-head.center .section-head__text{ max-width:56ch; }

/* ---------- Kleine Bausteine ---------- */
.eyebrow{
  font-size:.72rem;
  letter-spacing:.34em;
  text-transform:uppercase;
  font-weight:400;
  color:var(--gold);
  margin:0 0 1.15rem;
  display:inline-flex;
  align-items:center;
  gap:.85rem;
}
.eyebrow::before{
  content:"";
  width:clamp(24px,4vw,48px);
  height:1px;
  background:currentColor;
  opacity:.6;
}
.eyebrow--center::after{
  content:"";
  width:clamp(24px,4vw,48px);
  height:1px;
  background:currentColor;
  opacity:.6;
}

.lead{
  font-family:var(--serif);
  font-size:clamp(1.25rem,1.05rem + .7vw,1.75rem);
  line-height:1.5;
  color:var(--ink);
  font-style:italic;
}
.muted{ color:var(--ink-soft); }
.small{ font-size:.9rem; }

.rule{
  width:100%;
  height:1px;
  background:linear-gradient(90deg,var(--gold),rgba(185,140,85,0));
  border:0;
  margin:0;
}

/* ---------- Buttons ---------- */
.btn{
  --bg:var(--gold);
  --fg:var(--cream-soft);
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.7rem;
  padding:1.05rem 2.1rem;
  border:1px solid transparent;
  border-radius:100px;
  background:var(--bg);
  color:var(--fg);
  font-size:.78rem;
  font-weight:400;
  letter-spacing:.16em;
  text-transform:uppercase;
  cursor:pointer;
  overflow:hidden;
  transition:color .45s var(--ease), border-color .45s var(--ease), transform .45s var(--ease), box-shadow .45s var(--ease);
  isolation:isolate;
}
.btn::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:var(--ink);
  transform:translateY(101%);
  transition:transform .55s var(--ease-out);
}
.btn:hover{ transform:translateY(-2px); box-shadow:0 18px 30px -20px rgba(36,30,24,.6); }
.btn:hover::after{ transform:translateY(0); }
.btn:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

.btn--ghost{
  --bg:transparent;
  --fg:var(--ink);
  border-color:rgba(36,30,24,.25);
}
.btn--ghost:hover{ color:var(--cream-soft); border-color:var(--ink); }
.btn--light{
  --bg:transparent;
  --fg:var(--cream-soft);
  border-color:rgba(247,242,234,.4);
}
.btn--light::after{ background:var(--cream-soft); }
.btn--light:hover{ color:var(--ink); border-color:var(--cream-soft); }
.btn--sm{ padding:.85rem 1.6rem; font-size:.72rem; }
.btn--block{ width:100%; }

/* Textlink mit animierter Linie */
.link{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  font-size:.78rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink);
  padding-bottom:.35rem;
}
.link::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:100%; height:1px;
  background:var(--gold);
  transform-origin:right;
  transform:scaleX(1);
  transition:transform .5s var(--ease-out);
}
.link:hover{ color:var(--gold); }
.link:hover::after{ transform-origin:left; transform:scaleX(1); animation:linkSweep .7s var(--ease-out); }
.link .arrow{ transition:transform .45s var(--ease); }
.link:hover .arrow{ transform:translateX(6px); }
@keyframes linkSweep{
  0%{ transform:scaleX(1); transform-origin:right; }
  49%{ transform:scaleX(0); transform-origin:right; }
  51%{ transform:scaleX(0); transform-origin:left; }
  100%{ transform:scaleX(1); transform-origin:left; }
}

/* ---------- Reveal-Animationen ---------- */
[data-reveal]{
  opacity:0;
  transform:translateY(34px);
  transition:opacity 1s var(--ease-out), transform 1.1s var(--ease-out);
  will-change:opacity, transform;
}
[data-reveal].is-visible{ opacity:1; transform:none; }
[data-reveal="fade"]{ transform:none; }
[data-reveal="left"]{ transform:translateX(-40px); }
[data-reveal="right"]{ transform:translateX(40px); }
[data-reveal="scale"]{ transform:scale(.94); }
[data-reveal].is-visible[data-reveal="left"],
[data-reveal].is-visible[data-reveal="right"]{ transform:none; }

/* ============================================================
   HEADER
   ============================================================ */
.header{
  position:fixed;
  inset:0 0 auto 0;
  z-index:100;
  transition:background .5s var(--ease), box-shadow .5s var(--ease), backdrop-filter .5s var(--ease), padding .5s var(--ease);
  padding-block:1.15rem;
}
.header::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:1px;
  background:rgba(36,30,24,.12);
  opacity:0;
  transition:opacity .5s var(--ease);
}
.header.is-stuck{
  padding-block:.7rem;
  background:rgba(247,242,234,.86);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  box-shadow:0 10px 30px -28px rgba(36,30,24,.6);
}
.header.is-stuck::after{ opacity:1; }
.header.is-hidden{ transform:translateY(-100%); }
.header{ transition-property:background, box-shadow, padding, transform; }

.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(.8rem,2vw,2rem);
  flex-wrap:nowrap;
}

.brand{
  display:flex;
  align-items:center;
  flex:0 0 auto;
}
.brand img{
  width:clamp(132px,15vw,178px);
  height:auto;
  transition:opacity .4s var(--ease), transform .6s var(--ease-out);
}
.brand:hover img{ transform:scale(1.02); }

.nav__menu{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(.8rem,1.8vw,2rem);
  margin:0;
  padding:0;
  list-style:none;
  flex:1 1 auto;
  white-space:nowrap;
}
.nav__link{
  position:relative;
  font-size:.76rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-2);
  padding-block:.4rem;
  transition:color .4s var(--ease);
}
.nav__link::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:100%; height:1px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .5s var(--ease-out);
}
.nav__link:hover,
.nav__link.is-active{ color:var(--gold); }
.nav__link:hover::after,
.nav__link.is-active::after{ transform:scaleX(1); transform-origin:left; }

.nav__actions{ display:flex; align-items:center; gap:clamp(.55rem,1.2vw,1rem); flex:0 0 auto; white-space:nowrap; }
.theme-toggle{
  display:flex;
  align-items:center;
  gap:.45rem;
  padding:.35rem .55rem;
  border:1px solid rgba(36,30,24,.16);
  border-radius:999px;
  background:rgba(255,255,255,.18);
  color:var(--ink-faint);
  cursor:pointer;
  transition:color .4s var(--ease), border-color .4s var(--ease), background .4s var(--ease), box-shadow .4s var(--ease);
}
.theme-toggle:hover{ border-color:var(--gold); box-shadow:0 6px 18px -12px var(--gold); }
.theme-toggle__icon{ font-family:Georgia,serif; font-size:1rem; line-height:1; }
.theme-toggle__icon--sun{ color:var(--gold); }
.theme-toggle__track{
  position:relative;
  width:30px; height:16px;
  border-radius:999px;
  background:var(--beige);
  transition:background .4s var(--ease);
}
.theme-toggle__thumb{
  position:absolute;
  top:2px; left:2px;
  width:12px; height:12px;
  border-radius:50%;
  background:var(--cream-soft);
  box-shadow:0 1px 4px rgba(36,30,24,.28);
  transition:transform .45s var(--ease-out), background .4s var(--ease);
}
body.theme-dark .theme-toggle{ border-color:rgba(247,242,234,.18); background:rgba(255,255,255,.04); }
body.theme-dark .theme-toggle__track{ background:var(--gold); }
body.theme-dark .theme-toggle__thumb{ transform:translateX(14px); background:var(--ink); }
body.theme-dark .theme-toggle__icon--sun{ color:var(--ink-faint); }
body.theme-dark .theme-toggle__icon--moon{ color:var(--gold-soft); }
.brand__logo--dark{ display:none; }
body.theme-dark .brand__logo--light{ display:none; }
body.theme-dark .brand__logo--dark{
  display:block;
  filter:drop-shadow(0 0 10px rgba(213,169,104,.16));
}
body.theme-dark .header.is-stuck{ background:rgba(23,21,19,.88); }
body.theme-dark .footer__socials a,
body.theme-dark .footer__bottom,
body.theme-dark .legal-footer{ border-color:rgba(247,242,234,.14); }
body.theme-dark .footer__socials a{ border-color:rgba(247,242,234,.2); }
body.theme-dark .footer__socials svg{ stroke:var(--ink); }

.nav__call{
  position:relative;
  color:var(--ink-2);
  white-space:nowrap;
}
.nav__call summary{
  display:flex;
  align-items:center;
  gap:.5rem;
  cursor:pointer;
  list-style:none;
  font-size:.85rem;
  letter-spacing:.04em;
  transition:color .4s var(--ease);
}
.nav__call summary::-webkit-details-marker{ display:none; }
.nav__call summary::after{ content:"⌄"; color:var(--gold); font-size:.8rem; transition:transform .3s var(--ease); }
.nav__call[open] summary::after{ transform:rotate(180deg); }
.nav__call summary:hover{ color:var(--gold); }
.nav__call summary svg{ width:15px; height:15px; stroke:var(--gold); flex:0 0 auto; }
.nav__call-menu{
  position:absolute;
  top:calc(100% + 1rem);
  right:0;
  min-width:190px;
  padding:.45rem;
  background:var(--cream-soft);
  border:1px solid rgba(36,30,24,.14);
  box-shadow:var(--sh-m);
  z-index:10;
}
.nav__call-menu a{ display:grid; gap:.1rem; padding:.7rem .8rem; color:var(--ink-2); transition:background .3s var(--ease), color .3s var(--ease); }
.nav__call-menu a:hover{ background:var(--cream-deep); color:var(--gold); }
.nav__call-menu strong{ font-size:.82rem; font-weight:400; }
.nav__call-menu small{ color:var(--ink-faint); font-size:.72rem; letter-spacing:.03em; }
.mobile-menu__calls-label{ color:var(--gold); font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; }
.nav__phone{
  display:flex;
  align-items:center;
  gap:.5rem;
  font-size:.85rem;
  letter-spacing:.04em;
  color:var(--ink-2);
  white-space:nowrap;
  transition:color .4s var(--ease);
}
.nav__phone:hover{ color:var(--gold); }
.nav__phone svg{ width:15px; height:15px; stroke:var(--gold); flex:0 0 auto; }

/* Burger */
.burger{
  display:none;
  width:46px; height:46px;
  border:1px solid rgba(36,30,24,.2);
  border-radius:50%;
  background:transparent;
  cursor:pointer;
  position:relative;
  flex:0 0 auto;
  transition:border-color .4s var(--ease), background .4s var(--ease);
}
.burger:hover{ border-color:var(--gold); }
.burger span{
  position:absolute;
  left:50%; top:50%;
  width:18px; height:1px;
  background:var(--ink);
  transform:translate(-50%,-50%);
  transition:transform .45s var(--ease-out), opacity .3s var(--ease), background .4s;
}
.burger span:nth-child(1){ transform:translate(-50%,-8px); }
.burger span:nth-child(2){ transform:translate(-50%,0); }
.burger span:nth-child(3){ transform:translate(-50%,8px); }
.burger.is-open span:nth-child(1){ transform:translate(-50%,-50%) rotate(45deg); }
.burger.is-open span:nth-child(2){ opacity:0; transform:translate(-50%,-50%) scaleX(0); }
.burger.is-open span:nth-child(3){ transform:translate(-50%,-50%) rotate(-45deg); }

/* Mobiles Menü */
.mobile-menu{
  position:fixed;
  inset:0;
  z-index:99;
  background:var(--cream);
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-items:stretch;
  gap:.15rem;
  overflow-y:auto;
  padding:7.5rem clamp(1.5rem,8vw,3rem) 2.5rem;
  clip-path:circle(0% at calc(100% - 44px) 44px);
  transition:clip-path .8s var(--ease-out);
  pointer-events:none;
}
.mobile-menu.is-open{
  clip-path:circle(150% at calc(100% - 44px) 44px);
  pointer-events:auto;
}
.mobile-menu__link{
  font-family:var(--serif);
  font-size:clamp(1.8rem,8vw,2.5rem);
  color:var(--ink);
  padding:.32rem 0;
  border-bottom:1px solid rgba(36,30,24,.1);
  opacity:0;
  transform:translateY(20px);
  transition:opacity .6s var(--ease-out), transform .6s var(--ease-out), color .3s;
}
.mobile-menu.is-open .mobile-menu__link{ opacity:1; transform:none; }
.mobile-menu.is-open .mobile-menu__link:nth-child(1){ transition-delay:.22s; }
.mobile-menu.is-open .mobile-menu__link:nth-child(2){ transition-delay:.29s; }
.mobile-menu.is-open .mobile-menu__link:nth-child(3){ transition-delay:.36s; }
.mobile-menu.is-open .mobile-menu__link:nth-child(4){ transition-delay:.43s; }
.mobile-menu.is-open .mobile-menu__link:nth-child(5){ transition-delay:.50s; }
.mobile-menu.is-open .mobile-menu__link:nth-child(6){ transition-delay:.57s; }
.mobile-menu__link:hover{ color:var(--gold); font-style:italic; }
.mobile-menu__foot{
  margin-top:1.75rem;
  padding-top:1.5rem;
  border-top:1px solid rgba(36,30,24,.12);
  text-align:left;
  opacity:0;
  transition:opacity .6s var(--ease-out) .62s;
}
.mobile-menu.is-open .mobile-menu__foot{ opacity:1; }
.mobile-menu__foot .btn{ width:100%; text-align:center; }
.mobile-menu__calls{ display:grid; gap:.25rem; margin:1.35rem 0 0; line-height:1.6; }
.mobile-menu__calls-label{ display:block; margin-bottom:.2rem; }
.mobile-menu__calls a{ color:var(--ink-2); }
.mobile-menu__calls a:hover{ color:var(--gold); }
.mobile-menu__hours{ display:block; margin-top:.35rem; color:var(--ink-faint); font-size:.78rem; }

/* ============================================================
   HERO
   ============================================================ */
.hero{
  padding-top:clamp(8.5rem,14vw,12rem);
  padding-bottom:clamp(3.5rem,7vw,6rem);
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute;
  top:-10%; right:-12%;
  width:60vw; height:60vw;
  max-width:820px; max-height:820px;
  border-radius:50%;
  background:radial-gradient(circle at 50% 50%, rgba(223,207,185,.55), rgba(247,242,234,0) 68%);
  z-index:0;
  pointer-events:none;
}
.hero__grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(2rem,5vw,5rem);
  align-items:center;
}
.hero__kicker{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.55rem .9rem;
  font-size:.68rem;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:1.6rem;
}
.hero__kicker span{ display:inline-flex; align-items:center; gap:.9rem; }
.hero__kicker span:not(:last-child)::after{
  content:"";
  width:4px; height:4px;
  border-radius:50%;
  background:var(--gold);
  opacity:.55;
}
.hero h1{
  margin-bottom:1.6rem;
}
.hero h1 .line{ display:block; overflow:hidden; }
.hero h1 .line > span{ display:block; }
.hero__sub{
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(1.15rem,1rem + .6vw,1.6rem);
  color:var(--ink);
  margin-bottom:1rem;
}
.hero__text{
  max-width:44ch;
  color:var(--ink-soft);
  margin-bottom:2.2rem;
}
.hero__cta{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  align-items:center;
  margin-bottom:2.6rem;
}
.hero__facts{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem 2rem;
  padding-top:1.8rem;
  border-top:1px solid rgba(36,30,24,.13);
  list-style:none;
  margin:0;
  padding-left:0;
}
.hero__facts li{
  display:flex;
  align-items:center;
  gap:.6rem;
  font-size:.82rem;
  letter-spacing:.06em;
  color:var(--ink-soft);
}
.hero__facts svg{ width:15px; height:15px; stroke:var(--gold); }

/* Rahmen-Komposition */
.hero__visual{ position:relative; }
.hero__frame{
  position:relative;
  aspect-ratio:4/5;
  border-radius:var(--radius-l);
  overflow:hidden;
  box-shadow:var(--sh-l);
}
.hero__frame img{
  width:100%; height:100%;
  object-fit:cover;
  transform:scale(1.06);
  transition:transform 1.6s var(--ease-out);
}
.hero:hover .hero__frame img{ transform:scale(1.0); }
.hero__frame::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(36,30,24,0) 45%, rgba(36,30,24,.35));
  pointer-events:none;
}
.hero__frame-line{
  position:absolute;
  inset:clamp(-22px,-2vw,-14px) auto auto clamp(-22px,-2vw,-14px);
  width:62%; height:62%;
  border:1px solid var(--gold);
  border-radius:var(--radius-l);
  opacity:.5;
  z-index:-1;
}
.hero__badge{
  position:absolute;
  left:clamp(-30px,-3vw,-18px);
  bottom:clamp(1.25rem,3vw,2.5rem);
  background:var(--cream-soft);
  border-radius:var(--radius);
  padding:1.15rem 1.5rem;
  box-shadow:var(--sh-m);
  display:flex;
  align-items:center;
  gap:.9rem;
  max-width:min(280px,72%);
}
.hero__badge .num{
  font-family:var(--serif);
  font-size:2.2rem;
  line-height:1;
  color:var(--gold);
}
.hero__badge .txt{
  font-size:.74rem;
  line-height:1.45;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
.hero__badge .stars{ color:var(--gold); font-size:.8rem; letter-spacing:.15em; }

/* Laufband */
.marquee{
  margin-top:clamp(3rem,6vw,5rem);
  padding-block:1.15rem;
  border-top:1px solid rgba(36,30,24,.12);
  border-bottom:1px solid rgba(36,30,24,.12);
  overflow:hidden;
  position:relative;
  z-index:1;
}
.marquee__track{
  display:flex;
  gap:3.5rem;
  width:max-content;
  animation:marquee 34s linear infinite;
}
.marquee:hover .marquee__track{ animation-play-state:paused; }
.marquee__item{
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(1.1rem,1rem + .7vw,1.7rem);
  color:var(--ink-faint);
  white-space:nowrap;
  display:flex;
  align-items:center;
  gap:3.5rem;
}
.marquee__item::after{
  content:"";
  width:5px; height:5px;
  border-radius:50%;
  background:var(--gold);
  opacity:.7;
}
@keyframes marquee{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

/* ============================================================
   VERTRAUENS-LEISTE
   ============================================================ */
.trust{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(1.5rem,3vw,3rem);
  padding-block:clamp(2.5rem,5vw,4rem);
}
.trust__item{
  display:flex;
  flex-direction:column;
  gap:.85rem;
  padding-left:1.4rem;
  border-left:1px solid rgba(36,30,24,.12);
}
.trust__item svg{
  width:30px; height:30px;
  stroke:var(--gold);
  fill:none;
  stroke-width:1.1;
}
.trust__item h4{
  font-family:var(--sans);
  font-size:.78rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink);
  font-weight:400;
}
.trust__item p{
  font-size:.9rem;
  color:var(--ink-soft);
  margin:0;
  line-height:1.65;
}

/* ============================================================
   LEISTUNGEN
   ============================================================ */
.services{
  background:linear-gradient(180deg,var(--cream) 0%, var(--cream-soft) 40%, var(--cream-soft) 100%);
}
.cards{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(1rem,2vw,1.75rem);
}
.card{
  position:relative;
  background:var(--cream-soft);
  border:1px solid rgba(36,30,24,.09);
  border-radius:var(--radius);
  padding:clamp(1.6rem,2.4vw,2.4rem) clamp(1.4rem,2vw,2rem);
  overflow:hidden;
  transition:transform .7s var(--ease-out), box-shadow .7s var(--ease-out), border-color .5s var(--ease), background .5s var(--ease);
}
.card::before{
  content:"";
  position:absolute;
  left:0; top:0;
  width:100%; height:2px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .7s var(--ease-out);
}
.card:hover{
  transform:translateY(-10px);
  box-shadow:var(--sh-m);
  border-color:rgba(185,140,85,.35);
}
.card:hover::before{ transform:scaleX(1); }
.card__icon{
  width:52px; height:52px;
  border-radius:50%;
  border:1px solid rgba(185,140,85,.4);
  display:grid;
  place-items:center;
  margin-bottom:1.6rem;
  transition:background .5s var(--ease), border-color .5s var(--ease), transform .6s var(--ease-out);
}
.card:hover .card__icon{ background:rgba(185,140,85,.1); border-color:var(--gold); transform:rotate(-6deg) scale(1.05); }
.card__icon svg{ width:24px; height:24px; stroke:var(--gold); fill:none; stroke-width:1.1; }
.card h3{ margin-bottom:.7rem; }
.card h3 small{
  display:block;
  font-family:var(--sans);
  font-size:.72rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:.5rem;
  font-weight:400;
}
.card p{
  font-size:.94rem;
  color:var(--ink-soft);
  margin-bottom:1.6rem;
}
.card .link{ font-size:.72rem; }

/* Preisliste mit Tabs */
.prices{
  margin-top:clamp(3rem,6vw,5rem);
  background:var(--cream);
  border:1px solid rgba(36,30,24,.09);
  border-radius:var(--radius-l);
  padding:clamp(1.5rem,3vw,3rem);
}
.prices__tabs{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin-bottom:clamp(1.5rem,3vw,2.5rem);
  border-bottom:1px solid rgba(36,30,24,.1);
  padding-bottom:1.25rem;
}
.tab{
  background:transparent;
  border:1px solid rgba(36,30,24,.14);
  border-radius:100px;
  padding:.65rem 1.4rem;
  font-size:.74rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink-soft);
  cursor:pointer;
  transition:all .45s var(--ease);
}
.tab:hover{ border-color:var(--gold); color:var(--ink); }
.tab.is-active{
  background:var(--ink);
  border-color:var(--ink);
  color:var(--cream-soft);
}
.prices__panel{ display:none; }
.prices__panel.is-active{ display:block; animation:panelIn .7s var(--ease-out); }
@keyframes panelIn{
  from{ opacity:0; transform:translateY(14px); }
  to{ opacity:1; transform:none; }
}
.price-row{
  display:flex;
  align-items:baseline;
  gap:1rem;
  padding:.95rem 0;
  border-bottom:1px dashed rgba(36,30,24,.14);
}
.price-row:last-child{ border-bottom:0; }
.price-row__name{ font-family:var(--serif); font-size:1.2rem; color:var(--ink); }
.price-row__desc{ font-size:.85rem; color:var(--ink-faint); }
.price-row__dots{
  flex:1 1 auto;
  border-bottom:1px dotted rgba(36,30,24,.22);
  transform:translateY(-4px);
}
.price-row__price{
  font-family:var(--serif);
  font-size:1.25rem;
  color:var(--gold);
  white-space:nowrap;
}
.price-row__price abbr{ text-decoration:none; font-size:.85em; }
.prices__note{
  margin-top:1.75rem;
  font-size:.82rem;
  color:var(--ink-faint);
  font-style:italic;
}

/* ============================================================
   ÜBER UNS
   ============================================================ */
.about__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(2.5rem,6vw,6rem);
  align-items:center;
}
.about__visual{ position:relative; }
.about__img{
  border-radius:var(--radius-l);
  overflow:hidden;
  box-shadow:var(--sh-l);
  aspect-ratio:3/4;
}
.about__img img{ width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease-out); }
.about__visual:hover .about__img img{ transform:scale(1.05); }
.about__seal{
  position:absolute;
  right:clamp(-20px,-1.5vw,-10px);
  bottom:clamp(1rem,4vw,3rem);
  width:clamp(110px,13vw,160px);
  aspect-ratio:1;
  border-radius:50%;
  background:var(--cream);
  border:1px solid var(--gold);
  display:grid;
  place-items:center;
  text-align:center;
  padding:1.1rem;
  box-shadow:var(--sh-m);
  animation:float 7s ease-in-out infinite;
}
.about__seal b{
  display:block;
  font-family:var(--serif);
  font-size:clamp(1.5rem,2.2vw,2.1rem);
  color:var(--gold);
  line-height:1;
  font-weight:500;
}
.about__seal span{
  font-size:.6rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-soft);
  line-height:1.4;
  display:block;
  margin-top:.3rem;
}
@keyframes float{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-12px); }
}
.about__list{
  list-style:none;
  margin:2rem 0;
  padding:0;
  display:grid;
  gap:1rem;
}
.about__list li{
  display:flex;
  gap:.9rem;
  align-items:flex-start;
  font-size:.97rem;
  color:var(--ink-soft);
}
.about__list svg{ width:18px; height:18px; stroke:var(--gold); flex:0 0 auto; margin-top:.35rem; }
.stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.5rem;
  margin-top:2.5rem;
  padding-top:2rem;
  border-top:1px solid rgba(36,30,24,.12);
}
.stat b{
  display:block;
  font-family:var(--serif);
  font-size:clamp(2rem,3vw,2.9rem);
  line-height:1;
  color:var(--ink);
  font-weight:400;
}
.stat b .suffix{ color:var(--gold); }
.stat span{
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-faint);
}

/* ============================================================
   ABLAUF (dunkles Band)
   ============================================================ */
.process{
  background:var(--ink);
  color:var(--cream);
  position:relative;
  overflow:hidden;
}
.process::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(60% 80% at 88% 10%, rgba(185,140,85,.22), transparent 60%),
    radial-gradient(50% 60% at 5% 95%, rgba(185,140,85,.16), transparent 60%);
  pointer-events:none;
}
.process .container{ position:relative; z-index:1; }
.process .eyebrow{ color:var(--gold-soft); }
.process h2{ color:var(--cream-soft); }
.process__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(1.5rem,3vw,3rem);
  margin-top:clamp(2.5rem,5vw,4rem);
  counter-reset:step;
}
.step{
  padding-top:2rem;
  border-top:1px solid rgba(247,242,234,.18);
  position:relative;
}
.step::before{
  counter-increment:step;
  content:"0" counter(step);
  position:absolute;
  top:2rem; right:0;
  font-family:var(--serif);
  font-size:2.6rem;
  color:rgba(185,140,85,.4);
  line-height:1;
}
.step h3{ color:var(--cream-soft); margin-bottom:.8rem; }
.step p{ color:rgba(247,242,234,.66); font-size:.96rem; }

/* ============================================================
   GALERIE
   ============================================================ */
.gallery{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:clamp(150px,17vw,230px);
  gap:clamp(.6rem,1.2vw,1.1rem);
}
.gallery__item{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius);
  cursor:pointer;
  border:0;
  padding:0;
  background:var(--beige);
}
.gallery__item:nth-child(1){ grid-column:span 2; grid-row:span 2; }
.gallery__item:nth-child(4){ grid-column:span 2; }
.gallery__item:nth-child(5){ grid-column:span 2; }
.gallery__item img{
  width:100%; height:100%;
  object-fit:cover;
  transition:transform 1.2s var(--ease-out), filter .8s var(--ease);
}
.gallery__item::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(36,30,24,0) 40%, rgba(36,30,24,.55));
  opacity:0;
  transition:opacity .6s var(--ease);
}
.gallery__item:hover img{ transform:scale(1.07); }
.gallery__item:hover::after{ opacity:1; }
.gallery__cap{
  position:absolute;
  left:1.1rem; bottom:1.1rem;
  z-index:2;
  color:var(--cream-soft);
  font-size:.7rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  opacity:0;
  transform:translateY(10px);
  transition:opacity .5s var(--ease) .05s, transform .6s var(--ease-out) .05s;
}
.gallery__item:hover .gallery__cap{ opacity:1; transform:none; }
.gallery__zoom{
  position:absolute;
  right:1.1rem; top:1.1rem;
  z-index:2;
  width:38px; height:38px;
  border-radius:50%;
  border:1px solid rgba(247,242,234,.6);
  display:grid; place-items:center;
  opacity:0;
  transform:scale(.7);
  transition:opacity .5s var(--ease), transform .6s var(--ease-out);
}
.gallery__item:hover .gallery__zoom{ opacity:1; transform:none; }
.gallery__zoom svg{ width:15px; height:15px; stroke:var(--cream-soft); }

.gallery__foot{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  margin-top:2.5rem;
  padding-top:2rem;
  border-top:1px solid rgba(36,30,24,.12);
}

/* Lightbox */
.lightbox{
  position:fixed;
  inset:0;
  z-index:200;
  background:rgba(28,23,18,.94);
  display:grid;
  place-items:center;
  opacity:0;
  visibility:hidden;
  transition:opacity .5s var(--ease), visibility .5s;
  padding:clamp(1rem,4vw,3rem);
}
.lightbox.is-open{ opacity:1; visibility:visible; }
.lightbox img{
  max-width:min(1000px,100%);
  max-height:82vh;
  object-fit:contain;
  border-radius:var(--radius);
  transform:scale(.96);
  transition:transform .6s var(--ease-out);
}
.lightbox.is-open img{ transform:none; }
.lightbox__cap{
  position:absolute;
  bottom:clamp(1.5rem,5vw,3rem);
  left:0; right:0;
  text-align:center;
  color:rgba(247,242,234,.8);
  font-size:.76rem;
  letter-spacing:.22em;
  text-transform:uppercase;
}
.lightbox__btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:52px; height:52px;
  border-radius:50%;
  border:1px solid rgba(247,242,234,.3);
  background:transparent;
  display:grid; place-items:center;
  cursor:pointer;
  transition:background .4s var(--ease), border-color .4s var(--ease);
}
.lightbox__btn:hover{ background:rgba(247,242,234,.12); border-color:var(--gold); }
.lightbox__btn svg{ width:18px; height:18px; stroke:var(--cream-soft); }
.lightbox__btn--prev{ left:clamp(.5rem,3vw,2.5rem); }
.lightbox__btn--next{ right:clamp(.5rem,3vw,2.5rem); }
.lightbox__close{
  top:clamp(1rem,3vw,2rem);
  right:clamp(1rem,3vw,2rem);
  transform:none;
}

/* ============================================================
   KONTAKT
   ============================================================ */
.contact{
  background:linear-gradient(180deg,var(--cream-soft),var(--cream));
}
.contact__grid{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:clamp(2rem,5vw,4.5rem);
  align-items:start;
}
.info-list{
  display:grid;
  gap:1.75rem;
  margin:0;
  padding:0;
  list-style:none;
}
.info-list li{
  display:flex;
  gap:1.1rem;
  align-items:flex-start;
  padding-bottom:1.75rem;
  border-bottom:1px solid rgba(36,30,24,.1);
}
.info-list li:last-child{ border-bottom:0; padding-bottom:0; }
.info-list .ico{
  flex:0 0 auto;
  width:44px; height:44px;
  border-radius:50%;
  border:1px solid rgba(185,140,85,.4);
  display:grid; place-items:center;
}
.info-list .ico svg{ width:18px; height:18px; stroke:var(--gold); }
.info-list h4{
  font-family:var(--sans);
  font-size:.7rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ink-faint);
  margin-bottom:.4rem;
  font-weight:400;
}
.info-list p, .info-list a{
  font-family:var(--serif);
  font-size:1.2rem;
  color:var(--ink);
  line-height:1.45;
  margin:0;
}
.info-list a{ transition:color .4s var(--ease); }
.info-list a:hover{ color:var(--gold); }

.hours{
  width:100%;
  border-collapse:collapse;
  font-size:.95rem;
}
.hours th, .hours td{
  text-align:left;
  padding:.7rem 0;
  border-bottom:1px solid rgba(36,30,24,.1);
  font-weight:300;
}
.hours th{ color:var(--ink-soft); font-weight:300; }
.hours td{ text-align:right; color:var(--ink); font-variant-numeric:tabular-nums; }
.hours tr:last-child th, .hours tr:last-child td{ border-bottom:0; }
.hours tr.is-today th{ color:var(--gold); }
.hours tr.is-today td{ color:var(--gold); }

.map-card{
  border-radius:var(--radius-l);
  overflow:hidden;
  border:1px solid rgba(36,30,24,.1);
  background:var(--cream-soft);
  box-shadow:var(--sh-s);
}
.map-card__body{ position:relative; aspect-ratio:16/11; background:var(--sand); }
.map-card__body iframe{ position:absolute; inset:0; width:100%; height:100%; display:block; border:0; z-index:1; }
.map-card__body svg{ display:none; }
.map-card__foot{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1.25rem 1.5rem;
  border-top:1px solid rgba(36,30,24,.1);
}
.map-card__foot p{ margin:0; font-size:.9rem; color:var(--ink-soft); }
.pin{ animation:pinPulse 2.6s ease-in-out infinite; transform-origin:center bottom; }
@keyframes pinPulse{
  0%,100%{ transform:translateY(0) scale(1); }
  50%{ transform:translateY(-6px) scale(1.04); }
}

/* ============================================================
   TERMIN BUCHEN
   ============================================================ */
.booking{
  background:
    linear-gradient(180deg, var(--cream) 0%, var(--cream-deep) 100%);
}
.booking__grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:clamp(2rem,4vw,3.5rem);
  align-items:start;
}
.form-card{
  background:var(--cream-soft);
  border:1px solid rgba(36,30,24,.08);
  border-radius:var(--radius-l);
  padding:clamp(1.5rem,3.5vw,3rem);
  box-shadow:var(--sh-m);
}
.form-card__head{ margin-bottom:2rem; }
.steps{
  display:flex;
  gap:.5rem;
  margin-bottom:2.25rem;
}
.steps__bar{
  flex:1;
  height:2px;
  background:rgba(36,30,24,.12);
  position:relative;
  overflow:hidden;
}
.steps__bar::after{
  content:"";
  position:absolute; inset:0;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .5s var(--ease-out);
}
.steps__bar.is-done::after{ transform:scaleX(1); }

.field-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.25rem;
}
.field{ display:flex; flex-direction:column; gap:.5rem; margin-bottom:1.25rem; }
.field--full{ grid-column:1 / -1; }
.field label{
  font-size:.7rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
.field label .req{ color:var(--gold); }
.field input,
.field select,
.field textarea{
  width:100%;
  font-family:var(--sans);
  font-size:1rem;
  font-weight:300;
  color:var(--ink);
  background:transparent;
  border:0;
  border-bottom:1px solid rgba(36,30,24,.22);
  padding:.75rem 0;
  border-radius:0;
  transition:border-color .4s var(--ease);
  appearance:none;
}
.field textarea{ resize:vertical; min-height:96px; }
.field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23B98C55' stroke-width='1.2'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right .2rem center;
  padding-right:1.5rem;
  cursor:pointer;
}
.field input:focus,
.field select:focus,
.field textarea:focus{
  outline:none;
  border-color:var(--gold);
}
.field input::placeholder, .field textarea::placeholder{ color:var(--ink-faint); }
body.theme-dark .field input,
body.theme-dark .field select,
body.theme-dark .field textarea{
  color:var(--ink);
  background:rgba(247,242,234,.035);
  border-bottom-color:rgba(247,242,234,.28);
  color-scheme:dark;
}
body.theme-dark .field input::placeholder,
body.theme-dark .field textarea::placeholder{ color:#B4A496; }
body.theme-dark .field input:focus,
body.theme-dark .field select:focus,
body.theme-dark .field textarea:focus{ background:rgba(213,169,104,.07); }
body.theme-dark .field select option{ background:var(--cream-soft); color:var(--ink); }
.field.has-error input,
.field.has-error select,
.field.has-error textarea{ border-color:#B4553F; }
.field .error{
  font-size:.76rem;
  color:#B4553F;
  letter-spacing:.02em;
  display:none;
}
.field.has-error .error{ display:block; }
.field-hint{ font-size:.76rem; color:var(--ink-faint); }

.slots{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
}
.slot{
  border:1px solid rgba(36,30,24,.18);
  background:transparent;
  border-radius:100px;
  padding:.6rem 1.1rem;
  font-size:.85rem;
  color:var(--ink-2);
  cursor:pointer;
  transition:all .35s var(--ease);
  font-variant-numeric:tabular-nums;
}
.slot:hover{ border-color:var(--gold); color:var(--gold); }
body.theme-dark .slot{ border-color:rgba(247,242,234,.25); color:var(--ink-2); background:rgba(247,242,234,.035); }
body.theme-dark .slot:hover{ background:rgba(213,169,104,.1); border-color:var(--gold-soft); color:var(--gold-soft); }
.slot.is-selected{
  background:var(--gold);
  border-color:var(--gold);
  color:var(--cream-soft);
}
body.theme-dark .slot.is-selected{ color:#171513; background:var(--gold-soft); border-color:var(--gold-soft); }
.slot[disabled]{ opacity:.35; cursor:not-allowed; text-decoration:line-through; }

.checkbox{
  display:flex;
  gap:.85rem;
  align-items:flex-start;
  font-size:.86rem;
  color:var(--ink-soft);
  cursor:pointer;
  line-height:1.6;
}
.checkbox input{
  appearance:none;
  flex:0 0 auto;
  width:20px; height:20px;
  margin-top:2px;
  border:1px solid rgba(36,30,24,.3);
  border-radius:3px;
  cursor:pointer;
  position:relative;
  transition:background .3s var(--ease), border-color .3s var(--ease);
}
.checkbox input:checked{ background:var(--gold); border-color:var(--gold); }
.checkbox input:checked::after{
  content:"";
  position:absolute;
  left:6px; top:2px;
  width:5px; height:10px;
  border:1.5px solid var(--cream-soft);
  border-top:0; border-left:0;
  transform:rotate(42deg);
}
body.theme-dark .checkbox input{ border-color:rgba(247,242,234,.34); background:rgba(247,242,234,.04); }
.checkbox a{ text-decoration:underline; text-underline-offset:2px; }

.form-note{
  margin-top:1.5rem;
  font-size:.8rem;
  color:var(--ink-faint);
}

/* Bestätigung */
.success{
  text-align:center;
  padding:clamp(1.5rem,4vw,3rem) 1rem;
  animation:panelIn .8s var(--ease-out);
}
.success__ico{
  width:78px; height:78px;
  margin:0 auto 1.75rem;
  border-radius:50%;
  border:1px solid var(--gold);
  display:grid; place-items:center;
  animation:pop .7s var(--ease-out) .1s backwards;
}
.success__ico svg{ width:30px; height:30px; stroke:var(--gold); }
@keyframes pop{ from{ transform:scale(.6); opacity:0; } to{ transform:none; opacity:1; } }
.success__summary{
  margin:2rem auto 2.5rem;
  max-width:420px;
  text-align:left;
  border:1px solid rgba(36,30,24,.1);
  border-radius:var(--radius);
  padding:1.5rem;
  background:var(--cream);
}
.success__summary div{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:.55rem 0;
  font-size:.92rem;
  border-bottom:1px dashed rgba(36,30,24,.12);
}
.success__summary div:last-child{ border-bottom:0; }
.success__summary dt{ color:var(--ink-faint); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; margin:0; }
.success__summary dd{ margin:0; font-family:var(--serif); font-size:1.1rem; color:var(--ink); }

/* Seitenleiste Termin */
.booking__aside{
  display:grid;
  gap:1.25rem;
}
.aside-card{
  background:var(--ink);
  color:var(--cream);
  border-radius:var(--radius-l);
  padding:clamp(1.5rem,2.5vw,2.25rem);
  position:relative;
  overflow:hidden;
}
.aside-card::after{
  content:"";
  position:absolute;
  right:-30%; bottom:-40%;
  width:80%; aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle, rgba(185,140,85,.28), transparent 65%);
  pointer-events:none;
}
.aside-card h3{ color:var(--cream-soft); margin-bottom:.8rem; }
.aside-card p{ color:rgba(247,242,234,.7); font-size:.95rem; }
.aside-card .eyebrow{ color:var(--gold-soft); }
.aside-card .btn{ margin-top:1.5rem; }
.booking__calls{ display:flex; flex-wrap:wrap; gap:.65rem; }
.booking__calls .btn{ margin-top:0; }
.aside-card--outline{
  background:transparent;
  color:var(--ink-2);
  border:1px solid rgba(36,30,24,.12);
}
.aside-card--outline::after{ display:none; }
.aside-card--outline h3{ color:var(--ink); }
.aside-card--outline p{ color:var(--ink-soft); }
.aside-card--outline .eyebrow{ color:var(--gold); }

/* ============================================================
   FOOTER
   ============================================================ */
.footer{
  background:var(--cream-deep);
  padding-top:clamp(3.5rem,7vw,6rem);
  border-top:1px solid rgba(36,30,24,.08);
}
.footer__grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1.1fr;
  gap:clamp(2rem,4vw,3.5rem);
  padding-bottom:clamp(2.5rem,5vw,4rem);
}
.footer__brand img{ width:clamp(132px,15vw,178px); height:auto; margin-bottom:1.5rem; }
.footer__brand p{ color:var(--ink-soft); font-size:.95rem; max-width:34ch; }
.footer h4{
  font-family:var(--sans);
  font-size:.7rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink-faint);
  margin-bottom:1.4rem;
  font-weight:400;
}
.footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:.75rem; }
.footer ul a{
  font-size:.95rem;
  color:var(--ink-2);
  transition:color .4s var(--ease), transform .4s var(--ease);
  display:inline-block;
}
.footer ul a:hover{ color:var(--gold); transform:translateX(4px); }
.footer__socials{ display:flex; gap:.75rem; margin-top:1.5rem; }
.footer__socials a{
  width:42px; height:42px;
  border-radius:50%;
  border:1px solid rgba(36,30,24,.2);
  display:grid; place-items:center;
  transition:all .45s var(--ease);
}
.footer__socials a:hover{ background:var(--ink); border-color:var(--ink); transform:translateY(-3px); }
.footer__socials svg{ width:17px; height:17px; stroke:var(--ink); transition:stroke .4s var(--ease); }
.footer__socials a:hover svg{ stroke:var(--cream-soft); }
.footer__bottom{
  border-top:1px solid rgba(36,30,24,.1);
  padding-block:1.75rem;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  font-size:.82rem;
  color:var(--ink-faint);
}
.footer__bottom nav{ display:flex; flex-wrap:wrap; gap:1.5rem; }
.footer__bottom a{ transition:color .4s var(--ease); }
.footer__bottom a:hover{ color:var(--gold); }
.footer__credit{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  font-family:var(--serif);
  font-size:1rem;
  letter-spacing:.04em;
  color:var(--ink-soft);
  white-space:nowrap;
}
.footer__credit span{ color:var(--gold); font-weight:500; }
.footer__credit-dot{ color:var(--bronze) !important; }
.footer__credit:hover span{ color:var(--ink); }

/* Cookie-Hinweis */
.cookie-notice{
  position:fixed;
  left:clamp(1rem,3vw,2.5rem);
  right:clamp(1rem,3vw,2.5rem);
  bottom:clamp(1rem,3vw,2.5rem);
  z-index:95;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:2rem;
  max-width:920px;
  padding:1.5rem 1.75rem;
  margin-left:auto;
  background:var(--ink);
  color:var(--cream-soft);
  box-shadow:var(--sh-l);
  border:1px solid rgba(247,242,234,.14);
  animation:cookieIn .7s var(--ease-out) both;
}
.cookie-notice[hidden]{ display:none; }
.cookie-notice__eyebrow{
  margin:0 0 .35rem;
  color:var(--gold-soft);
  font-size:.68rem;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.cookie-notice h2{
  margin:0 0 .35rem;
  color:var(--cream-soft);
  font-family:var(--serif);
  font-size:1.55rem;
  font-weight:500;
}
.cookie-notice p:not(.cookie-notice__eyebrow){
  max-width:58ch;
  margin:0;
  color:rgba(247,242,234,.72);
  font-size:.86rem;
  line-height:1.55;
}
.cookie-notice a{ color:var(--gold-soft); text-decoration:underline; text-underline-offset:3px; }
.cookie-notice__actions{ display:flex; align-items:center; gap:1rem; flex-shrink:0; }
.cookie-notice .btn{ border-color:var(--gold-soft); color:var(--cream-soft); }
.cookie-notice .btn::after{ background:var(--gold-soft); }
.cookie-notice .btn:hover{ color:var(--ink); }
.cookie-notice__close{
  padding:0;
  border:0;
  background:transparent;
  color:rgba(247,242,234,.62);
  cursor:pointer;
  font:inherit;
  font-size:.78rem;
}
.cookie-notice__close:hover{ color:var(--cream-soft); }
@keyframes cookieIn{ from{ opacity:0; transform:translateY(1rem); } to{ opacity:1; transform:none; } }

/* Rechtliche Seiten */
.legal-body{ min-height:100vh; display:flex; flex-direction:column; }
.legal-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  padding:1.25rem var(--pad);
  border-bottom:1px solid rgba(36,30,24,.1);
}
.legal-header__brand{ display:block; width:clamp(132px,15vw,178px); }
.legal-header__brand img{ width:100%; height:auto; }
.legal-header__back{
  color:var(--ink-soft);
  font-size:.78rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  transition:color .4s var(--ease);
}
.legal-header__back:hover{ color:var(--gold); }
.legal-page{ width:min(calc(100% - 2 * var(--pad)), 860px); margin:0 auto; padding:clamp(4rem,9vw,8rem) 0; flex:1; }
.legal-page h1{ margin:.4rem 0 3rem; font-size:clamp(3rem,7vw,5.5rem); }
.legal-content{ display:grid; gap:2.5rem; }
.legal-content section{ max-width:68ch; }
.legal-content h2{ margin:0 0 .65rem; font-family:var(--serif); font-size:1.8rem; font-weight:500; color:var(--ink); }
.legal-content p{ margin:0; color:var(--ink-soft); }
.legal-content a{ color:var(--gold); text-decoration:underline; text-underline-offset:3px; }
.legal-footer{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:1rem;
  padding:1.5rem var(--pad);
  border-top:1px solid rgba(36,30,24,.1);
  color:var(--ink-faint);
  font-size:.82rem;
}
.legal-footer nav{ display:flex; flex-wrap:wrap; gap:1.5rem; }
.legal-footer a{ transition:color .4s var(--ease); }
.legal-footer a:hover{ color:var(--gold); }

/* Nach-oben-Button */
.to-top{
  position:fixed;
  right:clamp(1rem,2.5vw,2rem);
  bottom:clamp(1rem,2.5vw,2rem);
  z-index:90;
  width:52px; height:52px;
  border-radius:50%;
  border:1px solid rgba(36,30,24,.15);
  background:rgba(247,242,234,.9);
  backdrop-filter:blur(8px);
  display:grid; place-items:center;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(14px);
  transition:all .5s var(--ease-out);
  box-shadow:var(--sh-s);
}
.to-top.is-visible{ opacity:1; visibility:visible; transform:none; }
.to-top:hover{ background:var(--ink); border-color:var(--ink); }
.to-top svg{ width:17px; height:17px; stroke:var(--ink); transition:stroke .4s var(--ease), transform .4s var(--ease); }
.to-top:hover svg{ stroke:var(--cream-soft); transform:translateY(-3px); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1180px){
  .nav__menu{ gap:1.4rem; }
  .trust{ grid-template-columns:repeat(2,1fr); row-gap:2rem; }
  .cards{ grid-template-columns:repeat(2,1fr); }
}

@media (max-width:1024px){
  .nav__menu{ display:none; }
  .burger{ display:block; }
  .nav__phone, .nav__call{ display:none; }
  .nav__actions .btn{ display:none; }
  html{ scroll-padding-top:80px; }
  .hero__grid{ grid-template-columns:1fr; gap:3rem; }
  .hero__visual{ order:-1; max-width:520px; }
  .hero__frame{ aspect-ratio:16/11; }
  .about__grid{ grid-template-columns:1fr; }
  .about__visual{ max-width:520px; }
  .contact__grid{ grid-template-columns:1fr; }
  .booking__grid{ grid-template-columns:1fr; }
  .footer__grid{ grid-template-columns:1fr 1fr; }
  .process__grid{ grid-template-columns:1fr; gap:2rem; }
}

@media (max-width:760px){
  .section-head{ flex-direction:column; align-items:flex-start; }
  .cards{ grid-template-columns:1fr; }
  .stats{ grid-template-columns:1fr; gap:1.25rem; }
  .field-grid{ grid-template-columns:1fr; }
  .gallery{
    grid-template-columns:repeat(2,1fr);
    grid-auto-rows:clamp(120px,28vw,180px);
  }
  .gallery__item:nth-child(1){ grid-column:span 2; grid-row:span 1; }
  .gallery__item:nth-child(4),
  .gallery__item:nth-child(5){ grid-column:span 1; }
  .hero__badge{ position:static; margin-top:1.25rem; max-width:100%; }
  .footer__grid{ grid-template-columns:1fr; }
  .footer__bottom{ flex-direction:column; align-items:flex-start; }
  .cookie-notice{ align-items:stretch; flex-direction:column; gap:1.25rem; padding:1.25rem; }
  .cookie-notice__actions{ justify-content:space-between; }
  .legal-header{ align-items:flex-start; flex-direction:column; gap:1rem; }
  .legal-page{ width:min(calc(100% - 2 * var(--pad)), 860px); }
  .price-row{ flex-wrap:wrap; gap:.35rem .75rem; }
  .price-row__dots{ display:none; }
  .price-row__name{ font-size:1.1rem; }
  .price-row__desc{ flex-basis:100%; }
  .lightbox__btn--prev{ left:.5rem; }
  .lightbox__btn--next{ right:.5rem; }
  .about__seal{ right:0; }
}

@media (max-width:420px){
  .marquee__item{ font-size:1.05rem; gap:2rem; }
  .marquee__track{ gap:2rem; }
  .hero__cta .btn{ width:100%; }
}

/* ============================================================
   BEWEGUNG REDUZIEREN
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  [data-reveal]{ opacity:1 !important; transform:none !important; }
}

/* ============================================================
   DRUCK
   ============================================================ */
@media print{
  .header, .to-top, .marquee, .lightbox{ display:none !important; }
  body{ background:#fff; }
}
