/* Shared editorial finish. Loaded after the original brand styles. */
:root{--signature-ease:cubic-bezier(.2,.75,.25,1)}
html{scroll-padding-top:150px}
.header{backdrop-filter:blur(18px);transition:box-shadow .3s,background .3s}
.header.is-scrolled{box-shadow:0 8px 28px #5223380d;background:#fbf6f8f5}
.signature-progress{position:fixed;inset:0 0 auto;height:3px;background:var(--accent-deep);transform:scaleX(0);transform-origin:left;z-index:100;pointer-events:none}
h1,h2,h3{text-wrap:balance}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent-deep);outline-offset:5px}
.header nav>a:not(.nav-visit){position:relative}
.header nav>a:not(.nav-visit)::after{content:"";position:absolute;bottom:-6px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s}
.header nav>a:hover::after,.header nav>a.is-active::after{transform:scaleX(1)}
.button,.nav-visit,.float-book{box-shadow:0 5px 16px #8e3a5410;transition:background .25s,box-shadow .25s,transform .25s}
.button:hover,.nav-visit:hover{box-shadow:0 8px 22px #8e3a5428}
.button:active,.nav-visit:active,button:active{transform:translateY(1px)}
.text-link{transition:color .25s,text-decoration-color .25s;text-underline-offset:6px}
.locations-home .home-hero{grid-template-columns:1.04fr 1fr;gap:6%;padding:48px 0 54px;min-height:570px}
.home-hero .signature-copy{position:relative;z-index:2;padding:8px 0}
.home-hero .signature-eyebrow{display:flex;align-items:center;gap:12px;max-width:none;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.15em;margin-bottom:26px;color:var(--accent-deep)}
.signature-eyebrow>span:first-child{font-size:26px;line-height:1;font-weight:400}
.locations-home .home-hero h1{font-size:clamp(50px,6.1vw,92px);line-height:1.03;letter-spacing:-.045em;margin-bottom:25px;max-width:10.5em}
.locations-home .home-hero h1 em{font-family:OrganicScript,Georgia,serif;font-size:1.2em;line-height:.7;font-style:normal;letter-spacing:-.025em;color:var(--accent-deep)}
.home-hero p:not(.signature-eyebrow){font-size:15px;line-height:1.85;max-width:43ch}
.signature-composition{position:relative;min-width:0;padding-left:38px;padding-bottom:25px}
.locations-home .signature-composition .home-hero-image{padding:0;border:0;border-radius:46% 46% 2px 2px;background:#e3cbd2;overflow:hidden;box-shadow:none}
.signature-composition .home-hero-image img{height:clamp(380px,36vw,520px);object-position:center 48%}
.signature-detail{position:absolute;left:-16px;bottom:0;width:32%;margin:0;padding:7px 7px 0;background:var(--paper);transform:rotate(-8deg);box-shadow:0 12px 28px #52233820;z-index:2}
.signature-detail img{height:auto;aspect-ratio:4/5;object-fit:cover}
.signature-detail figcaption{font-family:OrganicScript,Georgia,serif;font-size:clamp(15px,1.6vw,24px);text-align:center;padding:10px 0;line-height:1.1;color:var(--accent-deep)}
.signature-stamp{position:absolute;right:-10px;top:21px;width:112px;height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--paper);border:1px solid var(--accent);outline:6px solid var(--paper);border-radius:50%;transform:rotate(12deg);font:17px Stanley,Georgia,serif;line-height:1.25;color:var(--accent-deep);z-index:2}
.signature-stamp i{font:30px OrganicScript,serif}
.signature-stamp>span{font:7px Open,Arial,sans-serif;letter-spacing:.12em;margin-top:8px}
.signature-image-note{position:absolute;right:0;bottom:0;font-size:8px;letter-spacing:.2em;color:var(--muted)}
.signature-ribbon{display:flex;align-items:center;border-block:1px solid var(--line);margin-bottom:58px;color:var(--accent-deep)}
.signature-ribbon-window{overflow:hidden;flex:1;min-width:0;mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
.signature-ribbon-track{display:flex;width:max-content}
.signature-ribbon-group{display:flex;align-items:center;flex:none;gap:38px;padding:19px 19px;font:clamp(24px,2.6vw,38px) Stanley,Georgia,serif}
.signature-ribbon-group i{font:24px Georgia,serif;font-style:normal;color:var(--accent)}
.signature-motion-toggle{flex:none;border:1px solid var(--line);border-radius:50%;width:38px;height:38px;background:transparent;color:var(--accent-deep);margin-left:20px;cursor:pointer}
.signature-motion-toggle:hover{background:var(--paper)}
.signature-ribbon.is-paused .signature-ribbon-track,.signature-ribbon:hover .signature-ribbon-track,.signature-ribbon:focus-within .signature-ribbon-track{animation-play-state:paused}
.locations-home .home-locations{padding:0 0 68px}
.location-card{border:0;border-top:1px solid var(--line);background:transparent;box-shadow:none;position:relative}
.location-card--mid{background:transparent}
.location-card-body{padding:25px 0 14px}
.location-card-photo{margin-top:12px;border-radius:2px}
.location-card-photo img{height:250px}
.location-card.is-selected{border-top-color:var(--accent-deep)}
.location-card-title h3{font-size:clamp(27px,2.5vw,38px)}
.location-card-go{background:transparent;border-color:var(--accent);transition:background .3s,color .3s,transform .3s}
.location-card:hover .location-card-go{transform:rotate(45deg);background:var(--accent-deep);color:var(--paper)}
.locations-home .location-cards{gap:32px}
.locations-home .location-tabs button{position:relative}
.locations-home .location-tabs button[aria-selected=true]{color:var(--accent-deep)}
.locations-home .location-tabs button[aria-selected=true]::after{content:"";height:2px;position:absolute;left:0;right:22px;bottom:0;background:var(--accent)}
.locations-home .our-story{position:relative;border-block:1px solid var(--line)}
.locations-home .story-intro h2{font-size:clamp(38px,4.7vw,68px);letter-spacing:-.035em;line-height:1.08}
.locations-home .story-intro p{font-size:15px;line-height:1.85}
.locations-home .story-visual{height:460px;gap:17px;transform:rotate(2deg)}
.locations-home .story-visual-main{border-radius:160px 160px 0 0}
.locations-home .story-visual-sub:last-child{border-radius:0 0 90px 0}
.story-values article{border-top:1px solid var(--line);padding-top:24px}
.story-values article>span{color:var(--accent);font:42px Stanley,Georgia,serif}
.locations-home #gallery .section-heading{max-width:750px;display:block}
.gallery{counter-reset:gallery}
.gallery figure{counter-increment:gallery;position:relative;min-width:0}
.gallery figcaption{display:flex;align-items:baseline;gap:10px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-top:14px}
.gallery figcaption::before{content:counter(gallery,decimal-leading-zero);color:var(--accent);font-size:10px;font-variant-numeric:tabular-nums}
.gallery img{outline-offset:-7px}
.location-page .hero-stage{padding-top:40px;padding-bottom:40px}
.location-page .hero-stage .media-frame{padding:0;border:0;border-radius:180px 180px 4px 4px;transform:rotate(2deg);box-shadow:12px 12px 0 #e7d1d9;min-height:0}
.location-page .hero-stage .media-frame img{height:clamp(360px,40vw,550px)}
.location-page .hero-stage .hero-image{height:auto;overflow:hidden}
.location-page .hero-stage h1{font-size:clamp(52px,6.8vw,100px)}
.location-page .visit-strip{background:#ead7df;border-block:1px solid var(--line);padding-block:22px}
.reference-menu-portrait{border-radius:140px 140px 0 0;overflow:hidden}
.reference-menu-list{font-variant-numeric:tabular-nums}
.happy-photo{border-radius:160px 160px 0 0;overflow:hidden}
.contact-heading h2{letter-spacing:-.035em}
.legal-page main{max-width:960px;min-height:60vh}
.legal-page main p{max-width:70ch;line-height:1.85}
.legal-page .header nav{display:flex;position:static;box-shadow:none;background:none;padding:0}
.legal-page .header .lang-switch{margin:0}
@media(min-width:1001px){
 .locations-home .location-card:nth-child(2){margin-top:44px}
 .locations-home .location-card:nth-child(3){margin-top:88px}
 .locations-home .location-card:nth-child(2) .location-card-photo img{height:280px}
 .locations-home .gallery{grid-template-columns:1.2fr .8fr 1.2fr .8fr;gap:28px}
 .location-about .about-copy{position:sticky;top:180px;align-self:start}
}
@media(prefers-reduced-motion:no-preference){
 .signature-ribbon-track{animation:signature-ticker 32s linear infinite}
 .signature-detail{animation:signature-arrive 1.1s .25s var(--signature-ease) backwards}
 .signature-stamp{animation:signature-arrive 1.2s .4s var(--signature-ease) backwards}
 .location-card{animation:none}
 .reveal{transition-duration:.85s;transition-timing-function:var(--signature-ease)}
 .gallery figure.reveal{transform:translateY(35px)}
 .gallery figure.reveal.is-in{transform:none}
 .location-card-photo img,.gallery img{transition:transform 1s var(--signature-ease),filter .5s}
 .location-card:hover .location-card-photo img{transform:scale(1.055)}
 @supports(animation-timeline:view()){
  .signature-composition{animation:signature-drift linear both;animation-timeline:view();animation-range:exit 0% exit 100%}
 }
}
@keyframes signature-ticker{to{transform:translateX(-50%)}}
@keyframes signature-arrive{from{opacity:0;translate:0 24px}to{opacity:1;translate:0 0}}
@keyframes signature-drift{to{translate:0 48px}}
@media(max-width:1000px){
 .locations-home .home-hero{grid-template-columns:1fr 1fr;gap:5%;min-height:0;padding-block:38px 48px}
 .locations-home .home-hero h1{font-size:clamp(42px,6.5vw,65px)}
 .signature-composition{padding-left:18px}
 .signature-composition .home-hero-image img{height:400px}
 .signature-stamp{width:88px;height:88px;right:-3px;font-size:14px}
 .signature-stamp i{font-size:25px}
 .signature-stamp>span{font-size:6px}
 .locations-home .location-card{display:grid;grid-template-columns:1fr 1fr;gap:26px}
 .location-card-photo img{height:100%;min-height:260px}
 .location-card-body{padding-block:24px}
}
@media(max-width:760px){
 html{scroll-padding-top:155px}
 .locations-home .home-hero{grid-template-columns:1fr;padding:30px 0 32px;gap:30px}
 .home-hero .signature-eyebrow{font-size:8px;letter-spacing:.1em;gap:8px;margin-bottom:20px}
 .home-hero .signature-eyebrow>span:first-child{font-size:20px}
 .locations-home .home-hero h1{font-size:clamp(43px,10.5vw,66px);margin-bottom:20px}
 .home-hero p:not(.signature-eyebrow){font-size:14px;line-height:1.75;margin-bottom:22px}
 .signature-composition{max-width:520px;width:100%;margin:auto;padding-left:30px;padding-bottom:20px}
 .signature-composition .home-hero-image img{height:330px}
 .signature-detail{left:0;width:31%;bottom:0}
 .signature-detail figcaption{font-size:17px;padding-block:8px}
 .signature-image-note{font-size:6px;letter-spacing:.1em}
 .signature-ribbon{margin-bottom:36px}
 .signature-ribbon-group{gap:22px;padding:18px 11px;font-size:27px}
 .signature-motion-toggle{margin-left:10px;width:36px;height:36px}
 .locations-home .home-locations{padding-bottom:36px}
 .locations-home .location-card{display:flex;gap:0}
 .location-card-photo img{height:240px;min-height:0}
 .location-card-body{padding:21px 0 14px}
 .location-card-title h3{font-size:33px}
 .locations-home .location-cards{gap:26px}
 .locations-home .story-visual{height:330px;transform:rotate(1deg);gap:12px}
 .locations-home .story-intro h2{font-size:41px}
 .locations-home .story-intro p{font-size:14px}
 .story-values article{padding-top:18px}
 .story-values article>span{font-size:32px}
 .gallery figcaption{gap:6px;font-size:11px}
 .location-page .hero-stage{gap:30px;padding-bottom:35px}
 .location-page .hero-stage h1{font-size:clamp(48px,12vw,74px);overflow-wrap:anywhere}
 .location-page .hero-stage .media-frame{transform:none;border-radius:150px 150px 0 0;box-shadow:7px 7px 0 #e7d1d9}
 .location-page .hero-stage .media-frame img{height:340px}
 .legal-page .header{height:auto;min-height:90px;flex-wrap:wrap;gap:10px;padding-block:12px}
 .legal-page .header nav{gap:12px}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}
 .reveal{opacity:1!important;transform:none!important}
 .signature-ribbon-group[aria-hidden=true]{display:none}
 .signature-ribbon-track{width:100%}
 .signature-ribbon-group{flex-wrap:wrap;justify-content:center;gap:12px;width:100%;font-size:20px}
 .signature-motion-toggle{display:none}
}
/* Keep the service list close to its controls on small screens. */
@media(max-width:760px){
 .reference-menu-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:8px;padding:4px 2px 12px;scrollbar-width:thin;scrollbar-color:var(--accent) transparent}
 .reference-menu-tabs button{flex:0 0 auto;max-width:230px;min-height:46px;padding:10px 16px;border:1px solid var(--line);border-radius:3px}
 .reference-menu-tabs button[aria-pressed=true]{background:var(--accent-deep);color:var(--paper);border-color:var(--accent-deep)}
}
.locations-home .story-visual img{object-fit:cover}

/* Treatment directory: prominent categories beside a spacious service menu. */
.locations-home .location-card:nth-child(n){margin-top:0}
.locations-home .location-card:nth-child(n) .location-card-photo img{height:250px}
.service-workspace{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.65fr);gap:42px;align-items:start}
.service-navigation{position:sticky;top:155px;min-width:0}
.service-navigation-label{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-deep);font-weight:600;margin:0 0 18px}
.service-workspace .reference-menu-tabs{display:flex;flex-direction:column;flex-wrap:nowrap;gap:8px;max-height:650px;overflow-y:auto;overflow-x:hidden;margin:0;padding:3px 9px 8px 3px;border:0;scrollbar-width:thin;scrollbar-color:var(--accent) var(--paper)}
.service-workspace .reference-menu-tabs button{display:flex;align-items:center;gap:14px;flex:none;text-align:left;width:100%;max-width:none;padding:12px;min-height:82px;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:3px;transition:background .25s,border-color .25s}
.service-category-option img{width:56px;height:62px;object-fit:cover;flex:none;border-radius:2px}
.service-option-name{font-family:Stanley,Georgia,serif;font-size:21px;line-height:1.22;flex:1;overflow-wrap:anywhere}
.service-option-arrow{font-size:20px;flex:none}
.service-workspace .reference-menu-tabs button[aria-pressed=true]{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}
.service-workspace .reference-menu-tabs button:hover{border-color:var(--accent-deep);background:#eddbe2}
.service-workspace .reference-menu-tabs button[aria-pressed=true]:hover{background:#773148}
.service-workspace .reference-menu-layout{display:flex;flex-direction:column;gap:28px;min-width:0}
.service-workspace .reference-menu-portrait{width:100%;aspect-ratio:2.6;border-radius:3px;min-height:210px}
.service-workspace .reference-menu-portrait>img{width:100%;object-fit:cover;object-position:center 55%}
.service-workspace .reference-menu-portrait>div{padding:35px 28px 24px}
.service-workspace .reference-menu-portrait h3{font-size:34px;max-width:18ch;margin:9px 0 0}
.service-workspace .reference-menu-list{width:100%;padding:28px;background:var(--paper);border-top:3px solid var(--accent-deep)}
.burnaby-menu .service-workspace #service-menu{max-height:none;overflow:visible;padding:0}
.service-workspace .reference-menu-label{font-size:11px;padding:0 0 16px}
.service-workspace .service-category-title{font-family:Stanley,Georgia,serif;font-size:32px;line-height:1.18;color:var(--accent-deep);padding:26px 0 14px;margin:0;letter-spacing:-.015em}
.service-workspace .service-category-description{font-size:14px;line-height:1.7;color:var(--muted)}
.burnaby-menu .service-workspace .service-row{padding:22px 0;gap:20px;border-bottom:1px solid var(--line);min-height:100px}
.service-workspace .service-row h4{font-size:18px;line-height:1.35;margin:0}
.service-workspace .service-row p{font-size:13px;line-height:1.65}
.service-workspace .service-row strong{font-size:27px;white-space:nowrap}
.service-workspace .service-duration{font-size:12px}
.service-workspace .service-book-label{font-size:12px}
.service-workspace .service-row-action{min-width:76px}
#promotions{background:#eddee4;border-block:1px solid var(--line)}
#promotions .section-heading{max-width:780px}
#promotions .section-heading h2{font-size:clamp(42px,5vw,70px);line-height:1.06;letter-spacing:-.03em}
#promotions .section-heading .note{font-size:16px;line-height:1.75;max-width:54ch}
#promotions .promo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
#promotions .promo-card{display:flex;flex-direction:column;border:0;border-radius:0;background:var(--paper);min-width:0}
#promotions .promo-card>img{width:100%;height:270px;object-fit:cover;aspect-ratio:auto}
#promotions .promo-copy{padding:28px;display:flex;flex-direction:column;align-items:flex-start;flex:1}
.promo-eyebrow{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:17px}
#promotions .promo-copy h3{font-size:32px;line-height:1.12;margin:0 0 18px;letter-spacing:-.02em}
#promotions .promo-copy p{font-size:14px;line-height:1.8;color:var(--muted);margin-bottom:24px}
.promo-link{font-size:13px;margin-top:auto;padding-top:17px;border-top:1px solid var(--line);width:100%;color:var(--accent-deep)}
.promo-link:hover{text-decoration:underline;text-underline-offset:5px}
@media(max-width:1000px){
 .service-workspace{grid-template-columns:250px minmax(0,1fr);gap:24px}
 .service-option-name{font-size:19px}
 .service-category-option img{width:42px;height:52px}
 .service-workspace .reference-menu-list{padding:20px}
 #promotions .promo-copy{padding:22px}
 #promotions .promo-copy h3{font-size:27px}
}
@media(max-width:760px){
 .service-workspace{grid-template-columns:1fr;gap:24px}
 .service-navigation{position:static}
 .service-workspace .reference-menu-tabs{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-template-rows:repeat(2,auto);grid-auto-columns:250px;overflow-x:auto;overflow-y:hidden;max-height:none;padding:3px 3px 14px;gap:10px;scroll-snap-type:x proximity}
 .service-workspace .reference-menu-tabs button{scroll-snap-align:start;min-height:90px;height:100%;gap:10px;padding:10px}
 .service-option-name{font-size:19px}
 .service-workspace .reference-menu-portrait{min-height:190px;aspect-ratio:1.8}
 .service-workspace .reference-menu-portrait h3{font-size:30px}
 .service-workspace .reference-menu-portrait>div{padding:30px 20px 20px}
 .service-workspace .service-category-title{font-size:29px}
 .service-workspace .service-row h4{font-size:17px}
 .service-workspace .service-row strong{font-size:24px}
 .service-workspace .reference-menu-label{font-size:9px;gap:10px}
 #promotions .promo-grid{grid-template-columns:1fr;gap:28px}
 #promotions .promo-card>img{height:280px}
 #promotions .promo-copy h3{font-size:34px}
 #promotions .promo-copy{padding:26px}
 .locations-home .location-card:nth-child(n) .location-card-photo img{height:240px}
}

/* Keep the manicure in frame when the portrait is cropped for Dollard. */
#card-dollard .location-card-photo img,.location-dollard .hero-stage .hero-image img{object-position:50% 72%}

/* Location filtering keeps the default three-card view. */
.locations-home .location-tabs{flex-wrap:wrap}
.locations-home .location-tabs button[aria-pressed=true]{color:var(--accent-deep)}
.locations-home .location-tabs button[aria-pressed=true]::after{content:"";height:2px;position:absolute;left:0;right:22px;bottom:0;background:var(--accent)}
.location-cards .location-card[hidden]{display:none!important}
.locations-home .location-cards.is-filtered{grid-template-columns:1fr}
@media(min-width:761px){
 .locations-home .location-cards.is-filtered .location-card{display:grid;grid-template-columns:1.15fr 1fr;gap:40px}
 .locations-home .location-cards.is-filtered .location-card-photo{margin-top:20px}
 .locations-home .location-cards.is-filtered .location-card-photo img{height:360px}
 .locations-home .location-cards.is-filtered .location-card-body{padding-block:30px 16px}
}
.location-page .mobile-lang-switch{display:none}
@media(max-width:760px){
 .location-page .header{gap:8px}
 .location-page .brand-stack{margin-right:auto;min-width:0}
 .location-page .brand-stack img{max-width:min(170px,42vw)}
 .location-page .brand-stack .brand-location{font-size:8px;letter-spacing:.06em}
 .location-page .mobile-lang-switch{display:inline-flex;order:1;margin:0}
 .location-page .mobile-lang-switch .lang-btn{min-width:32px;padding:7px 8px}
 .location-page .menu-toggle{order:2;padding:8px 10px}
 .location-page .header nav .lang-switch{display:none}
}
