/* ============================================================
   Ladylike Beautysalon - Premium Stylesheet
   Palette: Rose-Gold + Deep-Emerald + Cream + Charcoal-Ink
   Fonts: Cormorant Garamond (Display) + Inter (Body)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=Inter:wght@300;400;500;600;700&display=swap');

:root{
  --rose-gold:#D4A2A0;
  --rose-deep:#B47D7B;
  --emerald:#1F4530;
  --emerald-soft:#2A5A41;
  --cream:#F8EDE9;
  --cream-soft:#FCF6F3;
  --ink:#2A1F1E;
  --ink-soft:#5A4D4B;
  --gold:#C9A96E;
  --white:#FFFFFF;
  --shadow-sm:0 2px 12px rgba(42,31,30,.06);
  --shadow-md:0 8px 32px rgba(42,31,30,.10);
  --shadow-lg:0 24px 64px rgba(42,31,30,.14);
  --radius:14px;
  --radius-lg:24px;
  --container:1200px;
  --gutter:clamp(1rem,3vw,2rem);
  --display:'Cormorant Garamond',Georgia,serif;
  --body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --t:cubic-bezier(.4,0,.2,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}

body{
  font-family:var(--body);
  font-size:17px;
  line-height:1.65;
  color:var(--ink);
  background:var(--cream-soft);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:color .25s var(--t)}
button{font-family:inherit;cursor:pointer;border:none;background:none}

h1,h2,h3,h4{font-family:var(--display);font-weight:500;line-height:1.1;letter-spacing:-.01em;color:var(--emerald)}
h1{font-size:clamp(2.4rem,6.5vw,4.5rem)}
h2{font-size:clamp(1.9rem,4.5vw,3rem)}
h3{font-size:clamp(1.3rem,2.5vw,1.6rem)}
.eyebrow{font-family:var(--body);font-size:.78rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--rose-deep);margin-bottom:.85rem;display:inline-block}
.lead{font-family:var(--display);font-size:clamp(1.15rem,2vw,1.5rem);font-weight:400;color:var(--ink-soft);font-style:italic;line-height:1.45}

.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
section{padding:clamp(4rem,9vw,7rem) 0;position:relative}

/* ===== Buttons ===== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.95rem 1.7rem;border-radius:999px;
  font-family:var(--body);font-weight:600;font-size:.95rem;letter-spacing:.02em;
  transition:all .3s var(--t);border:1.5px solid transparent;
  white-space:nowrap;
}
.btn-primary{background:var(--emerald);color:var(--cream);box-shadow:var(--shadow-md);position:relative;overflow:hidden;isolation:isolate}
.btn-primary::before{content:"";position:absolute;top:0;left:-80%;width:60%;height:100%;background:linear-gradient(110deg,transparent 0,rgba(255,255,255,.18) 25%,rgba(212,162,160,.32) 50%,rgba(255,255,255,.18) 75%,transparent 100%);transform:skewX(-20deg);animation:shimmerSweep 4.2s ease-in-out infinite;pointer-events:none;z-index:0}
.btn-primary>*{position:relative;z-index:1}
.btn-primary:hover{background:var(--emerald-soft);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.btn-primary:hover::before{animation-duration:1.4s}
@keyframes shimmerSweep{0%{left:-80%}55%,100%{left:130%}}
@media (prefers-reduced-motion:reduce){.btn-primary::before{display:none}}
.btn-secondary{background:transparent;color:var(--emerald);border-color:var(--emerald)}
.btn-secondary:hover{background:var(--emerald);color:var(--cream)}
.btn-rose{background:var(--rose-gold);color:var(--white)}
.btn-rose:hover{background:var(--rose-deep);transform:translateY(-2px)}
.btn-ghost{padding:.6rem 0;color:var(--rose-deep);font-weight:500}
.btn-ghost:hover{color:var(--emerald)}
.btn-ghost::after{content:" \2192";transition:transform .25s var(--t);display:inline-block}
.btn-ghost:hover::after{transform:translateX(4px)}

/* ===== Navigation ===== */
header.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(252,246,243,.85);backdrop-filter:blur(20px) saturate(160%);
  -webkit-backdrop-filter:blur(20px) saturate(160%);
  border-bottom:1px solid rgba(212,162,160,.18);
  transition:background .3s var(--t),box-shadow .3s var(--t),border-color .3s var(--t);
}
header.nav.scrolled{background:rgba(252,246,243,.95);box-shadow:0 6px 28px -12px rgba(31,69,48,.16);border-bottom-color:rgba(212,162,160,.32)}
header.nav .row{display:flex;align-items:center;justify-content:space-between;height:72px}
.brand{display:flex;align-items:center;gap:.55rem;font-family:var(--display);font-weight:600;font-size:1.45rem;letter-spacing:.01em;color:var(--emerald)}
.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--rose-gold);box-shadow:0 0 0 3px rgba(212,162,160,.25)}
nav.main{display:flex;gap:2.1rem;align-items:center}
nav.main a{font-size:.93rem;font-weight:500;color:var(--ink);position:relative;padding:.4rem 0}
nav.main a:hover,nav.main a[aria-current=page]{color:var(--emerald)}
nav.main a[aria-current=page]::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--rose-gold);border-radius:2px}
.nav-cta{display:flex;gap:.6rem;align-items:center}
.menu-toggle{display:none;width:42px;height:42px;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(31,69,48,.2)}
.menu-toggle span{width:18px;height:1.5px;background:var(--emerald);border-radius:1px;display:block;position:relative}
.menu-toggle span::before,.menu-toggle span::after{content:"";position:absolute;left:0;width:18px;height:1.5px;background:var(--emerald);border-radius:1px;transition:transform .25s var(--t)}
.menu-toggle span::before{top:-6px}.menu-toggle span::after{top:6px}

@media (max-width:880px){
  nav.main{display:none;position:absolute;top:72px;left:0;right:0;background:var(--cream-soft);flex-direction:column;padding:1.5rem var(--gutter);border-bottom:1px solid rgba(212,162,160,.2);gap:1rem}
  nav.main.open{display:flex}
  nav.main a{padding:.7rem 0;font-size:1.05rem;width:100%;border-bottom:1px solid rgba(212,162,160,.14)}
  .nav-cta .btn-primary{display:none}
  .menu-toggle{display:inline-flex}
}

/* ===== Hero ===== */
.hero{
  margin-top:72px;padding:clamp(3rem,8vw,6rem) 0 clamp(2.5rem,6vw,5rem);
  background:linear-gradient(180deg,var(--cream-soft) 0%,var(--cream) 100%);
  position:relative;overflow:hidden;
  isolation:isolate;
}
/* Sparkle layer over hero */
.hero .sparkles{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.hero .sparkles i{position:absolute;width:6px;height:6px;border-radius:50%;background:radial-gradient(circle,#fff 0%,rgba(212,162,160,.85) 40%,transparent 70%);opacity:0;filter:blur(.4px);animation:sparkleTwinkle 6s ease-in-out infinite}
.hero .sparkles i:nth-child(1){left:8%;top:18%;animation-delay:0s;width:5px;height:5px}
.hero .sparkles i:nth-child(2){left:22%;top:62%;animation-delay:1.2s;width:4px;height:4px}
.hero .sparkles i:nth-child(3){left:38%;top:14%;animation-delay:2.4s;width:7px;height:7px}
.hero .sparkles i:nth-child(4){left:51%;top:78%;animation-delay:.6s;width:5px;height:5px}
.hero .sparkles i:nth-child(5){left:64%;top:24%;animation-delay:3.6s;width:6px;height:6px}
.hero .sparkles i:nth-child(6){left:73%;top:54%;animation-delay:1.8s;width:4px;height:4px}
.hero .sparkles i:nth-child(7){left:84%;top:32%;animation-delay:2.8s;width:5px;height:5px}
.hero .sparkles i:nth-child(8){left:92%;top:71%;animation-delay:4.5s;width:6px;height:6px}
.hero .sparkles i:nth-child(9){left:14%;top:84%;animation-delay:5s;width:4px;height:4px}
.hero .sparkles i:nth-child(10){left:46%;top:42%;animation-delay:3.2s;width:5px;height:5px}
@keyframes sparkleTwinkle{
  0%,100%{opacity:0;transform:scale(.6)}
  45%{opacity:.85;transform:scale(1)}
  55%{opacity:1;transform:scale(1.15)}
  65%{opacity:.7;transform:scale(.95)}
}
.hero::before{
  content:"";position:absolute;top:-25%;right:-15%;width:55%;height:90%;
  background:radial-gradient(circle,rgba(212,162,160,.22) 0%,transparent 70%);
  filter:blur(40px);pointer-events:none;
}
.hero::after{
  content:"";position:absolute;bottom:-30%;left:-10%;width:45%;height:70%;
  background:radial-gradient(circle,rgba(31,69,48,.08) 0%,transparent 70%);
  filter:blur(50px);pointer-events:none;
}
.hero .grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center;position:relative;z-index:1}
.hero h1{margin-bottom:1.4rem;background:linear-gradient(120deg,var(--emerald) 0%,var(--emerald) 35%,var(--rose-deep) 50%,var(--emerald) 65%,var(--emerald) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:headlineShimmer 9s ease-in-out infinite}
.hero h1 em{font-style:italic;color:var(--rose-deep);font-weight:400;-webkit-text-fill-color:var(--rose-deep)}
@keyframes headlineShimmer{
  0%,100%{background-position:-50% 0}
  50%{background-position:150% 0}
}
.hero .lead{margin-bottom:2rem;max-width:38ch}
.hero-ctas{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:2.2rem}
.hero-meta{display:flex;flex-wrap:wrap;gap:1.5rem 2.2rem;font-size:.9rem;color:var(--ink-soft)}
.hero-meta span{display:flex;align-items:center;gap:.45rem}
.hero-meta svg{width:18px;height:18px;flex-shrink:0;color:var(--rose-deep)}
.hero-img-wrap{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:4/5}
.hero-img-wrap::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(31,69,48,.18) 100%);pointer-events:none;z-index:1}
.hero-img-wrap img{width:100%;height:100%;object-fit:cover;transform-origin:center 38%;animation:kenBurns 18s ease-in-out infinite alternate;will-change:transform}
@keyframes kenBurns{
  0%{transform:scale(1) translate(0,0)}
  100%{transform:scale(1.085) translate(-1.2%,-.6%)}
}
@media (prefers-reduced-motion:reduce){.hero-img-wrap img{animation:none}.hero h1{animation:none;background:none;-webkit-text-fill-color:var(--emerald);color:var(--emerald)}.hero h1 em{-webkit-text-fill-color:var(--rose-deep)}.hero .sparkles{display:none}}
.hero-img-wrap .badge{
  position:absolute;bottom:1.5rem;left:1.5rem;right:1.5rem;
  background:rgba(252,246,243,.94);backdrop-filter:blur(12px);
  padding:1rem 1.2rem;border-radius:14px;display:flex;align-items:center;gap:.85rem;
  border:1px solid rgba(212,162,160,.3);
}
.hero-img-wrap .badge .stars{color:var(--gold);font-size:1.1rem;letter-spacing:.05em}
.hero-img-wrap .badge .txt{font-size:.86rem;line-height:1.35;font-weight:500;color:var(--emerald)}
.hero-img-wrap .badge .txt em{font-style:normal;color:var(--ink-soft);font-weight:400;display:block;font-size:.78rem}

@media (max-width:880px){
  .hero .grid{grid-template-columns:1fr;text-align:left}
  .hero-img-wrap{aspect-ratio:4/3;order:-1}
  .hero-meta{justify-content:flex-start;gap:1rem 1.5rem}
}

/* ===== Marquee ===== */
.marquee{
  background:linear-gradient(90deg,var(--emerald) 0%,var(--emerald-soft) 50%,var(--emerald) 100%);
  color:var(--cream);
  padding:1.4rem 0;overflow:hidden;border-top:1px solid rgba(212,162,160,.18);
  border-bottom:1px solid rgba(212,162,160,.18);
  position:relative;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);
}
.marquee-track{display:flex;gap:3.5rem;animation:scroll 38s linear infinite;white-space:nowrap;font-family:var(--display);font-size:1.5rem;font-style:italic;font-weight:400;will-change:transform}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{display:inline-flex;align-items:center;gap:3.5rem;color:var(--cream)}
.marquee-track span::after{content:"\2666";color:var(--rose-gold);font-size:.8rem;font-style:normal;text-shadow:0 0 12px rgba(212,162,160,.6)}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marquee-track{animation:none}}

/* ===== Trust-Strip ===== */
.trust{background:var(--cream);padding:clamp(2.5rem,5vw,4rem) 0;border-bottom:1px solid rgba(212,162,160,.2);position:relative;overflow:hidden}
.trust::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 50% 0%,rgba(212,162,160,.18) 0%,transparent 60%);pointer-events:none}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1rem,3vw,2.5rem);text-align:center;position:relative;z-index:1}
.trust-item{padding:1rem .5rem;border-radius:14px;transition:transform .35s var(--t),background .35s var(--t)}
.trust-item:hover{transform:translateY(-3px);background:rgba(255,255,255,.5)}
.trust-item .num{font-family:var(--display);font-size:clamp(2.2rem,4.5vw,3.2rem);color:var(--emerald);font-weight:500;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em;background:linear-gradient(135deg,var(--emerald) 0%,var(--rose-deep) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;display:inline-block}
.trust-item .lbl{font-size:.85rem;color:var(--ink-soft);margin-top:.45rem;letter-spacing:.05em;text-transform:uppercase}
.trust-item .stars{color:var(--gold);font-size:1.4rem;letter-spacing:.05em;display:inline-block;margin-bottom:.2rem;text-shadow:0 1px 12px rgba(201,169,110,.45)}
@media(max-width:680px){.trust-grid{grid-template-columns:repeat(2,1fr);gap:1.8rem}}

/* ===== Section Heading ===== */
.section-head{text-align:center;max-width:680px;margin:0 auto clamp(2.5rem,5vw,4rem)}
.section-head .lead{margin-top:.85rem}

/* ===== Services ===== */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;perspective:1400px}
.service-card{
  background:var(--white);border-radius:var(--radius-lg);padding:2rem 1.8rem;
  border:1px solid rgba(212,162,160,.18);transition:transform .45s var(--t),box-shadow .45s var(--t),border-color .35s var(--t);
  display:flex;flex-direction:column;gap:1rem;
  position:relative;overflow:hidden;
  transform-style:preserve-3d;
  --tilt-x:0deg;--tilt-y:0deg;
  transform:perspective(1200px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
}
.service-card::before{content:"";position:absolute;inset:0;border-radius:var(--radius-lg);background:radial-gradient(380px circle at var(--mx,50%) var(--my,0%),rgba(212,162,160,.18),transparent 50%);opacity:0;transition:opacity .35s var(--t);pointer-events:none;z-index:0}
.service-card>*{position:relative;z-index:1}
.service-card:hover{transform:translateY(-8px) perspective(1200px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));box-shadow:0 30px 60px -20px rgba(31,69,48,.18),0 12px 24px -10px rgba(180,125,123,.18);border-color:rgba(212,162,160,.5)}
.service-card:hover::before{opacity:1}
.service-card .ico{width:54px;height:54px;border-radius:14px;background:linear-gradient(135deg,var(--rose-gold),var(--rose-deep));display:flex;align-items:center;justify-content:center;color:var(--white);box-shadow:0 8px 20px -6px rgba(180,125,123,.45);transition:transform .45s var(--t)}
.service-card:hover .ico{transform:translateZ(20px) scale(1.06) rotate(-3deg)}
.service-card .ico svg{width:26px;height:26px}
.service-card h3{margin-bottom:.4rem;font-size:1.5rem;transition:color .25s var(--t)}
.service-card:hover h3{color:var(--rose-deep)}
.service-card p{color:var(--ink-soft);font-size:.96rem;line-height:1.55}
.service-card ul{list-style:none;display:flex;flex-direction:column;gap:.45rem;margin-top:.4rem}
.service-card li{font-size:.9rem;color:var(--ink);padding-left:1.3rem;position:relative}
.service-card li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;border-radius:50%;background:var(--rose-gold);box-shadow:0 0 0 0 rgba(212,162,160,.4);transition:box-shadow .35s var(--t)}
.service-card:hover li::before{box-shadow:0 0 0 4px rgba(212,162,160,.18)}
.service-card .more{margin-top:auto;padding-top:.85rem}
.service-card .more .btn-ghost{transition:transform .3s var(--t),color .25s var(--t)}
.service-card:hover .more .btn-ghost{color:var(--emerald);transform:translateX(4px)}
@media(max-width:880px){.services-grid{grid-template-columns:1fr;gap:1.2rem}.service-card{transform:none!important}.service-card:hover{transform:translateY(-4px)!important}}

/* ===== Catalog (services.html) ===== */
.catalog-section{padding:3rem 0;border-bottom:1px solid rgba(212,162,160,.18)}
.catalog-section:last-child{border-bottom:none}
.catalog-section h2{margin-bottom:.5rem}
.catalog-section .desc{color:var(--ink-soft);font-size:1.02rem;margin-bottom:2rem;max-width:60ch}
.catalog-list{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem 2rem}
.catalog-item{display:flex;justify-content:space-between;align-items:baseline;padding:.85rem 0;border-bottom:1px dotted rgba(31,69,48,.18);gap:1rem}
.catalog-item .name{font-weight:500;color:var(--ink)}
.catalog-item .meta{font-size:.85rem;color:var(--rose-deep);font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:680px){.catalog-list{grid-template-columns:1fr}}

/* ===== Gallery (Mosaic + Lightbox) ===== */
.gallery-section{background:var(--cream)}
.gallery-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:140px;gap:.85rem}
.gallery-grid .item{
  border-radius:var(--radius);overflow:hidden;position:relative;
  cursor:zoom-in;background:rgba(31,69,48,.06);
  transition:transform .35s var(--t),box-shadow .35s var(--t);
}
.gallery-grid .item picture,.gallery-grid .item img{display:block;width:100%;height:100%}
.gallery-grid .item img{object-fit:cover;transition:transform .8s var(--t)}
.gallery-grid .item:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);z-index:1}
.gallery-grid .item:hover img{transform:scale(1.08)}
.gallery-grid .item .cap{
  position:absolute;left:0;right:0;bottom:0;padding:1.4rem 1.1rem .9rem;
  background:linear-gradient(180deg,transparent 0%,rgba(31,69,48,.78) 100%);
  color:var(--cream);font-family:var(--display);font-size:1rem;font-style:italic;
  letter-spacing:.01em;line-height:1.25;
  transform:translateY(8px);opacity:0;transition:transform .4s var(--t),opacity .35s var(--t);
}
.gallery-grid .item:hover .cap{transform:translateY(0);opacity:1}
.gallery-grid .item .zoom{
  position:absolute;top:.7rem;right:.7rem;width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.92);color:var(--emerald);
  display:flex;align-items:center;justify-content:center;
  opacity:0;transform:scale(.7);transition:all .3s var(--t);
  pointer-events:none;
}
.gallery-grid .item:hover .zoom{opacity:1;transform:scale(1)}
.gallery-grid .item.span-2{grid-column:span 2}
.gallery-grid .item.span-3{grid-column:span 3}
.gallery-grid .item.row-2{grid-row:span 2}
.gallery-grid .item.row-3{grid-row:span 3}

@media(max-width:880px){
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px}
  .gallery-grid .item.span-2,.gallery-grid .item.span-3{grid-column:span 2}
  .gallery-grid .item.row-3{grid-row:span 2}
  .gallery-grid .item .cap{opacity:1;transform:none;font-size:.9rem;padding:1rem .75rem .6rem}
}

/* ===== Lightbox ===== */
.lightbox{
  position:fixed;inset:0;z-index:9999;
  background:rgba(15,30,22,.92);backdrop-filter:blur(10px);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .3s var(--t);
  padding:clamp(1rem,4vw,3rem);
}
.lightbox.open{opacity:1;pointer-events:auto}
.lightbox-figure{position:relative;max-width:1100px;width:100%;animation:lbIn .4s var(--t)}
@keyframes lbIn{from{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}
.lightbox img{
  width:100%;height:auto;max-height:82vh;object-fit:contain;
  border-radius:var(--radius);box-shadow:0 30px 80px rgba(0,0,0,.4);
}
.lightbox-caption{
  text-align:center;color:var(--cream);font-family:var(--display);
  font-style:italic;font-size:1.15rem;margin-top:1rem;letter-spacing:.01em;
}
.lightbox-close,.lightbox-prev,.lightbox-next{
  position:absolute;background:rgba(255,255,255,.94);color:var(--emerald);
  border-radius:50%;width:48px;height:48px;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all .25s var(--t);
  border:none;
}
.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{transform:scale(1.08);background:var(--rose-gold);color:var(--white)}
.lightbox-close{top:-22px;right:-22px}
.lightbox-prev{left:-22px;top:50%;transform:translateY(-50%)}
.lightbox-next{right:-22px;top:50%;transform:translateY(-50%)}
.lightbox-prev:hover,.lightbox-next:hover{transform:translateY(-50%) scale(1.08)}
@media(max-width:780px){
  .lightbox-close{top:-46px;right:-4px}
  .lightbox-prev{left:-4px;top:auto;bottom:-46px;transform:none}
  .lightbox-next{right:-4px;top:auto;bottom:-46px;transform:none}
  .lightbox-prev:hover,.lightbox-next:hover{transform:scale(1.08)}
}

/* ===== Vorher-Nachher Slider ===== */
.ba-section{background:linear-gradient(180deg,var(--cream-soft) 0%,var(--cream) 100%)}
.ba-pending{
  max-width:680px;margin:0 auto;padding:2.5rem 2rem;
  background:var(--white);border-radius:var(--radius-lg);
  border:1px dashed rgba(212,162,160,.55);text-align:center;
  position:relative;
}
.ba-pending .icon{
  width:64px;height:64px;margin:0 auto 1.2rem;border-radius:50%;
  background:linear-gradient(135deg,var(--rose-gold),var(--gold));
  display:flex;align-items:center;justify-content:center;color:var(--white);
}
.ba-pending h3{color:var(--emerald);margin-bottom:.6rem;font-size:1.55rem}
.ba-pending p{color:var(--ink-soft);font-size:1rem;line-height:1.55;margin-bottom:1.2rem;max-width:48ch;margin-left:auto;margin-right:auto}
.ba-pending .note{font-size:.82rem;color:var(--rose-deep);font-style:italic;letter-spacing:.02em}
.ba-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:2rem}
.ba-card{
  background:var(--white);border-radius:var(--radius-lg);padding:1.6rem 1.4rem;
  border:1px solid rgba(212,162,160,.18);text-align:center;
  transition:transform .3s var(--t),box-shadow .3s var(--t);
}
.ba-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.ba-card .ico-wrap{
  width:56px;height:56px;margin:0 auto 1rem;border-radius:50%;
  background:rgba(212,162,160,.18);
  display:flex;align-items:center;justify-content:center;color:var(--rose-deep);
}
.ba-card h4{font-family:var(--display);color:var(--emerald);font-size:1.25rem;margin-bottom:.4rem;font-weight:500}
.ba-card p{font-size:.92rem;color:var(--ink-soft);line-height:1.5}
@media(max-width:880px){.ba-grid{grid-template-columns:1fr}}

/* ===== Reviews ===== */
.reviews-section{background:linear-gradient(180deg,var(--cream-soft) 0%,var(--cream) 100%)}
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.review{background:var(--white);border-radius:var(--radius-lg);padding:2rem 1.8rem;border:1px solid rgba(212,162,160,.18);position:relative}
.review .stars{color:var(--gold);font-size:1.05rem;letter-spacing:.04em;margin-bottom:1rem}
.review blockquote{font-family:var(--display);font-style:italic;font-size:1.18rem;line-height:1.5;color:var(--ink);margin-bottom:1.4rem}
.review blockquote::before{content:"\201C";font-size:3rem;color:var(--rose-gold);line-height:.5;display:block;margin-bottom:.4rem;font-family:var(--display)}
.review .author{display:flex;align-items:center;gap:.85rem;font-size:.92rem;color:var(--ink-soft)}
.review .author .avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--rose-gold),var(--gold));display:flex;align-items:center;justify-content:center;color:var(--white);font-family:var(--display);font-size:1.15rem;font-weight:500}
.review .author strong{color:var(--ink);font-weight:600;display:block;font-size:.95rem;font-family:var(--body)}
.review .author em{font-style:normal;font-size:.82rem}
@media(max-width:880px){.reviews-grid{grid-template-columns:1fr}}

/* ===== Booking-CTA ===== */
.booking{
  background:var(--emerald);color:var(--cream);
  border-radius:var(--radius-lg);padding:clamp(2.5rem,5vw,4rem);
  display:grid;grid-template-columns:1.4fr 1fr;gap:3rem;align-items:center;
  position:relative;overflow:hidden;
}
.booking::before{content:"";position:absolute;top:-30%;right:-10%;width:60%;height:120%;background:radial-gradient(circle,rgba(212,162,160,.18) 0%,transparent 70%);pointer-events:none}
.booking h2{color:var(--cream);margin-bottom:1rem;position:relative;z-index:1}
.booking p{color:rgba(248,237,233,.85);font-size:1.05rem;margin-bottom:1.6rem;position:relative;z-index:1}
.booking-actions{display:flex;flex-direction:column;gap:.75rem;position:relative;z-index:1}
.booking-actions .btn{justify-content:flex-start;padding:1.05rem 1.5rem;width:100%}
.booking-actions .btn-rose{background:var(--rose-gold);color:var(--emerald);font-weight:700}
.booking-actions .btn-rose:hover{background:var(--cream);color:var(--emerald)}
.booking-actions .btn-outline{background:transparent;color:var(--cream);border:1.5px solid rgba(248,237,233,.4)}
.booking-actions .btn-outline:hover{background:rgba(248,237,233,.1);border-color:var(--cream)}
@media(max-width:880px){.booking{grid-template-columns:1fr;gap:2rem;padding:2.5rem 1.8rem}}

/* ===== FAQ ===== */
.faq-list{max-width:780px;margin:0 auto;display:flex;flex-direction:column;gap:.75rem}
.faq-item{background:var(--white);border-radius:var(--radius);border:1px solid rgba(212,162,160,.2);overflow:hidden;transition:border-color .25s var(--t)}
.faq-item[open]{border-color:var(--rose-gold)}
.faq-item summary{padding:1.3rem 1.5rem;cursor:pointer;font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:1rem;list-style:none;color:var(--emerald);font-size:1.02rem}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-family:var(--display);font-size:1.6rem;color:var(--rose-deep);transition:transform .3s var(--t);font-weight:300}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item .body{padding:0 1.5rem 1.4rem;color:var(--ink-soft);line-height:1.6}

/* ===== Location ===== */
.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start}
.location-info h3{margin-bottom:.5rem;font-size:1.7rem}
.location-info .addr{font-style:normal;font-size:1.05rem;line-height:1.7;color:var(--ink);margin-bottom:1.5rem}
.location-info .addr a{color:var(--rose-deep)}
.location-info .addr a:hover{color:var(--emerald)}
.hours{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1.5rem;font-size:.95rem;margin-bottom:1.5rem}
.hours dt{font-weight:600;color:var(--emerald)}
.hours dd{color:var(--ink-soft);font-variant-numeric:tabular-nums}
.hours dd.closed{color:var(--rose-deep);font-style:italic}
.map-wrap{aspect-ratio:1;border-radius:var(--radius-lg);overflow:hidden;border:1px solid rgba(212,162,160,.25);box-shadow:var(--shadow-sm)}
.map-wrap iframe{width:100%;height:100%;border:0;display:block;filter:saturate(.92)}
@media(max-width:880px){.location-grid{grid-template-columns:1fr;gap:2rem}.map-wrap{aspect-ratio:4/3}}

/* ===== Social ===== */
.social-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.social-card{background:var(--white);border-radius:var(--radius-lg);padding:2rem 1.8rem;border:1px solid rgba(212,162,160,.18);text-align:center;transition:all .3s var(--t)}
.social-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.social-card .ico{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;color:var(--white)}
.social-card.tt .ico{background:linear-gradient(135deg,#000,#25F4EE)}
.social-card.fb .ico{background:#1877F2}
.social-card.gm .ico{background:linear-gradient(135deg,#4285F4,#34A853)}
.social-card h4{font-family:var(--display);font-size:1.35rem;color:var(--emerald);margin-bottom:.4rem}
.social-card p{color:var(--ink-soft);font-size:.92rem;margin-bottom:1.2rem;min-height:2.8em}
@media(max-width:680px){.social-grid{grid-template-columns:1fr}}

/* ===== Footer ===== */
footer.site-foot{background:var(--ink);color:rgba(248,237,233,.78);padding:4rem 0 1.5rem}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2.5rem;margin-bottom:3rem}
footer h5{font-family:var(--display);font-size:1.15rem;color:var(--cream);margin-bottom:1.1rem;font-weight:500}
footer ul{list-style:none;display:flex;flex-direction:column;gap:.55rem}
footer a{color:rgba(248,237,233,.65);font-size:.92rem}
footer a:hover{color:var(--rose-gold)}
.foot-brand .brand{color:var(--cream);margin-bottom:1rem}
.foot-brand p{font-size:.92rem;line-height:1.65;margin-bottom:1rem;color:rgba(248,237,233,.62);max-width:32ch}
.foot-social{display:flex;gap:.7rem}
.foot-social a{width:38px;height:38px;border-radius:50%;background:rgba(248,237,233,.08);display:flex;align-items:center;justify-content:center;border:1px solid rgba(248,237,233,.12);color:var(--cream)}
.foot-social a:hover{background:var(--rose-gold);color:var(--ink);border-color:var(--rose-gold)}
.foot-social svg{width:16px;height:16px}
.foot-bot{padding-top:1.5rem;border-top:1px solid rgba(248,237,233,.08);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;font-size:.82rem;color:rgba(248,237,233,.5)}
.foot-bot em{font-style:italic;color:var(--rose-gold)}
@media(max-width:880px){.foot-grid{grid-template-columns:1fr 1fr;gap:2rem}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr}}

/* ===== Mobile bottom nav ===== */
.mobile-bottom-nav{
  display:none;position:fixed;bottom:0;left:0;right:0;z-index:99;
  background:rgba(252,246,243,.94);backdrop-filter:blur(20px) saturate(160%);
  -webkit-backdrop-filter:blur(20px) saturate(160%);
  border-top:1px solid rgba(212,162,160,.22);
  padding:.55rem .5rem calc(.55rem + env(safe-area-inset-bottom));
  grid-template-columns:repeat(3,1fr);gap:.4rem;
}
.mobile-bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.45rem;border-radius:10px;color:var(--emerald);font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.mobile-bottom-nav a:active{background:rgba(212,162,160,.18)}
.mobile-bottom-nav svg{width:22px;height:22px;color:var(--rose-deep)}
.mobile-bottom-nav .primary{background:var(--emerald);color:var(--cream)}
.mobile-bottom-nav .primary svg{color:var(--rose-gold)}
@media(max-width:880px){.mobile-bottom-nav{display:grid}body{padding-bottom:80px}}

/* ===== Sticky Side CTA (Desktop) ===== */
.side-cta{
  position:fixed;right:1.2rem;bottom:1.5rem;z-index:90;
  background:var(--emerald);color:var(--cream);
  padding:.95rem 1.4rem;border-radius:999px;
  box-shadow:var(--shadow-lg);font-weight:600;font-size:.95rem;
  display:inline-flex;align-items:center;gap:.55rem;
  transition:all .3s var(--t);
}
.side-cta:hover{background:var(--rose-gold);color:var(--emerald);transform:translateY(-3px) scale(1.04)}
.side-cta svg{width:18px;height:18px;animation:pulseRing 2.4s ease-out infinite;border-radius:50%}
@keyframes pulseRing{
  0%{box-shadow:0 0 0 0 rgba(212,162,160,.55)}
  70%{box-shadow:0 0 0 14px rgba(212,162,160,0)}
  100%{box-shadow:0 0 0 0 rgba(212,162,160,0)}
}
@media(max-width:880px){.side-cta{display:none}}

/* ===== Page Hero (sub-pages) ===== */
.page-hero{margin-top:72px;padding:clamp(3.5rem,7vw,5.5rem) 0 clamp(2.5rem,5vw,4rem);background:linear-gradient(180deg,var(--cream-soft) 0%,var(--cream) 100%);text-align:center;position:relative;overflow:hidden}
.page-hero::before{content:"";position:absolute;top:-30%;left:50%;transform:translateX(-50%);width:55%;height:120%;background:radial-gradient(circle,rgba(212,162,160,.2) 0%,transparent 70%);filter:blur(40px);pointer-events:none}
.page-hero h1{margin-bottom:.85rem}
.page-hero .lead{margin:0 auto;max-width:54ch}

/* ===== Team-cards ===== */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.team-card{background:var(--white);border-radius:var(--radius-lg);overflow:hidden;border:1px solid rgba(212,162,160,.2);text-align:center;padding:2.2rem 1.5rem 2rem;transition:all .3s var(--t)}
.team-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.team-card .avatar{width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,var(--rose-gold),var(--rose-deep));display:flex;align-items:center;justify-content:center;margin:0 auto 1.2rem;font-family:var(--display);font-size:3rem;color:var(--white);font-weight:500}
.team-card h3{font-size:1.5rem;margin-bottom:.25rem}
.team-card .role{font-size:.85rem;color:var(--rose-deep);text-transform:uppercase;letter-spacing:.12em;margin-bottom:1rem}
.team-card p{color:var(--ink-soft);font-size:.95rem;line-height:1.55}
@media(max-width:880px){.team-grid{grid-template-columns:1fr;gap:1.4rem}}

/* ===== Contact form ===== */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
.contact-form{display:flex;flex-direction:column;gap:1.2rem}
.field{display:flex;flex-direction:column;gap:.4rem}
.field label{font-size:.85rem;font-weight:600;color:var(--emerald);letter-spacing:.04em}
.field input,.field textarea,.field select{
  padding:.95rem 1.1rem;border-radius:12px;border:1.5px solid rgba(31,69,48,.16);
  background:var(--white);font-family:inherit;font-size:1rem;color:var(--ink);
  transition:all .25s var(--t);
}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--rose-gold);box-shadow:0 0 0 4px rgba(212,162,160,.2)}
.field textarea{resize:vertical;min-height:120px}
.field .error-msg{font-size:.82rem;color:#C84B45;display:none}
.field.invalid input,.field.invalid textarea{border-color:#C84B45}
.field.invalid .error-msg{display:block}
.honeypot{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form-success{background:rgba(31,69,48,.08);color:var(--emerald);padding:1.2rem 1.5rem;border-radius:12px;border:1px solid rgba(31,69,48,.2);display:none;margin-bottom:1rem}
.form-success.show{display:block}
@media(max-width:880px){.contact-grid{grid-template-columns:1fr;gap:2rem}}

/* ===== 404 ===== */
.error-page{margin-top:72px;min-height:calc(100vh - 72px);display:flex;align-items:center;justify-content:center;text-align:center;padding:3rem var(--gutter)}
.error-page .num{font-family:var(--display);font-size:clamp(7rem,18vw,12rem);color:var(--rose-gold);line-height:1;font-weight:500}
.error-page h1{font-size:clamp(1.8rem,4vw,2.5rem);margin:.5rem 0 1rem}
.error-page p{color:var(--ink-soft);margin-bottom:2rem;font-size:1.05rem}

/* ===== Round 1 Effects: Reveals, Hovers, Magnetic ===== */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--t),transform .8s var(--t)}
.reveal.in{opacity:1;transform:translateY(0)}
.reveal.delay-1{transition-delay:.08s}
.reveal.delay-2{transition-delay:.16s}
.reveal.delay-3{transition-delay:.24s}
.reveal.delay-4{transition-delay:.32s}
.reveal.delay-5{transition-delay:.40s}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;transition:none}}

/* Word-by-word fade for headlines */
.heading-words .word{opacity:0;transform:translateY(14px);display:inline-block;transition:opacity .55s var(--t),transform .55s var(--t)}
.heading-words.in .word{opacity:1;transform:none}
.heading-words.in .word:nth-child(1){transition-delay:.05s}
.heading-words.in .word:nth-child(2){transition-delay:.13s}
.heading-words.in .word:nth-child(3){transition-delay:.22s}
.heading-words.in .word:nth-child(4){transition-delay:.31s}
.heading-words.in .word:nth-child(5){transition-delay:.40s}
.heading-words.in .word:nth-child(6){transition-delay:.49s}
@media (prefers-reduced-motion:reduce){.heading-words .word{opacity:1!important;transform:none!important}}

/* Review card subtle lift */
.review{transition:transform .35s var(--t),box-shadow .35s var(--t),border-color .25s var(--t)}
.review:hover{transform:translateY(-4px);box-shadow:0 24px 48px -20px rgba(31,69,48,.12);border-color:rgba(212,162,160,.35)}

/* Social card icon spin-in on hover */
.social-card .ico{transition:transform .5s var(--t)}
.social-card:hover .ico{transform:scale(1.07) rotate(-6deg)}

/* FAQ summary hover sheen */
.faq-item summary{transition:background .25s var(--t)}
.faq-item summary:hover{background:rgba(212,162,160,.08)}

/* Booking CTA: subtle floating glow */
.booking::after{content:"";position:absolute;bottom:-30%;left:-15%;width:55%;height:80%;background:radial-gradient(circle,rgba(212,162,160,.14) 0%,transparent 70%);pointer-events:none;animation:floatGlow 12s ease-in-out infinite alternate}
@keyframes floatGlow{from{transform:translate(0,0)}to{transform:translate(8%,-6%)}}
@media (prefers-reduced-motion:reduce){.booking::after{animation:none}}

/* Magnetic CTA — JS sets --magnetic-x / --magnetic-y */
.btn.magnetic{transform:translate(var(--magnetic-x,0px),var(--magnetic-y,0px));transition:transform .25s var(--t)}
.btn.magnetic:hover{transition:transform .15s var(--t)}

/* Hero meta items chips */
.hero-meta span{padding:.4rem .85rem;border-radius:999px;background:rgba(255,255,255,.55);border:1px solid rgba(212,162,160,.25);backdrop-filter:blur(6px);transition:all .3s var(--t)}
.hero-meta span:hover{background:rgba(255,255,255,.85);transform:translateY(-2px);border-color:rgba(212,162,160,.55)}

/* Booking button shake on WhatsApp hover */
.booking-actions a[href*="wa.me"]:hover svg{animation:gentleShake .6s ease-in-out}
@keyframes gentleShake{0%,100%{transform:rotate(0)}25%{transform:rotate(-8deg)}50%{transform:rotate(7deg)}75%{transform:rotate(-4deg)}}

/* ============================================================
   ROUND 3 — Conversion + Trust + Booking-UX
   ============================================================ */

/* ===== Live-Visitor Counter (Trust + Booking) ===== */
.dot-live{
  display:inline-block;width:10px;height:10px;border-radius:50%;
  background:#25D366;box-shadow:0 0 0 0 rgba(37,211,102,.55);
  animation:dotLivePulse 2.2s ease-out infinite;flex-shrink:0;
}
@keyframes dotLivePulse{
  0%{box-shadow:0 0 0 0 rgba(37,211,102,.55)}
  70%{box-shadow:0 0 0 9px rgba(37,211,102,0)}
  100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}
}
@media (prefers-reduced-motion:reduce){.dot-live{animation:none}}
.trust-livecount{
  margin-top:1.8rem;display:flex;justify-content:center;align-items:center;gap:.7rem;
  font-size:.92rem;color:var(--ink-soft);position:relative;z-index:1;
  padding:.85rem 1.4rem;background:rgba(255,255,255,.62);border-radius:999px;
  border:1px solid rgba(212,162,160,.25);max-width:fit-content;margin-left:auto;margin-right:auto;
  backdrop-filter:blur(6px);
}
.trust-livecount strong{color:var(--emerald);font-weight:600}
.trust-livecount em{font-style:italic;color:var(--rose-deep)}
a.trust-item{display:block;text-decoration:none;color:inherit;cursor:pointer}
a.trust-item:hover{transform:translateY(-3px);background:rgba(255,255,255,.65)}

/* ===== Booking: Live-status + WA-primary ===== */
.booking-live{
  margin-top:1.2rem;display:inline-flex;align-items:center;gap:.55rem;
  padding:.5rem .9rem;border-radius:999px;background:rgba(37,211,102,.14);
  font-size:.86rem;color:rgba(248,237,233,.94);position:relative;z-index:1;
  border:1px solid rgba(37,211,102,.3);
}
.booking-live em{font-style:normal;letter-spacing:.01em}
.btn-wa-primary{
  background:linear-gradient(135deg,#25D366 0%,#128C7E 100%);
  color:#fff;font-weight:700;
  position:relative;overflow:visible;isolation:isolate;
  padding:1.15rem 1.5rem;border-radius:18px;
  display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;
  box-shadow:0 14px 36px -12px rgba(18,140,126,.55);
  transform-origin:center;transition:all .3s var(--t);
  width:100%;
}
.btn-wa-primary:hover{transform:translateY(-3px) scale(1.015);box-shadow:0 20px 50px -12px rgba(18,140,126,.7)}
.btn-wa-primary::before{
  content:"";position:absolute;inset:-3px;border-radius:21px;z-index:-1;
  background:linear-gradient(135deg,rgba(37,211,102,.55),rgba(212,162,160,.4),rgba(37,211,102,.55));
  background-size:220% 220%;opacity:.6;filter:blur(12px);
  animation:waGlow 4s ease-in-out infinite;
}
@keyframes waGlow{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}
@media (prefers-reduced-motion:reduce){.btn-wa-primary::before{animation:none}}
.btn-wa-primary .wa-tag{
  display:inline-block;padding:.2rem .65rem;border-radius:999px;
  background:rgba(255,255,255,.22);font-size:.7rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:#fff;
}
.btn-wa-primary .wa-row{display:flex;align-items:center;gap:.85rem;width:100%}
.btn-wa-primary .wa-text{display:flex;flex-direction:column;align-items:flex-start;gap:.05rem;line-height:1.2}
.btn-wa-primary .wa-text strong{font-size:1.08rem;font-weight:700;letter-spacing:.01em}
.btn-wa-primary .wa-text em{font-style:normal;font-size:.78rem;font-weight:400;opacity:.92;letter-spacing:.02em}
.booking-actions .btn-wa-primary{margin-bottom:.3rem}

/* ===== Quick Booking Form ===== */
.quick-form-wrap{
  margin-top:2.5rem;background:var(--white);
  border-radius:var(--radius-lg);padding:clamp(1.8rem,4vw,2.5rem);
  border:1px solid rgba(212,162,160,.22);box-shadow:var(--shadow-md);
}
.quick-form-head h3{font-size:1.5rem;margin-bottom:.4rem;color:var(--emerald)}
.quick-form-head p{color:var(--ink-soft);font-size:.96rem;margin-bottom:1.6rem}
.quick-form-head a{color:var(--rose-deep);text-decoration:underline;text-underline-offset:3px}
.qf-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.4rem;margin-bottom:1.4rem}
.qf-grid .field{position:relative}
.qf-grid .error-msg{
  display:none;position:absolute;left:0;right:0;bottom:-1.6rem;
  font-size:.78rem;color:#C84B45;font-weight:500;
  align-items:center;gap:.35rem;letter-spacing:.01em;
}
.qf-grid .error-msg svg{color:#C84B45;flex-shrink:0}
.qf-grid .field.invalid .error-msg{display:flex;animation:errSlide .3s var(--t)}
.qf-grid .field.invalid input,.qf-grid .field.invalid select{
  border-color:#C84B45;background:rgba(200,75,69,.04);
  animation:errShake .3s var(--t);
}
@keyframes errSlide{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}
@keyframes errShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
.qf-bot{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;margin-top:.4rem}
.qf-submit{padding:1rem 1.8rem}
.qf-note{font-size:.82rem;color:var(--ink-soft);font-style:italic}
@media (max-width:680px){.qf-grid{grid-template-columns:1fr}.qf-grid .field.invalid{margin-bottom:1.6rem}}

/* ===== Founder Story ===== */
.founder-section{
  background:linear-gradient(180deg,var(--cream-soft) 0%,var(--cream) 100%);
  position:relative;overflow:hidden;
}
.founder-section::before{
  content:"";position:absolute;top:-20%;left:-10%;width:45%;height:80%;
  background:radial-gradient(circle,rgba(212,162,160,.16) 0%,transparent 70%);
  filter:blur(50px);pointer-events:none;
}
.founder-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,4rem);align-items:center;position:relative;z-index:1}
.founder-photo{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:4/5}
.founder-photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--t)}
.founder-photo:hover img{transform:scale(1.04)}
.founder-photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(31,69,48,.35) 100%);
  pointer-events:none;
}
.founder-badge{
  position:absolute;bottom:1.2rem;left:1.2rem;
  background:rgba(252,246,243,.95);backdrop-filter:blur(10px);
  padding:.55rem 1rem;border-radius:999px;
  display:inline-flex;align-items:center;gap:.45rem;
  font-size:.84rem;font-weight:600;color:var(--emerald);
  border:1px solid rgba(212,162,160,.35);box-shadow:var(--shadow-sm);
}
.founder-badge svg{color:var(--gold)}
.founder-text h2{margin-bottom:1.4rem;max-width:18ch}
.founder-quote{
  position:relative;font-family:var(--display);font-style:italic;
  font-size:clamp(1.2rem,2.1vw,1.55rem);line-height:1.45;color:var(--ink);
  padding:1.4rem 1.4rem 1.4rem 3rem;
  background:var(--white);border-radius:var(--radius);
  border-left:3px solid var(--rose-gold);
  box-shadow:var(--shadow-sm);margin-bottom:1.6rem;
}
.founder-quote .quote-mark{
  position:absolute;left:.8rem;top:.4rem;
  font-size:3.2rem;line-height:1;color:var(--rose-gold);
  font-family:var(--display);
}
.founder-quote em{display:block;margin-top:1rem;font-style:normal;font-size:.92rem;color:var(--rose-deep);font-family:var(--body);font-weight:600;letter-spacing:.04em}
.founder-points{list-style:none;display:flex;flex-direction:column;gap:.7rem;margin-bottom:1.8rem}
.founder-points li{display:flex;align-items:center;gap:.7rem;font-size:.98rem;color:var(--ink)}
.founder-points li svg{color:var(--emerald);flex-shrink:0}
.founder-cta{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}
@media(max-width:880px){
  .founder-grid{grid-template-columns:1fr;gap:2rem}
  .founder-photo{aspect-ratio:4/3}
  .founder-text h2{max-width:none}
}

/* ===== Verified Badge auf Reviews ===== */
.review-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem;flex-wrap:wrap}
.review-top .stars{margin-bottom:0;color:var(--gold);font-size:1.05rem;letter-spacing:.04em}
.review .verified-badge{
  display:inline-flex;align-items:center;gap:.35rem;
  padding:.3rem .65rem;border-radius:999px;
  background:rgba(66,133,244,.08);border:1px solid rgba(66,133,244,.22);
  font-size:.72rem;color:#1A73E8;font-weight:600;letter-spacing:.02em;
}
.review .verified-badge svg{flex-shrink:0}

/* ===== Cert-Badges Section ===== */
.cert-section{
  background:var(--cream);padding:clamp(2.2rem,4.5vw,3.2rem) 0;
  border-top:1px solid rgba(212,162,160,.18);
  border-bottom:1px solid rgba(212,162,160,.18);
}
.cert-grid{
  display:flex;justify-content:center;align-items:stretch;
  flex-wrap:wrap;gap:.85rem;
}
.cert-badge{
  display:inline-flex;align-items:center;gap:.7rem;
  padding:.85rem 1.2rem;border-radius:14px;
  background:var(--cream-soft);border:1px solid rgba(212,162,160,.32);
  color:var(--emerald);font-size:.88rem;
  transition:all .3s var(--t);min-width:200px;
}
.cert-badge:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--rose-gold)}
.cert-badge svg{color:var(--rose-deep);flex-shrink:0}
.cert-badge strong{display:block;font-weight:700;font-size:.94rem;color:var(--emerald);font-family:var(--body);line-height:1.15}
.cert-badge em{display:block;font-style:normal;font-size:.76rem;color:var(--ink-soft);margin-top:.15rem;letter-spacing:.01em}
@media(max-width:680px){.cert-badge{min-width:0;flex:1 1 calc(50% - 1rem);font-size:.82rem;padding:.7rem .85rem}}

/* ===== Newsletter im Footer ===== */
.foot-newsletter{
  display:grid;grid-template-columns:1fr 1.1fr;gap:2.5rem;align-items:center;
  padding:1.8rem 2rem;margin-bottom:3rem;
  background:rgba(248,237,233,.06);border:1px solid rgba(248,237,233,.1);
  border-radius:var(--radius-lg);
}
.fn-text h4{font-family:var(--display);color:var(--cream);font-size:1.4rem;margin-bottom:.4rem;font-weight:500}
.fn-text p{color:rgba(248,237,233,.65);font-size:.92rem;line-height:1.5}
.fn-form{display:flex;align-items:stretch;gap:.6rem;position:relative;flex-wrap:wrap}
.fn-form input{
  flex:1 1 200px;padding:.95rem 1.2rem;border-radius:999px;
  background:rgba(248,237,233,.08);border:1.5px solid rgba(248,237,233,.18);
  color:var(--cream);font-family:inherit;font-size:.95rem;transition:all .25s var(--t);
}
.fn-form input::placeholder{color:rgba(248,237,233,.4)}
.fn-form input:focus{outline:none;border-color:var(--rose-gold);background:rgba(248,237,233,.12);box-shadow:0 0 0 4px rgba(212,162,160,.18)}
.fn-form .btn-primary{padding:.95rem 1.4rem;flex-shrink:0}
.fn-form .fn-success,.fn-form .fn-already{
  display:none;width:100%;padding:.6rem 1rem;border-radius:10px;
  background:rgba(37,211,102,.14);color:#7AE5A8;font-size:.85rem;border:1px solid rgba(37,211,102,.3);
}
.fn-form.success .fn-success{display:block}
.fn-form.already .fn-already{display:block;background:rgba(212,162,160,.18);color:var(--rose-gold);border-color:rgba(212,162,160,.32)}
.fn-form.success input,.fn-form.success button,.fn-form.already input,.fn-form.already button{display:none}
@media(max-width:780px){.foot-newsletter{grid-template-columns:1fr;gap:1.4rem;padding:1.4rem}}

/* ===== Sticky Side-CTA Stack (Desktop) ===== */
.side-cta-stack{
  position:fixed;right:1.2rem;bottom:1.5rem;z-index:90;
  display:flex;flex-direction:column;gap:.55rem;
  opacity:0;transform:translateY(20px);pointer-events:none;
  transition:opacity .35s var(--t),transform .35s var(--t);
}
.side-cta-stack.visible{opacity:1;transform:translateY(0);pointer-events:auto}
.side-cta-stack .side-cta{
  position:relative;right:auto;bottom:auto;
  padding:.85rem 1.3rem;border-radius:999px;
  display:inline-flex;align-items:center;gap:.6rem;
  font-weight:600;font-size:.92rem;letter-spacing:.01em;
  box-shadow:var(--shadow-lg);transition:all .3s var(--t);
}
.side-cta-stack .side-cta svg{width:18px;height:18px;animation:none}
.side-cta-wa{
  background:linear-gradient(135deg,#25D366 0%,#128C7E 100%);
  color:#fff;
}
.side-cta-wa:hover{transform:translateX(-3px) scale(1.04);box-shadow:0 18px 40px -12px rgba(18,140,126,.55)}
.side-cta-phone{background:var(--emerald);color:var(--cream)}
.side-cta-phone:hover{background:var(--rose-gold);color:var(--emerald);transform:translateX(-3px) scale(1.04)}
.side-icon-wrap{position:relative;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}
.side-icon-wrap .online-dot{
  position:absolute;top:-3px;right:-3px;width:9px;height:9px;border-radius:50%;
  background:#25D366;border:2px solid var(--cream-soft);
  box-shadow:0 0 0 0 rgba(37,211,102,.5);
  animation:onlineDotPulse 2.4s ease-out infinite;
}
@keyframes onlineDotPulse{
  0%{box-shadow:0 0 0 0 rgba(37,211,102,.55)}
  70%{box-shadow:0 0 0 7px rgba(37,211,102,0)}
  100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}
}
@media (prefers-reduced-motion:reduce){.side-icon-wrap .online-dot{animation:none}.side-cta-stack{transition:opacity .2s linear}}
@media(max-width:880px){.side-cta-stack{display:none}}
/* Hide old single side-cta if still rendered */
a.side-cta:not(.side-cta-wa):not(.side-cta-phone){display:none}

/* ===== Mobile Bottom-Nav Polish ===== */
.mobile-bottom-nav .wa-cta svg{color:#25D366}
.mobile-bottom-nav .bn-icon-wrap{position:relative;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center}
.mobile-bottom-nav .bn-icon-wrap .online-dot{
  position:absolute;top:-2px;right:-2px;width:8px;height:8px;border-radius:50%;
  background:#25D366;border:2px solid var(--cream-soft);
  box-shadow:0 0 0 0 rgba(37,211,102,.5);
  animation:onlineDotPulse 2.4s ease-out infinite;
}
.mobile-bottom-nav a{transition:transform .15s var(--t),background .2s var(--t)}
.mobile-bottom-nav a:active{transform:scale(.93);background:rgba(212,162,160,.18)}
.mobile-bottom-nav .wa-cta:active .bn-icon-wrap .online-dot{animation:none}

/* ===== Print Updates ===== */
@media print{
  header.nav,.mobile-bottom-nav,.side-cta,.side-cta-stack,.marquee,.booking,.foot-newsletter,footer.site-foot,iframe,.cert-section,.quick-form-wrap{display:none!important}
  body{padding:0;background:white;color:black}
  section{padding:1rem 0;page-break-inside:avoid}
  .hero{margin:0;padding:1rem 0}
  a{color:black;text-decoration:underline}
  h1,h2,h3{color:black}
}

/* ===== Service Detail Page (R4) ===== */
.breadcrumb{font-size:.86rem;color:var(--ink-soft);padding:1rem 0 0;display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}
.breadcrumb a{color:var(--rose-deep);text-decoration:none}
.breadcrumb a:hover{text-decoration:underline}
.breadcrumb .sep{color:var(--ink-soft);opacity:.55}
.breadcrumb [aria-current]{color:var(--ink);font-weight:500}

.detail-section{padding:clamp(2.5rem,5vw,4rem) 0}
.detail-section + .detail-section{border-top:1px solid rgba(212,162,160,.18)}

.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:2rem}
.step{background:var(--white);border:1px solid rgba(212,162,160,.22);border-radius:var(--radius-lg);padding:2rem 1.6rem;position:relative;transition:transform .3s var(--t),box-shadow .3s var(--t)}
.step:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.step .num{position:absolute;top:-18px;left:1.6rem;width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--rose-gold),var(--rose-deep));color:var(--white);font-family:var(--display);font-size:1.35rem;font-weight:600;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}
.step h4{font-size:1.15rem;color:var(--emerald);margin:1rem 0 .55rem}
.step p{color:var(--ink-soft);font-size:.95rem;line-height:1.55;margin:0}
@media(max-width:780px){.steps-grid{grid-template-columns:1fr}}

.zones-accordion{display:grid;gap:.6rem;margin-top:1.5rem;max-width:760px}
.zone-row{background:var(--white);border:1px solid rgba(212,162,160,.2);border-radius:var(--radius);overflow:hidden;transition:border-color .25s var(--t)}
.zone-row[open]{border-color:var(--rose-gold)}
.zone-row summary{padding:1rem 1.3rem;cursor:pointer;display:flex;align-items:center;gap:1rem;list-style:none;font-weight:600;color:var(--emerald);font-size:1rem}
.zone-row summary::-webkit-details-marker{display:none}
.zone-row summary::after{content:"+";font-family:var(--display);color:var(--rose-deep);font-size:1.5rem;margin-left:auto;transition:transform .3s var(--t);font-weight:300}
.zone-row[open] summary::after{transform:rotate(45deg)}
.zone-row .zone-meta{font-size:.82rem;color:var(--ink-soft);font-weight:400;letter-spacing:.02em}
.zone-row .zone-body{padding:.4rem 1.3rem 1.2rem;color:var(--ink-soft);line-height:1.6;font-size:.95rem;display:grid;gap:.45rem}
.zone-row .zone-body .zone-price{display:inline-flex;align-items:center;gap:.45rem;background:var(--cream-soft);color:var(--emerald);padding:.4rem .85rem;border-radius:999px;font-weight:600;font-size:.9rem;width:fit-content}

.care-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem;margin-top:2rem}
.care-card{background:var(--cream-soft);border-radius:var(--radius-lg);padding:2rem 1.8rem;border-left:4px solid var(--rose-deep)}
.care-card.pre{border-left-color:var(--emerald)}
.care-card h3{font-size:1.3rem;color:var(--emerald);margin-bottom:1rem;display:flex;align-items:center;gap:.55rem}
.care-card ul{list-style:none;padding:0;margin:0;display:grid;gap:.7rem}
.care-card li{padding-left:1.6rem;position:relative;color:var(--ink-soft);line-height:1.5;font-size:.95rem}
.care-card li::before{content:"";position:absolute;left:0;top:.5rem;width:.85rem;height:.85rem;border-radius:50%;background:var(--rose-gold)}
.care-card.pre li::before{background:var(--emerald)}
@media(max-width:780px){.care-grid{grid-template-columns:1fr}}

.detail-cta{background:linear-gradient(135deg,var(--emerald) 0%,#2A5A40 100%);color:var(--cream);text-align:center;padding:3rem 2rem;border-radius:var(--radius-lg);margin-top:3rem}
.detail-cta h2{color:var(--cream);font-size:2rem;margin-bottom:.6rem}
.detail-cta p{color:rgba(255,255,255,.85);max-width:50ch;margin:0 auto 1.6rem;line-height:1.55}
.detail-cta .btn-row{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center}
.detail-cta .btn-primary{background:var(--rose-deep)}
.detail-cta .btn-primary:hover{background:var(--rose-gold)}
.detail-cta .btn-secondary{background:transparent;border:1.5px solid rgba(255,255,255,.5);color:var(--cream)}
.detail-cta .btn-secondary:hover{background:rgba(255,255,255,.1)}

.facts-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2rem;padding:1.6rem;background:var(--white);border-radius:var(--radius-lg);border:1px solid rgba(212,162,160,.2)}
.fact{text-align:center}
.fact strong{display:block;font-family:var(--display);font-size:1.6rem;color:var(--emerald);font-weight:500;letter-spacing:.01em}
.fact em{font-style:normal;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft)}
@media(max-width:780px){.facts-strip{grid-template-columns:repeat(2,1fr)}}

/* ===== R5: Logo (Wordmark in Header, Monogram in Footer) ===== */
.brand-logo{display:flex;align-items:center;text-decoration:none;transition:opacity .25s var(--t)}
.brand-logo:hover{opacity:.85}
.brand-logo img{display:block;height:44px!important;width:auto!important}
@media(max-width:880px){.brand-logo img{height:36px!important}}
.foot-brand .brand-logo{margin-bottom:1rem;display:inline-flex}
.foot-brand .brand-logo img{height:64px!important;width:auto!important;filter:brightness(0) invert(1) opacity(.92)}

/* ===== R5: CLS-Fix Service-Cards (R4-Regression) ===== */
.services-grid{contain:layout}
.service-card{min-height:340px}
@media(max-width:880px){.service-card{min-height:0}}

/* ===== R5: Insta-Gallery ===== */
.insta-section{padding:clamp(3rem,6vw,5rem) 0;background:linear-gradient(180deg,var(--cream) 0%,var(--cream-soft) 100%);position:relative;overflow:hidden}
.insta-section::before{content:"";position:absolute;top:-20%;right:-10%;width:45%;height:80%;background:radial-gradient(circle,rgba(212,162,160,.15) 0%,transparent 65%);filter:blur(60px);pointer-events:none}
.insta-section .container{position:relative;z-index:1}
.insta-head{text-align:center;margin-bottom:2.5rem;max-width:62ch;margin-inline:auto}
.insta-head .eyebrow{color:var(--rose-deep);font-size:.85rem;letter-spacing:.18em;text-transform:uppercase;display:inline-flex;align-items:center;gap:.5rem;margin-bottom:.75rem}
.insta-head .eyebrow svg{width:18px;height:18px}
.insta-head h2{margin-bottom:.6rem}
.insta-head p{color:var(--ink-soft);font-size:1.02rem;line-height:1.55}
.insta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}
.insta-card{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:1/1;display:block;background:var(--cream-soft);box-shadow:0 6px 18px -8px rgba(31,69,48,.15);transition:transform .35s var(--t),box-shadow .35s var(--t);text-decoration:none}
.insta-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--t);will-change:transform}
.insta-card:hover{transform:translateY(-4px);box-shadow:0 18px 36px -14px rgba(180,125,123,.35)}
.insta-card:hover img{transform:scale(1.06)}
.insta-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(31,69,48,.65) 100%);opacity:0;transition:opacity .35s var(--t);pointer-events:none}
.insta-card:hover::after{opacity:1}
.insta-card .insta-caption{position:absolute;left:1rem;right:1rem;bottom:1rem;color:var(--cream);font-size:.85rem;line-height:1.4;font-weight:500;opacity:0;transform:translateY(8px);transition:opacity .35s var(--t),transform .35s var(--t);z-index:2;text-shadow:0 1px 6px rgba(0,0,0,.4)}
.insta-card:hover .insta-caption{opacity:1;transform:translateY(0)}
.insta-card .insta-badge{position:absolute;top:.7rem;right:.7rem;width:32px;height:32px;border-radius:50%;background:rgba(252,246,243,.92);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;color:var(--rose-deep);z-index:2;box-shadow:0 4px 12px -4px rgba(0,0,0,.18)}
.insta-card .insta-badge svg{width:16px;height:16px}
.insta-cta-wrap{text-align:center}
.insta-cta-wrap a{display:inline-flex;align-items:center;gap:.5rem;color:var(--emerald);font-weight:500;text-decoration:none;border-bottom:1px solid rgba(31,69,48,.25);padding-bottom:.2rem;transition:color .25s var(--t),border-color .25s var(--t)}
.insta-cta-wrap a:hover{color:var(--rose-deep);border-color:var(--rose-deep)}
@media(max-width:880px){.insta-grid{grid-template-columns:repeat(2,1fr);gap:.7rem}}
@media(max-width:480px){.insta-grid{grid-template-columns:1fr 1fr;gap:.6rem}.insta-card .insta-caption{font-size:.78rem}}

/* ===== R5: Video „Eindrücke"-Section ===== */
.impressions-section{padding:clamp(3rem,6vw,5rem) 0;background:var(--cream-soft);position:relative}
.impressions-section .container{position:relative;z-index:1}
.impressions-head{text-align:center;margin-bottom:2.5rem;max-width:60ch;margin-inline:auto}
.impressions-head .eyebrow{color:var(--rose-deep);font-size:.85rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:.75rem;display:inline-block}
.impressions-head h2{margin-bottom:.6rem}
.impressions-head p{color:var(--ink-soft);font-size:1.02rem;line-height:1.55}
.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;max-width:1080px;margin:0 auto}
.video-card{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:9/16;background:#0a0a0a;box-shadow:0 12px 32px -14px rgba(31,69,48,.32);margin:0}
.video-card video{width:100%;height:100%;object-fit:cover;display:block;background:#0a0a0a}
.video-card figcaption{position:absolute;left:1rem;right:1rem;bottom:1rem;color:var(--cream);font-size:.92rem;font-weight:500;text-shadow:0 2px 8px rgba(0,0,0,.55);z-index:2;line-height:1.35}
.video-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.55) 100%);pointer-events:none;z-index:1}
.video-card .video-pause{position:absolute;top:.7rem;right:.7rem;width:32px;height:32px;border-radius:50%;background:rgba(252,246,243,.85);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;color:var(--emerald);z-index:3;border:none;cursor:pointer;opacity:0;transition:opacity .25s var(--t)}
.video-card:hover .video-pause{opacity:1}
.video-card .video-pause svg{width:14px;height:14px}
@media(max-width:880px){.video-grid{grid-template-columns:1fr;gap:1rem;max-width:480px}}
@media (prefers-reduced-motion:reduce){.video-card video{display:none}.video-card::before{content:"";position:absolute;inset:0;background-image:var(--poster);background-size:cover;background-position:center;z-index:0}}

/* ===== R5: CLS — Image/Video aspect-ratio reservation ===== */
img[width][height]{height:auto}
.insta-card img,.video-card video{contain:layout}
