/* The same vector geometry is used by static links and dynamic controls. */
.icon{display:inline-block;width:18px;height:18px;flex:0 0 18px;vertical-align:middle;overflow:visible}
.icon path{vector-effect:non-scaling-stroke}
.icon-button{display:inline-flex;align-items:center;justify-content:center}
.text-link>.icon,.button>.icon,.social-link>.icon{transition:transform .3s ease}
@media(hover:hover){a:hover>.icon,button:hover>.icon{transform:translate(2px,-2px)}}
.work-caption>.icon{width:19px;height:19px;flex-basis:19px}
.service-preview,.service-context{display:none}
.glass-finale{isolation:isolate;position:relative;min-height:600px;height:70svh;max-height:900px;overflow:hidden;background:#747f76;color:#fff;margin-top:40px}
.glass-media,.glass-media picture,.glass-media img,.glass-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.glass-media img,.glass-film{object-position:center 52%}
.glass-film{opacity:0;transition:opacity 1s ease}
.glass-film.is-playing{opacity:1}
.glass-finale::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(24,34,29,.39),rgba(22,31,26,.22) 45%,rgba(14,25,20,.42));pointer-events:none}
.glass-copy{position:absolute;z-index:1;top:22%;left:50%;transform:translateX(-50%);width:min(780px,90%);text-align:center}
.glass-copy .eyebrow{font-size:10px;letter-spacing:.16em;margin-bottom:23px}
.glass-copy h2{font-family:var(--serif);font-size:clamp(38px,4.7vw,76px);line-height:1.2;letter-spacing:-.055em;text-wrap:balance;text-shadow:0 1px 18px rgb(24 35 25 / .16)}
.glass-copy .glass-book{display:inline-flex;align-items:center;gap:35px;min-height:48px;margin-top:30px;padding:0 2px 5px;border-bottom:1px solid #ffffff9c;font-size:11px;letter-spacing:.05em;color:inherit}
.glass-pause{position:absolute;z-index:1;bottom:28px;right:var(--space);display:flex;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid #ffffff80;border-radius:50%;color:#fff;background:#2330291a;backdrop-filter:blur(8px);cursor:pointer}
.glass-signature{position:absolute;z-index:1;bottom:44px;left:var(--space);font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.glass-pause:focus-visible,.glass-book:focus-visible{outline:2px solid white;outline-offset:5px}
.service-accordions details{scroll-margin-top:90px}
.hair-ritual{position:relative}
@media(max-width:1024px){
 .section{padding-top:80px;padding-bottom:65px}
 .services-layout{gap:6%}
 .service-accordions summary{font-size:25px;line-height:1.35}
}
@media(max-width:767px){
 :root{--space:20px}
 .section{padding-top:66px;padding-bottom:56px}
 .section-heading h2,.salon-content h2{font-size:clamp(32px,8.8vw,44px);line-height:1.2}
 .section-heading p,.intro-copy>p,.salon-content>p,.ritual-copy>p:not(.eyebrow){font-size:14px;line-height:1.8}
 .site-header{padding-top:env(safe-area-inset-top,0px);height:calc(64px + env(safe-area-inset-top,0px))}
 .menu-toggle{min-width:44px;min-height:44px;justify-content:center;align-items:center;flex-shrink:0}
 .mobile-menu{top:calc(64px + env(safe-area-inset-top,0px));max-height:calc(100dvh - 64px - env(safe-area-inset-top,0px));overflow-y:auto;padding-bottom:calc(28px + env(safe-area-inset-bottom,0px));overscroll-behavior:contain}
 .mobile-menu a{min-height:48px;display:flex;align-items:center;font-size:20px}
 .header-book{min-height:42px;font-size:10px}
 .hero .hero-masthead{top:calc(102px + env(safe-area-inset-top,0px));font-size:9.1vw}
 .hero{min-height:660px;height:100svh;max-height:950px}
 .hero-content{bottom:max(75px,calc(44px + env(safe-area-inset-bottom,0px)))}
 .hero-statement{font-size:clamp(34px,9.5vw,44px)}
 .hero-description{font-size:14px;line-height:1.7}
 .hero-content .button{min-height:48px;font-size:11px;gap:38px}
 .hero-location{font-size:10px;bottom:25px}
 .introduction{gap:28px}
 .intro-statement{grid-template-columns:75px 1fr;gap:22px}
 .intro-title{font-size:clamp(28px,7.5vw,38px)}
 .services-layout{display:block}
 .service-photo{display:none}
 .service-accordions summary{font-size:clamp(24px,6.4vw,29px);line-height:1.35;padding:21px 30px 21px 0;min-height:70px}
 .service-body{padding-bottom:28px}
 .service-note{font-size:12px;line-height:1.75;margin:20px 0}
 .service-preview{display:block;margin-top:3px;margin-bottom:22px}
 .service-preview-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 12px;font-size:12px;font-weight:500}
 .service-preview-label>span{font-size:10px;font-weight:400;color:#576266;text-align:right}
 .service-results{display:grid;grid-auto-flow:column;grid-auto-columns:86%;gap:13px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#abb4b3 transparent;padding-bottom:10px}
 .service-results:has(>.service-result:only-child){grid-auto-columns:100%}
 .service-result{display:block;width:100%;text-align:left;color:inherit;border:0;background:none;padding:0;cursor:pointer;scroll-snap-align:start}
 .service-result-images{display:flex;width:100%;height:238px;gap:5px;background:#e8ecea;overflow:hidden}
 .service-result-images>span{display:block;flex:1;min-width:0;position:relative}
 .service-result-images img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 38%}
 .service-result-images img.contain{object-fit:contain}
 .service-result-images small{position:absolute;bottom:9px;left:9px;color:white;background:#26312bc9;font-size:10px;letter-spacing:.02em;padding:4px 8px}
 .service-result-caption{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px;font-size:12px;line-height:1.4}
 .service-context{display:grid;grid-template-columns:95px 1fr;align-items:center;gap:18px;margin:0 0 20px;background:#edf0ef}
 .service-context img{width:95px;height:105px;object-fit:cover}
 .service-context figcaption{font-size:12px;padding-right:15px}
 .price-row{grid-template-columns:minmax(0,1fr) auto;gap:14px;font-size:13px;line-height:1.5;padding-block:13px}
 .price-row-name{overflow-wrap:anywhere}
 .price-row-meta{font-size:11px;line-height:1.5;margin-top:5px}
 .price-row-value{font-size:12px;font-weight:500;white-space:nowrap;align-self:start;padding-top:1px}
 .more-prices{width:100%!important;justify-content:space-between;min-height:48px;font-size:10px!important;gap:15px}
 .service-body>.text-link:last-child{display:flex;align-items:center;justify-content:space-between;min-height:50px;font-size:11px;border-top:1px solid var(--line);margin-top:18px}
 .text-link{min-height:44px;font-size:11px}
 .price-download{margin-top:26px}
 .filter-button{font-size:11px;min-height:44px;padding-inline:16px;flex-shrink:0}
 .filter-row{gap:8px}
 .portfolio-track{grid-auto-columns:82%;gap:16px;scroll-snap-type:x proximity}
 .work-card{scroll-snap-align:center}
 .work-image img{height:370px}
 .work-caption h3{font-size:14px;line-height:1.4}
 .work-caption p{font-size:11px}
 .gallery-controls{gap:8px}
 .gallery-controls .icon-button{width:44px;height:44px}
 .portfolio-bottom{gap:18px}
 .portfolio-bottom>p{font-size:11px}
 .portfolio-track.expanded{grid-template-columns:repeat(2,minmax(0,1fr))}
 .portfolio-track.expanded .work-caption h3{font-size:12px}
 .portfolio-track.expanded .work-image img{height:230px}
 .hair-ritual{gap:28px}
 .ritual-image>img{height:440px}
 .master-photo{height:270px}
 .master-name{font-size:25px}
 .master-role{font-size:12px;line-height:1.6}
 .master-link{font-size:10px;gap:10px;min-height:44px}
 .review-card blockquote{font-size:23px;line-height:1.55}
 .review-card small{font-size:11px}
 .contact-bottom{gap:35px;margin-top:45px}
 .contact-bottom p,.contact-bottom .muted{font-size:13px}
 .social-link{min-height:44px;align-items:center;font-size:14px}
 .phone{font-size:25px}
 .glass-finale{height:650px;min-height:540px;max-height:90svh;margin-top:25px}
 .glass-media img,.glass-film{object-position:51% center}
 .glass-copy{top:14%;width:calc(100% - 36px)}
 .glass-copy h2{font-size:clamp(34px,9.7vw,46px);line-height:1.25}
 .glass-copy .eyebrow{font-size:9px;margin-bottom:20px}
 .glass-copy .glass-book{font-size:11px;margin-top:24px}
 .glass-signature{bottom:31px;font-size:8px;max-width:190px;line-height:1.5}
 .glass-pause{bottom:21px;width:44px;height:44px}
 .footer{padding-top:40px;padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))}
 .footer-name{font-size:clamp(21px,6.4vw,30px);line-height:1.5;letter-spacing:-.055em}
 .footer>div{font-size:11px;line-height:1.6;gap:8px}
 .mobile-book{bottom:calc(12px + env(safe-area-inset-bottom,0px));min-height:52px;left:16px;right:16px;font-size:11px;padding-inline:22px}
 .lightbox{padding:calc(12px + env(safe-area-inset-top,0px)) 16px calc(24px + env(safe-area-inset-bottom,0px))}
 .lightbox-stage{min-height:55dvh}
 .lightbox-images img{max-height:60dvh;object-fit:contain}
 .lightbox-footer{flex-wrap:wrap;margin-top:48px;gap:12px}
 .lightbox-footer h3{font-size:23px}
 .lightbox-footer p{font-size:12px}
 .lightbox-footer .text-link{min-height:44px;font-size:11px}
 .lightbox .icon-button{width:44px;height:44px}
}
@media(max-width:360px){
 :root{--space:17px}
 .service-result-images{height:212px}
 .service-results{grid-auto-columns:94%}
 .service-preview-label>span{max-width:130px;font-size:9px}
 .price-row{column-gap:9px;font-size:12px}
 .price-row-value{font-size:11px}
 .master-photo{height:220px}
 .glass-finale{height:580px}
 .hero .hero-masthead{font-size:9vw}
}
@media(prefers-reduced-motion:reduce){.glass-film{display:none}.glass-media img{transform:none}}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.contacts.section{padding-top:45px;padding-bottom:45px}.contacts .contact-bottom{margin-top:0;padding-top:20px;border-top:0}.glass-finale{margin-top:45px}
@media(max-width:767px){.contacts.section{padding-top:35px;padding-bottom:25px}.contacts .contact-bottom{margin-top:0;padding-top:0}.glass-finale{margin-top:25px}}
