@font-face{font-family:Boska;src:url('/assets/boska-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:optional}
@font-face{font-family:Boska;src:url('/assets/boska-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:optional}
@font-face{font-family:General Sans;src:url('/assets/general-sans-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:optional}
@font-face{font-family:General Sans;src:url('/assets/general-sans-medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:optional}
@font-face{font-family:General Sans;src:url('/assets/general-sans-semibold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:optional}
:root{--porcelain:#eff1ec;--bottle:#17352b;--sage:#d9e0d6;--copper:#a64b2a;--copper-dark:#84391f;--chestnut:#4a2e1e;--paper:#f7f8f4;--line:rgba(23,53,43,.28);--serif:Boska,"Iowan Old Style",Palatino,serif;--sans:"General Sans",Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--header:76px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--porcelain)}
body{margin:0;color:var(--bottle);background:var(--porcelain);font-family:var(--sans);font-size:17px;line-height:1.55;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
button,input{font:inherit}
.skip-link{position:fixed;left:1rem;top:-5rem;z-index:100;background:var(--paper);color:var(--bottle);padding:.7rem 1rem;border:2px solid var(--copper-dark)}
.skip-link:focus{top:1rem}
.site-header{position:sticky;top:0;z-index:50;min-height:var(--header);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:10px clamp(18px,4vw,64px);background:rgba(239,241,236,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.brand,.footer-brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font-size:.76rem;font-weight:600;letter-spacing:.18em;line-height:1}
.brand img,.footer-brand img{border-radius:50%}
.brand small,.footer-brand small{display:block;margin-top:.35rem;font-family:var(--mono);font-size:.58rem;font-weight:400;letter-spacing:.08em;text-transform:none}
.site-header nav{display:flex;align-items:center;gap:clamp(1.2rem,2.4vw,2.6rem)}
.site-header nav a{font-size:.82rem;font-weight:500;text-decoration:none}
.site-header nav a:hover{text-decoration:underline;text-underline-offset:6px;text-decoration-color:var(--copper)}
.header-call{justify-self:end;font-family:var(--mono);font-size:.78rem;font-weight:600;text-decoration:none;border-bottom:2px solid var(--copper);padding:.45rem 0}
.header-call span{font-family:var(--sans);font-weight:500;margin-right:.35rem}
.menu-toggle{display:none;background:none;border:0;border-bottom:2px solid var(--copper);padding:.35rem 0;color:var(--bottle);font-weight:600}
.measure-rail{position:fixed;left:0;top:var(--header);bottom:0;width:72px;z-index:20;display:flex;flex-direction:column;align-items:center;background:var(--porcelain);border-right:1px solid var(--line);pointer-events:none}
.measure-value{margin-top:1.25rem;font-family:var(--mono);font-size:.68rem;color:var(--copper-dark);writing-mode:vertical-rl}
.measure-line{position:relative;width:1px;flex:1;margin:1rem 0;background:repeating-linear-gradient(to bottom,var(--bottle) 0 1px,transparent 1px 13px)}
.measure-line::after{content:"";position:absolute;left:-5px;top:var(--progress,0%);width:11px;height:11px;border:2px solid var(--copper-dark);border-radius:50%;background:var(--porcelain);transform:translateY(-50%)}
.measure-note{margin-bottom:1.2rem;font-family:var(--mono);font-size:.58rem;letter-spacing:.08em;writing-mode:vertical-rl}
main,footer{margin-left:72px}
.measure-section{position:relative;scroll-margin-top:var(--header)}
.kicker,.label{margin:0 0 1.3rem;font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--copper-dark)}
h1,h2,h3,p{margin-top:0}
h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.035em}
.hero{min-height:calc(100svh - var(--header));display:grid;grid-template-columns:minmax(0,1.03fr) minmax(360px,.97fr);border-bottom:1px solid var(--line)}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(4rem,8vw,8.5rem) clamp(2.2rem,7vw,8rem)}
.hero h1{max-width:870px;margin-bottom:2.2rem;font-size:clamp(4.5rem,7.5vw,8.2rem);line-height:.84}
.hero h1 em{display:inline-block;color:var(--copper-dark);font-weight:400}
.hero-lead{max-width:620px;margin-bottom:1rem;font-size:clamp(1.25rem,1.8vw,1.75rem);line-height:1.35}
.hero-body{max-width:600px;margin-bottom:2rem;color:#3f5b51}
.hero-actions{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:1rem;min-height:52px;padding:.9rem 1.15rem;border:1px solid var(--bottle);text-decoration:none;font-weight:600;transition:background .2s,color .2s,transform .2s}
.button:hover{transform:translateY(-2px)}
.button-primary{background:var(--bottle);color:var(--paper)}
.button-primary:hover{background:var(--copper-dark);border-color:var(--copper-dark)}
.text-link{font-weight:600;text-decoration:underline;text-decoration-color:var(--copper);text-decoration-thickness:2px;text-underline-offset:6px}
.text-link:hover{text-decoration-thickness:4px}
.rating-link{display:grid;grid-template-columns:auto auto 1fr;align-items:baseline;gap:.45rem 1rem;width:max-content;max-width:100%;margin-top:3.5rem;text-decoration:none}
.rating-link strong{font-family:var(--mono);font-size:2.2rem;line-height:1}
.rating-link>span{font-size:.78rem}
.rating-link .stars{grid-column:1/2;color:var(--copper-dark);letter-spacing:.08em}
.hero-visual{position:relative;min-height:650px;margin:0;overflow:hidden;background:var(--sage)}
.hero-visual::before{content:"";position:absolute;inset:1.2rem;z-index:1;border:1px solid rgba(239,241,236,.55);pointer-events:none}
.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-visual figcaption{position:absolute;left:0;bottom:0;background:var(--bottle);color:var(--paper);padding:.8rem 1.2rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.08em}
.diagnosis{padding:clamp(5rem,10vw,10rem) clamp(1.5rem,7vw,8rem)}
.section-intro{display:grid;grid-template-columns:1.15fr .85fr;column-gap:clamp(2rem,8vw,9rem);align-items:end;margin-bottom:clamp(3rem,6vw,6rem)}
.section-intro .kicker{grid-column:1/-1}
.section-intro h2,.services h2,.craft h2,.proof h2,.salon h2,.page-hero h1{font-size:clamp(3.2rem,6.3vw,7rem);line-height:.9;margin:0}
.section-intro>p:last-child{max-width:480px;margin:0;color:#496258}
.diagnosis-tool{display:grid;grid-template-columns:minmax(340px,.85fr) minmax(0,1.15fr);min-height:520px;border:1px solid var(--bottle);background:var(--paper)}
.strand-wrap{position:relative;display:flex;align-items:center;justify-content:center;background:var(--sage);overflow:hidden}
.strand-wrap label{position:absolute;left:1.2rem;top:1.2rem;font-family:var(--mono);font-size:.68rem;text-transform:uppercase}
.strand{position:absolute;left:50%;top:70px;bottom:70px;width:3px;background:linear-gradient(var(--chestnut),#7b4c32,var(--chestnut));border-radius:50%}
.strand::before,.strand::after{content:"";position:absolute;left:-32px;width:67px;height:1px;background:var(--bottle);opacity:.35}
.strand::before{top:33%}.strand::after{top:66%}
#hair-range{position:absolute;z-index:4;width:390px;height:44px;margin:0;transform:rotate(90deg);appearance:none;background:transparent;cursor:grab}
#hair-range:active{cursor:grabbing}
#hair-range::-webkit-slider-runnable-track{height:4px;background:transparent}
#hair-range::-webkit-slider-thumb{appearance:none;width:56px;height:56px;margin-top:-26px;border:2px solid var(--copper-dark);border-radius:50%;background:rgba(239,241,236,.55);box-shadow:0 0 0 7px rgba(166,75,42,.12)}
#hair-range::-moz-range-track{height:4px;background:transparent}
#hair-range::-moz-range-thumb{width:54px;height:54px;border:2px solid var(--copper-dark);border-radius:50%;background:rgba(239,241,236,.55)}
.lens{display:none}
.tick-labels{position:absolute;left:calc(50% + 50px);top:60px;bottom:60px;display:flex;flex-direction:column;justify-content:space-between;font-family:var(--mono);font-size:.62rem;color:#40584f}
.diagnosis-output{display:flex;flex-direction:column;justify-content:center;padding:clamp(2rem,6vw,6rem)}
.measure-output{font-family:var(--mono);font-size:.8rem;color:var(--copper-dark)}
.measure-output output{font-size:clamp(2rem,4vw,4rem);color:var(--bottle)}
.zone-label{margin:2rem 0 .7rem;font-family:var(--mono);font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--copper-dark)}
.diagnosis-output h3{max-width:620px;margin-bottom:1.2rem;font-family:var(--serif);font-size:clamp(2.2rem,4vw,4rem);font-weight:400;line-height:1}
.diagnosis-output>p:not(.measure-output,.zone-label){max-width:580px;color:#496258}
.diagnosis-output .text-link{margin-top:1rem;width:max-content}
.services{padding:clamp(5rem,9vw,9rem) clamp(1.5rem,7vw,8rem);background:var(--bottle);color:var(--paper)}
.services .kicker,.craft .kicker{color:#db9b81}
.services-heading{display:grid;grid-template-columns:.65fr 1.35fr;align-items:end;margin-bottom:clamp(3rem,5vw,5rem)}
.services-heading .kicker{align-self:start}
.service-list{border-top:1px solid rgba(239,241,236,.35)}
.service-item{display:grid;grid-template-columns:110px 45px 1fr auto;gap:1rem;align-items:center;padding:1.6rem .2rem;border-bottom:1px solid rgba(239,241,236,.25);text-decoration:none;transition:padding .2s,background .2s}
.service-item:hover{padding-inline:1rem;background:rgba(239,241,236,.06)}
.service-zone,.service-index{font-family:var(--mono);font-size:.68rem;color:#db9b81}
.service-item strong{display:block;font-family:var(--serif);font-size:clamp(1.7rem,3vw,3rem);font-weight:400;line-height:1.05}
.service-item small{display:block;margin-top:.35rem;color:#b8c5be;font-size:.82rem}
.craft{display:grid;grid-template-columns:.88fr 1.12fr;background:var(--bottle);color:var(--paper);border-top:1px solid rgba(239,241,236,.2)}
.craft-photo{min-height:720px;overflow:hidden}
.craft-photo img{width:100%;height:100%;object-fit:cover;object-position:center}
.craft-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(4rem,8vw,8rem)}
.craft-lead{max-width:660px;margin:2.4rem 0 3rem;font-size:clamp(1.2rem,2vw,1.7rem);color:#ced8d2}
.craft dl{display:grid;grid-template-columns:repeat(3,1fr);margin:0;border-top:1px solid rgba(239,241,236,.28)}
.craft dl div{padding:1.5rem 1rem 0 0}
.craft dt{font-family:var(--mono);font-size:clamp(2rem,4vw,3.5rem);color:#db9b81}
.craft dd{margin:0;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em}
.proof{display:grid;grid-template-columns:1fr .72fr;gap:4rem;align-items:center;padding:clamp(5rem,10vw,10rem) clamp(1.5rem,7vw,8rem)}
.review-score{display:grid;grid-template-columns:auto 1fr;align-items:baseline;padding:2rem;border-top:1px solid var(--bottle);border-bottom:1px solid var(--bottle);text-decoration:none}
.review-score .score{font-family:var(--mono);font-size:clamp(4.5rem,10vw,9rem);line-height:.85;color:var(--copper-dark)}
.review-score .out-of{font-family:var(--mono);font-size:1rem}
.review-score .stars{grid-column:1/-1;margin:1rem 0;color:var(--copper-dark);letter-spacing:.18em}
.review-score strong,.review-score small{grid-column:1/-1}
.review-score small{margin-top:1.5rem;font-weight:600;text-decoration:underline;text-decoration-color:var(--copper);text-underline-offset:5px}
.editorial-link{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,8vw,8rem);align-items:end;padding:clamp(4rem,8vw,8rem) clamp(1.5rem,7vw,8rem);background:var(--paper);border-block:1px solid var(--line)}
.editorial-link h2{margin:0;font-family:var(--serif);font-size:clamp(3rem,5.8vw,6rem);font-weight:400;line-height:.92;letter-spacing:-.035em}.editorial-link>div:last-child{max-width:520px}.editorial-link .button{margin-top:1rem}
.faq{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(2rem,8vw,8rem);padding:clamp(5rem,9vw,9rem) clamp(1.5rem,7vw,8rem);background:var(--paper)}
.faq h2{margin:0;font-family:var(--serif);font-size:clamp(3rem,5.5vw,5.8rem);font-weight:400;line-height:.92;letter-spacing:-.035em}.faq-list{border-top:1px solid var(--bottle)}.faq details{border-bottom:1px solid var(--bottle)}.faq summary{padding:1.5rem 2.5rem 1.5rem 0;cursor:pointer;font-family:var(--serif);font-size:clamp(1.45rem,2.5vw,2.2rem);list-style:none;position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";position:absolute;right:.35rem;color:var(--copper-dark);font-family:var(--mono)}.faq details[open] summary::after{content:"−"}.faq details p{max-width:650px;padding:0 2.5rem 1.5rem 0;color:#3f5b51}
.salon{padding:clamp(5rem,10vw,10rem) clamp(1.5rem,7vw,8rem) 4rem;background:var(--sage)}
.salon header{display:grid;grid-template-columns:.65fr 1.35fr;align-items:end;margin-bottom:5rem}
.salon-grid{display:grid;grid-template-columns:1.3fr .7fr .8fr;border-top:1px solid var(--bottle)}
.salon-grid>div{padding:2rem;border-right:1px solid var(--bottle)}
.salon-grid>div:last-child{border-right:0}
.salon-grid address{font-style:normal}
.phone{display:block;margin:.2rem 0 1rem;font-family:var(--mono);font-size:clamp(1.4rem,2.2vw,2.3rem);font-weight:600}
.final-dot{width:18px;height:18px;margin:4rem auto 0;border-radius:50%;background:var(--copper-dark);box-shadow:0 0 0 9px rgba(166,75,42,.14)}
footer{display:grid;grid-template-columns:1fr 1fr auto;gap:2rem;align-items:center;padding:2rem clamp(1.5rem,5vw,5rem);background:#10271f;color:var(--paper)}
footer p{margin:0;font-size:.78rem}
footer nav{display:flex;gap:1rem;font-size:.78rem;font-weight:600}
.footer-meta{grid-column:1/-1;padding-top:1rem;border-top:1px solid rgba(239,241,236,.2);color:#aebdb5}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--copper);outline-offset:4px}

/* Internal service pages */
.page-main{padding:0}
.page-hero{display:grid;grid-template-columns:1.1fr .9fr;min-height:70svh;border-bottom:1px solid var(--line)}
.page-hero-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(4rem,9vw,9rem) clamp(2rem,7vw,8rem)}
.breadcrumbs{margin-bottom:2rem;font-family:var(--mono);font-size:.7rem}
.breadcrumbs ol{display:flex;gap:.55rem;list-style:none;margin:0;padding:0}.breadcrumbs li+li::before{content:"/";margin-right:.55rem;color:var(--copper-dark)}
.page-hero h1{margin-bottom:2rem}
.page-hero .lead{max-width:650px;font-size:clamp(1.2rem,2vw,1.7rem)}
.page-hero-visual{min-height:520px;background:var(--sage);overflow:hidden}
.page-hero-visual img{width:100%;height:100%;object-fit:cover}
.content-layout{display:grid;grid-template-columns:minmax(220px,.42fr) minmax(0,1fr);gap:clamp(3rem,10vw,11rem);padding:clamp(4rem,9vw,9rem) clamp(1.5rem,9vw,10rem)}
.content-aside{font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--copper-dark)}
.prose{max-width:780px}.prose h2{margin:0 0 1.5rem;font-size:clamp(2.3rem,4.8vw,4.8rem);line-height:.95}.prose h3{margin:3rem 0 1rem;font-family:var(--serif);font-size:2rem;font-weight:400}.prose p,.prose li{color:#3f5b51}.prose ul{padding-left:1.2rem}.prose .button{margin-top:1.5rem}
.related{padding:clamp(4rem,8vw,8rem) clamp(1.5rem,7vw,8rem);background:var(--bottle);color:var(--paper)}
.related h2{font-size:clamp(2.6rem,5vw,5rem);line-height:.95}.related-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:3rem;border-top:1px solid rgba(239,241,236,.3)}
.related-grid a{padding:1.5rem 1.5rem 1.5rem 0;border-right:1px solid rgba(239,241,236,.3);text-decoration:none}.related-grid a:last-child{border:0}.related-grid span{display:block;color:#db9b81;font-family:var(--mono);font-size:.66rem}.related-grid strong{display:block;margin-top:.7rem;font-family:var(--serif);font-size:1.8rem;font-weight:400}

@media(max-width:1000px){
  .site-header{grid-template-columns:1fr auto auto;gap:1.2rem}.site-header nav{position:absolute;left:0;right:0;top:100%;display:none;flex-direction:column;align-items:flex-start;padding:1.5rem;background:var(--paper);border-bottom:1px solid var(--bottle)}.site-header nav.is-open{display:flex}.menu-toggle{display:block}.header-call span{display:none}
  .hero,.craft,.page-hero{grid-template-columns:1fr}.hero-visual{min-height:65svh}.craft-photo{min-height:62svh}.page-hero-visual{min-height:60svh}.section-intro,.services-heading,.salon header,.editorial-link,.faq{grid-template-columns:1fr;gap:1.8rem}.section-intro .kicker{grid-column:auto}.diagnosis-tool{grid-template-columns:.78fr 1.22fr}.proof{grid-template-columns:1fr}.salon-grid{grid-template-columns:1fr 1fr}.salon-grid>div:nth-child(2){border-right:0}.salon-grid>div:last-child{grid-column:1/-1;border-top:1px solid var(--bottle)}
  .content-layout{grid-template-columns:1fr;gap:1.5rem}.related-grid{grid-template-columns:1fr}.related-grid a{border-right:0;border-bottom:1px solid rgba(239,241,236,.3)}
}
@media(max-width:700px){
  :root{--header:66px}.site-header{grid-template-columns:1fr auto auto;padding:8px 14px}.brand{font-size:.68rem}.brand img{width:36px;height:36px}.header-call{font-size:0}.header-call::after{content:"☎";font-size:1.2rem}.menu-toggle{font-size:.76rem}
  .measure-rail{display:none}main,footer{margin-left:0}
  .hero-copy{padding:4.5rem 1.2rem 3rem}.hero h1{font-size:clamp(3.6rem,18vw,5.2rem);margin-bottom:1.8rem}.hero-visual{min-height:72svh}.rating-link{grid-template-columns:auto auto}.rating-link>span:last-child{grid-column:2}
  .diagnosis,.services,.proof,.salon,.editorial-link,.faq{padding-inline:1.2rem}.section-intro h2,.services h2,.craft h2,.proof h2,.salon h2,.page-hero h1{font-size:clamp(3rem,14vw,4.4rem)}
  .diagnosis-tool{grid-template-columns:1fr}.strand-wrap{min-height:470px}.diagnosis-output{min-height:450px;padding:2rem 1.2rem}
  .service-item{grid-template-columns:72px 28px 1fr auto;gap:.6rem}.service-item small{font-size:.74rem}.service-item strong{font-size:1.55rem}
  .craft-copy{padding:4.5rem 1.2rem}.craft dl{grid-template-columns:1fr}.craft dl div{padding:1.2rem 0;border-bottom:1px solid rgba(239,241,236,.2)}
  .review-score{padding:1.5rem 0}.salon-grid{grid-template-columns:1fr}.salon-grid>div{padding:1.5rem 0;border-right:0;border-bottom:1px solid var(--bottle)}.salon-grid>div:last-child{grid-column:auto;border-top:0}
  footer{grid-template-columns:1fr;text-align:center;justify-items:center}footer nav{justify-content:center}.footer-meta{grid-column:auto;width:100%}
  .page-hero-copy{padding:4rem 1.2rem}.page-hero-visual{min-height:68svh}.content-layout{padding-inline:1.2rem}.related{padding-inline:1.2rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.service-item{transition:none}}
