/* ============ MAISON CERISIER – Design System ============ */
:root{
  --burgundy:#4A1520;
  --burgundy-deep:#360E17;
  --burgundy-soft:#5C1F2C;
  --gold:#C9A227;
  --gold-light:#E5C158;
  --gold-dark:#A17F1A;
  --gold-pale:#EDD9A3;
  --cream:#F7F1E8;
  --cream-deep:#EFE6D8;
  --ink:#2B1B20;
  --white:#FDFBF7;
  /* Goldener Schnitt */
  --phi:1.618;
  --space-1:0.618rem;
  --space-2:1rem;
  --space-3:1.618rem;
  --space-4:2.618rem;
  --space-5:4.236rem;
  --space-6:6.854rem;
  --font-serif:'Cormorant Garamond',Georgia,serif;
  --font-sans:'Jost',Helvetica,sans-serif;
  --gold-grad:linear-gradient(105deg,#A17F1A 0%,#C9A227 22%,#E5C158 42%,#F4E3B2 50%,#E5C158 58%,#C9A227 78%,#A17F1A 100%);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-sans);
  font-weight:300;
  color:var(--ink);
  background:var(--burgundy);
  line-height:var(--phi);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--gold);color:var(--burgundy)}
h1,h2,h3,h4{font-family:var(--font-serif);font-weight:400;line-height:1.15}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}

/* ---------- Gold-Text & Shimmer ---------- */
.gold-text{
  background:var(--gold-grad);
  background-size:200% auto;
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.shimmer{animation:shimmer 6s linear infinite}
@keyframes shimmer{to{background-position:200% center}}

/* ---------- Ornament-Linien ---------- */
.ornament{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:var(--space-3)}
.ornament .line{height:1px;width:61.8px;background:linear-gradient(90deg,transparent,var(--gold));transform:scaleX(0);transform-origin:right;transition:transform 1.2s cubic-bezier(.22,1,.36,1) .2s}
.ornament .line:last-child{background:linear-gradient(90deg,var(--gold),transparent);transform-origin:left}
.ornament .diamond{width:7px;height:7px;background:var(--gold);transform:rotate(45deg) scale(0);transition:transform .8s cubic-bezier(.34,1.56,.64,1) .6s}
.revealed .ornament .line,.no-js .ornament .line{transform:scaleX(1)}
.revealed .ornament .diamond,.no-js .ornament .diamond{transform:rotate(45deg) scale(1)}

/* ---------- Reveal on Scroll (nur wenn JS aktiv – Fallback: Inhalte sofort sichtbar) ---------- */
.js .reveal{opacity:0;transform:translateY(38px);transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1)}
.js .reveal.revealed{opacity:1;transform:none}
.reveal-d1{transition-delay:.12s}
.reveal-d2{transition-delay:.24s}
.reveal-d3{transition-delay:.36s}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.7rem;
  padding:1.05rem 2.618rem;
  font-family:var(--font-sans);font-size:.82rem;font-weight:400;
  letter-spacing:.22em;text-transform:uppercase;
  border:1px solid var(--gold);
  background:transparent;color:var(--gold-light);
  position:relative;overflow:hidden;
  transition:color .45s ease,border-color .45s ease;
}
.btn::before{
  content:'';position:absolute;inset:0;
  background:var(--gold-grad);background-size:200% auto;
  transform:scaleX(0);transform-origin:left;
  transition:transform .5s cubic-bezier(.22,1,.36,1);
  z-index:0;
}
.btn span{position:relative;z-index:1}
.btn:hover{color:var(--burgundy)}
.btn:hover::before{transform:scaleX(1)}
.btn-solid{background:var(--gold-grad);background-size:200% auto;color:var(--burgundy);border:none;animation:shimmer 8s linear infinite}
.btn-solid:hover{color:var(--burgundy);filter:brightness(1.06)}
.btn-solid::before{display:none}
.btn-dark{border-color:var(--burgundy);color:var(--burgundy)}
.btn-dark::before{background:var(--burgundy)}
.btn-dark:hover{color:var(--gold-light)}

/* ---------- Hinweis-Banner "Website im Aufbau" ----------
   Entfernen: die .site-notice-Zeile in jeder HTML-Datei löschen und --notice-h auf 0px setzen. */
:root{--notice-h:40px}
html{scroll-padding-top:var(--notice-h)}
.site-notice{
  position:fixed;top:0;left:0;right:0;z-index:950;height:var(--notice-h);
  display:flex;align-items:center;justify-content:center;padding:0 1rem;
  background:var(--gold-grad);background-size:200% auto;animation:shimmer 8s linear infinite;
  color:var(--burgundy);font-family:var(--font-sans);font-size:clamp(.64rem,2.4vw,.78rem);font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  box-shadow:0 2px 16px rgba(0,0,0,.25);
}

/* ---------- Navigation ---------- */
.nav{
  position:fixed;top:var(--notice-h);left:0;right:0;z-index:900;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.2rem 4vw;
  transition:background .5s ease,padding .5s ease,box-shadow .5s ease;
}
.nav.scrolled{background:rgba(54,14,23,.92);backdrop-filter:blur(14px);padding:.65rem 4vw;box-shadow:0 8px 40px rgba(0,0,0,.35)}
.nav-logo img{height:52px!important;width:auto;transition:height .5s ease}
.nav.scrolled .nav-logo img{height:42px}
.nav-links{display:flex;gap:2.4rem;list-style:none;align-items:center}
.nav-links a{
  font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cream);
  position:relative;padding:.3rem 0;font-weight:300;
}
.nav-links a::after{content:'';position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--gold-grad);transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.22,1,.36,1)}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-cta{border:1px solid var(--gold);padding:.55rem 1.4rem;color:var(--gold-light)!important;transition:background .4s,color .4s}
.nav-cta:hover{background:var(--gold);color:var(--burgundy)!important}
.nav-cta::after{display:none}
.burger{display:none;background:none;border:none;width:34px;height:26px;position:relative;z-index:1001}
.burger span{position:absolute;left:0;width:100%;height:1.5px;background:var(--gold-light);transition:.4s}
.burger span:nth-child(1){top:2px}.burger span:nth-child(2){top:12px}.burger span:nth-child(3){top:22px}
.burger.open span:nth-child(1){top:12px;transform:rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){top:12px;transform:rotate(-45deg)}

/* ---------- Hero ---------- */
.hero{
  min-height:100vh;min-height:100svh;
  position:relative;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;
  background:radial-gradient(ellipse at 50% 38.2%,var(--burgundy-soft) 0%,var(--burgundy) 55%,var(--burgundy-deep) 100%);
  overflow:hidden;
  padding:0 6vw;
}
#petals{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.hero-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;
  /* Goldener Schnitt: Logo-Block sitzt im oberen Drittelpunkt */
  transform:translateY(-6.5vh);
}
.hero-logo{width:min(38.2vw,420px);margin-bottom:var(--space-3);animation:heroFloat 9s ease-in-out infinite,logoGlow 7s ease-in-out infinite}
@keyframes logoGlow{
  0%,100%{filter:drop-shadow(0 12px 44px rgba(0,0,0,.45)) drop-shadow(0 0 16px rgba(201,162,39,0))}
  50%{filter:drop-shadow(0 12px 44px rgba(0,0,0,.45)) drop-shadow(0 0 30px rgba(201,162,39,.38))}
}
.hero::after,.page-hero::after{
  content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(115deg,transparent 38%,rgba(229,193,88,.07) 50%,transparent 62%);
  background-size:260% 100%;
  animation:heroSweep 12s ease-in-out infinite;
}
@keyframes heroSweep{0%{background-position:130% 0}60%,100%{background-position:-60% 0}}
@keyframes heroFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.hero-sub{
  font-family:var(--font-sans);font-weight:200;font-size:clamp(.78rem,1.4vw,.95rem);
  letter-spacing:.55em;text-transform:uppercase;color:var(--gold-pale);
  margin-bottom:var(--space-4);
}
.hero h1{
  font-size:clamp(1.9rem,4.6vw,3.6rem);
  font-weight:300;color:var(--cream);
  max-width:17em;margin:0 auto var(--space-4);
}
.hero h1 em{font-style:italic;font-weight:400}
.hero-ctas{display:flex;gap:1.2rem;flex-wrap:wrap;justify-content:center}
.scroll-hint{
  position:absolute;bottom:38px;left:50%;transform:translateX(-50%);z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:.6rem;
  color:var(--gold-pale);font-size:.65rem;letter-spacing:.35em;text-transform:uppercase;
}
.scroll-hint .wire{width:1px;height:56px;background:linear-gradient(var(--gold),transparent);position:relative;overflow:hidden}
.scroll-hint .wire::after{content:'';position:absolute;top:-30%;left:0;width:100%;height:30%;background:var(--gold-light);animation:scrollWire 2.2s cubic-bezier(.65,0,.35,1) infinite}
@keyframes scrollWire{to{top:130%}}

/* ---------- Sektionen allgemein ---------- */
section{position:relative}
.section-pad{padding:var(--space-6) 6vw}
.section-head{text-align:center;max-width:640px;margin:0 auto var(--space-5)}
.kicker{font-size:.72rem;letter-spacing:.45em;text-transform:uppercase;color:var(--gold-dark);display:block;margin-bottom:var(--space-2);font-weight:400}
.on-dark .kicker{color:var(--gold-pale)}
.section-head h2{font-size:clamp(2rem,4vw,3.1rem);font-weight:400;color:var(--burgundy)}
.on-dark .section-head h2{color:var(--cream)}
.section-head p.lead{margin-top:var(--space-3);font-size:1.02rem;color:#6b5a60;font-weight:300}
.on-dark .section-head p.lead{color:#D9C4BB}

/* ---------- Leistungen ---------- */
.services{background:var(--cream)}
.services-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:1.6rem;max-width:1180px;margin:0 auto;
}
.service-card{
  background:var(--white);
  padding:var(--space-4) var(--space-3);
  text-align:center;
  border:1px solid rgba(201,162,39,.18);
  position:relative;overflow:hidden;
  transition:transform .5s cubic-bezier(.22,1,.36,1),box-shadow .5s ease;
}
.service-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--gold-grad);background-size:200% auto;transform:scaleX(0);transition:transform .5s cubic-bezier(.22,1,.36,1)}
.service-card:hover{transform:translateY(-8px);box-shadow:0 24px 60px -18px rgba(74,21,32,.25)}
.service-card:hover::before{transform:scaleX(1);animation:shimmer 4s linear infinite}
.service-icon{width:56px;height:56px;margin:0 auto var(--space-3);color:var(--gold-dark)}
.service-icon svg{width:100%;height:100%;stroke-width:1}
.service-card h3{font-size:1.45rem;color:var(--burgundy);margin-bottom:var(--space-2)}
.service-card p{font-size:.92rem;color:#6b5a60}

/* ---------- Galerie ---------- */
.gallery{background:var(--burgundy-deep)}
.gallery-grid{
  columns:3;column-gap:1.2rem;
  max-width:1280px;margin:0 auto;
}
.g-item{
  position:relative;margin-bottom:1.2rem;overflow:hidden;cursor:pointer;
  break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;
}
.g-item img{width:100%;transition:transform 1.1s cubic-bezier(.22,1,.36,1),filter 1.1s ease}
.g-item::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to top,rgba(54,14,23,.85) 0%,rgba(54,14,23,0) 55%);
  opacity:0;transition:opacity .6s ease;
}
.g-item .g-label{
  position:absolute;left:1.4rem;right:1.4rem;bottom:1.1rem;z-index:2;
  color:var(--gold-pale);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;
  opacity:0;transform:translateY(12px);transition:opacity .5s ease .1s,transform .5s ease .1s;
}
.g-item .g-frame{
  position:absolute;inset:14px;border:1px solid rgba(229,193,88,.65);z-index:2;
  opacity:0;transform:scale(1.05);transition:opacity .55s ease,transform .55s cubic-bezier(.22,1,.36,1);
  pointer-events:none;
}
.g-item:hover img{transform:scale(1.06)}
.g-item:hover::after,.g-item:hover .g-label,.g-item:hover .g-frame{opacity:1;transform:none}

/* Lightbox */
.lightbox{
  position:fixed;inset:0;z-index:1200;background:rgba(35,8,14,.96);backdrop-filter:blur(10px);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .45s ease;
}
.lightbox.open{opacity:1;pointer-events:auto}
.lightbox img{max-width:88vw;max-height:82vh;box-shadow:0 30px 90px rgba(0,0,0,.6);border:1px solid rgba(201,162,39,.35)}
.lb-btn{position:absolute;background:none;border:1px solid rgba(229,193,88,.4);color:var(--gold-light);width:52px;height:52px;border-radius:50%;font-size:1.15rem;display:flex;align-items:center;justify-content:center;transition:background .35s,color .35s}
.lb-btn:hover{background:var(--gold);color:var(--burgundy)}
.lb-close{top:26px;right:26px}
.lb-prev{left:26px;top:50%;transform:translateY(-50%)}
.lb-next{right:26px;top:50%;transform:translateY(-50%)}
.lb-caption{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);color:var(--gold-pale);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;text-align:center;width:90%}

/* ---------- Über mich ---------- */
.about{background:var(--cream)}
.about-wrap{
  display:grid;
  /* Goldener Schnitt: 38.2% Bild / 61.8% Text */
  grid-template-columns:38.2fr 61.8fr;
  gap:var(--space-5);
  max-width:1180px;margin:0 auto;align-items:center;
}
.about-photo{position:relative}
.about-photo img{width:100%;box-shadow:0 30px 80px -20px rgba(74,21,32,.4)}
.about-photo::before{
  content:'';position:absolute;top:-22px;left:-22px;right:22px;bottom:22px;
  border:1px solid var(--gold);z-index:0;pointer-events:none;
}
.about-photo::after{
  content:'';position:absolute;bottom:-16px;right:-16px;width:38.2%;aspect-ratio:1;
  background:radial-gradient(circle at 30% 30%,var(--gold-light),var(--gold-dark));
  opacity:.16;z-index:-1;
}
.about-text h2{font-size:clamp(1.9rem,3.4vw,2.8rem);color:var(--burgundy);margin-bottom:var(--space-2)}
.about-text .role{font-size:.75rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gold-dark);display:block;margin-bottom:var(--space-3)}
.about-text p{color:#5d4c52;margin-bottom:var(--space-2);font-size:.98rem}
.about-sign{font-family:var(--font-serif);font-style:italic;font-size:1.7rem;color:var(--burgundy);margin-top:var(--space-3)}
.about-stats{display:flex;gap:var(--space-4);margin-top:var(--space-4);flex-wrap:wrap}
.stat b{font-family:var(--font-serif);font-size:2.4rem;font-weight:500;display:block;line-height:1}
.stat span{font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;color:#8a767c}

/* ---------- Prozess ---------- */
.process{background:var(--burgundy)}
.process-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2.2rem;max-width:1180px;margin:0 auto;counter-reset:step}
.p-step{position:relative;padding-top:var(--space-3);text-align:center}
.p-step::before{
  counter-increment:step;content:counter(step,decimal-leading-zero);
  font-family:var(--font-serif);font-size:4.6rem;line-height:1;
  background:var(--gold-grad);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;
  display:block;margin-bottom:var(--space-2);opacity:.9;
}
.p-step h3{color:var(--cream);font-size:1.35rem;margin-bottom:.6rem}
.p-step p{color:#D9C4BB;font-size:.9rem}
.p-step .tick{width:40px;height:1px;background:var(--gold);margin:var(--space-2) auto 0}

/* ---------- Terminanfrage (Multi-Step) ---------- */
.booking{background:var(--cream-deep)}
.wizard{
  max-width:820px;margin:0 auto;background:var(--white);
  box-shadow:0 40px 100px -30px rgba(74,21,32,.3);
  border:1px solid rgba(201,162,39,.25);
  overflow:hidden;
}
.wiz-progress{display:flex;height:4px;background:rgba(201,162,39,.15)}
.wiz-progress .bar{height:100%;background:var(--gold-grad);background-size:200% auto;animation:shimmer 5s linear infinite;width:20%;transition:width .6s cubic-bezier(.22,1,.36,1)}
.wiz-steps-label{display:flex;justify-content:space-between;padding:1.1rem 2rem 0;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:#a08d93}
.wiz-steps-label b{color:var(--gold-dark);font-weight:500}
.wiz-body{padding:var(--space-4) clamp(1.4rem,4vw,3.4rem) var(--space-5);min-height:430px;position:relative}
.wiz-pane{display:none;animation:paneIn .55s cubic-bezier(.22,1,.36,1)}
.wiz-pane.active{display:block}
@keyframes paneIn{from{opacity:0;transform:translateX(34px)}to{opacity:1;transform:none}}
.wiz-pane h3{font-size:1.75rem;color:var(--burgundy);margin-bottom:.5rem}
.wiz-pane .hint{font-size:.88rem;color:#8a767c;margin-bottom:var(--space-3)}
.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.9rem}
.choice{
  border:1px solid rgba(74,21,32,.2);background:var(--white);
  padding:1.15rem .9rem;text-align:center;cursor:pointer;user-select:none;
  font-size:.86rem;color:var(--ink);
  transition:border-color .3s,background .3s,transform .3s,box-shadow .3s;
  position:relative;
}
.choice .ico{display:block;font-family:var(--font-serif);font-size:1.5rem;color:var(--gold-dark);margin-bottom:.35rem}
.choice:hover{transform:translateY(-3px);border-color:var(--gold)}
.choice.selected{border-color:var(--gold);background:linear-gradient(160deg,rgba(201,162,39,.1),rgba(201,162,39,.03));box-shadow:0 10px 30px -12px rgba(161,127,26,.45)}
.choice.selected::after{content:'✓';position:absolute;top:.4rem;right:.6rem;color:var(--gold-dark);font-size:.8rem}
.field{margin-bottom:var(--space-3)}
.field label,.field .field-label{display:block;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:#7c6a70;margin-bottom:.55rem}
.field input,.field textarea,.field select{
  width:100%;padding:.95rem 1.1rem;font-family:var(--font-sans);font-size:.95rem;font-weight:300;
  border:1px solid rgba(74,21,32,.22);background:var(--white);color:var(--ink);
  transition:border-color .3s,box-shadow .3s;border-radius:0;-webkit-appearance:none;
}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.16)}
.field textarea{min-height:110px;resize:vertical}
.range-wrap{display:flex;align-items:center;gap:1.4rem}
.range-wrap input[type=range]{flex:1;-webkit-appearance:none;height:2px;background:linear-gradient(90deg,var(--gold),rgba(201,162,39,.2));outline:none;padding:0;border:none}
.range-wrap input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--gold-grad);border:2px solid var(--white);box-shadow:0 4px 14px rgba(161,127,26,.5);cursor:pointer}
.range-val{font-family:var(--font-serif);font-size:1.9rem;color:var(--burgundy);min-width:120px;text-align:right}
.range-val small{font-size:.9rem;color:#8a767c}
.counter{display:flex;align-items:center;gap:1.3rem;justify-content:center;margin-top:.4rem}
.counter button{width:46px;height:46px;border-radius:50%;border:1px solid var(--gold);background:none;color:var(--gold-dark);font-size:1.25rem;transition:background .3s,color .3s}
.counter button:hover{background:var(--gold);color:var(--white)}
.counter b{font-family:var(--font-serif);font-size:2.3rem;font-weight:500;color:var(--burgundy);min-width:60px;text-align:center}
.upload-zone{
  border:1.5px dashed rgba(161,127,26,.55);background:rgba(201,162,39,.05);
  padding:var(--space-4) var(--space-2);text-align:center;cursor:pointer;
  transition:background .3s,border-color .3s;
}
.upload-zone:hover,.upload-zone.drag{background:rgba(201,162,39,.12);border-color:var(--gold)}
.upload-zone .up-ico{font-size:2rem;color:var(--gold-dark);display:block;margin-bottom:.5rem}
.upload-zone p{font-size:.88rem;color:#7c6a70}
.upload-zone small{font-size:.72rem;color:#a08d93}
.previews{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:var(--space-2)}
.previews .pv{position:relative;width:76px;height:76px}
.previews img{width:100%;height:100%;object-fit:cover;border:1px solid rgba(201,162,39,.5)}
.previews .rm{position:absolute;top:-7px;right:-7px;width:20px;height:20px;border-radius:50%;background:var(--burgundy);color:var(--gold-light);border:none;font-size:.65rem;line-height:1}
.wiz-nav{display:flex;justify-content:space-between;align-items:center;padding:0 clamp(1.4rem,4vw,3.4rem) var(--space-4)}
.wiz-back{background:none;border:none;color:#8a767c;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;transition:color .3s}
.wiz-back:hover{color:var(--burgundy)}
.summary{background:rgba(201,162,39,.06);border:1px solid rgba(201,162,39,.28);padding:1.4rem 1.6rem;margin-bottom:var(--space-3)}
.summary dl{display:grid;grid-template-columns:auto 1fr;gap:.45rem 1.4rem;font-size:.88rem}
.summary dt{color:#8a767c;letter-spacing:.1em;text-transform:uppercase;font-size:.68rem;padding-top:.2rem}
.summary dd{color:var(--ink)}
.wiz-success{text-align:center;padding:var(--space-5) 1rem}
.wiz-success .big{font-size:3.4rem;color:var(--gold-dark);margin-bottom:var(--space-2)}
.wiz-success h3{color:var(--burgundy);font-size:1.9rem;margin-bottom:.7rem}
.wiz-success p{color:#7c6a70;font-size:.95rem;max-width:420px;margin:0 auto}
.err-msg{color:#B33A3A;font-size:.8rem;margin-top:.6rem;display:none}
.err-msg.show{display:block}

/* ---------- Kontakt ---------- */
.contact{background:var(--burgundy)}
.contact-wrap{display:grid;grid-template-columns:38.2fr 61.8fr;gap:var(--space-5);max-width:1180px;margin:0 auto}
.contact-info h2{color:var(--cream);font-size:clamp(1.9rem,3.2vw,2.7rem);margin-bottom:var(--space-3)}
.contact-info p{color:#D9C4BB;font-size:.95rem;margin-bottom:var(--space-3)}
.c-line{display:flex;align-items:center;gap:1rem;color:var(--gold-pale);font-size:.92rem;margin-bottom:1.1rem}
.c-line svg{width:20px;height:20px;flex-shrink:0;color:var(--gold)}
.wa-btn{
  display:inline-flex;align-items:center;gap:.8rem;margin-top:var(--space-3);
  padding:1rem 1.9rem;border:1px solid var(--gold);color:var(--gold-light);
  font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;
  transition:background .4s,color .4s;
}
.wa-btn svg{width:20px;height:20px}
.wa-btn:hover{background:var(--gold);color:var(--burgundy)}
.contact-form{background:rgba(253,251,247,.04);border:1px solid rgba(201,162,39,.25);padding:clamp(1.4rem,3.5vw,2.6rem);backdrop-filter:blur(6px)}
.contact-form .field label{color:#C9AEB6}
.contact-form .field input,.contact-form .field textarea{background:rgba(253,251,247,.06);border-color:rgba(201,162,39,.3);color:var(--cream)}
.contact-form .field input::placeholder,.contact-form .field textarea::placeholder{color:#9c8189}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.form-ok{display:none;color:var(--gold-light);font-size:.9rem;margin-top:1rem}
.form-ok.show{display:block}
.form-err{display:none;color:#F2B8B8;font-size:.88rem;margin-top:1rem;line-height:1.5}
.form-err.show{display:block}
.form-err a{text-decoration:underline;color:var(--gold-light)}
.hp-field{position:absolute!important;left:-9999px!important;top:auto!important;width:1px!important;height:1px!important;opacity:0;pointer-events:none}

/* ---------- Floating WhatsApp ---------- */
.wa-float{
  position:fixed;bottom:26px;bottom:calc(26px + env(safe-area-inset-bottom,0px));right:26px;z-index:950;
  width:60px;height:60px;border-radius:50%;
  background:var(--gold-grad);background-size:200% auto;animation:shimmer 7s linear infinite;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 34px rgba(0,0,0,.4);
  transition:transform .35s cubic-bezier(.34,1.56,.64,1);
}
.wa-float svg{width:28px;height:28px;color:var(--burgundy)}
.wa-float:hover{transform:scale(1.12)}
.wa-float::after{
  content:'';position:absolute;inset:-5px;border-radius:50%;
  border:1px solid rgba(201,162,39,.6);
  animation:waPulse 2.6s ease-out infinite;
}
@keyframes waPulse{0%{transform:scale(.9);opacity:1}70%,100%{transform:scale(1.45);opacity:0}}

/* ---------- Footer ---------- */
footer{background:var(--burgundy-deep);padding:var(--space-5) 6vw var(--space-3);text-align:center}
.foot-logo{width:150px;margin:0 auto var(--space-3);opacity:.95}
.foot-links{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap;margin-bottom:var(--space-3)}
.foot-links a{font-size:.72rem;letter-spacing:.25em;text-transform:uppercase;color:#C9AEB6;transition:color .3s}
.foot-links a:hover{color:var(--gold-light)}
.foot-line{width:61.8%;max-width:420px;height:1px;margin:0 auto var(--space-3);background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.copy{font-size:.72rem;color:#8a6a72;letter-spacing:.12em}

/* ---------- Responsive ---------- */
@media(max-width:1024px){
  .gallery-grid{columns:2}
}
@media(max-width:820px){
  .nav-links{
    position:fixed;inset:0;background:rgba(54,14,23,.98);backdrop-filter:blur(16px);
    flex-direction:column;justify-content:center;gap:2rem;
    opacity:0;pointer-events:none;transition:opacity .45s ease;z-index:1000;
  }
  .nav-links.open{opacity:1;pointer-events:auto}
  .nav-links a{font-size:1rem}
  .burger{display:block}
  .about-wrap,.contact-wrap{grid-template-columns:1fr;gap:var(--space-4)}
  .about-photo{max-width:340px;margin:0 auto}
  .form-row{grid-template-columns:1fr}
  .hero-logo{width:min(64vw,300px)}
  .wiz-body{min-height:0}
}
@media(max-width:700px){
  .scroll-hint{display:none}
}
@media(max-width:560px){
  .gallery-grid{columns:1}
  .section-pad{padding:var(--space-5) 5.5vw}
  .hero-ctas{flex-direction:column;width:100%}
  .hero-ctas .btn{justify-content:center}
  .range-wrap{flex-direction:column;align-items:stretch}
  .range-val{text-align:center}
  .wiz-steps-label{display:none}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}

/* ---------- Unterseiten: Page-Hero ---------- */
.page-hero{
  position:relative;overflow:hidden;text-align:center;
  background:radial-gradient(ellipse at 50% 20%,var(--burgundy-soft) 0%,var(--burgundy) 55%,var(--burgundy-deep) 100%);
  padding:10.5rem 6vw 5.2rem;
}
.page-hero .ph-inner{position:relative;z-index:2}
.page-hero{isolation:isolate}
.page-hero .kicker{color:var(--gold-pale)}
.page-hero h1{font-size:clamp(2.2rem,5vw,3.8rem);font-weight:300;color:var(--cream);margin-bottom:var(--space-2)}
.page-hero p.ph-lead{color:#D9C4BB;max-width:560px;margin:0 auto;font-size:1rem}
.breadcrumbs{margin-top:var(--space-3);font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;color:#B08F97}
.breadcrumbs a{color:var(--gold-pale);transition:color .3s}
.breadcrumbs a:hover{color:var(--gold-light)}
.breadcrumbs span{margin:0 .6rem;color:var(--gold-dark)}

/* ---------- Leistungen-Detail (Split-Rows) ---------- */
.split{
  display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);
  align-items:center;max-width:1180px;margin:0 auto var(--space-6);
}
.split:last-child{margin-bottom:0}
.split-img{position:relative}
.split-img img{width:100%;box-shadow:0 30px 70px -24px rgba(74,21,32,.45)}
.split-img::before{content:'';position:absolute;top:-16px;left:-16px;right:16px;bottom:16px;border:1px solid var(--gold);pointer-events:none}
.split.rev .split-img{order:2}
.split.rev .split-img::before{left:16px;right:-16px}
.split-text .num{font-family:var(--font-serif);font-size:3.2rem;line-height:1;display:block;margin-bottom:var(--space-2)}
.split-text h2{font-size:clamp(1.7rem,3vw,2.4rem);color:var(--burgundy);margin-bottom:var(--space-2)}
.split-text p{color:#5d4c52;font-size:.97rem;margin-bottom:var(--space-2)}
.split-text ul{list-style:none;margin:var(--space-3) 0 0}
.split-text li{padding-left:1.6rem;position:relative;margin-bottom:.7rem;font-size:.92rem;color:#5d4c52}
.split-text li::before{content:'◆';position:absolute;left:0;top:.1rem;font-size:.6rem;color:var(--gold-dark)}

/* ---------- CTA-Banner ---------- */
.cta-banner{background:var(--burgundy);text-align:center}
.cta-banner h2{font-size:clamp(1.8rem,3.6vw,2.8rem);color:var(--cream);max-width:16em;margin:0 auto var(--space-3)}
.cta-banner p{color:#D9C4BB;margin-bottom:var(--space-4);font-size:.98rem}

/* ---------- Rechtstexte ---------- */
.legal{background:var(--cream)}
.legal-inner{max-width:760px;margin:0 auto}
.legal-inner h2{font-size:1.6rem;color:var(--burgundy);margin:var(--space-4) 0 var(--space-2)}
.legal-inner h2:first-child{margin-top:0}
.legal-inner h3{font-size:1.15rem;color:var(--burgundy);margin:var(--space-3) 0 var(--space-1);font-family:var(--font-sans);font-weight:500}
.legal-inner p,.legal-inner li{font-size:.93rem;color:#5d4c52;margin-bottom:var(--space-2);line-height:1.75}
.legal-inner ul{margin-left:1.2rem;margin-bottom:var(--space-2)}
.todo-note{border:1.5px dashed var(--gold);background:rgba(201,162,39,.07);padding:1.1rem 1.4rem;font-size:.85rem;color:#7c6a70;margin-bottom:var(--space-4)}
.todo-note b{color:var(--gold-dark)}
.ph{background:rgba(201,162,39,.18);padding:.05rem .4rem;font-style:normal}

/* ---------- FAQ (Kontakt) ---------- */
.faq{max-width:760px;margin:var(--space-5) auto 0}
.faq details{border-bottom:1px solid rgba(201,162,39,.35);padding:1.1rem 0}
.faq summary{cursor:pointer;font-family:var(--font-serif);font-size:1.2rem;color:var(--cream);list-style:none;display:flex;justify-content:space-between;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';color:var(--gold);font-size:1.4rem;transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:#D9C4BB;font-size:.92rem;margin-top:.8rem;max-width:640px}

@media(max-width:820px){
  .split{grid-template-columns:1fr;gap:var(--space-4)}
  .split.rev .split-img{order:0}
  .page-hero{padding:8.5rem 6vw 3.6rem}
}

/* ---------- 404-Seite ---------- */
.err-page{background:var(--cream);text-align:center}
.err-page .code{font-family:var(--font-serif);font-size:clamp(5rem,14vw,9rem);line-height:1;display:block;margin-bottom:var(--space-2)}
.err-page h2{font-size:clamp(1.7rem,3.4vw,2.6rem);color:var(--burgundy);margin-bottom:var(--space-2)}
.err-page p{color:#6b5a60;max-width:520px;margin:0 auto var(--space-4)}
.err-page .hero-ctas{justify-content:center}
