:root{--ivory:#f6e3df;--sand:#e3c3be;--taupe:#6f5f5d;--olive:#4a3236;--charcoal:#2b2022;--champagne:#d3a09b;--white:#fffaf8;--line:rgba(43,32,34,.17);--serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;--sans:'Plus Jakarta Sans',Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--charcoal);font-family:var(--sans);font-size:16px;line-height:1.65}img{display:block;max-width:100%;object-fit:cover}a{color:inherit}button,input,select,textarea{font:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link{position:fixed;top:-100px;left:1rem;z-index:100;background:#fff;padding:.7rem 1rem}.skip-link:focus{top:1rem}.site-header{height:88px;padding:0 clamp(1.25rem,4vw,4rem);display:flex;align-items:center;justify-content:space-between;background:rgba(246,227,223,.95);position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.brand{text-decoration:none;line-height:1;text-align:center;letter-spacing:.17em}.brand span{display:block;font-family:var(--serif);font-size:1.45rem}.brand small{font-size:.55rem;letter-spacing:.31em}.site-header nav{display:flex;align-items:center;gap:1.8rem}.site-header nav>a:not(.button){text-decoration:none;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em}.nav-toggle{display:none;background:transparent;border:0;padding:.5rem}.nav-toggle span:not(.sr-only){display:block;width:25px;height:1px;background:currentColor;margin:5px}.button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:.75rem 1.45rem;border:1px solid var(--olive);background:var(--olive);color:var(--white);text-transform:uppercase;text-decoration:none;letter-spacing:.12em;font-size:.72rem;cursor:pointer;transition:.2s}.button:hover,.button:focus-visible{background:var(--charcoal);border-color:var(--charcoal)}.button-light{background:var(--white);border-color:var(--white);color:var(--charcoal)}.button-dark{min-height:42px}.button-outline{background:transparent;color:var(--olive)}.text-link{text-transform:uppercase;font-size:.72rem;letter-spacing:.12em;text-underline-offset:6px}.text-link.light{color:#fff}.eyebrow,.step-label{text-transform:uppercase;letter-spacing:.2em;font-size:.7rem;margin:0 0 1rem}.hero{height:calc(100svh - 88px);min-height:590px;position:relative;color:#fff;overflow:hidden}.hero>img{width:100%;height:100%;object-position:center 58%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(40,28,30,.68),rgba(40,28,30,.05))}.hero-copy{position:absolute;left:clamp(1.5rem,8vw,8rem);top:50%;transform:translateY(-50%);max-width:900px}.hero h1{font:normal clamp(3.4rem,9vw,8.8rem)/.79 var(--serif);letter-spacing:-.05em;margin:0 0 2rem}.hero h1 em{font-weight:normal;font-size:.59em}.hero-copy>p:not(.eyebrow){font:italic clamp(1.2rem,2vw,1.7rem) var(--serif)}.actions{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.editorial{max-width:1050px;margin:auto;text-align:center;padding:clamp(5rem,10vw,10rem) 1.5rem}.editorial h2,.signature h2,.section-head h2,.popular h2,.visit h2,.center-cta h2{font:normal clamp(2.5rem,5vw,5.2rem)/1.05 var(--serif);margin:.2em 0}.editorial>p:last-child{max-width:650px;margin:2rem auto 0;color:#555}.treatments{max-width:1350px;margin:auto;padding:0 1.5rem 8rem}.treatments article{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;margin-bottom:6rem}.treatments article:nth-child(even){grid-template-columns:1fr 1.2fr}.treatments article:nth-child(even) img{order:2}.treatments img{width:100%;height:min(65vw,650px)}.treatments article>div{padding:clamp(2rem,6vw,6rem)}.treatments span{color:var(--champagne);font-family:var(--serif)}.treatments h2{font:normal clamp(2.8rem,5vw,5rem) var(--serif);margin:.1em 0}.signature{background:var(--olive);color:var(--white);padding:clamp(5rem,9vw,9rem) clamp(1.5rem,9vw,9rem);display:grid;grid-template-columns:1.15fr 1fr;gap:10vw;align-items:end}.signature>p{max-width:520px;font:1.2rem/1.8 var(--serif)}.gallery-preview,.popular,.reviews,.service-groups,.gallery-grid,.about-grid,.contact-grid{padding:clamp(4.5rem,8vw,8rem) clamp(1.25rem,6vw,6rem);max-width:1450px;margin:auto}.section-head{display:grid;grid-template-columns:1fr auto;align-items:end;margin-bottom:3rem}.section-head .eyebrow{grid-column:1/-1}.mosaic{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:300px 300px;gap:1rem}.mosaic img{width:100%;height:100%}.mosaic img:first-child{grid-row:1/3}.popular{max-width:1000px}.price-list{border-top:1px solid var(--line);margin:2.5rem 0}.price-list p{display:flex;justify-content:space-between;gap:2rem;border-bottom:1px solid var(--line);padding:1.2rem .2rem;margin:0;align-items:start}.price-list span{font-family:var(--serif);font-size:1.18rem}.price-list small{display:block;font:normal .72rem/1.4 var(--sans);color:#6b5a5c;margin-top:.3rem}.price-list b{font-weight:normal;white-space:nowrap}.reviews{max-width:1100px;text-align:center}.reviews blockquote{font:italic clamp(2rem,4vw,4rem)/1.2 var(--serif);margin:2rem 0}.reviews cite{display:block;font:normal .7rem var(--sans);text-transform:uppercase;letter-spacing:.12em;margin-top:2rem}.visit{padding:clamp(5rem,9vw,9rem) clamp(1.5rem,8vw,8rem);background:var(--charcoal);color:#fff;display:grid;grid-template-columns:1.2fr 1fr;gap:10vw;align-items:end}.visit>div:last-child p{display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.2);padding:1rem 0;margin:0}.site-footer{background:#2b2022;color:#eee;padding:5rem clamp(1.5rem,6vw,6rem) 1.5rem;display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:3rem;font-size:.85rem}.site-footer h2{font:normal 1.15rem var(--serif)}.site-footer a{text-underline-offset:4px}.brand-light{display:inline-block}.footer-bottom{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.16);padding-top:1.5rem}.whatsapp{position:fixed;right:1rem;bottom:1rem;width:52px;height:52px;border-radius:50%;background:#45674d;color:#fff;display:flex;align-items:center;justify-content:center;text-decoration:none;font:bold .75rem var(--sans);z-index:19;box-shadow:0 5px 20px #0003}.mobile-book{display:none}.page-intro{padding:clamp(5rem,10vw,10rem) clamp(1.5rem,8vw,8rem);max-width:1250px;margin:auto}.page-intro h1{font:normal clamp(3.7rem,9vw,8rem)/.9 var(--serif);margin:.15em 0}.page-intro>p:not(.eyebrow){max-width:650px}.service-groups{padding-top:0}.service-groups article{display:grid;grid-template-columns:minmax(220px,.7fr) 2fr;gap:6vw;margin-bottom:5rem}.service-groups h2{font:normal clamp(1.8rem,3vw,3rem)/1.1 var(--serif);margin:2.5rem 0}.service-groups .price-list{margin:0}.center-cta{text-align:center;padding:3rem 1.5rem 8rem}.gallery-grid{padding-top:0;display:grid;grid-template-columns:repeat(12,1fr);gap:1.2rem}.gallery-grid figure{margin:0;grid-column:span 5}.gallery-grid figure:nth-child(even){grid-column:7/span 6}.gallery-grid figure:nth-child(3){grid-column:2/span 5}.gallery-grid img{width:100%;height:600px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center;padding-top:0}.about-grid img{height:720px;width:100%}.about-grid h2,.contact-grid h2,.legal h2{font:normal clamp(2rem,4vw,4rem) var(--serif)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:10vw;padding-top:0}.contact-grid b{float:right}.legal{max-width:900px}.legal h2{font-size:2rem;margin-top:3rem}.notice{padding:1rem;border-left:3px solid var(--champagne);background:#fff8}.booking-shell{padding:clamp(3rem,7vw,7rem) 1.25rem;max-width:1100px;margin:auto}.booking-shell>header{text-align:center}.booking-shell>header h1{font:normal clamp(3rem,7vw,6rem)/.9 var(--serif);margin:.2em 0}.booking-shell>header>p:last-child{color:#6b5a5c}.booking-progress{display:flex;justify-content:center;gap:clamp(1.5rem,5vw,4rem);margin:3rem auto}.booking-progress span{width:30px;height:30px;border:1px solid var(--taupe);border-radius:50%;display:grid;place-items:center;font-size:.72rem;position:relative}.booking-progress span:not(:last-child):after{content:'';position:absolute;width:clamp(1.5rem,5vw,4rem);height:1px;background:var(--taupe);left:100%;top:50%}.booking-progress span.active{background:var(--olive);color:#fff}.booking-card{background:var(--white);padding:clamp(1.25rem,5vw,4.5rem);box-shadow:0 20px 70px rgba(74,50,54,.09)}.booking-step{display:none}.booking-step.active{display:block}.booking-step h2{font:normal clamp(2rem,4vw,3.5rem) var(--serif);margin:.3em 0 1.5rem}.category-list,.service-list{display:grid;gap:.7rem}.category-list button,.service-list button{padding:1.2rem;background:transparent;border:1px solid var(--line);text-align:left;display:flex;justify-content:space-between;align-items:center;cursor:pointer}.category-list button:hover,.service-list button:hover,.category-list button:focus-visible,.service-list button:focus-visible,.slots button:hover,.slots button:focus-visible{border-color:var(--olive);background:var(--ivory)}.service-list button[hidden]{display:none}.service-list span b,.service-list span small{display:block}.service-list span small{font-size:.75rem;font-weight:normal;color:#777}.service-list strong{white-space:nowrap}.back{border:0;background:transparent;padding:0;text-decoration:underline;cursor:pointer;margin-bottom:1.2rem}label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;margin:1rem 0}input,select,textarea{display:block;width:100%;margin-top:.45rem;border:1px solid var(--line);background:#fff;padding:.85rem;min-height:49px;border-radius:0}input:focus,select:focus,textarea:focus{outline:2px solid var(--champagne);outline-offset:1px}.slots{display:grid;grid-template-columns:repeat(5,1fr);gap:.6rem;margin-top:1.5rem}.slots button{padding:.7rem;background:#fff;border:1px solid var(--line);cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}.check{display:flex;gap:.6rem;text-transform:none;letter-spacing:0;font-size:.9rem}.check input{width:auto;min-height:auto;margin:.25rem 0}.honeypot{position:absolute!important;left:-9999px!important}.booking-summary{background:var(--ivory);padding:1rem}.booking-summary p{margin:.3rem 0}.confirmation{text-align:center;padding:3rem 0}.confirmation .actions{justify-content:center}.confirmation h2{font-size:clamp(2.7rem,6vw,5rem)}#form-errors{color:#8c2020;margin:1rem 0}#slot-status{margin-top:1.5rem;color:#666}
@media(max-width:900px){.site-header{height:72px}.nav-toggle{display:block}.site-header nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--ivory);padding:1.5rem;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--line)}.site-header nav.open{display:flex}.site-header nav>a{text-align:center;padding:.5rem}.hero{height:calc(100svh - 72px)}.treatments article,.treatments article:nth-child(even){grid-template-columns:1fr}.treatments article:nth-child(even) img{order:0}.treatments img{height:70vw;max-height:600px}.signature,.visit,.about-grid,.contact-grid{grid-template-columns:1fr}.site-footer{grid-template-columns:1fr 1fr}.service-groups article{grid-template-columns:1fr;gap:0}.service-groups h2{margin-bottom:0}.gallery-grid img{height:50vw}.slots{grid-template-columns:repeat(4,1fr)}}
@media(max-width:600px){body{padding-bottom:60px}.site-header{padding:0 1rem}.hero{min-height:560px}.hero-shade{background:linear-gradient(0deg,rgba(40,28,30,.72),rgba(40,28,30,.08))}.hero-copy{left:1.25rem;right:1.25rem;top:auto;bottom:4rem;transform:none}.hero h1{font-size:clamp(3.1rem,16vw,5rem)}.editorial{padding:5rem 1.25rem}.editorial h2{font-size:2.6rem}.treatments{padding:0 0 4rem}.treatments article{margin-bottom:2rem}.treatments article>div{padding:1.8rem 1.25rem 3rem}.treatments img{height:105vw}.signature{padding:5rem 1.25rem}.mosaic{grid-template-columns:1fr 1fr;grid-template-rows:330px 220px}.mosaic img:first-child{grid-column:1/-1;grid-row:auto}.gallery-preview,.popular,.reviews,.service-groups,.gallery-grid,.about-grid,.contact-grid{padding-left:1.25rem;padding-right:1.25rem}.section-head{display:block}.visit{padding:5rem 1.25rem}.site-footer{grid-template-columns:1fr;padding-bottom:4rem}.footer-bottom{grid-column:1}.whatsapp{bottom:72px}.mobile-book{display:flex;position:fixed;z-index:18;left:0;right:0;bottom:0;height:60px;background:var(--olive);color:#fff;text-decoration:none;align-items:center;justify-content:center;text-transform:uppercase;font-size:.75rem;letter-spacing:.14em}.page-intro{padding:4rem 1.25rem}.page-intro h1{font-size:3.8rem}.price-list p{gap:1rem}.price-list span{font-size:1rem}.price-list b{font-size:.85rem}.gallery-grid{display:block}.gallery-grid figure{margin-bottom:1rem}.gallery-grid img{height:110vw}.about-grid img{height:115vw}.form-grid{grid-template-columns:1fr}.slots{grid-template-columns:repeat(3,1fr)}.booking-card{padding:1.2rem}.booking-progress{gap:1.6rem}.booking-progress span:not(:last-child):after{width:1.6rem}.service-list button{padding:.9rem}.service-list strong{font-size:.82rem}}
.treatments span{color:#7a5a58}.site-footer p a{display:inline-flex;min-height:26px;align-items:center}
.service-list button.selected{border-color:var(--olive);background:var(--ivory);box-shadow:inset 4px 0 0 var(--olive)}.service-list button.selected:after{content:'✓';font-weight:700;color:var(--olive);margin-left:.8rem}.selection-status{position:sticky;bottom:0;background:var(--white);border-top:1px solid var(--line);padding:1rem 0;font-weight:700;margin-top:1rem}.booking-actions{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.button:disabled{opacity:.45;cursor:not-allowed}.booking-summary ul{margin:.5rem 0 1rem;padding-left:1.2rem}
body[data-page$="booking"] .mobile-book{display:none}@media(max-width:600px){body[data-page$="booking"]{padding-bottom:0}}
.service-groups article{grid-template-columns:minmax(360px,1fr) 1.8fr;gap:clamp(2rem,5vw,5rem)}.service-groups article>*{min-width:0}.service-groups h2{hyphens:auto;overflow-wrap:anywhere}@media(min-width:1200px){.service-groups article{grid-template-columns:minmax(460px,1fr) 1.8fr}}@media(max-width:900px){.service-groups article{grid-template-columns:1fr}}

/* Premium motion layer */
.site-header{transition:background-color .45s ease,box-shadow .45s ease}.site-header.is-scrolled{background:rgba(246,227,223,.985);box-shadow:0 12px 35px rgba(30,27,22,.07)}.site-header nav>a:not(.button){position:relative}.site-header nav>a:not(.button):after{content:'';position:absolute;left:0;right:100%;bottom:-.45rem;height:1px;background:currentColor;transition:right .35s cubic-bezier(.22,1,.36,1)}.site-header nav>a:not(.button):hover:after,.site-header nav>a:not(.button):focus-visible:after{right:0}.button{transition:background-color .3s ease,border-color .3s ease,color .3s ease,transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s ease}.button:hover,.button:focus-visible{transform:translateY(-2px);box-shadow:0 12px 25px rgba(43,32,34,.14)}.text-link{transition:letter-spacing .3s ease,opacity .3s ease}.text-link:hover,.text-link:focus-visible{letter-spacing:.17em;opacity:.72}.hero>img{transform:translate3d(0,var(--hero-y,0),0) scale(1.075);transform-origin:center 58%;will-change:transform}.hero-copy{translate:0 var(--hero-copy-y,0);will-change:translate}.hero-copy>*{animation:hero-enter .9s cubic-bezier(.22,1,.36,1) both}.hero-copy h1{animation-delay:.08s}.hero-copy>p:not(.eyebrow){animation-delay:.18s}.hero-copy .actions{animation-delay:.28s}@keyframes hero-enter{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.scroll-cue{position:absolute;left:clamp(1.5rem,8vw,8rem);bottom:2rem;display:flex;align-items:center;gap:.8rem;color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.18em;font-size:.62rem}.scroll-cue span{display:block;width:42px;height:1px;background:currentColor;position:relative;overflow:hidden}.scroll-cue span:after{content:'';position:absolute;inset:0;background:#fff;transform:translateX(-110%);animation:cue 2.4s ease-in-out infinite}@keyframes cue{50%,100%{transform:translateX(110%)}}.motion-ready .reveal-item{opacity:0;transform:translateY(42px);transition:opacity .85s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms),transform .85s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms)}.motion-ready .reveal-item.is-visible{opacity:1;transform:translateY(0)}.treatments article>img,.mosaic img,.gallery-grid img{transform:translate3d(0,var(--parallax-y,0),0) scale(1.055);transition:filter .8s ease;will-change:transform;clip-path:inset(0)}.treatments article,.gallery-grid figure{position:relative;isolation:isolate}.treatments article:after,.gallery-grid figure:after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(360px circle at var(--pointer-x,-500px) var(--pointer-y,-500px),rgba(255,255,255,.16),transparent 55%);opacity:0;transition:opacity .5s ease}.treatments article:hover:after,.gallery-grid figure:hover:after{opacity:1}.treatments article>div{position:relative;z-index:3}.price-list p{transition:padding-left .35s ease,background-color .35s ease}.price-list p:hover{padding-left:.75rem;background:rgba(255,255,255,.32)}.mosaic{overflow:hidden}.mosaic img:hover,.gallery-grid img:hover{filter:saturate(1.08) contrast(1.03)}
@media(max-width:600px){.scroll-cue{display:none}.hero>img{transform:translate3d(0,var(--hero-y,0),0) scale(1.06)}.motion-ready .reveal-item{transform:translateY(26px)}.price-list p:hover{padding-left:.2rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero>img,.hero-copy,.treatments article>img,.mosaic img,.gallery-grid img{transform:none!important;translate:none!important;will-change:auto}.hero-copy>*,.scroll-cue span:after{animation:none!important}.motion-ready .reveal-item{opacity:1;transform:none;transition:none}.button,.text-link,.site-header,.price-list p{transition:none}}
.treatments article,.gallery-grid figure{overflow:hidden}

/* Editorial expansion */
body{animation:page-arrive .65s cubic-bezier(.22,1,.36,1) both;transition:opacity .22s ease,filter .22s ease}body.page-leaving{opacity:0;filter:blur(3px)}@keyframes page-arrive{from{opacity:0}to{opacity:1}}.page-intro{position:relative}.page-intro:after{content:'';position:absolute;left:clamp(1.5rem,8vw,8rem);bottom:clamp(2rem,4vw,4rem);width:clamp(55px,7vw,110px);height:1px;background:var(--champagne)}.cinematic-gallery{align-items:start}.cinematic-gallery figure{overflow:visible}.gallery-frame{height:clamp(440px,47vw,720px);overflow:hidden;background:#f0d4cf;position:relative}.cinematic-gallery figure:nth-child(even){margin-top:clamp(4rem,9vw,9rem)}.cinematic-gallery figure:nth-child(3){margin-top:-2rem}.cinematic-gallery img{width:100%;height:calc(100% + 76px);object-fit:cover}.cinematic-gallery figcaption{display:flex;justify-content:space-between;gap:1rem;padding:1rem .15rem 0;font:normal clamp(1rem,1.5vw,1.35rem) var(--serif);transition:padding .35s ease}.cinematic-gallery figcaption span{font:normal .65rem var(--sans);letter-spacing:.18em;color:#74646a}.cinematic-gallery figure:hover figcaption{padding-left:.75rem}.booking-shell{position:relative}.booking-shell:before{content:'';position:absolute;width:520px;height:520px;right:-260px;top:170px;border-radius:50%;background:radial-gradient(circle,rgba(211,160,155,.11),transparent 68%);pointer-events:none}.booking-card{border:1px solid rgba(150,118,116,.13);box-shadow:0 30px 90px rgba(74,50,54,.11)}.booking-progress span{transition:background-color .4s ease,color .4s ease,transform .4s cubic-bezier(.22,1,.36,1)}.booking-progress span.active{transform:scale(1.08)}.category-list button,.service-list button{position:relative;overflow:hidden;transition:border-color .3s ease,background-color .3s ease,transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s ease}.category-list button:before,.service-list button:before{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent,rgba(211,160,155,.09),transparent);transform:translateX(-110%);transition:transform .65s ease}.category-list button:hover:before,.service-list button:hover:before{transform:translateX(110%)}.category-list button:hover,.service-list button:hover{transform:translateX(5px);box-shadow:-5px 0 0 var(--champagne)}.slots button{transition:background-color .25s ease,color .25s ease,border-color .25s ease,transform .25s ease}.slots button:hover,.slots button:focus-visible{transform:translateY(-2px);background:var(--olive);border-color:var(--olive);color:#fff}input,select,textarea{transition:border-color .25s ease,box-shadow .25s ease,background-color .25s ease}input:hover,select:hover,textarea:hover{border-color:var(--taupe)}input:focus,select:focus,textarea:focus{box-shadow:0 8px 24px rgba(74,50,54,.08)}
@media(max-width:900px){.cinematic-gallery figure:nth-child(even),.cinematic-gallery figure:nth-child(3){margin-top:0}.gallery-frame{height:58vw}.booking-shell:before{display:none}}
@media(max-width:600px){.gallery-frame{height:118vw}.cinematic-gallery figcaption{font-size:1rem}.category-list button:hover,.service-list button:hover{transform:none;box-shadow:inset 3px 0 0 var(--champagne)}}
@media(prefers-reduced-motion:reduce){body{animation:none;transition:none}.category-list button:before,.service-list button:before{transition:none}.cinematic-gallery figcaption{transition:none}}

#main{overflow-x:clip}
.service-list strong{margin-left:auto}


.site-footer .social{display:flex;gap:.7rem;margin-top:1.6rem}.site-footer .social-link{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid rgba(255,255,255,.22);border-radius:50%;color:#eee;transition:border-color .3s ease,color .3s ease,transform .3s cubic-bezier(.22,1,.36,1)}.site-footer .social-link svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.site-footer .social-link .fill{fill:currentColor;stroke:none}.site-footer .social-link:hover,.site-footer .social-link:focus-visible{border-color:var(--champagne);color:var(--champagne);transform:translateY(-2px)}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem}.footer-bottom .credit{color:rgba(238,238,238,.62)}.footer-bottom .credit a{color:#eee}.footer-bottom .credit a:hover{color:var(--champagne)}
.whatsapp svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}.whatsapp .fill{fill:currentColor;stroke:none}
@media(max-width:600px){body[data-page$="booking"] .whatsapp{display:none}}
@media(prefers-reduced-motion:reduce){.site-footer .social-link{transition:none}.site-footer .social-link:hover{transform:none}}
.site-footer .social-link .fb{stroke-width:1.1}

.brand{display:inline-grid;grid-template-columns:auto auto;column-gap:.85rem;align-items:center;text-align:left}.brand>span,.brand>small{grid-column:2}.brand>span{align-self:end}.brand>small{align-self:start;margin-top:.35rem}.brand-light{display:inline-grid}
.brand-mark{grid-column:1;grid-row:1/3;width:auto;height:2.55rem;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:square}
.site-footer .brand-mark{height:2.8rem}
@media(max-width:600px){.brand{column-gap:.65rem}.brand-mark{height:2.2rem}}
.map-section{padding:0 clamp(1.25rem,6vw,6rem) clamp(4.5rem,8vw,8rem);max-width:1450px;margin:auto}
.map-embed{position:relative;height:clamp(360px,42vw,540px);overflow:hidden;border:1px solid var(--line);background-color:#f0d4cf;background-image:linear-gradient(rgba(150,118,116,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(150,118,116,.14) 1px,transparent 1px),linear-gradient(118deg,transparent 58%,rgba(222,175,170,.32) 58.2%,rgba(222,175,170,.32) 59%,transparent 59.2%),linear-gradient(28deg,transparent 70%,rgba(150,118,116,.22) 70.2%,rgba(150,118,116,.22) 71.6%,transparent 71.8%);background-size:56px 56px,56px 56px,100% 100%,100% 100%}
.map-consent{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(1.5rem,5vw,4.5rem);max-width:560px}
.map-address{font:normal clamp(1.7rem,3.2vw,2.6rem)/1.12 var(--serif);margin:.5rem 0 1.1rem}
.map-note{font-size:.8rem;line-height:1.6;color:#5c4d51;margin:0 0 1.6rem;max-width:40ch}
.map-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) sepia(.16) contrast(.94) brightness(1.03);opacity:0;transition:opacity .7s ease}
.map-embed.is-ready iframe{opacity:1}.map-embed.is-loaded .map-consent{display:none}
@media(prefers-reduced-motion:reduce){.map-embed iframe{transition:none}}
a,.back{text-decoration:none}
.site-footer a:not(.social-link),.contact-grid a:not(.button),.text-link,.back{transition:color .25s ease}
.site-footer a:not(.social-link):hover,.site-footer a:not(.social-link):focus-visible{color:var(--champagne)}
.contact-grid a:not(.button):hover,.contact-grid a:not(.button):focus-visible,.text-link:hover,.text-link:focus-visible,.back:hover,.back:focus-visible{color:var(--taupe)}
.legal p a{text-decoration:underline;text-underline-offset:4px}


.policy-box{border-left:2px solid var(--champagne);background:var(--ivory);padding:1rem 1.2rem;margin:1.2rem 0;font-size:.88rem;line-height:1.6}.policy-box strong{display:block;font:normal 1.15rem var(--serif);margin-bottom:.3rem}.policy-box p{margin:.3rem 0}
.price-notes{max-width:1450px;margin:0 auto;padding:0 clamp(1.25rem,6vw,6rem) clamp(3rem,6vw,5rem);color:#5c4d51;font-size:.9rem;line-height:1.7}.price-notes h2{font:normal 1.5rem var(--serif);color:var(--charcoal);margin:1.5rem 0 .5rem}
.legal-date{margin-top:2.5rem;font-size:.8rem;color:#6b5a5c}

.reviews-score{font:normal clamp(2.4rem,5vw,4.4rem)/1.05 var(--serif);margin:.6rem 0 0}.reviews-score span{display:block;font:normal .72rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#6b5a5c;margin-top:1rem}
.review-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin:3rem 0 2.5rem;text-align:left}
.review-card{margin:0;padding:1.8rem 1.7rem;background:var(--white);border:1px solid var(--line);break-inside:avoid;margin-bottom:1.5rem;display:flex;flex-direction:column;justify-content:space-between}.review-cards .review-card{margin-bottom:0}
.review-card blockquote{margin:0 0 1.4rem;font:normal 1.12rem/1.55 var(--serif);color:var(--charcoal)}
.review-card figcaption{font:normal .66rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#6b5a5c;border-top:1px solid var(--line);padding-top:1rem}
.review-card:focus{outline:none}.review-card:focus-visible{outline:2px solid var(--champagne);outline-offset:3px}
.review-wall{max-width:1450px;margin:0 auto;padding:0 clamp(1.25rem,6vw,6rem);columns:3 300px;column-gap:1.5rem}
.review-more{max-width:760px;margin:1.5rem auto 0;padding:0 1.25rem clamp(3rem,6vw,5rem);text-align:center;color:#5c4d51;font-size:.9rem;line-height:1.7}.review-more .button{margin-bottom:2rem}.review-source{font-size:.78rem;color:#6b5a5c}
@media(max-width:900px){.review-cards{grid-template-columns:1fr}}
.review-card[hidden]{display:none}
#more-reviews[hidden]{display:none}



/* --- Enhanced booking, pricing and UI styling --- */
.price-action{display:inline-flex;align-items:center;gap:1.1rem;margin-left:auto}
.price-book-btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--sans);font-size:.66rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;padding:.35rem .85rem;border:1px solid var(--olive);background:transparent;color:var(--olive);text-decoration:none;transition:background-color .25s ease,color .25s ease,border-color .25s ease,transform .2s ease;white-space:nowrap;line-height:1}
.price-book-btn:hover,.price-book-btn:focus-visible{background:var(--olive);color:var(--white);transform:translateY(-1px)}
.employee-assigned{display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 1.2rem;background:var(--ivory);border:1px solid var(--line);font-size:.88rem;margin:1rem 0 1.5rem}
.employee-assigned strong{color:var(--olive)}
.parking-note{font-size:.82rem;color:#6b5a5c;margin-top:.75rem;line-height:1.55}
.voucher-notice{background:var(--white);border-left:3px solid var(--champagne);border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.1rem 1.4rem;margin:1.8rem 0 1rem;font-size:.88rem;line-height:1.65;color:#555}
.voucher-notice strong{display:block;margin-bottom:.3rem;color:var(--charcoal);font-size:1.05rem;font-family:var(--serif)}
@media(max-width:650px){
  .price-action{flex-direction:row;align-items:center;gap:.75rem}
  .price-book-btn{padding:.3rem .6rem;font-size:.62rem}
  .whatsapp{bottom:76px;right:.85rem}
  .mobile-book{z-index:25}
}


/* --- Master Designer Prestige Layer --- */

/* Gold text selection */
::selection {
  background: var(--sand);
  color: var(--charcoal);
}

/* Custom luxury scrollbar */
::-webkit-scrollbar {
  width: 6px;
}
::-webkit-scrollbar-track {
  background: var(--ivory);
}
::-webkit-scrollbar-thumb {
  background: var(--taupe);
  border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--olive);
}

/* Hero Trust Badge */
.hero-trust-badge {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .45rem 1.1rem;
  background: rgba(43,32,34, 0.48);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 100px;
  font-size: .75rem;
  letter-spacing: .08em;
  color: #fff;
  margin-bottom: 1.4rem;
  animation: hero-enter .8s cubic-bezier(.22,1,.36,1) both;
}
.hero-trust-badge .stars {
  color: #dfc38c;
  letter-spacing: .12em;
  font-size: .8rem;
}

/* Hero Ken-Burns Cinematic subtle zoom */
.hero > img {
  animation: ken-burns 18s ease-in-out infinite alternate;
}
@keyframes ken-burns {
  0% { transform: translate3d(0, var(--hero-y, 0), 0) scale(1.05); }
  100% { transform: translate3d(0, var(--hero-y, 0), 0) scale(1.12); }
}

/* Button Subtle Shimmer */
.button {
  position: relative;
  overflow: hidden;
}
.button::after {
  content: '';
  position: absolute;
  top: -50%;
  left: -60%;
  width: 40%;
  height: 200%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.25), transparent);
  transform: rotate(25deg);
  opacity: 0;
  pointer-events: none;
}
.button:hover::after {
  left: 120%;
  opacity: 1;
  transition: left .75s ease-in-out;
}

/* Sticky Category Pills on /prices */
.price-nav-wrapper {
  max-width: 1450px;
  margin: 0 auto;
  padding: 0 clamp(1.25rem, 6vw, 6rem);
  position: sticky;
  top: 88px;
  z-index: 15;
  background: rgba(246,227,223, 0.94);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.price-category-pills {
  display: flex;
  gap: .6rem;
  overflow-x: auto;
  padding: .9rem 0;
  scrollbar-width: none;
}
.price-category-pills::-webkit-scrollbar {
  display: none;
}
.pill-btn {
  display: inline-flex;
  align-items: center;
  padding: .45rem 1.1rem;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 100px;
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--charcoal);
  text-decoration: none;
  white-space: nowrap;
  transition: all .25s ease;
}
.pill-btn:hover, .pill-btn:focus-visible {
  background: var(--olive);
  border-color: var(--olive);
  color: var(--white);
  transform: translateY(-1px);
}

/* Service Tags (Bestseller, Beliebt, Signature) */
.service-tag {
  display: inline-block;
  vertical-align: middle;
  font-family: var(--sans);
  font-size: .58rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  padding: .2rem .55rem;
  border-radius: 4px;
  background: rgba(74,50,54, 0.08);
  color: var(--olive);
  margin-left: .65rem;
  font-weight: 600;
}
.service-tag.tag-gold {
  background: rgba(211,160,155, 0.16);
  color: #8c5450;
  border: 1px solid rgba(211,160,155, 0.32);
}

/* Review 5-Star Styling */
.review-stars {
  color: #d3a09b;
  letter-spacing: .15em;
  font-size: .88rem;
  margin-bottom: .85rem;
}
.verified-tag {
  display: inline-block;
  color: #4b6a4f;
  font-weight: 600;
  letter-spacing: .08em;
  margin-right: .4rem;
}
.review-card {
  position: relative;
  transition: transform .3s ease, box-shadow .3s ease;
}
.review-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 36px rgba(74,50,54, 0.07);
}
.review-card::before {
  content: '“';
  position: absolute;
  top: .6rem;
  right: 1.2rem;
  font-family: var(--serif);
  font-size: 4rem;
  line-height: 1;
  color: rgba(211,160,155, 0.12);
  pointer-events: none;
}

/* Booking Trust Box in Step 4 */
.booking-trust-box {
  background: rgba(246,227,223, 0.7);
  border: 1px solid rgba(227,195,190, 0.6);
  border-left: 3px solid var(--champagne);
  border-radius: 4px;
  padding: 1.15rem 1.4rem;
  margin: 1.5rem 0 1.8rem;
  display: grid;
  gap: .75rem;
}
.trust-item {
  display: flex;
  align-items: center;
  gap: .75rem;
  font-size: .84rem;
  color: #4a4a48;
  line-height: 1.4;
}
.trust-svg {
  flex-shrink: 0;
  color: var(--champagne, #d3a09b);
}
.trust-payment {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .5rem .75rem;
}
.twint-badge {
  display: inline-block;
  vertical-align: middle;
  height: 20px;
  width: auto;
  border-radius: 4px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
  transition: transform .2s ease;
}
.twint-badge:hover {
  transform: scale(1.05);
}
.twint-badge-inline {
  display: inline-block;
  vertical-align: -3px;
  height: 18px;
  width: auto;
  border-radius: 3px;
  margin: 0 4px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}
.verified-tag {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}
.verified-svg {
  color: var(--olive, #4a3236);
}

/* Vacation Banner */
.vacation-badge {
  background: var(--olive);
  color: var(--white);
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .15em;
  padding: .35rem .75rem;
  border-radius: 2px;
  font-weight: 600;
  white-space: nowrap;
}

@media(max-width: 900px) {
  .price-nav-wrapper {
    top: 72px;
  }
}
@media(max-width: 600px) {
  .hero-trust-badge {
    font-size: .68rem;
    padding: .35rem .85rem;
  }
}


/* ==========================================================================
   Reels & Video Showcase Section (Master Designer)
   ========================================================================== */
/* ==========================================================================
   Master Designer - Luxury Video Reels & Stories Component
   ========================================================================== */
.reels-section {
  max-width: 1350px;
  margin: 0 auto;
  padding: clamp(3.5rem, 7vw, 6rem) clamp(1.25rem, 6vw, 6rem);
}

/* Symmetrical, perfectly centered header (fixes crooked column layout) */
.reels-head {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  max-width: 820px !important;
  margin: 0 auto 3rem !important;
  padding: 0 1rem !important;
}
.reels-head .eyebrow {
  display: block !important;
  font-size: .82rem !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
  color: var(--taupe, #6f5f5d) !important;
  margin: 0 0 .6rem !important;
  text-align: center !important;
}
.reels-head h2 {
  font-family: var(--serif, 'Cormorant Garamond', Georgia, serif) !important;
  font-size: clamp(2.3rem, 4.5vw, 3.4rem) !important;
  font-weight: 300 !important;
  line-height: 1.18 !important;
  color: var(--charcoal, #2b2022) !important;
  margin: 0 0 1rem !important;
  text-align: center !important;
}
.reels-head p.reels-sub {
  font-size: 1.05rem !important;
  color: #555553 !important;
  line-height: 1.65 !important;
  margin: 0 auto !important;
  text-align: center !important;
  max-width: 640px !important;
}

.reels-container {
  position: relative;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}
.reels-container.is-duo .reels-grid {
  justify-content: center;
}
.reels-container.is-slider .reels-grid {
  justify-content: flex-start;
}

.reels-grid {
  display: flex;
  gap: 2rem;
  overflow-x: auto;
  padding: 1rem .5rem 2rem;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.reels-grid::-webkit-scrollbar {
  height: 6px;
}
.reels-grid::-webkit-scrollbar-track {
  background: rgba(227,195,190, 0.2);
  border-radius: 3px;
}
.reels-grid::-webkit-scrollbar-thumb {
  background: var(--sand, #e3c3be);
  border-radius: 3px;
}

.reel-card {
  flex: 0 0 clamp(280px, 30vw, 340px);
  scroll-snap-align: center;
  position: relative;
  background: #2b2022;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 16px 40px rgba(43,32,34, 0.12);
  border: 1px solid rgba(227,195,190, 0.4);
  aspect-ratio: 9 / 16;
  cursor: pointer;
  transition: transform .35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .35s ease;
}
.reel-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 50px rgba(43,32,34, 0.22);
}

.reel-card video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  pointer-events: none;
}

.reel-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.25rem;
  background: linear-gradient(180deg, rgba(43,32,34, 0.45) 0%, transparent 30%, transparent 55%, rgba(43,32,34, 0.92) 100%);
  transition: background .3s ease;
}

.reel-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  z-index: 2;
}

.reel-badge {
  background: rgba(74,50,54, 0.85);
  backdrop-filter: blur(8px);
  color: var(--champagne);
  font-size: .65rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  font-weight: 600;
  padding: .35rem .75rem;
  border-radius: 2px;
  border: 1px solid rgba(211,160,155, 0.35);
}

.reel-sound-btn {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(43,32,34, 0.65);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(227,195,190, 0.4);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all .2s ease;
  padding: 0;
  outline: none;
}
.reel-sound-btn:hover {
  background: var(--champagne);
  color: var(--charcoal);
  transform: scale(1.08);
}

/* Bottom section: Information on the left, Play button in bottom-right corner */
.reel-bottom {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: .85rem !important;
  z-index: 2 !important;
  position: relative !important;
  width: 100% !important;
}

.reel-bottom-info {
  flex: 1 !important;
  min-width: 0 !important;
}
.reel-bottom-info h3 {
  font-family: var(--serif, 'Cormorant Garamond', Georgia, serif) !important;
  font-size: 1.35rem !important;
  font-weight: 400 !important;
  color: #fff !important;
  margin: 0 0 .25rem !important;
  text-shadow: 0 2px 6px rgba(0,0,0,0.7) !important;
}
.reel-bottom-info p {
  font-size: .8rem !important;
  color: rgba(255, 255, 255, 0.9) !important;
  margin: 0 0 .75rem !important;
  line-height: 1.4 !important;
  text-shadow: 0 1px 4px rgba(0,0,0,0.7) !important;
}
.reel-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--champagne);
  text-decoration: none;
  background: rgba(43,32,34, 0.7);
  backdrop-filter: blur(8px);
  padding: .45rem .95rem;
  border-radius: 2px;
  border: 1px solid rgba(211,160,155, 0.45);
  transition: all .25s ease;
}
.reel-btn:hover {
  background: var(--champagne);
  color: var(--charcoal);
  border-color: var(--champagne);
}

/* Play/Pause Button in Bottom Right Corner */
.reel-play-btn {
  flex-shrink: 0 !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  background: rgba(43,32,34, 0.75) !important;
  backdrop-filter: blur(8px) !important;
  border: 1.5px solid var(--champagne) !important;
  color: var(--champagne) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: all .25s cubic-bezier(0.16, 1, 0.3, 1) !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.4) !important;
  padding: 0 !important;
  margin-bottom: 2px !important;
  outline: none !important;
}
.reel-play-btn:hover {
  background: var(--champagne) !important;
  color: #2b2022 !important;
  transform: scale(1.1) !important;
  box-shadow: 0 6px 20px rgba(211,160,155, 0.4) !important;
}
.reel-play-btn .icon-play {
  margin-left: 2px;
}
.reel-card.is-playing .reel-play-btn {
  background: rgba(211,160,155, 0.95) !important;
  color: #2b2022 !important;
}
.reel-card.is-playing .reel-play-btn .icon-play {
  display: none !important;
}
.reel-card.is-playing .reel-play-btn .icon-pause {
  display: block !important;
}

/* Carousel Navigation Arrows */
.reel-nav-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(246,227,223, 0.95);
  backdrop-filter: blur(8px);
  border: 1px solid var(--champagne);
  color: var(--charcoal);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 10;
  box-shadow: 0 4px 16px rgba(0,0,0,0.15);
  transition: all .25s ease;
  outline: none;
}
.reel-nav-btn:hover {
  background: var(--champagne);
  color: var(--charcoal);
  transform: translateY(-50%) scale(1.08);
}
.reel-prev { left: -16px; }
.reel-next { right: -16px; }

.reels-container.is-duo .reel-nav-btn {
  display: none;
}

/* Single Reel Highlight (for /nails and /lashes) */
.single-reel-highlight {
  max-width: 1100px;
  margin: 3.5rem auto;
  padding: 0 clamp(1.25rem, 5vw, 3rem);
}
.single-reel-inner {
  display: grid;
  grid-template-columns: minmax(280px, 320px) 1fr;
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
  background: rgba(246,227,223, 0.6);
  border: 1px solid rgba(227,195,190, 0.5);
  border-radius: 8px;
  padding: clamp(2rem, 4vw, 3.5rem);
}
.single-reel-copy h2 {
  font-family: var(--serif, 'Cormorant Garamond', Georgia, serif) !important;
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  font-weight: 300;
  margin: .4rem 0 1rem;
}
.single-reel-copy p {
  color: #555;
  line-height: 1.7;
  margin-bottom: 2rem;
  font-size: 1.05rem;
}

@media (max-width: 820px) {
  .single-reel-inner {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }
  .single-reel-copy .actions {
    justify-content: center;
  }
  .reel-prev { left: 4px; }
  .reel-next { right: 4px; }
  .reels-container.is-duo .reels-grid {
    justify-content: flex-start;
  }
}
@media (max-width: 680px) {
  .reels-grid {
    justify-content: flex-start;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}


/* Input Validation Styles */
input.is-invalid, textarea.is-invalid, select.is-invalid {
  border-color: #a82828 !important;
  background: #fff8f8 !important;
  box-shadow: 0 0 0 1px #a82828 !important;
}
.field-error-msg {
  display: block;
  color: #a82828;
  font-size: .8rem;
  margin-top: .35rem;
  font-weight: 500;
  line-height: 1.35;
}
.input-hint {
  display: block;
  font-size: .75rem;
  color: #777;
  margin-top: .25rem;
  font-weight: 400;
}


/* Interactive Live Opening Status Badge */
.live-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.35rem 0.8rem;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.35;
  margin-bottom: 0.75rem;
  transition: background 0.2s ease, border-color 0.2s ease;
  letter-spacing: 0.01em;
}
.live-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
  position: relative;
  flex-shrink: 0;
}
.live-status-text {
  display: inline-block;
}

/* Light / Contact Page Variants */
.live-status-badge.is-open {
  background: rgba(45, 159, 88, 0.08);
  color: #1e6b3b;
  border: 1px solid rgba(45, 159, 88, 0.25);
}
.live-status-badge.is-open .live-status-dot {
  background: #28a745;
  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.6);
  animation: liveDotPulse 2s infinite ease-out;
}

.live-status-badge.is-closed {
  background: rgba(125,108,110, 0.08);
  color: #55504a;
  border: 1px solid rgba(125,108,110, 0.2);
}
.live-status-badge.is-closed .live-status-dot {
  background: #7a6a6d;
}

.live-status-badge.is-vacation {
  background: rgba(196, 141, 63, 0.1);
  color: #8c5b16;
  border: 1px solid rgba(196, 141, 63, 0.3);
}
.live-status-badge.is-vacation .live-status-dot {
  background: #d99b38;
  box-shadow: 0 0 0 0 rgba(217, 155, 56, 0.5);
  animation: liveDotPulseVacation 2.5s infinite ease-out;
}

.live-status-badge.is-holiday {
  background: rgba(157, 91, 122, 0.1);
  color: #733352;
  border: 1px solid rgba(157, 91, 122, 0.28);
}
.live-status-badge.is-holiday .live-status-dot {
  background: #b8648e;
}

/* Dark Footer Overrides */
.site-footer .live-status-badge {
  margin-bottom: 0.85rem;
  font-size: 0.8rem;
}
.site-footer .live-status-badge.is-open {
  background: rgba(45, 159, 88, 0.16);
  color: #87e8b0;
  border-color: rgba(45, 159, 88, 0.35);
}
.site-footer .live-status-badge.is-closed {
  background: rgba(255, 255, 255, 0.07);
  color: #d9cbc8;
  border-color: rgba(255, 255, 255, 0.14);
}
.site-footer .live-status-badge.is-vacation {
  background: rgba(217, 155, 56, 0.18);
  color: #f5cf92;
  border-color: rgba(217, 155, 56, 0.35);
}
.site-footer .live-status-badge.is-holiday {
  background: rgba(184, 100, 142, 0.18);
  color: #f0bcd4;
  border-color: rgba(184, 100, 142, 0.35);
}

@keyframes liveDotPulse {
  0% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.6); }
  70% { box-shadow: 0 0 0 6px rgba(40, 167, 69, 0); }
  100% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0); }
}

@keyframes liveDotPulseVacation {
  0% { box-shadow: 0 0 0 0 rgba(217, 155, 56, 0.6); }
  70% { box-shadow: 0 0 0 6px rgba(217, 155, 56, 0); }
  100% { box-shadow: 0 0 0 0 rgba(217, 155, 56, 0); }
}


/* ==========================================================================
   Lebendige Kontaktseite & Studio-Präsentation
   ========================================================================== */

/* Schnellkontakt-Karten */
.contact-quick-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  max-width: 1450px;
  margin: -1rem auto clamp(3rem, 6vw, 4.5rem);
  padding: 0 clamp(1.25rem, 6vw, 6rem);
}

.contact-card {
  display: flex;
  align-items: center;
  gap: 1.15rem;
  padding: 1.25rem 1.4rem;
  background: #fffaf8;
  border: 1px solid rgba(150,118,116, 0.25);
  border-radius: 14px;
  text-decoration: none;
  color: #2b2022;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.03);
  transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.28s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s ease;
  position: relative;
}

.contact-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.07);
  border-color: #6a5256;
}

.contact-card.is-primary {
  background: #3a2a2d;
  color: #fffaf8;
  border-color: #3a2a2d;
}

.contact-card.is-primary:hover {
  border-color: #2b2022;
  box-shadow: 0 14px 32px rgba(74,50,54, 0.22);
}

.contact-card-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: rgba(74,50,54, 0.07);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #5a4146;
  transition: background 0.2s, color 0.2s;
}

.contact-card-icon.is-wa {
  background: rgba(37, 211, 102, 0.12);
  color: #128c7e;
}

.contact-card.is-primary .contact-card-icon {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.contact-card-body {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  flex: 1;
  min-width: 0;
}

.contact-card-label {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #8c7b7e;
  font-weight: 600;
}

.contact-card.is-primary .contact-card-label {
  color: #d8bfb9;
}

.contact-card-value {
  font-size: 1.05rem;
  font-weight: 600;
  color: inherit;
  line-height: 1.25;
}

.contact-card-hint {
  font-size: 0.78rem;
  color: #6f5f61;
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.contact-card.is-primary .contact-card-hint {
  color: #e3c3be;
}

.contact-card-action {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.05);
  color: inherit;
  flex-shrink: 0;
  letter-spacing: 0.02em;
  transition: background 0.2s, color 0.2s;
}

.contact-card:hover .contact-card-action {
  background: #5a4146;
  color: #fff;
}

.contact-card.is-primary .contact-card-action {
  background: #d4a75e;
  color: #2b2022;
}

.contact-card.is-primary:hover .contact-card-action {
  background: #e2ba77;
}

/* Hauptbereich Contact Grid */
.contact-grid {
  gap: clamp(2.5rem, 5vw, 5rem) !important;
  align-items: start;
}

/* Studio Box (Links) */
.contact-studio-box {
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}

.contact-studio-media {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 1414 / 2000;
  width: 100%;
  max-width: 410px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
  border: 1px solid rgba(150,118,116, 0.25);
  background: #111;
}

.contact-studio-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.contact-studio-media:hover img {
  transform: scale(1.03);
}

.contact-media-badge {
  position: absolute;
  bottom: 1rem;
  left: 1rem;
  background: rgba(26, 28, 24, 0.78);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #fffaf8;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.contact-location-info h2 {
  margin-bottom: 0.75rem;
  font-size: clamp(1.6rem, 2.8vw, 2.2rem) !important;
}

.contact-address {
  font-size: 1rem;
  line-height: 1.5;
  margin-bottom: 0.85rem;
  color: #333;
}

.contact-links {
  font-size: 1.05rem;
  line-height: 1.7;
  margin-bottom: 1.25rem;
}

.contact-links a {
  color: #2b2022;
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 500;
}

.contact-links a:hover {
  color: #6f5f5d;
}

.parking-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.85rem;
}

.parking-pill {
  font-size: 0.78rem;
  padding: 0.4rem 0.85rem;
  background: rgba(150,118,116, 0.09);
  border: 1px solid rgba(150,118,116, 0.22);
  border-radius: 999px;
  color: #4f473e;
  font-weight: 500;
  line-height: 1.3;
}

/* Öffnungszeiten Box (Rechts) */
.contact-hours-box {
  background: #fffaf8;
  border: 1px solid rgba(150,118,116, 0.22);
  border-radius: 16px;
  padding: clamp(1.75rem, 3.5vw, 2.5rem);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
}

.contact-hours-box h2 {
  font-size: clamp(1.6rem, 2.8vw, 2.2rem) !important;
  margin-bottom: 0.5rem;
}

.opening-schedule {
  list-style: none;
  margin: 1.35rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.schedule-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 1rem;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(150,118,116, 0.15);
  font-size: 0.95rem;
  transition: all 0.2s ease;
}

.schedule-row.is-today {
  background: rgba(45, 159, 88, 0.07);
  border: 1px solid rgba(45, 159, 88, 0.3);
  box-shadow: 0 3px 12px rgba(45, 159, 88, 0.08);
}

.schedule-day {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 500;
  color: #2b2022;
}

.schedule-row.is-today .schedule-day {
  font-weight: 600;
  color: #195831;
}

.today-chip {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: #28a745;
  color: #fff;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  display: inline-block;
  line-height: 1.35;
}

.schedule-time {
  font-weight: 600;
  color: #2b2022;
  text-align: right;
  white-space: nowrap;
}

.schedule-row.is-today .schedule-time {
  color: #195831;
  font-weight: 700;
}

.late-note {
  font-size: 0.78rem;
  font-weight: 400;
  color: #6f5f61;
}

.schedule-row.is-closed-row .schedule-time {
  color: #8c7b7e;
  font-weight: 500;
}

.schedule-notice {
  font-size: 0.82rem;
  color: #726264;
  margin-top: 1.25rem;
  line-height: 1.45;
  padding-top: 0.85rem;
  border-top: 1px dashed rgba(150,118,116, 0.2);
}

/* Responsive Anpassungen */
@media (max-width: 960px) {
  .contact-quick-cards {
    grid-template-columns: 1fr;
    gap: 0.85rem;
    margin-top: 0;
  }
  .contact-grid {
    grid-template-columns: 1fr !important;
    gap: 2.5rem !important;
  }
}

@media (max-width: 580px) {
  .contact-card {
    padding: 1.1rem 1.2rem;
  }
  .contact-card-value {
    font-size: 0.98rem;
  }
  .schedule-row {
    padding: 0.65rem 0.85rem;
    font-size: 0.88rem;
  }
  .schedule-time {
    font-size: 0.88rem;
  }
}


/* ==========================================================================
   Editorial Magazin-Spread für Kontaktseite (Master Designer & Responsive)
   ========================================================================== */
.contact-editorial-spread {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(2.5rem, 5vw, 4.5rem);
  max-width: 1450px;
  margin: 0 auto clamp(3.5rem, 6vw, 5.5rem);
  padding: 0 clamp(1.25rem, 6vw, 6rem);
  align-items: stretch;
}

.contact-card-info {
  background: #fffaf8;
  border: 1px solid rgba(150,118,116, 0.25);
  border-radius: 18px;
  padding: clamp(2rem, 4vw, 3rem);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}

.contact-brand-head h2 {
  font-size: clamp(1.8rem, 2.8vw, 2.3rem) !important;
  margin: 0 0 0.5rem;
  line-height: 1.15;
}

.contact-address {
  font-size: 1.05rem;
  color: #43363a;
  margin: 0;
  line-height: 1.4;
}

.contact-direct-lines {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem 2rem;
  padding: 0.9rem 0;
  border-top: 1px solid rgba(150,118,116, 0.2);
  border-bottom: 1px solid rgba(150,118,116, 0.2);
}

.contact-line-link {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  color: #2b2022;
  text-decoration: none;
  font-size: 0.98rem;
  font-weight: 500;
  transition: color 0.2s ease;
}

.contact-line-link svg {
  color: #6f5f5d;
  flex-shrink: 0;
  transition: transform 0.2s ease, color 0.2s ease;
}

.contact-line-link:hover {
  color: #8c5450;
}

.contact-line-link:hover svg {
  color: #8c5450;
  transform: scale(1.1);
}

.contact-schedule-block {
  margin-top: 0.25rem;
}

.schedule-head-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
}

.schedule-head-row h3 {
  font: normal clamp(1.25rem, 2vw, 1.5rem) var(--serif);
  margin: 0;
  color: #2b2022;
}

.contact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 0.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(150,118,116, 0.18);
}

.contact-photo-column {
  display: flex;
}

.contact-editorial-frame {
  width: 100%;
  height: 100%;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 16px 45px rgba(0, 0, 0, 0.12);
  border: 1px solid rgba(150,118,116, 0.25);
  background: #151513;
  display: flex;
}

.contact-editorial-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.contact-editorial-frame:hover img {
  transform: scale(1.025);
}

/* Tablet Optimierung (max-width: 960px) */
@media (max-width: 960px) {
  .contact-editorial-spread {
    grid-template-columns: 1fr;
    gap: 2.5rem;
    padding: 0 clamp(1.25rem, 4vw, 3rem);
  }
  .contact-photo-column {
    justify-content: center;
  }
  .contact-editorial-frame {
    aspect-ratio: 1414 / 2000;
    max-height: 520px;
    margin: 0 auto;
    width: 100%;
    max-width: 380px;
  }
}

/* Smartphone & Handy Optimierung (max-width: 680px) */
@media (max-width: 680px) {
  body[data-page="contact"] .whatsapp {
    display: none;
  }

  .contact-editorial-spread {
    grid-template-columns: 1fr;
    gap: 1.75rem;
    padding: 0 1rem;
    margin: 0 auto 2.5rem;
  }

  .contact-card-info {
    padding: 1.35rem 1rem;
    border-radius: 16px;
    gap: 1.15rem;
    box-shadow: 0 6px 22px rgba(0, 0, 0, 0.05);
  }

  .contact-brand-head h2 {
    font-size: 1.45rem !important;
    line-height: 1.2;
    margin: 0 0 0.35rem;
  }

  .contact-address {
    font-size: 0.92rem;
    line-height: 1.35;
  }

  .contact-direct-lines {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 0.75rem 0;
  }

  .contact-line-link {
    font-size: 0.95rem;
    padding: 0.2rem 0;
  }

  .parking-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
  }

  .parking-pill {
    font-size: 0.76rem;
    padding: 0.28rem 0.55rem;
    border-radius: 6px;
    background: rgba(150,118,116, 0.12);
    color: #433d36;
  }

  .schedule-head-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
    margin-bottom: 0.65rem;
  }

  .schedule-head-row h3 {
    font-size: 1.25rem;
  }

  .opening-schedule {
    gap: 0.4rem;
  }

  .schedule-row {
    padding: 0.55rem 0.7rem;
    font-size: 0.84rem;
    gap: 0.35rem;
    border-radius: 8px;
  }

  .schedule-day {
    font-size: 0.84rem;
    gap: 0.35rem;
    white-space: nowrap;
  }

  .today-chip {
    font-size: 0.6rem;
    padding: 0.1rem 0.4rem;
  }

  .schedule-time {
    font-size: 0.84rem;
    text-align: right;
    white-space: nowrap;
    margin-left: auto;
  }

  .late-note {
    display: block;
    font-size: 0.7rem;
    line-height: 1.1;
    margin-top: 0.15rem;
    color: #65565a;
  }

  .schedule-notice {
    font-size: 0.78rem;
    margin-top: 0.85rem;
    padding-top: 0.65rem;
    line-height: 1.4;
  }

  .contact-actions {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    width: 100%;
    margin-top: 0.25rem;
    padding-top: 1rem;
  }

  .contact-actions .button {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0.9rem 1rem;
    font-size: 0.92rem;
    letter-spacing: 0.08em;
    box-sizing: border-box;
    text-align: center;
    min-height: 46px;
  }

  .contact-photo-column {
    display: flex;
    justify-content: center;
    width: 100%;
  }

  .contact-editorial-frame {
    width: 100%;
    max-width: 320px;
    height: auto;
    aspect-ratio: 1414 / 2000;
    max-height: 460px;
    margin: 0 auto;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  }

  .contact-editorial-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
  }

  .map-section {
    padding: 0 1rem 3rem;
  }

  .map-embed {
    height: 340px;
    border-radius: 16px;
  }

  .map-consent {
    padding: 1.35rem 1rem;
    max-width: 100%;
  }

  .map-address {
    font-size: 1.35rem;
    margin: 0.25rem 0 0.65rem;
  }

  .map-note {
    font-size: 0.78rem;
    margin-bottom: 1.15rem;
  }

  .map-consent .actions {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    width: 100%;
  }

  .map-consent .actions .button {
    width: 100%;
    text-align: center;
    justify-content: center;
    min-height: 44px;
    display: flex;
    align-items: center;
  }
}

/* Anreise & Parkieren (Kontakt) */
.travel-info{margin-top:clamp(1.75rem,3vw,2.5rem)}
.travel-info .eyebrow{margin-bottom:1.5rem}
.travel-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,5vw,5rem);border-top:1px solid var(--line);padding-top:2rem}
.travel-item h3{font:normal clamp(1.5rem,2.4vw,2rem)/1.15 var(--serif);margin:0 0 .5rem}
.travel-item p{margin:0;max-width:46ch;color:#4d4a45}
@media(max-width:700px){.travel-grid{grid-template-columns:1fr;gap:1.5rem}}
/* Anreise & Parkieren: Desktop als Overlay rechts in der Anfahrt-Box, nach dem Laden der Karte unter der Karte */
.map-section{position:relative}
@media(min-width:1100px){
.map-embed:not(.is-loaded)+.travel-info{position:absolute;z-index:2;margin:0;right:calc(clamp(1.25rem,6vw,6rem) + clamp(1.5rem,5vw,4.5rem));top:calc(clamp(360px,42vw,540px) / 2);transform:translateY(-50%);width:min(380px,36%);padding:1.5rem 1.75rem;background:rgba(255,250,248,.72);border:1px solid var(--line)}
.map-embed:not(.is-loaded)+.travel-info .eyebrow{margin-bottom:1rem}
.map-embed:not(.is-loaded)+.travel-info .travel-grid{grid-template-columns:1fr;gap:1.25rem;border-top:0;padding-top:0}
}

/* Ferien-Hinweis: schwebende Karte unten links */
.vacation-toast{position:fixed;left:1rem;bottom:1rem;z-index:17;width:min(360px,calc(100vw - 2rem));display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;padding:1.1rem 2.9rem 1rem 1.2rem;background:var(--white);border:1px solid var(--line);border-left:4px solid var(--champagne);box-shadow:0 12px 34px rgba(43,32,34,.14)}
.vacation-toast{text-align:left}
.vacation-toast[hidden]{display:none}
.vacation-toast p{margin:0;font-size:.85rem;line-height:1.5;color:var(--charcoal)}
.vacation-close{position:absolute;top:.35rem;right:.35rem;width:44px;height:44px;display:grid;place-items:center;border:0;background:transparent;color:var(--charcoal);cursor:pointer;transition:color .25s ease}
.vacation-close:hover,.vacation-close:focus-visible{color:var(--taupe)}
.vacation-more{padding:0;border:0;background:transparent;font:inherit;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;text-decoration:underline;text-underline-offset:5px;color:var(--olive);cursor:pointer;min-height:32px}
.vacation-more:hover,.vacation-more:focus-visible{color:var(--taupe)}
.vacation-dialog{width:min(520px,calc(100vw - 2rem));padding:clamp(1.5rem,5vw,2.75rem);border:1px solid var(--line);border-top:4px solid var(--champagne);background:var(--white);color:var(--charcoal)}
.vacation-dialog::backdrop{background:rgba(43,32,34,.55)}
.vacation-dialog h2{font:normal clamp(2rem,5vw,2.8rem)/1.05 var(--serif);margin:.1em 0 .4em}
.vacation-period{font:italic 1.35rem/1.3 var(--serif);margin:0 0 1rem}
.vacation-details{margin:0 0 1rem;font-size:.9rem;line-height:1.65}
@media(max-width:600px){
  .vacation-toast{bottom:76px;right:4.2rem;width:auto;padding:.9rem 2.7rem .8rem 1rem}
  .vacation-toast p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  body[data-page$="booking"] .vacation-toast{bottom:1rem;right:1rem}
}

/* Galerie: Magazin-Mosaik mit wechselnden Formaten, Lightbox */
.cinematic-gallery.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1rem,2vw,1.75rem);align-items:stretch}
.cinematic-gallery figure:nth-child(n){margin:0;grid-column:span 6;display:flex;flex-direction:column}
.cinematic-gallery figure:nth-child(1){grid-column:1/span 5}
.cinematic-gallery figure:nth-child(2){grid-column:6/span 7}
.cinematic-gallery figure:nth-child(3),.cinematic-gallery figure:nth-child(4),.cinematic-gallery figure:nth-child(5){grid-column:span 4}
.cinematic-gallery figure:nth-child(6),.cinematic-gallery figure:nth-child(7),.cinematic-gallery figure:nth-child(8){grid-column:span 4}
.cinematic-gallery .gallery-frame{height:auto;flex:1 1 auto;min-height:0;cursor:zoom-in;outline-offset:3px}
.cinematic-gallery figure:nth-child(1) .gallery-frame{aspect-ratio:4/5}
.cinematic-gallery figure:nth-child(3) .gallery-frame{aspect-ratio:1/1}
.cinematic-gallery figure:nth-child(6) .gallery-frame{aspect-ratio:4/5}
.cinematic-gallery .gallery-frame img{position:absolute;left:0;top:-38px;width:100%;height:calc(100% + 76px);transition:scale 1s cubic-bezier(.22,1,.36,1),filter .8s ease}
.cinematic-gallery .gallery-frame:hover img{scale:1.045}
.cinematic-gallery .gallery-frame:after{content:'';position:absolute;right:1rem;bottom:1rem;width:44px;height:44px;border-radius:50%;background:rgba(255,250,248,.9) linear-gradient(var(--olive),var(--olive)) center/14px 1.5px no-repeat,linear-gradient(var(--olive),var(--olive)) center/1.5px 14px no-repeat;opacity:0;transform:scale(.8);transition:opacity .4s ease,transform .4s ease;pointer-events:none;z-index:3}
.cinematic-gallery .gallery-frame:hover:after,.cinematic-gallery .gallery-frame:focus-visible:after{opacity:1;transform:none}
@media(max-width:900px){
  .cinematic-gallery.gallery-grid{grid-template-columns:1fr 1fr;gap:.8rem}
  .cinematic-gallery figure:nth-child(n){grid-column:span 1;margin:0}
  .cinematic-gallery figure:nth-child(3n+1),.cinematic-gallery figure:last-child:nth-child(even){grid-column:1/-1}
  .cinematic-gallery .gallery-frame{aspect-ratio:4/5}
  .cinematic-gallery figure:nth-child(3n+1) .gallery-frame,.cinematic-gallery figure:last-child:nth-child(even) .gallery-frame{aspect-ratio:5/4}
  .cinematic-gallery figcaption{font-size:.95rem;flex-wrap:wrap;gap:.1rem .8rem}
}
@media(hover:none){.cinematic-gallery .gallery-frame:after{display:none}}
@media(prefers-reduced-motion:reduce){.cinematic-gallery .gallery-frame img,.cinematic-gallery .gallery-frame:after{transition:none}.cinematic-gallery .gallery-frame:hover img{scale:none}}
.lightbox{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(40,28,30,.94);color:var(--white)}
.lightbox::backdrop{background:rgba(40,28,30,.94)}
.lightbox[open]{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem;padding:clamp(.75rem,2vw,2rem)}
.lb-figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:1rem;min-width:0;max-height:100%}
.lb-figure img{max-width:100%;max-height:calc(100dvh - 8rem);width:auto;height:auto;object-fit:contain}
.lb-figure figcaption{font:normal 1.15rem/1.3 var(--serif);text-align:center;letter-spacing:.02em}
.lb-figure figcaption span{font:normal .65rem var(--sans);letter-spacing:.18em;margin-right:.9rem;opacity:.7}
.lb-btn{width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(255,250,248,.35);border-radius:50%;background:transparent;color:var(--white);cursor:pointer;transition:background .25s ease,border-color .25s ease}
.lb-btn:hover,.lb-btn:focus-visible{background:rgba(255,250,248,.14);border-color:var(--white)}
.lb-close{position:absolute;top:clamp(.75rem,2vw,1.5rem);right:clamp(.75rem,2vw,1.5rem);z-index:2}
html.lb-open{overflow:hidden}
@media(max-width:700px){
  .lightbox[open]{grid-template-columns:1fr;grid-template-rows:1fr auto;padding:3.5rem .75rem 1rem}
  .lb-prev,.lb-next{position:absolute;bottom:1rem;z-index:2}
  .lb-prev{left:1rem}.lb-next{right:1rem}
  .lb-figure img{max-height:calc(100dvh - 12rem)}
  .lb-figure figcaption{padding:0 4rem}
}

/* Startseite: Bogenform, grosse Konturziffern, Wasserzeichen */
.treatments article>img{clip-path:inset(0 round 220px 24px 220px 24px);transition:filter .8s ease,scale 1.2s cubic-bezier(.22,1,.36,1)}
.treatments article:nth-child(even)>img{clip-path:inset(0 round 24px 220px 24px 220px)}
.treatments article:hover>img{scale:1.035}
.treatments article>div>span{display:block;font:italic 400 clamp(4.5rem,9vw,8rem)/.85 var(--serif);color:transparent;-webkit-text-stroke:1px var(--champagne);margin:0 0 .15em -.04em}
.treatments article>div>h2{margin-top:0}
.mosaic img:first-child{clip-path:inset(0 round 200px 24px 200px 24px)}
.signature{position:relative;overflow:hidden}
.signature>*{position:relative;z-index:1}
.signature:before{content:'BEYOND';position:absolute;right:-1vw;bottom:-.2em;font:normal clamp(7rem,21vw,19rem)/1 var(--serif);letter-spacing:.05em;color:transparent;-webkit-text-stroke:1px rgba(255,250,248,.11);pointer-events:none;user-select:none}
.signature h2{font-size:clamp(3rem,7vw,7rem);line-height:.95}
@media(prefers-reduced-motion:reduce){.treatments article:hover>img{scale:none}.treatments article>img{transition:none}}
@media(max-width:600px){.treatments article>img,.treatments article:nth-child(even)>img{clip-path:inset(0 round 140px 20px 140px 20px)}.treatments article>div>span{font-size:4.5rem}.mosaic img:first-child{clip-path:inset(0 round 120px 18px 120px 18px)}}

/* Startseite Feinschliff: ruhigerer Hero, Preisliste mit Champagner-Akzenten, Besuch mit Bild */
@media(min-width:601px){.hero-shade{background:linear-gradient(90deg,rgba(40,28,30,.8) 0%,rgba(40,28,30,.6) 34%,rgba(40,28,30,.18) 70%,rgba(40,28,30,.05) 100%),linear-gradient(0deg,rgba(40,28,30,.4),transparent 38%)}}
@media(max-width:600px){.hero-shade{background:linear-gradient(0deg,rgba(40,28,30,.88) 0%,rgba(40,28,30,.62) 42%,rgba(40,28,30,.1) 78%)}}
.hero-copy{text-shadow:0 2px 28px rgba(0,0,0,.35)}
.popular .eyebrow:before{content:'';display:inline-block;width:2.2rem;height:1px;background:var(--champagne);vertical-align:middle;margin-right:.9rem}
.popular .price-list{border-top:1px solid var(--champagne)}
.popular .price-list p{transition:padding .35s ease,background .35s ease}
.popular .price-list p:hover{padding-left:1.1rem;background:linear-gradient(90deg,rgba(211,160,155,.14),transparent)}
.popular .price-list b{font:italic 400 1.5rem/1 var(--serif);color:#8c5450}
.visit{background:linear-gradient(100deg,rgba(43,32,34,.97) 0%,rgba(43,32,34,.9) 45%,rgba(43,32,34,.6) 100%),url(../img/gallery-1.webp) center/cover;background-color:var(--charcoal)}
.visit>div:last-child{background:rgba(255,250,248,.06);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,250,248,.18);border-radius:28px 6px 28px 6px;padding:clamp(1.25rem,3vw,2.5rem)}
.visit>div:last-child p:last-child{border-bottom:0}
@media(prefers-reduced-motion:reduce){.popular .price-list p{transition:none}}
.visit .parking-note{color:rgba(255,250,248,.78);max-width:46ch}

/* Preisseite: Stil der Startseite, ruhigere Labels, solide Kategorie-Leiste */
.price-nav-wrapper{background:var(--ivory);-webkit-backdrop-filter:none;backdrop-filter:none}
.price-list .service-tag{display:inline-block;vertical-align:middle;margin-left:.65rem;padding:.3rem .65rem;font:600 .56rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;border:1px solid rgba(211,160,155,.55);border-radius:100px;background:transparent;color:#8c5450}
.price-list .service-tag.tag-gold{background:rgba(211,160,155,.16);border-color:rgba(211,160,155,.6);color:#8f5c58}
body[data-page="prices"] .page-intro{padding-top:clamp(3.5rem,7vw,6.5rem);padding-bottom:clamp(2.5rem,5vw,4rem)}
body[data-page="prices"] .service-groups{counter-reset:cat}
body[data-page="prices"] .service-groups article h2:before{counter-increment:cat;content:counter(cat,decimal-leading-zero);display:block;margin-bottom:.35rem;font:italic 400 1.1rem/1 var(--serif);letter-spacing:.08em;color:var(--champagne)}
body[data-page="prices"] .price-list{border-top:1px solid var(--champagne)}
body[data-page="prices"] .price-list p:hover{background:linear-gradient(90deg,rgba(211,160,155,.14),transparent)}
body[data-page="prices"] .price-list b{font:italic 400 1.35rem/1.1 var(--serif);color:#8c5450}
.voucher-notice{border:1px solid rgba(211,160,155,.45);border-radius:28px 6px 28px 6px;background:linear-gradient(135deg,rgba(211,160,155,.15),rgba(255,250,248,.92));padding:1.5rem 1.75rem}
.voucher-notice strong{font-size:1.5rem;font-weight:400;margin-bottom:.45rem}
@media(max-width:650px){
  body[data-page="prices"] .price-list b{font-size:1.15rem}
  .price-list .service-tag{margin:.3rem 0 0;display:table}
}

/* Über uns und Bewertungen im gemeinsamen Stil */
body[data-page="about"] .page-intro,body[data-page="reviews"] .page-intro{padding-top:clamp(3.5rem,7vw,6.5rem);padding-bottom:clamp(2.5rem,5vw,4rem)}
.about-photo{position:relative;isolation:isolate}
.about-photo:before{content:'';position:absolute;inset:0;z-index:-1;border:1px solid rgba(211,160,155,.7);border-radius:220px 24px 220px 24px;transform:translate(clamp(10px,1.6vw,22px),clamp(10px,1.6vw,22px))}
.about-photo img{display:block;border-radius:220px 24px 220px 24px}
.about-quote{margin:1.75rem 0 2rem;padding:1.1rem 0 0;border-top:1px solid rgba(211,160,155,.6);font:italic 400 clamp(1.25rem,2vw,1.6rem)/1.45 var(--serif);color:var(--charcoal);max-width:34ch}
.about-quote cite{display:block;margin-top:.6rem;font:normal .66rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#6b5a5c}
.review-card{border-radius:22px 4px 22px 4px;border-color:rgba(211,160,155,.3);transition:transform .35s ease,box-shadow .35s ease}
.review-card:nth-child(even){border-radius:4px 22px 4px 22px}
.review-card:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(74,50,54,.08)}
@media(max-width:900px){.about-photo img{height:115vw;border-radius:140px 20px 140px 20px}.about-photo:before{border-radius:140px 20px 140px 20px}}
@media(prefers-reduced-motion:reduce){.review-card{transition:none}.review-card:hover{transform:none}}

/* Preisseite: Bildkacheln statt Filterleiste, Bild je Kategorie */
.price-tiles{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(.7rem,1.4vw,1.2rem);max-width:1450px;margin:0 auto;padding:0 clamp(1.25rem,6vw,6rem) clamp(2.5rem,5vw,4.5rem)}
.price-tile{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;border-radius:60px 10px 60px 10px;background:#f0d4cf;color:var(--white);text-decoration:none;isolation:isolate}
.price-tile:nth-child(even){border-radius:10px 60px 10px 60px}
.price-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:scale 1s cubic-bezier(.22,1,.36,1)}
.price-tile:after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(40,28,30,.78),rgba(40,28,30,.05) 62%)}
.price-tile-label{position:absolute;left:1rem;right:1rem;bottom:.95rem;z-index:2;display:flex;flex-direction:column;gap:.25rem}
.price-tile-label b{font:normal clamp(1.05rem,1.5vw,1.3rem)/1.15 var(--serif)}
.price-tile-label small{font:normal .62rem var(--sans);letter-spacing:.14em;text-transform:uppercase;opacity:.82}
.price-tile:hover img,.price-tile:focus-visible img{scale:1.06}
.price-tile:focus-visible{outline:2px solid var(--champagne);outline-offset:3px}
.service-groups article{scroll-margin-top:110px}
.cat-head{align-self:start}
.cat-photo{display:block;width:min(100%,320px);aspect-ratio:4/5;object-fit:cover;margin-top:1.5rem;border-radius:140px 18px 140px 18px;background:#f0d4cf}
.service-groups article:nth-child(even) .cat-photo{border-radius:18px 140px 18px 140px}
@media(min-width:901px){.cat-head{position:sticky;top:140px}}
@media(max-width:1100px){.price-tiles{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){
  .price-tiles{grid-template-columns:repeat(2,1fr);padding-left:1rem;padding-right:1rem}
  .price-tile{border-radius:40px 8px 40px 8px}
  .price-tile:nth-child(even){border-radius:8px 40px 8px 40px}
  .cat-photo{width:100%;aspect-ratio:16/10;margin:1rem 0 1.25rem;border-radius:90px 14px 90px 14px}
  .service-groups article:nth-child(even) .cat-photo{border-radius:14px 90px 14px 90px}
}
@media(prefers-reduced-motion:reduce){.price-tile img{transition:none}.price-tile:hover img{scale:none}}
.price-tile-label b{font-size:clamp(.98rem,1.1vw,1.2rem);overflow-wrap:anywhere;hyphens:auto}
@media(min-width:901px){.cat-photo{aspect-ratio:1/1;width:min(100%,300px)}}
.price-list p[hidden]{display:none}
.price-more{display:inline-flex;align-items:center;gap:.7rem;margin:1.4rem 0 0 .2rem;padding:.55rem 0;border:0;border-bottom:1px solid var(--champagne);background:transparent;color:var(--olive);font:600 .7rem var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:color .25s ease,border-color .25s ease}
.price-more:hover,.price-more:focus-visible{color:#8c5450;border-color:#8c5450}
.price-more:after{content:'';width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .3s ease}
.price-more[aria-expanded="true"]:after{transform:rotate(-135deg) translateY(-2px)}
.cat-head .voucher-notice{margin:1.5rem 0 0;max-width:420px}
@media(min-width:901px){.service-groups article>.price-more{grid-column:2;justify-self:start}}
@media(max-width:650px){body[data-page="prices"] .price-action{flex-direction:column;align-items:flex-end;gap:.45rem}}
@media(min-width:901px){.service-groups article>.price-more{margin-top:-2.5rem}}
.voucher-steps{counter-reset:vs;list-style:none;margin:.9rem 0 0;padding:0}
.voucher-steps li{counter-increment:vs;display:flex;gap:.75rem;margin:.45rem 0;line-height:1.5}
.voucher-steps li:before{content:counter(vs);flex:0 0 1.4rem;font:italic 400 1.2rem/1.2 var(--serif);color:#8c5450}

/* Gutschein-Bestellung */
.voucher-order{max-width:820px;margin:0 auto;padding:0 clamp(1.25rem,6vw,3rem) clamp(4rem,8vw,7rem)}
.voucher-form fieldset{border:0;margin:0 0 2.4rem;padding:0;min-width:0}
.voucher-form legend{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem;padding:0;font:normal clamp(1.6rem,3vw,2.1rem)/1.1 var(--serif)}
.voucher-form legend span{display:inline-grid;place-items:center;width:2rem;height:2rem;border:1px solid var(--champagne);border-radius:50%;font:italic 400 1rem/1 var(--serif);color:#8c5450}
.amount-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.7rem}
.amount-grid.two{grid-template-columns:1fr 1fr}
.amount-chip{position:relative;display:block;margin:0;font-size:inherit;text-transform:none;letter-spacing:0}
.amount-chip input{position:absolute;opacity:0;width:1px;height:1px;margin:0;min-height:0}
.amount-chip span{display:flex;align-items:center;justify-content:center;min-height:56px;padding:.6rem 1rem;border:1px solid var(--line);border-radius:22px 4px 22px 4px;background:var(--white);font:normal 1.2rem/1.2 var(--serif);cursor:pointer;text-align:center;transition:border-color .25s ease,background .25s ease,color .25s ease}
.amount-chip:hover span{border-color:var(--champagne)}
.amount-chip input:checked+span{background:var(--olive);border-color:var(--olive);color:var(--white)}
.amount-chip input:focus-visible+span{outline:2px solid var(--champagne);outline-offset:3px}
.voucher-form .field{margin:1rem 0 0}
.voucher-form textarea{resize:vertical}
.voucher-form .addr{display:grid;grid-template-columns:2fr 1fr 2fr;gap:0 1rem;margin-top:.4rem}
.voucher-form:has(#del-pickup:checked) .addr{display:none}
.voucher-form .amount-custom{max-width:340px}
.voucher-pay{font-size:.88rem;line-height:1.65;color:#555;margin:0 0 1.5rem}
.voucher-form .notice ul{margin:0;padding-left:1.1rem}
.voucher-done{padding:clamp(1.5rem,4vw,3rem);border:1px solid rgba(211,160,155,.45);border-radius:36px 8px 36px 8px;background:linear-gradient(135deg,rgba(211,160,155,.14),rgba(255,250,248,.94))}
.voucher-done h2{font:normal clamp(2rem,4vw,3rem)/1.1 var(--serif);margin:.2em 0 .5em}
@media(max-width:650px){.voucher-form .addr{grid-template-columns:1fr}.amount-grid.two{grid-template-columns:1fr}}
.voucher-notice .button{margin-top:1rem}
.voucher-order{max-width:1250px;padding-left:clamp(1.5rem,8vw,8rem);padding-right:clamp(1.5rem,8vw,8rem)}
.voucher-form,.voucher-done{max-width:720px}
.voucher-form:has(#amount-custom-radio:not(:checked)) .amount-custom{display:none}
@media(max-width:600px){.voucher-order{padding-left:1.25rem;padding-right:1.25rem}}

/* Zusammengeführte Leistungen (Neuset/Auffüllen) */
.price-variants{display:flex;flex-direction:column;align-items:flex-end;gap:.6rem;margin-left:auto}
.price-variant{display:inline-flex;align-items:center;gap:1.1rem}
.price-variant i{font-style:normal;font-size:.78rem;color:var(--taupe);text-align:right}
@media(max-width:650px){.price-list p:has(.price-variants){flex-wrap:wrap}.price-variants{width:100%;margin:.7rem 0 0;align-items:stretch;gap:.5rem}.price-variant{gap:.8rem}.price-variant i{flex:1;text-align:left;font-size:.78rem}}
.service-variants{display:grid;gap:.7rem}
.service-variants[hidden]{display:none}
.service-variants-title{font:normal 1.25rem/1.2 var(--serif);margin-top:.5rem}
.price-list small:empty{display:none}

/* Online buchen: Stimmung (Bildkacheln, Konturziffern, Seitenbild) */
body[data-page$="booking"] .vacation-toast{display:none}
.vacation-band{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.35rem .8rem;max-width:760px;margin:1.6rem auto 0;padding:.8rem 1.2rem;background:rgba(211,160,155,.12);border:1px solid rgba(211,160,155,.45);border-radius:26px 6px 26px 6px;color:var(--charcoal);text-align:left}
.vacation-band svg{flex:0 0 auto;color:#8c5450}
.vacation-band p{margin:0;font-size:.88rem;line-height:1.5;color:var(--charcoal)}
.vacation-band button{padding:0;border:0;background:transparent;font:inherit;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;text-decoration:underline;text-underline-offset:5px;color:var(--olive);cursor:pointer;min-height:32px}
.booking-progress{align-items:center;gap:0;margin:2.4rem auto}
.booking-progress span{width:auto;height:auto;border:0;border-radius:0;font:italic 400 1.5rem/1 var(--serif);color:transparent;-webkit-text-stroke:1px var(--taupe);padding:0 clamp(.7rem,2.6vw,1.6rem);position:relative;transition:color .4s ease,-webkit-text-stroke-color .4s ease}
.booking-progress span:not(:last-child):after{width:100%;left:50%;top:50%;height:1px;background:rgba(150,118,116,.35);z-index:-1}
.booking-progress span.active{background:transparent;color:#8c5450;-webkit-text-stroke:1px #8c5450;transform:none}
.booking-progress span.active:not(:last-child):after{background:var(--champagne)}
.booking-progress{isolation:isolate}
.category-tiles{grid-template-columns:repeat(2,1fr);gap:clamp(.8rem,2vw,1.4rem)}
.category-list button.cat-tile{position:relative;display:block;aspect-ratio:4/5;padding:0;overflow:hidden;border:0;border-radius:60px 10px 60px 10px;background:#f0d4cf;color:var(--white);text-align:left;isolation:isolate;transform:none;box-shadow:none}
.category-list button.cat-tile.is-alt{border-radius:10px 60px 10px 60px}
.category-list button.cat-tile:hover,.category-list button.cat-tile:focus-visible{transform:none;box-shadow:none;background:#f0d4cf}
.category-list button.cat-tile:before{display:none}
.cat-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:scale 1s cubic-bezier(.22,1,.36,1)}
.cat-tile:after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(40,28,30,.8),rgba(40,28,30,.05) 62%)}
.cat-tile-label{position:absolute;left:1.2rem;right:3.4rem;bottom:1.1rem;z-index:2;display:flex;flex-direction:column;gap:.3rem}
.cat-tile-label b{font:normal clamp(1.2rem,2.2vw,1.65rem)/1.1 var(--serif)}
.cat-tile-label small{font:normal .64rem var(--sans);letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.cat-tile-arrow{position:absolute;right:1rem;bottom:1rem;z-index:2;width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(255,250,248,.7);border-radius:50%;transition:background-color .3s ease,color .3s ease,transform .3s ease}
.cat-tile:hover img,.cat-tile:focus-visible img{scale:1.06}
.cat-tile:hover .cat-tile-arrow,.cat-tile:focus-visible .cat-tile-arrow{background:var(--champagne);border-color:var(--champagne);color:var(--charcoal);transform:translateX(3px)}
.cat-tile:focus-visible{outline:2px solid var(--champagne);outline-offset:3px}
.booking-aside{display:none;margin:0}
.booking-aside img{display:block;width:100%;height:100%;object-fit:cover}
.booking-card.has-aside{display:grid;grid-template-columns:minmax(0,1fr) clamp(200px,24%,280px);gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.booking-card.has-aside .booking-aside{display:block;grid-column:2;grid-row:1;position:sticky;top:96px;aspect-ratio:3/4;border-radius:10px 70px 10px 70px;overflow:hidden;background:#f0d4cf}
.booking-card.has-aside .booking-step{grid-column:1;grid-row:1;min-width:0}
.service-list button{border-radius:0 18px 0 18px}
.service-list button.selected{border-color:var(--champagne);box-shadow:inset 0 0 0 1px var(--champagne);animation:booking-pop .35s cubic-bezier(.22,1,.36,1)}
.service-list button.selected:after{color:#8c5450}
@keyframes booking-pop{0%{transform:scale(.985)}60%{transform:scale(1.008)}100%{transform:scale(1)}}
.service-list button:hover{border-radius:0 18px 0 18px}
.booking-assure{display:flex;align-items:center;justify-content:center;gap:.7rem;max-width:620px;margin:1.6rem auto 0;color:#6b5a5c;font-size:.82rem;line-height:1.5;text-align:left}
.booking-assure svg{flex:0 0 auto;color:#8c5450}
@media(max-width:900px){
  .booking-card.has-aside{display:block}
  .booking-card.has-aside .booking-aside{display:block;position:static;aspect-ratio:auto;height:104px;margin:0 0 1.2rem;border-radius:10px 44px 10px 44px}
  .booking-aside img{object-position:center 40%}
}
@media(max-width:600px){
  .category-tiles{grid-template-columns:repeat(2,1fr);gap:.7rem}
  .category-list button.cat-tile{border-radius:36px 8px 36px 8px}
  .category-list button.cat-tile.is-alt{border-radius:8px 36px 8px 36px}
  .cat-tile-label{left:.8rem;right:.8rem;bottom:2.9rem}
  .cat-tile-arrow{right:.7rem;bottom:.7rem;width:32px;height:32px}
  .booking-progress span{font-size:1.25rem;padding:0 .55rem}
  .vacation-band{text-align:left}
}
@media(prefers-reduced-motion:reduce){.service-list button.selected{animation:none}.cat-tile img,.cat-tile-arrow{transition:none}}
@media(min-width:901px){.category-tiles{grid-template-columns:repeat(4,1fr)}.cat-tile-label{left:1rem;right:3.2rem}.cat-tile-label b{font-size:1.25rem}.category-list button.cat-tile{border-radius:44px 8px 44px 8px}.category-list button.cat-tile.is-alt{border-radius:8px 44px 8px 44px}}
@media(max-width:600px){.cat-tile-label b{font-size:1rem;overflow-wrap:anywhere;hyphens:auto}}
.cat-tile-arrow{right:.8rem;top:.8rem;bottom:auto}
.cat-tile:after{background:linear-gradient(0deg,rgba(40,28,30,.86),rgba(40,28,30,.18) 55%,rgba(40,28,30,0) 78%)}
.cat-tile-label{right:.9rem;bottom:1rem}
@media(min-width:901px){.cat-tile-label{left:1rem;right:.9rem}.cat-tile-label b{font-size:1.2rem;overflow-wrap:normal}}
@media(max-width:600px){.cat-tile-label{left:.8rem;right:.6rem;bottom:.85rem}.cat-tile-label b{font-size:.98rem;hyphens:manual;overflow-wrap:normal}.cat-tile-arrow{top:.6rem;right:.6rem;bottom:auto;width:30px;height:30px}}
/* Fortschritt: Linie nur zwischen den Ziffern, nicht durch sie hindurch */
.booking-progress{--pg:clamp(2.2rem,7vw,3.6rem);gap:var(--pg);margin:2.4rem auto}
.booking-progress span,.booking-progress span.active{padding:0}
.booking-progress span:not(:last-child):after{left:calc(100% + .55rem);width:calc(var(--pg) - 1.1rem);top:55%;z-index:auto}
@media(max-width:600px){.booking-progress{--pg:1.9rem}.booking-progress span,.booking-progress span.active{padding:0}}

/* Fortschritt: aktueller Schritt deutlich, erledigte in Gold, kommende zurückhaltend */
.booking-progress{align-items:flex-start;--pg:clamp(2rem,6vw,3.4rem)}
.booking-progress span,.booking-progress span.active{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:0;-webkit-text-stroke:0;color:#766669;transform:none;width:auto;height:auto}
.booking-progress span:after,.booking-progress span:not(:last-child):after,.booking-progress span.active:not(:last-child):after{display:none}
.booking-progress b{position:relative;display:block;padding:.3rem .85rem;font:italic 400 1.55rem/1.1 var(--serif);color:inherit;border-radius:14px 3px 14px 3px;border:1px solid transparent;transition:background-color .35s ease,color .35s ease,border-color .35s ease}
.booking-progress span:not(:last-child) b:after{content:'';position:absolute;left:calc(100% + .35rem);top:52%;width:calc(var(--pg) - .7rem);height:1px;background:rgba(150,118,116,.4)}
.booking-progress span.active:not(.current) b:after{background:var(--champagne)}
.booking-progress em{font:600 .6rem/1 var(--sans);font-style:normal;letter-spacing:.16em;text-transform:uppercase;color:#766669}
.booking-progress span.active{color:#8c5450}
.booking-progress span.active em{color:#8c5450}
.booking-progress span.current{color:#fffaf8}
.booking-progress span.current b{background:var(--olive);border-color:var(--olive);color:#fbe9e4;box-shadow:0 8px 20px rgba(74,50,54,.22)}
.booking-progress span.current em{color:var(--charcoal)}
@media(max-width:600px){
  .booking-progress{--pg:1.5rem}
  .booking-progress b{padding:.25rem .55rem;font-size:1.3rem}
  .booking-progress span:not(.current) em{display:none}
  .booking-progress span:not(:last-child) b:after{left:calc(100% + .2rem);width:calc(var(--pg) - .4rem)}
}
/* Handy: Preise und Leistungen besser lesbar (Cormorant hat kleine Buchstaben, Zusatztexte waren zu klein und zu hell) */
@media(max-width:650px){
  .price-list span{font-size:1.32rem;line-height:1.2;color:var(--charcoal)}
  .price-list small{font-size:.88rem;line-height:1.45;color:#4d3f42;margin-top:.35rem}
  body[data-page="prices"] .price-list b,.price-list b{font-size:1.3rem}
  .price-list p{padding:1.15rem .2rem}
  .price-variant i{font-size:.88rem;color:#4d3f42}
  .price-book-btn{font-size:.72rem;padding:.45rem .75rem}
  .service-list span b{font-size:1.02rem}
  .service-list span small{font-size:.86rem;color:#4d3f42}
  .service-list strong{font-size:.95rem}
  .service-variants-title{font-size:1.4rem}
  .booking-assure{font-size:.9rem}
  .booking-progress em{font-size:.7rem}
}

/* Preisliste vereinheitlicht: gleiche Zusatzzeilen, gleiche Preisspalte, gleiche Einheiten */
.price-variant i{font:normal .82rem/1.3 var(--sans);color:#54464a}
.price-action b,.price-variant b{min-width:4.8rem;text-align:right}
.price-variants{gap:.5rem}
@media(max-width:650px){
  body[data-page="prices"] .price-action,.price-action{flex-direction:row;align-items:center;gap:.8rem}
  .price-action b,.price-variant b{min-width:4.2rem}
  .price-variant i{font-size:.88rem;color:#4d3f42}
  .price-variants{margin-top:.55rem}
}
@media(min-width:651px){.price-variant i{white-space:nowrap}.price-list p>span:first-child{min-width:0;flex:1 1 auto}.price-variants{flex:0 0 auto}}
.nowrap{white-space:nowrap}
.voucher-steps li>span{min-width:0}
.voucher-pickup{margin:0 0 2rem;padding:1rem 1.2rem;background:rgba(211,160,155,.12);border-left:3px solid var(--champagne);border-radius:0 18px 0 18px;line-height:1.6}

/* Kontaktkarte und einheitliche Schrift (überschreibt die älteren Kontakt-Regeln, auch die !important im Seitenstil) */
h1,h2,h3,h4{font-weight:400}
h2.eyebrow,h3.eyebrow{font-family:var(--sans);font-weight:400;font-size:.7rem}
body[data-page="contact"] .contact-card-info{background:var(--white);border:1px solid rgba(150,118,116,.22);border-radius:70px 12px 70px 12px!important;box-shadow:0 24px 70px rgba(74,50,54,.08);padding:clamp(1.8rem,4vw,3.2rem)!important;gap:1.8rem!important}
body[data-page="contact"] .contact-brand-head h2{font:normal clamp(2rem,3.4vw,2.8rem)/1.1 var(--serif)!important;letter-spacing:.01em;margin:0 0 .5rem!important}
body[data-page="contact"] .contact-address{color:#43363a;font-size:1rem}
body[data-page="contact"] .contact-address strong{font-weight:500}
body[data-page="contact"] .contact-direct-lines{border-top:1px solid rgba(211,160,155,.45);border-bottom:1px solid rgba(211,160,155,.45)}
body[data-page="contact"] .schedule-head-row h3{font:normal clamp(1.5rem,2.2vw,1.9rem)/1.1 var(--serif)!important}
body[data-page="contact"] .opening-schedule{gap:0!important;margin-top:.9rem}
body[data-page="contact"] .schedule-row{background:transparent!important;border:0!important;border-bottom:1px solid rgba(150,118,116,.28)!important;border-radius:0!important;box-shadow:none!important;padding:.95rem .2rem!important;font-size:1rem!important;gap:1rem!important}
body[data-page="contact"] .schedule-row:last-child{border-bottom:0!important}
body[data-page="contact"] .schedule-day{font-weight:400;color:var(--charcoal)}
body[data-page="contact"] .schedule-time{font-weight:500;color:var(--charcoal)}
body[data-page="contact"] .late-note{display:block;font-size:.8rem;font-weight:400;color:#4d3f42;margin-top:.1rem}
body[data-page="contact"] .schedule-row.is-today{background:linear-gradient(90deg,rgba(211,160,155,.16),rgba(211,160,155,0) 85%)!important;border-bottom-color:rgba(211,160,155,.55)!important;box-shadow:inset 3px 0 0 var(--champagne)!important;padding-left:.9rem!important;border-radius:0 14px 14px 0!important}
body[data-page="contact"] .schedule-row.is-today .schedule-day,body[data-page="contact"] .schedule-row.is-today .schedule-time{color:var(--charcoal);font-weight:500}
body[data-page="contact"] .schedule-row.is-closed-row .schedule-time{color:#54464a;font-weight:400}
body[data-page="contact"] .today-chip{background:var(--olive);color:#fbe9e4;font-size:.62rem;font-weight:600;letter-spacing:.14em;padding:.2rem .6rem;border-radius:10px 3px 10px 3px}
body[data-page="contact"] .schedule-notice{border-top:0!important;padding-top:0!important;margin-top:1.1rem!important;font-size:.9rem!important;color:#4d3f42!important}
body[data-page="contact"] .contact-actions{border-top:1px solid rgba(211,160,155,.45)}
body[data-page="contact"] .contact-actions .button{border-radius:22px 4px 22px 4px}
body[data-page="contact"] .contact-editorial-frame{border-radius:12px 70px 12px 70px!important}
@media(max-width:680px){
  body[data-page="contact"] .contact-card-info{border-radius:36px 8px 36px 8px!important;padding:1.5rem 1.15rem!important}
  body[data-page="contact"] .contact-editorial-frame{border-radius:8px 40px 8px 40px!important}
  body[data-page="contact"] .schedule-row{font-size:.95rem!important;padding:.85rem .1rem!important;flex-wrap:wrap}
  body[data-page="contact"] .schedule-day{white-space:normal!important}
  body[data-page="contact"] .schedule-time{font-size:.95rem!important}
  body[data-page="contact"] .late-note{font-size:.8rem!important}
  body[data-page="contact"] .schedule-notice{font-size:.88rem!important}
  body[data-page="contact"] .schedule-head-row h3{font-size:1.5rem!important}
}
body[data-page="contact"] .contact-brand-head h2{font-size:clamp(1.55rem,2.5vw,2.2rem)!important;text-wrap:balance}
body[data-page="contact"] .schedule-row{padding-left:0!important;padding-right:0!important}
body[data-page="contact"] .schedule-row.is-today{padding-left:.9rem!important;padding-right:.4rem!important}
body[data-page="contact"] .live-status-badge{font-size:.82rem}
@media(max-width:680px){body[data-page="contact"] .contact-brand-head h2{font-size:1.6rem!important}}
.reels-head h2{font-weight:400!important}
.visit .parking-note{font-size:.92rem;line-height:1.65;max-width:52ch}
.visit .parking-note strong{font-weight:600;color:var(--white)}
/* Über uns: echtes Studiofoto im Querformat statt hohem Hochformat */
.about-grid .about-photo img{height:auto;aspect-ratio:4/3;object-fit:cover}
@media(max-width:900px){.about-grid .about-photo img,.about-photo img{height:auto;aspect-ratio:4/3}}
/* WhatsApp-Knopf in der Rosé-Palette */
.whatsapp{background:#4a3236;color:#fbe9e4;border:1px solid rgba(211,160,155,.65);box-shadow:0 8px 24px rgba(74,50,54,.28);transition:background-color .25s ease,color .25s ease,transform .25s ease}
.whatsapp:hover,.whatsapp:focus-visible{background:#d3a09b;color:#2b2022;transform:translateY(-2px)}
.whatsapp:focus-visible{outline:2px solid #4a3236;outline-offset:3px}
/* Gutschein-Seite aufgefrischt */
.voucher-hero{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(1.5rem,5vw,5rem);align-items:center;max-width:1250px;margin:0 auto;padding:clamp(3rem,7vw,6rem) clamp(1.25rem,8vw,8rem) clamp(1.5rem,3vw,2.5rem)}
.voucher-hero h1{font:normal clamp(2.8rem,6vw,5.2rem)/.98 var(--serif);margin:.15em 0 .3em}
.voucher-hero p{max-width:46ch}
.voucher-points{list-style:none;margin:1.8rem 0 0;padding:0;display:grid;gap:.9rem}
.voucher-points li{display:flex;align-items:center;gap:.9rem;color:var(--charcoal)}
.voucher-points svg{flex:0 0 auto;width:42px;height:42px;padding:10px;border:1px solid rgba(211,160,155,.8);border-radius:14px 4px 14px 4px;color:#8c5450;background:var(--white)}
.voucher-points span{display:flex;flex-direction:column;font-size:.88rem;line-height:1.35;color:#54464a}
.voucher-points b{font:400 1.25rem/1.15 var(--serif);color:var(--charcoal)}
.voucher-hero-card{margin:0;border-radius:120px 16px 120px 16px;overflow:hidden;box-shadow:0 30px 70px rgba(74,50,54,.18)}
.voucher-hero-card img{display:block;width:100%;height:auto}
.voucher-uses{max-width:1250px;margin:0 auto;padding:clamp(1.5rem,4vw,3rem) clamp(1.25rem,8vw,8rem) clamp(2rem,4vw,3rem)}
.voucher-uses h2{font:normal clamp(1.6rem,3vw,2.2rem)/1.1 var(--serif);margin:0 0 1.2rem}
.voucher-uses-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.8rem,2vw,1.4rem)}
.voucher-use{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:48px 8px 48px 8px;color:#fff;text-decoration:none;isolation:isolate;background:#f0d4cf}
.voucher-use.is-alt{border-radius:8px 48px 8px 48px}
.voucher-use img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:scale 1s cubic-bezier(.22,1,.36,1)}
.voucher-use:after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(40,28,30,.82),rgba(40,28,30,0) 62%)}
.voucher-use span{position:absolute;left:1.1rem;bottom:.9rem;z-index:2;font:normal 1.5rem/1.1 var(--serif)}
.voucher-use:hover img,.voucher-use:focus-visible img{scale:1.06}
.voucher-use:focus-visible{outline:2px solid var(--champagne);outline-offset:3px}
.voucher-order{padding-top:clamp(1rem,3vw,2rem)}
@media(max-width:900px){.voucher-hero{grid-template-columns:1fr}.voucher-hero-card{order:-1;border-radius:70px 12px 70px 12px}}
@media(max-width:600px){.voucher-hero{padding:2rem 1.25rem 1rem}.voucher-hero-card{border-radius:44px 8px 44px 8px}.voucher-uses{padding:1.25rem}.voucher-uses-grid{grid-template-columns:repeat(3,1fr);gap:.6rem}.voucher-use{aspect-ratio:3/4;border-radius:28px 6px 28px 6px}.voucher-use.is-alt{border-radius:6px 28px 6px 28px}.voucher-use span{font-size:1.05rem;left:.7rem;bottom:.6rem}.voucher-points span{font-size:.92rem}}
/* Startseite: Willkommenstext im Abschnitt "Das Studio" */
.editorial.intro .intro-lead{max-width:650px;margin:1.4rem auto 0;font:normal clamp(1.25rem,2vw,1.6rem)/1.3 var(--serif);color:var(--charcoal)}
.editorial.intro p:not(.eyebrow):not(.intro-lead):not(.intro-closing){max-width:650px;margin:1rem auto 0;color:#4d3f42}
.editorial.intro .intro-closing{max-width:650px;margin:2rem auto 0;font:italic 400 clamp(1.4rem,2.4vw,1.9rem)/1.3 var(--serif);color:#8c5450}

/* Symbole der Reel-Bedienung: Startzustand per CSS statt style-Attribut (CSP style-src 'self') */
.reel-sound-btn .icon-unmuted,
.reel-play-btn .icon-pause {
  display: none;
}
.reel-sound-btn.is-unmuted .icon-muted {
  display: none;
}
.reel-sound-btn.is-unmuted .icon-unmuted {
  display: block;
}

/* ersetzt style-Attribut auf der Kontaktseite (CSP style-src 'self') */
.eyebrow.eyebrow-tight {
  margin-bottom: 0.35rem;
}

/* Kontaktseite: bisher als <style>-Block in der Seite, den die CSP (style-src 'self') blockiert hat */
/* Sofortige Responsive-Garantie für Smartphones & Tablets */
@media (max-width: 960px) {
  .contact-editorial-spread { grid-template-columns: 1fr !important; gap: 2.2rem !important; padding: 0 clamp(1rem, 3.5vw, 2.5rem) !important; }
  .contact-photo-column { justify-content: center !important; }
  .contact-editorial-frame { aspect-ratio: 1414 / 2000 !important; max-height: 520px !important; margin: 0 auto !important; width: 100% !important; max-width: 380px !important; }
}
@media (max-width: 680px) {
  body[data-page="contact"] .whatsapp { display: none !important; }
  .contact-editorial-spread { padding: 0 1rem !important; margin: 0 auto 2.5rem !important; gap: 1.6rem !important; }
  .contact-card-info { padding: 1.35rem 1rem !important; border-radius: 16px !important; gap: 1.15rem !important; }
  .contact-brand-head h2 { font-size: 1.45rem !important; line-height: 1.2 !important; margin: 0 0 0.35rem !important; }
  .contact-address { font-size: 0.92rem !important; }
  .contact-direct-lines { display: flex !important; flex-direction: column !important; gap: 0.65rem !important; padding: 0.75rem 0 !important; }
  .contact-line-link { font-size: 0.95rem !important; padding: 0.2rem 0 !important; }
  .schedule-head-row { flex-direction: column !important; align-items: flex-start !important; gap: 0.4rem !important; margin-bottom: 0.65rem !important; }
  .schedule-head-row h3 { font-size: 1.25rem !important; }
  .opening-schedule { gap: 0.4rem !important; }
  .schedule-row { padding: 0.55rem 0.7rem !important; font-size: 0.84rem !important; gap: 0.35rem !important; }
  .schedule-day { font-size: 0.84rem !important; gap: 0.35rem !important; white-space: nowrap !important; }
  .today-chip { font-size: 0.6rem !important; padding: 0.1rem 0.4rem !important; }
  .schedule-time { font-size: 0.84rem !important; text-align: right !important; white-space: nowrap !important; margin-left: auto !important; }
  .late-note { display: block !important; font-size: 0.7rem !important; line-height: 1.1 !important; margin-top: 0.15rem !important; color: #65565a !important; }
  .schedule-notice { font-size: 0.78rem !important; margin-top: 0.85rem !important; padding-top: 0.65rem !important; }
  .contact-actions { display: flex !important; flex-direction: column !important; gap: 0.65rem !important; width: 100% !important; margin-top: 0.25rem !important; padding-top: 1rem !important; }
  .contact-actions .button { width: 100% !important; display: flex !important; justify-content: center !important; align-items: center !important; padding: 0.9rem 1rem !important; font-size: 0.92rem !important; text-align: center !important; min-height: 46px !important; box-sizing: border-box !important; }
  .contact-editorial-frame { width: 100% !important; max-width: 320px !important; height: auto !important; aspect-ratio: 1414 / 2000 !important; max-height: 460px !important; border-radius: 16px !important; }
  .contact-editorial-frame img { width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: top center !important; }
  .map-section { padding: 0 1rem 3rem !important; }
  .map-embed { height: 340px !important; border-radius: 16px !important; }
  .map-consent { padding: 1.35rem 1rem !important; max-width: 100% !important; }
  .map-address { font-size: 1.35rem !important; margin: 0.25rem 0 0.65rem !important; }
  .map-consent .actions { display: flex !important; flex-direction: column !important; gap: 0.6rem !important; width: 100% !important; }
  .map-consent .actions .button { width: 100% !important; text-align: center !important; justify-content: center !important; min-height: 44px !important; display: flex !important; align-items: center !important; }
}

/* iOS Safari färbt Buttons ohne eigene Farbe systemblau (Behandlungen, Zeiten, Zurück). Nullspezifische Vorgabe: erbt die Textfarbe, ausdrückliche Regeln gewinnen weiterhin */
:where(button) {
  color: inherit;
}
