/* Responsive audit and Lucide icon system. Icons bundled locally under ISC license. */
.ui-icon{display:inline-block;width:1em;height:1em;background:currentColor;vertical-align:-.14em;flex:0 0 auto;-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat}
.site-header .brand{min-width:112px;width:112px;height:100%;display:flex;align-items:center}.brand-logo{width:94px;height:78px;object-fit:contain;object-position:left center;filter:drop-shadow(0 2px 8px rgba(0,0,0,.18))}
.icon-scissors{--icon:url('assets/icons/scissors.svg')}.icon-chevron{--icon:url('assets/icons/chevron-right.svg')}.icon-palette{--icon:url('assets/icons/palette.svg')}.icon-leaf{--icon:url('assets/icons/leaf.svg')}.icon-message-circle{--icon:url('assets/icons/message-circle.svg')}.icon-x{--icon:url('assets/icons/x.svg')}
.icon-down{transform:rotate(90deg)}.icon-left{transform:rotate(180deg)}.icon-up{transform:rotate(-90deg)}
main,section,footer{min-width:0}.section-pad{overflow:hidden}.intro-main,.intro-layout>*{min-width:0}
.hero-content{left:10%;right:5%;width:auto}.hero h1{font-size:clamp(64px,9vw,145px);letter-spacing:-.095em;max-width:100%;white-space:normal}.hero h1 span{white-space:nowrap}.hero h1 .accent-title{color:var(--lime);-webkit-text-stroke:0;transform:none}.hero .word-slide:nth-child(2){animation-name:wordEnter}
.hero-seal>span{font-size:43px}.brand-spark{font-size:17px}.marquee-icon{font-size:.6em;vertical-align:.05em}
.intro-layout{grid-template-columns:minmax(100px,22%) minmax(0,1fr)}.statement{font-size:clamp(44px,6.4vw,103px)}.statement .lime-highlight{font-size:.78em}
.section-heading>*{min-width:0}.section-heading h2{font-size:clamp(68px,9vw,145px)}.service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.service-card-bottom>div{min-width:0}.service-card h3{overflow-wrap:normal}
.manifesto{grid-template-columns:minmax(0,44%) minmax(0,56%)}.manifesto-copy{min-width:0}.manifesto h2{font-size:clamp(55px,5.5vw,92px)}.manifesto h2 span{white-space:normal}
.team-row>div{min-width:0}.team-row h3{overflow-wrap:normal}.team-arrow{font-size:28px}
.booking-banner h2{font-size:clamp(70px,10vw,170px)}.booking-banner h2 em{white-space:normal}.banner-flower{font-size:min(38vw,500px)}
.visit-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:5vw}.visit-left,.visit-right{min-width:0}.visit h2{font-size:clamp(62px,6.7vw,110px)}.info-block>a{overflow-wrap:anywhere}
.footer-logo .footer-mark{font-size:.18em}.booking-brand .booking-mark{font-size:15px}.close-booking .ui-icon{font-size:21px;vertical-align:0}.service-options label>span b{margin-bottom:12px}.service-options .ui-icon{font-size:23px}.booking-foot .step-back .ui-icon{vertical-align:-.2em}.fallback-mail .ui-icon,.send-request .ui-icon{font-size:19px}.info-block>a .ui-icon{font-size:.7em}.back-top .ui-icon{margin-left:9px}.salon-shot figcaption .ui-icon{font-size:13px}.hero-bottom a .ui-icon{display:inline-block}
.service-card button .ui-icon{font-size:25px;transition:transform .3s}
@media(max-width:1100px){.section-heading{display:block}.section-heading p{margin-top:26px;max-width:490px}.team-row{grid-template-columns:5% 17% minmax(0,1fr) 16% 28px;gap:12px}.team-row h3{font-size:clamp(45px,5.7vw,75px)}}
@media(max-width:700px){.site-header .brand{min-width:79px;width:79px}.brand-logo{width:77px;height:64px}.hero-content{left:6%;right:6%;width:auto}.hero h1{font-size:clamp(36px,9vw,66px);letter-spacing:-.085em;line-height:.9}.hero h1 .accent-title{transform:none}.hero-seal>span{font-size:28px}.hero-actions{flex-wrap:wrap}.text-link{white-space:nowrap}.marquee-icon{font-size:.55em}.intro-layout{display:block}.statement{font-size:clamp(36px,9.2vw,64px)}.statement .lime-highlight{font-size:.68em}.section-heading h2{font-size:clamp(54px,12vw,86px)}.service-grid{display:block}.manifesto{display:block}.manifesto h2{font-size:clamp(41px,9.5vw,67px)}.team-heading h2{font-size:clamp(40px,8.9vw,72px)}.team-row{grid-template-columns:22px 85px minmax(0,1fr) 23px;gap:10px}.team-row h3{font-size:clamp(36px,8.2vw,58px)}.team-arrow{font-size:22px}.booking-banner h2{font-size:clamp(47px,10vw,75px);line-height:.88}.booking-banner h2 em{white-space:normal}.banner-flower{font-size:320px}.visit-grid{display:block}.visit h2{font-size:clamp(39px,9vw,75px)}.footer-logo{font-size:21vw}.booking-step h2{font-size:clamp(37px,10vw,50px)}.booking-panel,.booking-body{min-width:0}.service-options{grid-template-columns:repeat(2,minmax(0,1fr))}.service-options label>span{min-width:0}.service-options strong{overflow-wrap:anywhere}.time-slots{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-head,.booking-foot{gap:10px}}
@media(max-width:380px){.hero h1{font-size:9vw}.hero-actions{gap:12px}.hero-bottom>a{white-space:nowrap}.hero-bottom>span:first-child{max-width:55%}.booking-banner h2{font-size:14vw}.visit h2{font-size:9vw}.team-row{grid-template-columns:18px 70px minmax(0,1fr) 18px;gap:7px}.team-portrait{width:70px;height:100px}.team-row h3{font-size:10vw}.team-row p{font-size:11px}.footer-bottom>div{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.hero .word-slide,.marquee-track,.banner-flower,.asterisk{animation:none!important}}

/* Three editorial photographs crossfade without moving the foreground copy. */
.hero-image{transform:none;animation:none;isolation:isolate}
.hero-slide{position:absolute;inset:0;background:var(--slide-image) center/cover no-repeat;opacity:0;transform:scale(1.07);transition:opacity 1.45s ease-in-out,transform 7.2s ease-out;will-change:opacity,transform}
.hero-slide.is-active{opacity:1;transform:scale(1)}
.hero-slide:nth-child(1){background-position:75% center}
.hero-slide:nth-child(2){background-position:60% 28%}
.hero-slide:nth-child(3){background-position:66% center}
.hero-image:after{z-index:1;pointer-events:none}

/* Keep the supplied logo comfortably inset within the 86/70px nav bars. */
.site-header .brand{min-width:86px;width:86px;justify-content:center}
.brand-logo{width:72px;height:58px}

/* All forward actions use the same level, right-facing Lucide chevron. */
.header-book:hover .ui-icon,.banner-cta:hover .ui-icon,.service-card button:hover .ui-icon,.arrow-link:hover .arrow-circle .ui-icon{transform:translateX(3px)}
.arrow-link:hover .arrow-circle{transform:scale(1.05)}
.service-card button:hover{transform:translateX(2px)}

/* The button is one SVG silhouette; its right edge stretches into a teardrop. */
.round-cta,.round-cta:hover{width:220px;height:180px;flex:0 0 220px;position:relative;display:block;padding:0;border:0;border-radius:0;background:transparent;text-align:center;transform:none;color:var(--ink)}
.round-cta .cta-shape{position:absolute;inset:0;width:100%;height:100%;overflow:visible;fill:var(--lime);filter:drop-shadow(0 12px 20px rgba(0,0,0,.12));transition:fill .3s ease,filter .3s ease}
.round-cta:hover .cta-shape,.round-cta:focus-visible .cta-shape{fill:#fff;filter:drop-shadow(0 16px 24px rgba(0,0,0,.2))}
.round-cta .cta-label{position:absolute;z-index:1;left:41.667%;top:50%;width:138px;transform:translate(-50%,-50%);font:800 11px/1.45 Manrope,sans-serif;letter-spacing:.07em;pointer-events:none}
.round-cta:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media(max-width:700px){.site-header .brand{min-width:70px;width:70px}.brand-logo{width:61px;height:49px}.round-cta,.round-cta:hover{width:190px;height:155px;flex-basis:190px}.round-cta .cta-label{font-size:10px;width:120px}}
@media(prefers-reduced-motion:reduce){.hero-slide{transition:none;transform:none!important}.round-cta .cta-shape{transition:none}}

/* Width audit: size the longest display words against their actual columns. */
.manifesto-copy{container-type:inline-size}
.manifesto h2{font-size:clamp(32px,11cqw,90px);line-height:.94}
.manifesto h2 span{display:block;font-size:.78em}
.service-card h3{font-size:clamp(24px,2vw,35px)}
.team-row>div{container-type:inline-size}
.team-row h3{font-size:clamp(21px,12cqw,86px)}
.visit-left{container-type:inline-size}
.visit h2{font-size:clamp(38px,12cqw,100px)}
.footer-top{container-type:inline-size}
.footer-logo{font-size:clamp(48px,12cqw,220px)}
@media(min-width:701px){.hero h1{font-size:clamp(60px,8.8vw,142px)}}
@media(min-width:1101px){.team-row{grid-template-columns:5% 17% minmax(0,1fr) 19% 36px}}
@media(min-width:701px) and (max-width:1200px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-card:last-child{grid-column:1/-1}.service-card:last-child .service-photo{height:clamp(340px,43vw,500px)}}
@media(max-width:900px){.footer-top{display:block}.footer-top>div{margin:35px 0}.footer-logo{font-size:16cqw}}
@media(max-width:700px){.site-header{gap:12px}.service-card-bottom{display:block;position:relative;padding-bottom:56px}.service-card-bottom button{position:absolute;right:0;bottom:0}.service-card h3{font-size:clamp(25px,7.8vw,40px)}.team-row{position:relative;grid-template-columns:85px minmax(0,1fr);gap:12px;align-items:start}.team-no{position:absolute;top:30px;left:0;z-index:2;background:var(--lime);padding:5px}.team-portrait{grid-column:1;grid-row:1/3}.team-row>div{grid-column:2;grid-row:1}.team-tag{grid-column:2;grid-row:2}.team-arrow{display:none}}
@media(max-width:380px){.team-row{grid-template-columns:70px minmax(0,1fr)}.team-portrait{width:70px;height:100px}}
