@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Italiana&display=swap');
:root{--cream:#f6f1e9;--ink:#292019;--muted:#695d51;--gold:#b69a73;--line:#d9cec0}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.65 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}a:hover{text-decoration:underline;text-underline-offset:5px}a:focus-visible,button:focus-visible{outline:3px solid #98733d;outline-offset:5px}.skip{position:absolute;left:-1000px}.skip:focus{left:20px;top:15px;z-index:99;background:white;padding:15px}.preview{padding:6px 24px;text-align:center;background:#ded4c4;font-size:12px;letter-spacing:.08em}header{background:var(--cream);position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line)}.nav{max-width:1440px;margin:auto;padding:17px 4%;display:flex;align-items:center;gap:30px}.brand{font-family:'Italiana',Georgia,serif;font-size:39px;line-height:1;letter-spacing:-1px}.brand small{font:10px 'DM Sans',sans-serif;display:block;text-transform:uppercase;letter-spacing:.35em;text-align:center;margin-top:8px}.navlinks{display:flex;gap:23px;margin-left:auto;align-items:center;font-size:14px}.navlinks a[aria-current=page]{border-bottom:1px solid var(--ink)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 24px;background:var(--ink);color:var(--cream);font-size:13px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--ink);cursor:pointer}.button:hover{background:#49372b;text-decoration:none}.button.light{background:var(--cream);color:var(--ink)}.button.outline{background:transparent;color:inherit;border-color:currentColor}.menu{display:none;border:0;background:transparent;padding:10px}.wrap{max-width:1320px;margin:auto;padding:80px 5%}.eyebrow{text-transform:uppercase;font-size:12px;letter-spacing:.2em;margin:0 0 22px;color:var(--muted)}h1,h2,h3{font-family:'Italiana',Georgia,serif;font-weight:400;line-height:1.08;margin:0 0 24px}h1{font-size:clamp(52px,6.7vw,100px);letter-spacing:-.045em}h2{font-size:clamp(40px,4.5vw,66px);letter-spacing:-.035em}h3{font-size:32px}p{max-width:650px}p.lead{font-size:18px;line-height:1.8;color:var(--muted)}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:640px}.hero-copy{padding:76px 9% 55px 10%;display:flex;flex-direction:column;justify-content:center}.hero-copy .lead{max-width:420px}.actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:22px 0}.textlink{font-size:14px;border-bottom:1px solid;padding-bottom:5px}.hero-art{background:#302820;min-height:580px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.hero-art img{width:100%;height:100%;object-fit:cover;position:absolute}.photo-label{position:absolute;bottom:18px;left:22px;right:22px;color:white;font-size:12px;background:#211911c9;padding:8px 12px}.image-placeholder{border:1px solid #927a61;color:#d8c9b4;max-width:300px;padding:40px;text-align:center}.image-placeholder span{display:block;font:45px 'Italiana',Georgia,serif;margin-bottom:20px}.strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 5%;display:flex;justify-content:space-between;gap:20px;font-size:12px;letter-spacing:.14em;text-transform:uppercase}.section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:30px}.section-head h2{max-width:630px}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);column-gap:60px}.service-link{display:flex;gap:25px;align-items:center;border-top:1px solid var(--line);padding:25px 0}.service-link b{font-size:12px;color:var(--muted);font-weight:400}.service-link span{font-family:'Italiana',Georgia,serif;font-size:30px;line-height:1.2}.service-link em{font-style:normal;margin-left:auto}.dark{background:var(--ink);color:var(--cream)}.dark .eyebrow,.dark .lead{color:#cbbca9}.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.big-year{font-family:'Italiana',Georgia,serif;font-size:clamp(100px,17vw,235px);line-height:1}.border-top{border-top:1px solid var(--line)}.page-intro{padding-bottom:42px}.page-intro h1{max-width:970px}.note{background:#eae1d5;padding:20px 25px;font-size:14px;border-left:2px solid #9e805a}.service-item{display:grid;grid-template-columns:1fr auto;gap:35px;padding:32px 0;border-top:1px solid var(--line);scroll-margin-top:125px}.service-item h2{font-size:36px;margin-bottom:10px}.service-item p{margin:8px 0}.price{text-align:right;min-width:195px}.price strong{display:block;margin-bottom:15px;font-weight:500}.portrait-slot{aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;background:#e7ddcf;border:1px solid var(--line);padding:35px;text-align:center;color:var(--muted)}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.gallery figure{margin:0}.gallery img{width:100%;height:400px;object-fit:cover;background:#ded4c4}.gallery figcaption{font-size:14px;margin:12px 0}.gallery .portrait-slot{height:400px;aspect-ratio:auto}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.contact-block{padding:25px 0;border-top:1px solid var(--line)}.contact-block h2{font:12px 'DM Sans',sans-serif;letter-spacing:.16em;text-transform:uppercase;margin-bottom:18px}.contact-block p{font-size:22px}.cta{text-align:center;padding:75px 5%}.cta h2{max-width:750px;margin:0 auto 25px}.cta p{margin:0 auto 25px}footer{padding:55px 5% 30px;background:#201a16;color:#e4d8c7}.footer-grid{max-width:1200px;margin:auto;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:50px}.footer-links{display:grid;gap:9px;font-size:14px}.footer-bottom{border-top:1px solid #5b4d40;margin:40px auto 0;padding-top:22px;max-width:1200px;font-size:12px;color:#c7b7a3;display:flex;justify-content:space-between;gap:30px}.mobile-book{display:none}.small{font-size:14px;color:var(--muted)}
@media(min-width:1500px){.hero{max-width:1600px;margin:auto}}@media(max-width:1100px){.navlinks{gap:12px}.nav{gap:15px}.navlinks a{font-size:12px}.hero-copy{padding:55px 8%}.hero{min-height:580px}.hero-art{min-height:540px}}@media(max-width:850px){.nav{padding:14px 5%}.brand{font-size:33px}.menu{display:block;margin-left:auto}.nav>.button{display:none}.navlinks{display:none;position:absolute;top:100%;left:0;right:0;background:var(--cream);padding:25px 6%;border-bottom:1px solid var(--line)}.navlinks.open{display:grid;gap:16px}.navlinks a{font-size:16px;padding:5px 0}.hero{grid-template-columns:1fr}.hero-copy{padding:50px 6% 40px}.hero h1{max-width:650px;font-size:70px}.hero-art{min-height:480px}.strip{flex-wrap:wrap;justify-content:center;text-align:center;font-size:11px}.wrap{padding:55px 6%}.split,.contact-grid{grid-template-columns:1fr;gap:35px}.gallery{grid-template-columns:1fr 1fr}.section-head{display:block}.service-grid{column-gap:25px}.service-link span{font-size:26px}.mobile-book{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:20;box-shadow:0 -2px 12px #0002;background:var(--cream);padding:10px 5%;gap:10px}.mobile-book .button{flex:1}.mobile-book>a:first-child{display:flex;align-items:center;justify-content:center;padding:0 18px;font-size:14px}body{padding-bottom:78px}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.portrait-slot{max-width:500px}.big-year{font-size:130px}}
@media(max-width:520px){.hero h1{font-size:59px}.hero-art{min-height:400px}.service-grid,.gallery{grid-template-columns:1fr}.service-item{grid-template-columns:1fr;gap:10px}.price{text-align:left}.service-link{padding:21px 0}.footer-grid{gap:30px}.footer-bottom{flex-direction:column}.actions{gap:20px}.page-intro h1{font-size:53px}.preview{font-size:11px}.gallery img{height:450px}}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
/* First-pass usability: generous controls and readable copy on every screen. */
.button{font-size:14px;letter-spacing:.06em}.eyebrow,.strip,.preview,.small,.photo-label,.footer-bottom{font-size:14px}.brand small{font-size:12px;letter-spacing:.2em}.navlinks a{font-size:14px}.category-nav{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0}.category-nav a{border:1px solid var(--line);padding:10px 15px;min-height:44px;font-size:14px}.menu-section{padding-top:10px}.gallery{margin-top:35px}.review-empty{max-width:850px;padding:40px;border:1px solid var(--line)}.owner-photo{width:100%;max-height:650px;object-fit:cover}.price{max-width:320px}.price .button{white-space:normal}.contact-block p{overflow-wrap:anywhere}.menu{min-width:60px;min-height:48px}.footer-links a{padding:5px 0}#main{scroll-margin-top:110px}@media(min-width:851px) and (max-width:1250px){.nav{flex-wrap:wrap}.navlinks{order:3;width:100%;justify-content:center;gap:20px}.nav>.button{margin-left:auto}}@media(max-width:850px){.navlinks a{font-size:16px}.preview{font-size:12px}.strip{font-size:14px}.review-empty{padding:25px}.service-item{grid-template-columns:1fr}.price{text-align:left;max-width:100%}.hero h1{font-size:clamp(48px,12vw,70px)}}
/* Accessible page navigation: every destination is visible without a menu. */
:root{--booking-bar-height:90px}
html{scroll-padding-bottom:calc(var(--booking-bar-height) + 24px)}
body{font-size:1.125rem;line-height:1.7}
p{max-width:65ch}
h1,h2,h3{font-family:Georgia,'Times New Roman',serif;line-height:1.18;letter-spacing:-.025em}
h1{font-size:clamp(2.5rem,5.7vw,5rem)}
h2{font-size:clamp(2rem,4vw,3.5rem)}
h3{font-size:1.75rem}
.hero h1,.page-intro h1{font-size:clamp(2.5rem,5.7vw,5rem)}
.hero-copy{padding-top:3rem;padding-bottom:3rem}
.nav{display:flex;flex-wrap:wrap;gap:1rem;max-width:1440px;padding:1rem 4%}
.nav>.button{display:inline-flex;margin-left:auto}
.navlinks,.navlinks.open{display:flex;position:static;order:3;width:100%;margin:0;padding:.75rem 0 0;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:.5rem;border:0;border-top:1px solid var(--line)}
.navlinks a{display:flex;justify-content:center;align-items:center;min-height:48px;padding:.65rem 1rem;font-size:1rem;font-weight:600;line-height:1.4;text-align:center;border:1px solid #a99a89;border-radius:5px;background:#fffaf3;flex:1 1 auto}
.navlinks a[aria-current=page]{background:var(--ink);color:var(--cream);border:2px solid var(--ink);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.navlinks a:hover{background:#e8ddce;color:var(--ink)}
.button{font-size:1rem;font-weight:600;line-height:1.4;text-transform:none;letter-spacing:normal;min-height:48px;padding:.8rem 1.2rem;border-radius:4px;text-align:center;overflow-wrap:anywhere}
.eyebrow,.strip,.contact-block h2{font:600 1rem/1.6 'DM Sans',sans-serif;text-transform:none;letter-spacing:.015em}
.preview{font-size:.875rem;letter-spacing:normal;text-transform:none}
.small,.note,.gallery figcaption,.footer-links,.footer-bottom,.photo-label{font-size:1rem;line-height:1.7}
p.lead{font-size:1.2rem;line-height:1.75}
.contact-block h2{margin-bottom:.75rem}
.textlink{font-size:1rem;display:inline-block;min-height:44px;padding:8px 0;text-decoration:underline;text-underline-offset:4px;border:0}
.category-nav a{font-size:1rem;line-height:1.5;min-height:48px;padding:.65rem 1rem;text-decoration:underline;text-underline-offset:4px}
.service-link span{font-family:'DM Sans',sans-serif;font-size:1.4rem;font-weight:500;line-height:1.5}
.service-link b{font-size:1rem}
.service-item h2{font-size:2rem}
.service-item{scroll-margin-top:230px}
.footer-links a{min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:4px}
.contact-block a:not(.button),.small a{text-decoration:underline;text-underline-offset:4px}
a:focus-visible,button:focus-visible{outline:3px solid #1264a3;outline-offset:4px;box-shadow:0 0 0 7px var(--cream)}
main:focus{outline:none}
#main{scroll-margin-top:230px}
.footer-grid>div,.split>div,.hero-copy,.contact-grid>div,.service-item>div{min-width:0}
@media(max-width:850px){
 header{position:relative}
 .nav{padding:1rem 5%;gap:1rem}
 .brand{font-size:2rem}
 .brand small{font-size:.75rem;letter-spacing:.1em}
 .nav>.button{max-width:50%;padding:.75rem 1rem}
 .navlinks,.navlinks.open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
 .navlinks a{font-size:1rem;padding:.65rem .4rem}
 .navlinks a:last-child{grid-column:1/-1}
 .hero h1,.page-intro h1{font-size:clamp(2.5rem,9vw,3.75rem)}
 .hero-copy{padding:2.5rem 6%}
 .hero-art{min-height:320px}
 .wrap{padding:2.5rem 6%}
 .menu-section{padding-top:0}
 .strip{font-size:1rem;justify-content:flex-start}
 .mobile-book{align-items:stretch;padding:.65rem 5%;padding-bottom:max(.65rem,env(safe-area-inset-bottom));gap:.65rem}
 .mobile-book>a:first-child{font-size:1rem;line-height:1.4;padding:.75rem;border:1px solid var(--ink);border-radius:4px;flex:1;text-align:center}
 .mobile-book .button{flex:1}
 body{padding-bottom:calc(var(--booking-bar-height) + 12px)}
 .service-item,#main{scroll-margin-top:20px}
 .footer-grid{grid-template-columns:1fr}
 .gallery .portrait-slot{height:auto;min-height:300px}
}
@media(max-width:360px){.nav>.button{font-size:.95rem}.brand{font-size:1.75rem}.brand small{font-size:.65rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(forced-colors:active){.navlinks a[aria-current=page]{outline:3px solid LinkText}}
/* Related-business page: clear separation from salon appointments. */
.suites-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:3rem;align-items:start}
.suites-preview{padding:2.5rem;background:var(--ink);color:var(--cream);border-radius:6px}
.suites-preview .eyebrow,.suites-preview .small{color:#e4d8c7}
.suites-preview ul{padding-left:1.3rem;margin:1.5rem 0}
.suites-preview li{margin:.65rem 0}
@media(max-width:850px){.navlinks a:last-child{grid-column:auto}.suites-layout{grid-template-columns:1fr;gap:2rem}.suites-preview{padding:1.5rem}.navlinks a{overflow-wrap:anywhere}}
/* Textures brand palette: beige, chocolate silk and warm gold. */
:root{--cream:#f5ecdf;--ink:#382319;--muted:#6b4b38;--gold:#b78a43;--line:#cdb998}
body{background:var(--cream);color:var(--ink)}
.preview{background:#e2cba7;color:#382319;border-bottom:1px solid #b78a43}
header{background:#f5ecdf;border-bottom:2px solid #b78a43}
.brand{color:#543322}
.navlinks{border-top-color:#c6a66f}
.navlinks a{background:#fcf6ec;border-color:#bca17b;color:#382319}
.navlinks a:hover{background:#ead5b2;color:#382319;border-color:#805b2c}
.navlinks a[aria-current=page]{background:linear-gradient(115deg,#382319 0%,#65422b 48%,#382319 100%);color:#fff7e9;border:2px solid #a77a36}
.button{background:linear-gradient(115deg,#382319 0%,#65422b 48%,#382319 100%);color:#fff7e9;border-color:#99713a;box-shadow:inset 0 1px 0 #d4b47b55}
.button:hover{background:#513321;color:#fff7e9;border-color:#73501e}
.button.light{background:linear-gradient(115deg,#ecd5a5,#f7e8c9 50%,#d8b77a);color:#382319;border-color:#d8b77a}
.button.light:hover{background:#f9eccf;color:#382319}
.button.outline{background:transparent;color:inherit;border-color:#8e6a37;box-shadow:none}
.button.outline:hover{background:#e5cfaa;color:#382319}
.eyebrow{color:#745025}
.hero-copy{background:linear-gradient(125deg,#f9f1e5 0%,#f5ecdf 70%,#edddc7 100%)}
.hero-art,.dark,.suites-preview{background:linear-gradient(120deg,#2d1b14 0%,#4e3022 28%,#70503a 49%,#4b2d1f 66%,#2d1b14 100%);color:#fff5e5}
.dark{border-top:1px solid #b78a43;border-bottom:1px solid #b78a43}
.dark .eyebrow,.suites-preview .eyebrow{color:#ecd09a}
.dark .lead,.suites-preview .small{color:#f0dfc7}
.suites-preview{border:1px solid #c8a160;box-shadow:0 12px 30px #38231912}
.image-placeholder{border-color:#c8a160;color:#f2dfbc;background:#2d1b1455}
.strip{background:#e9d8bc;border-color:#bfa170;color:#513622}
.note{background:#ecddc6;border-left:3px solid #98702e;color:#493022}
.portrait-slot{background:linear-gradient(135deg,#eddfcb,#dfc7a5);border-color:#b99a68;color:#67482f}
.category-nav a{border-color:#bca17b;background:#fcf6ec}
.category-nav a:hover{background:#ead5b2}
.review-empty{background:#fbf5e9;border-color:#b99a68;border-top:3px solid #b78a43}
.cta{background:linear-gradient(120deg,#ead7b6,#f5ecdf 50%,#ead7b6);border-top:1px solid #b99a68}
footer{background:linear-gradient(115deg,#2d1b14,#513321 55%,#302017);color:#f4e6d0;border-top:3px solid #b78a43}
footer .brand{color:#eed5a5}
.footer-bottom{border-color:#a9834e;color:#efddbd}
footer .small{color:#efddbd!important}
.mobile-book{background:#f5ecdf;border-top:2px solid #b78a43;box-shadow:0 -4px 18px #38231918}
a:focus-visible,button:focus-visible{outline-color:#1264a3}
@media(forced-colors:active){.button,.navlinks a[aria-current=page]{background:ButtonFace;color:ButtonText;border-color:ButtonText}.dark,.suites-preview,footer{background:Canvas;color:CanvasText}}
/* Original client photography: preserve complete hairstyles and portrait framing. */
.client-slideshow{background:linear-gradient(120deg,#2d1b14,#65432e,#2d1b14);padding:1.5rem;display:flex;flex-direction:column;justify-content:center;min-width:0;color:#fff5e5}
.slide-stage{position:relative;height:480px;width:100%;max-width:430px;margin:0 auto}
.photo-slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.1s ease;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center}
.photo-slide.is-active{opacity:1;z-index:1}
.photo-slide img{display:block;max-width:100%;max-height:420px;width:auto;height:auto;object-fit:contain;border:1px solid #c8a160}
.photo-slide figcaption{font-size:1rem;line-height:1.5;text-align:center;margin-top:.7rem}
.slide-controls{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;margin-top:1rem}
.slide-controls[hidden]{display:none}
.slide-controls button{background:#f5ecdf;color:#382319;border:1px solid #c8a160;border-radius:4px;padding:.65rem .8rem;min-height:44px;cursor:pointer;font-size:1rem}
.slide-status{margin:.65rem 0 0;text-align:center;font-size:1rem}
.client-gallery{max-width:1050px;align-items:start;gap:2rem;margin:1.5rem 0 2rem}
.client-gallery .client-photo{margin:0;min-width:0}
.client-gallery img{display:block;width:auto;max-width:100%;height:auto;max-height:480px;margin:0 auto;object-fit:contain;border:1px solid #b99a68}
.client-photo>a{display:block;background:#e9d8bc;padding:.5rem;border-radius:4px}
.client-photo figcaption{margin:.7rem 0;font-size:1rem;line-height:1.5}
.portfolio-group{padding:2rem 0;border-bottom:1px solid var(--line);scroll-margin-top:230px}
.service-examples{margin-top:3rem;border-top:1px solid var(--line);padding-top:2rem}
@media(max-width:850px){.slide-stage{height:480px}.portfolio-group{scroll-margin-top:1rem}.client-slideshow{padding:1.5rem 5%}}
@media(max-width:520px){.slide-stage{height:440px}.photo-slide img{max-height:380px}.client-gallery{grid-template-columns:1fr}.client-photo{max-width:360px;width:100%;margin:0 auto!important}}
@media(prefers-reduced-motion:reduce){.photo-slide{transition:none}}
/* Style-specific collections: independent fading photo displays. */
.style-collections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem;align-items:start}
.style-collection{min-width:0;padding:1.5rem 0;border-top:1px solid var(--line);border-bottom:0}
.style-collection h2{font-size:2rem}
.style-collection .client-slideshow{border:1px solid #b78a43;border-radius:5px;padding:1.25rem}
.style-collection .slide-stage{height:475px}
.style-collection .photo-slide img{max-height:400px}
.slide-original{display:block;color:#fff5e5;text-decoration:underline;text-underline-offset:4px;text-align:center;font-size:1rem;min-height:44px;padding:.65rem 0}
.photo-pending{background:#e9d8bc;border:1px solid #b99a68;border-radius:5px;padding:1.5rem;color:#513622}
@media(max-width:850px){.style-collections{grid-template-columns:1fr;gap:1.5rem}.style-collection .slide-stage{height:450px}.style-collection .photo-slide img{max-height:375px}}
@media(max-width:360px){.style-collection .client-slideshow{padding:.75rem}.slide-controls button{font-size:.9rem;padding:.65rem .55rem}.style-collection .slide-stage{height:420px}.style-collection .photo-slide img{max-height:340px}}
/* Clear, grouped prices with service-specific booking labels. */
.price-intro{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;border:1px solid var(--line);padding:1.5rem;background:#fcf6ec}
.price-search{margin:2rem 0;max-width:650px}
.price-search label{display:block;font-weight:600;margin-bottom:.5rem}
.price-search input{width:100%;font:inherit;padding:.8rem 1rem;border:1px solid #8e6a37;border-radius:4px;background:#fffaf3;color:var(--ink);min-height:48px}
.price-search input:focus-visible{outline:3px solid #1264a3;outline-offset:3px}
.price-category{padding:2.5rem 0;scroll-margin-top:230px}
.price-category h2{font-size:2rem}
.price-menu-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1.5rem;padding:1.3rem 0;border-top:1px solid var(--line)}
.price-menu-row h3{font:600 1.125rem/1.5 'DM Sans',sans-serif;letter-spacing:normal;margin:0}
.price-menu-row p{font-size:1rem;margin:.4rem 0 0}
.menu-amount{font-size:1.2rem;text-align:right;white-space:nowrap}
.price-menu-row .button{padding:.75rem}
.price-category[hidden],.price-menu-row[hidden],.price-search[hidden],.price-empty[hidden]{display:none}
@media(max-width:850px){.price-category{scroll-margin-top:1rem}}
@media(max-width:520px){.price-menu-row{grid-template-columns:minmax(0,1fr) auto;gap:.8rem}.price-menu-row>.button{grid-column:1/-1;justify-self:start;min-width:140px}.price-category h2{font-size:1.8rem}}
/* Supplied salon photographs and owner portrait. */
.salon-photos{display:grid;grid-template-columns:1.35fr 1fr;gap:2rem;align-items:start;margin:2rem 0}
.salon-photos figure{margin:0;min-width:0}
.salon-photos img{display:block;width:100%;height:auto;border:1px solid #b99a68;border-radius:4px}
.salon-photos figcaption{font-size:1rem;margin-top:.65rem}
.owner-photo{height:auto;max-height:720px;object-fit:contain;object-position:center;border:1px solid #b99a68;background:#e9d8bc}
@media(max-width:850px){.salon-photos{grid-template-columns:1fr;gap:1.5rem}}

/* Full original salon banner above the navigation on every page. */
.site-banner{display:block;width:100%;background:#291507;line-height:0}
.site-banner img{display:block;width:100%;height:auto;max-width:100%;margin:0}
/* Welcome video beside the homepage introduction. */
.hero-video{background:#24180f;display:flex;align-items:center;justify-content:center;min-width:0;overflow:hidden}
.hero-video video{display:block;width:100%;height:100%;max-height:740px;object-fit:contain;background:#24180f}
@media(max-width:850px){.hero-video{min-height:0}.hero-video video{height:auto;max-height:620px}}

/* Instagram invitation: isolated styles, no backdrop or page scroll lock. */
.instagram-popup{position:fixed;z-index:30;right:24px;bottom:24px;width:370px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain;padding:24px;background:var(--cream);color:var(--ink);border:1px solid var(--gold);box-shadow:0 12px 42px #38231930;animation:instagram-popup-enter .45s ease-out both;text-align:center}
.instagram-popup-close{position:sticky;float:right;top:0;z-index:1;margin:-16px -16px -28px 0;display:grid;place-items:center;width:44px;height:44px;border:0;background:var(--cream);color:var(--ink);font-size:26px;line-height:1;cursor:pointer}
.instagram-popup-gif{display:block;width:auto;height:210px;max-width:100%;object-fit:contain;margin:0 auto 16px}
.instagram-popup h2{font-family:Georgia,'Times New Roman',serif;font-size:1.5rem;line-height:1.25;letter-spacing:normal;margin:0 0 12px}
.instagram-popup p{font-size:1rem;line-height:1.5;margin:0 0 18px}
.instagram-popup-follow{width:100%;font-size:1rem;line-height:1.4;text-transform:none;letter-spacing:normal;padding:12px 10px;min-height:48px}
@keyframes instagram-popup-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:850px){.instagram-popup{right:16px;bottom:calc(var(--booking-bar-height) + 12px);max-height:calc(100dvh - var(--booking-bar-height) - 36px)}}
@media(max-width:520px){.instagram-popup{padding:20px;width:350px}.instagram-popup-gif{height:150px;margin-bottom:12px}.instagram-popup h2{font-size:1.25rem}.instagram-popup p{margin-bottom:14px}}
@media(max-height:600px){.instagram-popup-gif{height:100px}}
@media(prefers-reduced-motion:reduce){.instagram-popup{animation:none}}
/* Appointment guidance extends the existing salon palette and type. */
.salon-hours{font-size:1rem;max-width:400px;margin:1rem 0 1.5rem}.salon-hours>div{display:flex;justify-content:space-between;gap:1.5rem;padding:.35rem 0}.salon-hours dt{font-weight:600}.salon-hours dd{margin:0;white-space:nowrap}.footer-heading{font:600 1.125rem 'DM Sans',sans-serif;margin:0}.cta .actions{justify-content:center}.booking-help{margin:1.5rem 0;padding:1.5rem}.booking-help h2{font-size:1.75rem}.price-category{border-top:1px solid var(--line);padding:0;margin:.7rem 0;background:#fcf6ec}.price-category>summary{padding:1.5rem;cursor:pointer;list-style-position:inside}.price-category>summary h2{display:inline;font-size:1.65rem;margin:0}.expand-label{display:block;font-size:1rem;color:var(--muted);margin:.4rem 0 0 1.4rem}.category-content{padding:0 1.5rem 1.5rem}.faq-item{border-top:1px solid var(--line);padding:1.1rem 0}.faq-item summary{cursor:pointer;font-weight:600;min-height:44px}.faq-item p{margin:.75rem 0}.faq-item:last-child{border-bottom:1px solid var(--line)}summary:focus-visible{outline:3px solid #1264a3;outline-offset:4px}#faq,#before-appointment,#appointment-policies,#booking-help,#arrival{scroll-margin-top:230px}.instagram-popup-gif{height:110px}.instagram-popup h2{font-size:1.3rem}
@media(max-width:850px){#faq,#before-appointment,#appointment-policies,#booking-help,#arrival{scroll-margin-top:1rem}.price-category>summary{padding:1rem}.category-content{padding:0 1rem 1rem}.price-category>summary h2{font-size:1.4rem}.instagram-popup-gif{height:85px}}
/* Careers: an email introduction with optional résumé. */
.career-photo{display:block;width:100%;height:auto;border:1px solid var(--gold);border-radius:4px}.application-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;margin:2rem 0}.application-grid>div{min-width:0}.application-grid .full-field{grid-column:1/-1}.application-grid label{display:block;font-weight:600;margin-bottom:.5rem}.application-grid label span{font-weight:400;font-size:1rem}.application-grid input,.application-grid select,.application-grid textarea{width:100%;min-height:48px;padding:.8rem;font:inherit;color:var(--ink);background:#fffaf3;border:1px solid #8e6a37;border-radius:4px}.application-grid textarea{resize:vertical}.application-grid input[type=file]{font-size:1rem;overflow:hidden}.application-grid input:focus-visible,.application-grid select:focus-visible,.application-grid textarea:focus-visible{outline:3px solid #1264a3;outline-offset:3px}.application-grid p{margin:.4rem 0}#apply{scroll-margin-top:230px}#application-ready{margin-top:1.5rem}#career-form[hidden],#application-ready[hidden]{display:none}
@media(max-width:850px){#apply{scroll-margin-top:1rem}.application-grid{grid-template-columns:1fr}}

/* Keep paired transformation photos together, in their original framing. */
.style-collection:has(.before-after-pair){grid-column:1/-1}.before-after-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;max-width:1000px}.before-after-pair figure{margin:0;min-width:0}.before-after-pair figcaption{font-weight:600;font-size:1.125rem;margin-bottom:.6rem}.before-after-pair a{display:block}.before-after-pair img{display:block;width:100%;height:auto;border:1px solid var(--gold);border-radius:4px}@media(max-width:520px){.before-after-pair{grid-template-columns:1fr;gap:1.5rem}}

/* Expandable portfolios keep video stills out of rotating photo displays. */
.portfolio-details{margin:24px 0;border-top:1px solid #d8c8b4;border-bottom:1px solid #d8c8b4;padding:16px 0}.portfolio-details summary{cursor:pointer;font-weight:600;padding:8px 0}.portfolio-details summary:focus-visible{outline:2px solid currentColor;outline-offset:5px}.portfolio-thumbnails,.suite-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}.portfolio-thumbnails .client-photo,.suite-gallery .client-photo{margin:0;min-width:0}.portfolio-thumbnails .client-photo img,.suite-gallery .client-photo img{width:100%;height:auto;display:block;object-fit:contain}.portfolio-thumbnails figcaption,.suite-gallery figcaption{font-size:14px;margin-top:10px}.suite-gallery{gap:28px}@media(max-width:540px){.suite-gallery{grid-template-columns:1fr}}

.menu-amount span{display:block;font-size:.875rem;font-weight:400}.stylist-directory{display:grid;gap:64px}.stylist-card{display:grid;grid-template-columns:minmax(200px,.8fr) minmax(0,1.2fr);gap:48px;border-top:1px solid var(--line);padding-top:40px}.stylist-portrait{display:block;width:100%;max-height:540px;object-fit:contain}.stylist-card .portrait-slot{height:100%;min-height:330px}.stylist-facts{margin:24px 0}.stylist-facts div{margin:16px 0}.stylist-facts dt{font-weight:600}.stylist-facts dd{margin:4px 0}.social-links{display:flex;gap:28px;flex-wrap:wrap;margin:24px 0}.social-links a{display:flex;align-items:center;gap:12px;text-decoration:none}.social-links svg{color:#a67c28;width:30px;height:30px;flex-shrink:0}.social-links b{display:block;font-size:14px}.social-links a:hover span{text-decoration:underline}footer .social-links{display:grid;gap:16px}footer .social-links svg{color:#dfb965}@media(max-width:640px){.stylist-card{grid-template-columns:1fr;gap:24px}.stylist-card .portrait-slot{min-height:280px}.menu-amount{font-size:1.1rem}}

/* Portrait columns retain their own width even before a photo is supplied. */
.stylist-card{align-items:start}.stylist-photo-column,.stylist-copy{min-width:0}.stylist-photo-placeholder{width:100%;aspect-ratio:4/5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;border:1px solid #b99a68;background:#e8dccb;color:#765c37;overflow:hidden}.stylist-photo-placeholder svg{width:72px;height:72px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.stylist-photo-placeholder span{font-size:16px;text-align:center}.stylist-copy{overflow-wrap:anywhere}.stylist-card .stylist-portrait{height:auto;max-width:100%}@media(max-width:640px){.stylist-card{grid-template-columns:minmax(88px,.65fr) minmax(0,1.35fr);gap:18px}.stylist-copy h2{font-size:30px}.stylist-photo-placeholder{gap:12px}.stylist-photo-placeholder svg{width:44px;height:44px}.stylist-photo-placeholder span{font-size:14px}.stylist-copy .button{padding:10px;font-size:12px;letter-spacing:.03em}}

.hero-showcase{min-width:0;padding:32px 7%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#e8ddcd}.hero-showcase .client-slideshow{width:100%;max-width:470px;margin:0;padding:14px;border:3px solid #b49355;box-shadow:inset 0 0 0 1px #ead6ae;background:#f6f1e9}.hero-showcase .slide-stage{width:100%;max-width:none;height:auto;aspect-ratio:3/4}.hero-showcase .photo-slide img{width:100%;height:100%;max-height:none;object-fit:contain;border:0}.hero-showcase .photo-slide figcaption{position:absolute;bottom:0;left:0;right:0;background:#292019e6;color:#fff;margin:0;padding:8px 12px;font-size:14px}.hero-showcase>.textlink{margin-top:20px}.hero-showcase .slide-controls{gap:8px}.hero-showcase .slide-controls button{font-size:14px;padding:8px}.hero-showcase .slide-status{font-size:14px;margin:10px 0 0}.welcome-film{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}.welcome-film video{max-height:620px;width:100%;height:auto}@media(max-width:850px){.hero-showcase{grid-row:1;padding:24px 6%}.hero-showcase .client-slideshow{max-width:370px}.hero-copy{padding-top:32px}.welcome-film{grid-template-columns:1fr;gap:24px}.hero-showcase .slide-stage{max-height:480px}}

.before-after-slideshow .photo-slide figcaption{font-size:20px;font-weight:600}.press-curl-example{margin:28px auto 0;max-width:360px}.press-curl-example .client-photo{margin:0}.press-curl-example img{width:100%;height:auto}.hero-video{flex-direction:column}.video-expand{margin:14px;color:#f6f1e9!important;align-self:center}.video-dialog{border:1px solid #b49355;background:#201a16;color:#f6f1e9;padding:20px;max-width:95vw;max-height:94dvh;width:950px}.video-dialog::backdrop{background:#000c}.video-dialog video{display:block;width:100%;max-height:78dvh;object-fit:contain;margin-top:12px}.video-close{display:block;margin-left:auto}.video-dialog .video-expand{display:none}

/* Saved TEXTURES updates: extend the existing luxury palette. */
.first-visit-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;padding-left:1.4rem;margin:2rem 0}.first-visit-steps li{padding:.5rem}.first-visit-steps a{color:inherit}.service-book{margin-top:.6rem}.service-video-slots{margin:3rem 0}.specialty-labels{color:#765b37;font-weight:600}.arrival-map{width:100%;height:360px;border:1px solid #c7b7a3;margin:1.5rem 0}.commonninja_component{margin:2rem 0;min-height:240px}@media(max-width:700px){.first-visit-steps{grid-template-columns:1fr 1fr}.arrival-map{height:300px}}

.portfolio-videos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:30px 0}.portfolio-video{min-width:0}.portfolio-video iframe{display:block;width:100%;max-width:360px;aspect-ratio:9/16;border:1px solid #b49355;background:#292019;margin:auto}.portfolio-video h3,.portfolio-video p{text-align:center}@media(max-width:640px){.portfolio-videos{grid-template-columns:1fr}}

.portfolio-local-video{max-width:480px;margin:30px auto;text-align:center}.portfolio-local-video video{display:block;width:100%;max-height:640px;object-fit:contain;background:#292019;border:1px solid #b49355}.portfolio-local-video .video-expand{color:#292019!important}

.service-tiktok{display:block;width:100%;max-width:360px;aspect-ratio:9/16;margin:1rem auto;border:1px solid #b49355}.portfolio-video iframe+button{display:block;margin:1rem auto}

img{-webkit-touch-callout:none;-webkit-user-drag:none;user-select:none;-webkit-user-select:none}
.photo-slide,.client-photo{-webkit-touch-callout:none}
/* Keep desktop collection headings, frames, captions and controls on shared rows. */
@media(min-width:851px){
 .style-collections{align-items:stretch}
 .style-collection>h2{min-height:2.4em;margin-bottom:1rem}
 .style-collection>p{min-height:4.5em;margin-top:0;margin-bottom:1.5rem}
 .client-slideshow{justify-content:flex-start}
 .client-slideshow .slide-stage,.style-collection .slide-stage{height:475px}
 .photo-slide{display:grid;grid-template-rows:400px 64px;justify-items:center;align-content:start;justify-content:stretch}
 .photo-slide img,.style-collection .photo-slide img{max-height:400px;align-self:center}
 .photo-slide figcaption{align-self:start;margin-top:.7rem}
 .slide-controls{min-height:44px}
 .client-gallery{align-items:stretch}
 .client-gallery .client-photo{display:flex;flex-direction:column}
 .client-gallery .client-photo img{height:400px;max-height:400px;object-fit:contain}
}
/* Explicit display heights enlarge small source files without changing their crops. */
.photo-slide img,.style-collection .photo-slide img{height:clamp(180px,50vw,320px);width:auto;max-height:none;max-width:none;object-fit:contain}
.slide-stage{max-width:none}
@media(min-width:851px){
 .photo-slide,.style-collection .photo-slide{grid-template-rows:clamp(220px,25vw,400px) 64px}
 .photo-slide img,.style-collection .photo-slide img,.client-gallery .client-photo img{height:clamp(220px,25vw,400px);width:auto;max-height:none;max-width:none;object-fit:contain}
}

/* Keep photos, captions and controls close without changing image framing. */
.client-slideshow{--slide-photo-height:clamp(180px,50vw,320px)}
.client-slideshow .slide-stage{height:calc(var(--slide-photo-height) + 3rem)}
.client-slideshow .photo-slide{display:grid;grid-template-rows:var(--slide-photo-height) 3rem;justify-items:center;align-content:start;justify-content:stretch}
.client-slideshow .photo-slide figcaption{margin:.45rem 0 0;align-self:start;line-height:1.35}
.client-slideshow .slide-controls{margin-top:.35rem}
.client-slideshow .slide-status{margin-top:.4rem}
@media(min-width:851px){.client-slideshow{--slide-photo-height:clamp(220px,25vw,400px)}}
.hero-showcase .client-slideshow .slide-stage{height:auto;aspect-ratio:3/4}
.hero-showcase .client-slideshow .photo-slide{display:flex;justify-content:center}
.hero-showcase .client-slideshow .photo-slide figcaption{margin:0}
/* Mobile portraits use the full content width; desktop portrait layout stays intact. */
@media(max-width:640px){
 .stylist-card{grid-template-columns:minmax(0,1fr);gap:24px}
 .stylist-photo-column{width:100%}
 .stylist-card .stylist-portrait,.owner-photo{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
}

/* Keep portfolio links close to their introduction at every screen size. */
.page-intro.portfolio-intro{padding-bottom:0}
.portfolio-intro .lead{margin-bottom:0}
.wrap.portfolio-content{padding-top:24px}
.portfolio-content>.social-links{margin-top:0;margin-bottom:20px}

/* Targeted stylist details, crop framing and portfolio photo viewer. */
.stylist-specialties-heading{font:inherit;font-weight:600;margin:20px 0 8px}
.stylist-specialties{padding-left:20px;margin:0;columns:2;column-gap:28px}
.stylist-specialties li{break-inside:avoid;margin-bottom:5px}
.portfolio-crop{display:block;position:relative;overflow:hidden;width:100%;aspect-ratio:var(--crop-ratio)}
.portfolio-crop img{position:absolute!important;left:var(--crop-left)!important;top:var(--crop-top)!important;width:var(--crop-width)!important;height:var(--crop-height)!important;max-width:none!important;max-height:none!important;object-fit:fill!important}
.portfolio-photo-button{display:block;position:relative;width:100%;padding:0;margin:0;border:0;background:transparent;color:inherit;cursor:zoom-in;line-height:0;-webkit-touch-callout:none;user-select:none}
.portfolio-photo-button>img{display:block}
.portfolio-photo-shield,.viewer-image-shield{position:absolute;inset:0;-webkit-touch-callout:none;user-select:none}
.portfolio-photo-button img,.portfolio-viewer img{-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}
.portfolio-viewer{position:fixed;inset:0;border:0;margin:auto;padding:64px 22px 22px;width:min(1100px,100%);max-width:100%;height:100%;max-height:100dvh;background:#201a16;color:var(--cream);overflow:auto;overscroll-behavior:contain}
.portfolio-viewer::backdrop{background:#15100ddd}
.portfolio-viewer[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}
.viewer-close{position:absolute;right:max(16px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));width:48px;height:48px;border:1px solid var(--gold);background:var(--cream);color:var(--ink);font-size:32px;line-height:1;cursor:pointer;z-index:2}
.viewer-figure{margin:0;min-height:0;display:flex;flex-direction:column;align-items:center;gap:10px;max-width:100%;flex:1}
.viewer-image-wrap{position:relative;min-height:0;max-width:100%;flex:1;display:flex;align-items:center;justify-content:center}
.viewer-image-wrap img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 200px);object-fit:contain}
.viewer-figure figcaption{text-align:center;font-size:16px;line-height:1.4}
.viewer-controls{display:flex;align-items:center;justify-content:center;gap:16px;flex-shrink:0}
.viewer-controls button{min-height:44px;padding:8px 16px;border:1px solid var(--gold);background:var(--cream);color:var(--ink);cursor:pointer}
.viewer-controls button[hidden]{display:none}
.viewer-open{overflow:hidden}
@media(max-width:520px){.stylist-specialties{columns:1}.portfolio-viewer{padding:68px 12px max(18px,env(safe-area-inset-bottom))}.viewer-controls{gap:12px}.viewer-image-wrap img{max-height:calc(100dvh - 220px)}}

/* Center every portfolio preview after adding its enlarge button. */
.style-collection .photo-slide .portfolio-photo-button{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-width:0;min-height:0}
.style-collection .photo-slide .portfolio-photo-button>img{height:100%;width:auto;max-width:100%;max-height:100%;object-fit:contain;margin-inline:auto}
.style-collection .photo-slide .portfolio-crop{width:min(100%,calc(var(--slide-photo-height) * var(--crop-ratio)));height:auto;max-height:100%;flex:none;margin-inline:auto}

/* Make the full gallery disclosure an unmistakable, matching action. */
.portfolio-details>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:14px 20px;border:1px solid var(--gold);border-radius:4px;background:#fcf6ec;list-style:none;box-shadow:0 2px 0 #b69a7320;transition:background .15s ease,border-color .15s ease}
.portfolio-details>summary::-webkit-details-marker{display:none}
.portfolio-details>summary:hover{background:#eee3d3;border-color:#98733d}
.portfolio-toggle-copy{display:flex;flex-direction:column;gap:2px}
.portfolio-toggle-title{font-weight:600;font-size:1rem}
.portfolio-toggle-hint{font-size:.8rem;font-weight:400;color:var(--muted)}
.portfolio-toggle-icon{font-size:1.6rem;font-weight:400;line-height:1;transition:transform .15s ease}
.portfolio-details[open] .portfolio-toggle-icon{transform:rotate(45deg)}
@media(prefers-reduced-motion:reduce){.portfolio-details>summary,.portfolio-toggle-icon{transition:none}}

/* Compact, single-row controls across Our Work galleries. */
.style-collections .slide-controls{flex-wrap:nowrap;gap:6px;align-items:center}
.style-collections .slide-controls button{font-size:14px;line-height:1.2;padding:8px 12px;min-height:44px;white-space:nowrap;border-radius:5px;box-shadow:0 1px 2px #201a1626}
.style-collections .slide-controls button:hover{background:#fff8ee;border-color:#a67e43}
@media(max-width:360px){.style-collections .slide-controls button{padding-inline:9px;font-size:13px}}

.portfolio-viewer .viewer-image-wrap{touch-action:pan-y pinch-zoom}
/* Shared alignment for neighboring portfolio sections and video cards. */
.portfolio-video{display:grid;grid-template-rows:auto auto auto;align-content:start}
.portfolio-video iframe,.service-tiktok{height:auto;aspect-ratio:9/16}
.portfolio-video h3{margin:0 0 16px;min-height:0;display:flex;align-items:flex-start;justify-content:center}
.portfolio-video p{margin:16px 0 0}
.portfolio-thumbnails .portfolio-photo-button{aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;overflow:hidden}
.portfolio-thumbnails .portfolio-photo-button>img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.portfolio-thumbnails .portfolio-crop{height:100%;width:auto;max-width:100%;flex:none}
@media(min-width:851px){
 .style-collection{display:flex;flex-direction:column}
 .style-collection>.textlink:last-child{margin-top:auto;align-self:flex-start}
 .style-collection>.portfolio-details{width:100%}
 .service-grid{align-items:stretch}
}

/* Real client cutouts accent informational sections without changing the site palette. */
.editorial-aside{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,30%);align-items:center;gap:clamp(24px,4vw,64px)}
.editorial-copy{min-width:0;position:relative;z-index:1}
.editorial-copy>p{max-width:650px}
.editorial-photo{position:relative;isolation:isolate;align-self:center;width:100%;max-width:320px;justify-self:center;padding:8px 8px 0;pointer-events:none;user-select:none}
.editorial-photo::before{content:"";position:absolute;z-index:-1;inset:16% -3% 3% 8%;border-radius:52% 48% 50% 50%;background:radial-gradient(ellipse at 65% 45%,#b69a7322 0%,#b69a7310 54%,transparent 73%)}
.editorial-photo::after{content:"";position:absolute;z-index:-1;top:14%;left:-3%;width:106%;aspect-ratio:1;border:1.5px solid var(--gold);border-radius:50%;opacity:.85;pointer-events:none}
.editorial-photo img{display:block;width:100%;height:auto;max-height:390px;object-fit:contain;object-position:center bottom;-webkit-mask-image:linear-gradient(to bottom,#000 78%,rgba(0,0,0,.9) 84%,rgba(0,0,0,.45) 93%,transparent 100%),linear-gradient(to right,transparent 0%,#000 10%,#000 87%,rgba(0,0,0,.6) 94%,transparent 100%);mask-image:linear-gradient(to bottom,#000 78%,rgba(0,0,0,.9) 84%,rgba(0,0,0,.45) 93%,transparent 100%),linear-gradient(to right,transparent 0%,#000 10%,#000 87%,rgba(0,0,0,.6) 94%,transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect;-webkit-touch-callout:none}
.editorial-faq{align-items:start}
.editorial-faq .editorial-photo{align-self:start;margin-top:65px}
@media(max-width:760px){
 .editorial-aside{grid-template-columns:minmax(0,1fr);gap:18px}
 .editorial-photo,.editorial-faq .editorial-photo{width:min(62%,225px);margin:0 auto;align-self:center}
 .editorial-photo img{max-height:260px}
 .editorial-copy .actions{flex-wrap:wrap}
}

/* Keep the footer wordmark and subtitle together at every viewport. */
footer .brand{display:inline-flex;flex-direction:column;align-items:center;width:max-content;max-width:100%}
footer .brand small{width:100%;text-align:center}

.welcome-film>div:first-child .editorial-photo{margin:24px auto 0;max-width:290px}
.about-intro{grid-template-columns:minmax(0,1fr) minmax(230px,30%)}
@media(max-width:760px){.about-intro{grid-template-columns:minmax(0,1fr)}.welcome-film>div:first-child .editorial-photo{margin:20px auto 0;max-width:225px}}

/* Center client reviews and keep the mobile welcome accent clear of the film. */
.review-empty{margin-inline:auto;text-align:center}
.review-empty .actions{justify-content:center}
.review-empty .commonninja_component{width:100%;margin-inline:auto}
@media(max-width:850px){
 .welcome-film{gap:40px}
 .welcome-film>div:first-child .editorial-photo{padding-bottom:24px}
}

/* Consistent homepage statement alignment and service portfolio actions. */
.strip{display:grid;grid-template-columns:1fr 1.6fr 1fr;align-items:center;gap:24px;text-align:center;justify-content:center}
.strip>span{display:block;min-width:0;text-align:center;line-height:1.6}
.service-examples{margin:1.25rem 0 1.5rem}
.service-examples-label{margin:0 0 .75rem;font-size:.95rem;color:var(--muted)}
.service-example-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.service-example{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;min-height:86px;padding:14px 18px;text-align:center;white-space:normal;border-color:var(--gold);background:var(--cream);line-height:1.45}
.service-example-name{font-size:.85rem;font-weight:400;letter-spacing:0;overflow-wrap:anywhere}
.service-example:hover{background:#eee3d3;text-decoration:none}
@media(max-width:850px){.strip{grid-template-columns:1fr;gap:18px;justify-content:center}}
@media(max-width:420px){.service-example-buttons{grid-template-columns:1fr}.service-example{min-height:80px}}

/* Compact category navigation on mobile; retain the desktop layout. */
@media(max-width:850px){
 .category-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:20px 0}
 .category-nav a{display:flex;align-items:center;justify-content:center;min-width:0;min-height:48px;padding:9px 10px;font-size:14px;line-height:1.35;text-align:center;overflow-wrap:anywhere;text-decoration:none}
 .category-nav a:hover{text-decoration:underline;text-underline-offset:3px}
}

/* Center the About page creator embed without changing other TikTok previews. */
.about-tiktok{text-align:center}
.tiktok-creator-frame{width:100%;max-width:780px;margin:24px auto 0;min-width:0}
.tiktok-creator-frame .tiktok-embed{margin:0 auto;width:100%;min-width:min(288px,100%)!important}
.tiktok-creator-frame iframe{max-width:100%}

/* About page Instagram feed matches the centered social section. */
.about-instagram{text-align:center;padding-top:24px}
.instagram-feed-frame{width:100%;max-width:1000px;margin:24px auto 0;min-width:0}
.instagram-feed-frame .sk-instagram-feed{width:100%;min-width:0}
.instagram-feed-frame iframe{max-width:100%}

/* Bring About social headings together and align their full text blocks. */
.about-routine{padding-bottom:24px}
.about-tiktok{padding-top:24px;padding-bottom:40px}
.about-instagram{padding-top:16px}
.about-tiktok>p,.about-instagram>p{margin-inline:auto;text-align:center}
.about-tiktok .social-heading,.about-instagram .social-heading{max-width:100%;font-size:clamp(20px,2vw,26px);line-height:1.35;font-weight:600;letter-spacing:.015em;margin:0 auto 14px;color:var(--muted)}
.about-tiktok>h2,.about-instagram>h2{margin:0 auto 18px;text-align:center}
.about-tiktok>p:not(.social-heading),.about-instagram>p:not(.social-heading){margin-top:0;margin-bottom:20px}
@media(max-width:850px){.about-routine{padding-bottom:16px}.about-tiktok{padding-top:20px;padding-bottom:28px}.about-instagram{padding-top:12px}}

/* Enlarge the hand by framing its transparent animation within the same slot. */
.instagram-popup-art{position:relative;overflow:hidden;width:90px;height:110px;margin:0 auto 16px}
.instagram-popup-art .instagram-popup-gif{position:absolute;height:173px;width:auto;max-width:none;left:-50px;top:-63px;margin:0}
.about-salon-video{display:block;width:100%;height:auto;max-height:650px;object-fit:contain;justify-self:center;border:1px solid var(--gold);background:#292019}
@media(max-width:850px){.instagram-popup-art{width:70px;height:85px;margin-bottom:12px}.instagram-popup-art .instagram-popup-gif{height:134px;left:-39px;top:-49px}}
@media(max-height:600px){.instagram-popup-art{width:70px;height:85px}.instagram-popup-art .instagram-popup-gif{height:134px;left:-39px;top:-49px}}

/* Larger hand-and-phone display while retaining the popup width and style. */
.instagram-popup-art{width:142px;height:180px;margin-bottom:10px}
.instagram-popup-art .instagram-popup-gif{height:283px;left:-81px;top:-103px}
@media(max-width:850px){.instagram-popup-art{width:116px;height:145px;margin-bottom:8px}.instagram-popup-art .instagram-popup-gif{height:228px;left:-66px;top:-83px}}
@media(max-height:600px){.instagram-popup-art{width:88px;height:110px}.instagram-popup-art .instagram-popup-gif{height:173px;left:-50px;top:-63px}}

/* Keep titles close to their descriptions, preserving aligned photo rows. */
.collection-intro{margin-bottom:24px}
.collection-intro h2{margin:0 0 12px}
.collection-intro p{margin:0}

/* Tighten the transition below each portfolio service-information link. */
.style-collections{row-gap:12px}
.style-collections>.style-collection{padding-bottom:4px}
.style-collection>.textlink:last-child{margin-bottom:0}

/* Facebook is centered with the existing About social feeds. */
.about-facebook{text-align:center;padding-top:16px}
.about-facebook>p{margin-inline:auto;text-align:center}
.about-facebook .social-heading{max-width:100%;font-size:clamp(20px,2vw,26px);line-height:1.35;font-weight:600;letter-spacing:.015em;margin:0 auto 14px;color:var(--muted)}
.about-facebook>h2{margin:0 auto 18px}
.about-facebook>p:not(.social-heading){margin-top:0;margin-bottom:20px}
@media(max-width:850px){.about-facebook{padding-top:12px}}

/* A soft curved fade removes the square shoulder edge of the home portrait. */
.welcome-film .editorial-photo-754 img{
 -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 52%,transparent 60%),linear-gradient(to right,transparent 0%,rgba(0,0,0,.15) 4%,rgba(0,0,0,.75) 10%,#000 17%,#000 100%),linear-gradient(to bottom,#000 0%,#000 64%,transparent 77%),radial-gradient(ellipse 65% 74% at 50% 24%,#000 70%,rgba(0,0,0,.95) 78%,rgba(0,0,0,.45) 90%,transparent 100%);
 mask-image:linear-gradient(to bottom,#000 0%,#000 52%,transparent 60%),linear-gradient(to right,transparent 0%,rgba(0,0,0,.15) 4%,rgba(0,0,0,.75) 10%,#000 17%,#000 100%),linear-gradient(to bottom,#000 0%,#000 64%,transparent 77%),radial-gradient(ellipse 65% 74% at 50% 24%,#000 70%,rgba(0,0,0,.95) 78%,rgba(0,0,0,.45) 90%,transparent 100%);
 -webkit-mask-composite:source-over,source-in,source-over;
 mask-composite:add,intersect,add;
}

/* Elfsight controls its responsive feed height and layout. */
.facebook-elfsight-frame{width:100%;max-width:1000px;margin:24px auto 0;min-width:0;text-align:left}
.facebook-elfsight-frame>.elfsight-app-c1273319-a926-42d5-844e-a5139ce7684d{width:100%;min-width:0}
.facebook-elfsight-frame iframe{max-width:100%}

.extension-method-content{padding-top:24px}
.extension-method-content>h3{text-align:center;margin:0 0 20px}
.extension-method-content .portfolio-videos{grid-template-columns:minmax(0,1fr)}

/* Compact section transitions without changing media framing or touch targets. */
main>.wrap:not(.page-intro):not(.menu-section):not(.about-tiktok):not(.about-instagram):not(.about-facebook):not(.about-routine),main>.dark>.wrap{padding-block:48px}
main>.menu-section{padding-bottom:48px}
main>.about-routine{padding-top:48px}
main>.about-tiktok,main>.about-instagram,main>.about-facebook{padding-bottom:32px}
main>.cta{padding-block:48px}
main>.wrap>p:last-child,.editorial-copy>p:last-child{margin-bottom:0}
.style-collection>h2,.style-collection>p{min-height:0}
.portfolio-local-video h3{margin-bottom:16px}
.photo-pending h3{margin-bottom:12px}
.photo-pending p:last-child{margin-bottom:0}
.portfolio-videos{margin-block:20px}
.stylist-directory{gap:40px}
.stylist-card{padding-top:24px}
@media(max-width:850px){
 main>.wrap:not(.page-intro):not(.menu-section):not(.about-tiktok):not(.about-instagram):not(.about-facebook):not(.about-routine),main>.dark>.wrap{padding-block:32px}
 main>.menu-section{padding-bottom:32px}
 main>.about-routine{padding-top:32px}
 main>.about-tiktok,main>.about-instagram,main>.about-facebook{padding-bottom:24px}
 main>.cta{padding-block:32px}
 .stylist-directory{gap:28px}
}

/* Remove provider promotion without cropping any Facebook posts. */
.about-facebook .facebook-elfsight-frame .eapps-link,
.about-facebook .facebook-elfsight-frame a[href*="elfsight.com"]{display:none!important}
/* Keep the About social feeds close to their headings and neighboring sections. */
main>.about-facebook,main>.about-tiktok,main>.about-instagram{padding-top:16px;padding-bottom:20px}
.facebook-elfsight-frame,.tiktok-creator-frame,.instagram-feed-frame{margin-top:16px}
main>.about-routine{padding-bottom:16px}
.about-routine>div>p:last-of-type{margin-bottom:16px}
@media(max-width:850px){
 main>.about-facebook,main>.about-tiktok,main>.about-instagram{padding-top:12px;padding-bottom:16px}
 .facebook-elfsight-frame,.tiktok-creator-frame,.instagram-feed-frame{margin-top:12px}
}

/* Rounded, feathered apron edges on the copper-hair booking portrait. */
.booking-help .editorial-photo-727 img{
 -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 60%,transparent 68%),radial-gradient(ellipse 50% 75% at 50% 25%,#000 76%,rgba(0,0,0,.9) 84%,rgba(0,0,0,.6) 90%,rgba(0,0,0,.15) 97%,transparent 100%),linear-gradient(to bottom,#000 0%,#000 82%,rgba(0,0,0,.8) 90%,rgba(0,0,0,.35) 97%,transparent 100%);
 mask-image:linear-gradient(to bottom,#000 0%,#000 60%,transparent 68%),radial-gradient(ellipse 50% 75% at 50% 25%,#000 76%,rgba(0,0,0,.9) 84%,rgba(0,0,0,.6) 90%,rgba(0,0,0,.15) 97%,transparent 100%),linear-gradient(to bottom,#000 0%,#000 82%,rgba(0,0,0,.8) 90%,rgba(0,0,0,.35) 97%,transparent 100%);
 -webkit-mask-composite:source-over,source-in;
 mask-composite:add,intersect;
}

/* Persistent, compact three-action row on desktop and mobile. */
.mobile-book{display:grid;position:fixed;bottom:0;left:0;right:0;z-index:20;grid-template-columns:minmax(0,180px) minmax(0,240px) minmax(0,180px);justify-content:center;align-items:stretch;gap:12px;padding:10px 24px;padding-bottom:max(10px,env(safe-area-inset-bottom));background:#f5ecdf;border-top:2px solid #b78a43}
.mobile-book>a,.mobile-book>a:first-child,.mobile-book .button{display:flex;align-items:center;justify-content:center;min-width:0;min-height:48px;margin:0;padding:10px 12px;font-size:15px;line-height:1.3;white-space:nowrap;letter-spacing:0;text-align:center;border-radius:4px}
.mobile-book>a:first-child{border:1px solid var(--ink)}
.mobile-book .prices-shortcut{background:#ead8b9;border:1px solid #a77b3e;color:var(--ink)}
.mobile-book .prices-shortcut:hover{background:#dec49a;text-decoration:none}
body{padding-bottom:calc(var(--booking-bar-height) + 12px)}
.instagram-popup{bottom:calc(var(--booking-bar-height) + 12px);max-height:calc(100dvh - var(--booking-bar-height) - 36px)}
@media(max-width:850px){
 .mobile-book{grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr) minmax(0,1fr);gap:6px;padding:9px 12px;padding-bottom:max(9px,env(safe-area-inset-bottom))}
 .mobile-book>a,.mobile-book>a:first-child,.mobile-book .button{padding:10px 6px;font-size:clamp(12px,3.1vw,15px);min-height:48px}
}

/* Fuller booking portrait with a shorter transition to the service finder. */
@media(max-width:850px){
 .booking-help.editorial-aside{gap:8px;padding-bottom:12px;margin-bottom:16px}
 .booking-help .editorial-copy>.actions:last-child{margin-bottom:8px}
 .booking-help .editorial-photo-727{width:min(76%,260px);max-width:260px}
 .booking-help .editorial-photo-727 img{max-height:300px}
}

/* Bring headings and their supporting text together, preserving column alignment. */
main :is(h1,h2,h3)+p{margin-top:0}
main :is(h1,h2,h3):has(+p){margin-bottom:14px}
.split>div>:is(h1,h2,h3):last-child{margin-bottom:0}
@media(max-width:850px){
 .split{row-gap:18px}
 .split>div+div>p:first-child{margin-top:0}
 main :is(h1,h2,h3):has(+p){margin-bottom:12px}
}
/* Feather only the lower shirt boundary of the braided appointment portrait. */
.editorial-photo-729 img{
 -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 79%,transparent 85%),radial-gradient(ellipse 52% 70% at 46% 31%,#000 78%,rgba(0,0,0,.95) 86%,rgba(0,0,0,.7) 95%,rgba(0,0,0,.25) 105%,transparent 112%),linear-gradient(to bottom,#000 0%,#000 88%,rgba(0,0,0,.9) 94%,rgba(0,0,0,.6) 98%,transparent 100%);
 mask-image:linear-gradient(to bottom,#000 0%,#000 79%,transparent 85%),radial-gradient(ellipse 52% 70% at 46% 31%,#000 78%,rgba(0,0,0,.95) 86%,rgba(0,0,0,.7) 95%,rgba(0,0,0,.25) 105%,transparent 112%),linear-gradient(to bottom,#000 0%,#000 88%,rgba(0,0,0,.9) 94%,rgba(0,0,0,.6) 98%,transparent 100%);
 -webkit-mask-composite:source-over,source-in;mask-composite:add,intersect;
}

/* The salon address is available in the shared header on every page. */
.header-address{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:44px;margin-left:auto;padding:4px 12px;font-size:14px;line-height:1.45;font-weight:500;color:#76532d;text-align:center;text-decoration:underline;text-decoration-color:#b69a73;text-underline-offset:4px}
.header-address:hover{color:var(--ink)}
@media(max-width:850px){
 .nav>.brand{order:0}
 .nav>.button{order:1}
 .nav>.header-address{order:2;flex-basis:100%;margin:0;padding:0 4px;font-size:13px;min-height:40px}
 .nav>.navlinks{order:3}
}

/* Keep the full hairstyle opaque; feather only the lower clothing edges. */
.editorial-photo-728 img{
 -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 86%,transparent 90%),radial-gradient(ellipse 52% 45% at 50% 56%,#000 70%,rgba(0,0,0,.9) 80%,rgba(0,0,0,.4) 92%,transparent 100%),linear-gradient(to bottom,#000 0%,#000 86%,rgba(0,0,0,.9) 90%,rgba(0,0,0,.4) 97%,transparent 100%);
 mask-image:linear-gradient(to bottom,#000 0%,#000 86%,transparent 90%),radial-gradient(ellipse 52% 45% at 50% 56%,#000 70%,rgba(0,0,0,.9) 80%,rgba(0,0,0,.4) 92%,transparent 100%),linear-gradient(to bottom,#000 0%,#000 86%,rgba(0,0,0,.9) 90%,rgba(0,0,0,.4) 97%,transparent 100%);
 -webkit-mask-composite:source-over,source-in;
 mask-composite:add,intersect;
}

/* Balance the Contact page entrance and social image. */
#arrival .salon-photos{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:center;gap:32px}
#arrival .salon-photos>figure{display:flex;flex-direction:column;min-width:0}
#arrival .arrival-social{align-items:center;text-align:center}
#arrival .arrival-social>a{display:block;width:100%;max-width:380px}
#arrival .arrival-social img{width:100%;height:auto;max-height:540px;object-fit:contain;border:0;border-radius:0}
#arrival .salon-photos figcaption{margin-top:12px}
.contact-grid{align-items:start}
.contact-grid .contact-block>p:last-child{margin-bottom:0}
@media(max-width:850px){
 #arrival .salon-photos{grid-template-columns:minmax(0,1fr);gap:24px}
 #arrival .arrival-social>a{max-width:280px}
 #arrival .arrival-social img{max-height:350px}
}

/* Matching gold social icons, with tidy wrapping on narrow screens. */
.social-links svg{color:#a67c28;width:30px;height:30px;flex:0 0 30px}
footer .social-links svg{color:#dfb965}
.contact-block .social-links{display:grid;gap:16px;margin:12px 0 0}
.social-links a{min-height:44px;min-width:0}
.social-links span{overflow-wrap:anywhere}

.careers-options{display:flex;flex-wrap:wrap;gap:12px;padding-top:0;padding-bottom:24px}
.careers-suites-heading{padding-bottom:12px!important}
#salon-concept-suites{scroll-margin-top:230px}
.footer-suites-link{display:inline-flex;align-items:center;min-height:44px;padding:10px 16px;border:1px solid #dfb965;border-radius:4px;color:#f4dcac;text-decoration:underline;text-underline-offset:4px}
@media(max-width:850px){#salon-concept-suites{scroll-margin-top:16px}.careers-options{padding-bottom:16px}.careers-options .button{flex:1 1 240px;text-align:center}}

.suites-layout{row-gap:20px}
.suites-layout .actions{gap:16px}
.suites-preview p:last-child{margin-bottom:0}
.suites-tour-cta p{margin-left:auto;margin-right:auto}
.suites-tour-cta .small{margin-top:18px;margin-bottom:0}

.footer-suites-contact{margin-top:28px;padding-top:24px;border-top:1px solid #b69a7366}
.footer-suites-contact .brand{display:block;line-height:1.12;overflow-wrap:normal}
.footer-suites-contact .brand small{text-align:left;line-height:1.6;letter-spacing:.1em}
.footer-suites-contact p{margin:16px 0}
.footer-suites-links{display:grid;gap:10px}
.footer-suites-links a{overflow-wrap:anywhere}

/* Compact page navigation in the mobile footer. */
@media(max-width:850px){
 .footer-page-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px;align-content:start;align-items:start}
 .footer-page-links>a{display:flex;align-items:center;min-height:44px;line-height:1.45;padding:6px 0;overflow-wrap:anywhere}
}
.home-welcome .salon-photos{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.home-welcome .salon-photos img{aspect-ratio:4/3;object-fit:cover}
.home-welcome .salon-photos img[src$="salon-exterior.jpg"]{object-position:center 38%}
@media(min-width:851px){
 .home-welcome{text-align:center}
 .home-welcome>p{margin-left:auto;margin-right:auto}
 .home-welcome .salon-hours{margin-left:auto;margin-right:auto;text-align:left}
}
@media(max-width:850px){.home-welcome .salon-photos{grid-template-columns:minmax(0,1fr)}}

/* Keep footer columns at the top rather than stretching their rows. */
.footer-grid{align-items:start}
.footer-grid>.footer-links{align-content:start;align-items:start;gap:10px}
.footer-heading{font:600 1.125rem/1.4 'DM Sans',sans-serif;letter-spacing:0;text-decoration:underline;text-underline-offset:5px;margin:0}
footer .salon-hours{width:100%;margin:0 0 8px;max-width:400px}
footer .salon-hours>div{padding:3px 0;gap:16px}
footer .social-links{margin:8px 0;gap:10px}
.footer-page-links>a{padding:5px 0}
.footer-grid>div:first-child>p{margin-top:16px;margin-bottom:16px}
@media(min-width:851px){
 .footer-page-links>a:first-child{padding-top:0}
 .footer-heading{min-height:39px;display:flex;align-items:flex-start;padding-top:0}
 .footer-grid>.footer-links{gap:8px}
}

/* Feather the outer right apron edge without fading the hairstyle. */
.editorial-photo-728 img{
 -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 58%,transparent 64%),linear-gradient(to right,#000 0%,#000 88%,rgba(0,0,0,.85) 91%,rgba(0,0,0,.45) 95%,transparent 100%),radial-gradient(ellipse 56% 80% at 44% 18%,#000 99%,rgba(0,0,0,.9) 105%,rgba(0,0,0,.45) 114%,transparent 123%),linear-gradient(to bottom,#000 0%,#000 86%,rgba(0,0,0,.9) 90%,rgba(0,0,0,.4) 97%,transparent 100%);
 mask-image:linear-gradient(to bottom,#000 0%,#000 58%,transparent 64%),linear-gradient(to right,#000 0%,#000 88%,rgba(0,0,0,.85) 91%,rgba(0,0,0,.45) 95%,transparent 100%),radial-gradient(ellipse 56% 80% at 44% 18%,#000 99%,rgba(0,0,0,.9) 105%,rgba(0,0,0,.45) 114%,transparent 123%),linear-gradient(to bottom,#000 0%,#000 86%,rgba(0,0,0,.9) 90%,rgba(0,0,0,.4) 97%,transparent 100%);
 -webkit-mask-composite:source-over,source-in,source-in;
 mask-composite:add,intersect,intersect;
}

.back-to-top{display:flex;align-items:center;justify-content:center;position:fixed;right:16px;bottom:calc(var(--booking-bar-height,80px) + 16px);z-index:19;width:48px;height:48px;padding:11px;border:1px solid #e2be72;border-radius:50%;background:linear-gradient(135deg,#f3dfac,#d1a24b);color:#3b2819;box-shadow:0 3px 12px #2d1b1433;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px);transition:opacity .22s ease,transform .22s ease,visibility .22s}
 .back-to-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
 .back-to-top svg{width:24px;height:24px}
 .back-to-top:hover{background:#edcf8c}
@media(prefers-reduced-motion:reduce){.back-to-top{transition:none}}

.copy-address{font:inherit;color:inherit;background:transparent;border:1px solid var(--gold);border-radius:4px;padding:8px 12px;min-height:44px;cursor:pointer;margin-left:12px}
.copy-status{display:block;font-size:14px;margin-top:6px}
.copy-status:empty{display:none}
.address-copy-field{display:block;width:100%;max-width:460px;margin-top:10px;padding:10px;font:inherit}
.category-nav a.is-current{background:#ead8b9;border-color:#a67c28;box-shadow:inset 0 -2px #a67c28}
.video-fallback{padding:18px;border:1px solid var(--gold);background:#fcf6ec;border-radius:6px;text-align:center}
.video-fallback[hidden]{display:none}
.video-fallback img{display:block;width:100%;height:220px;object-fit:contain;margin:auto}
.video-fallback p{margin:12px auto}
.video-help{display:block;background:transparent;border:0;border-bottom:1px solid currentColor;cursor:pointer;color:var(--muted);font:inherit;margin:12px 0;padding:4px 0;min-height:44px}
.video-help[hidden]{display:none}

/* The accessibility shortcut stays hidden during touch navigation. */
.skip:focus:not(:focus-visible){left:-1000px}

/* Clear, compact approval guidance beside online booking actions. */
.booking-request-note{font-size:clamp(.875rem,1.2vw,.98rem);line-height:1.55;max-width:66ch;margin:12px 0 18px}.cta .booking-request-note{margin:12px auto 18px}.booking-request-note strong{font-weight:700}

/* A welcoming gold shortcut for first-time clients. */
.new-client-shortcut .textlink{display:inline-flex;align-items:center;justify-content:center;gap:12px;max-width:100%;min-height:48px;padding:12px 20px;border:1px solid #b58a48;border-radius:8px;background:linear-gradient(110deg,#f3e3bb,#e6cd97);color:#3b2819;font-weight:700;font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.4;text-decoration:none;box-shadow:0 3px 10px #593c1710}
.new-client-shortcut .textlink::after{content:"→";font-size:1.2em;flex-shrink:0}
.new-client-shortcut .textlink:hover{background:#e5ca91;border-color:#926827}
.new-client-shortcut .textlink:focus-visible{outline:2px solid #593b20;outline-offset:4px}

/* Branded service links: gold squares and crisp white arrows. */
.service-link-arrow{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;margin-left:12px;border:1px solid #a97d36;border-radius:5px;background:linear-gradient(135deg,#cda858,#b48635);color:#fff;box-shadow:0 1px 3px #593b2015}
.service-link-arrow svg{display:block;width:20px;height:20px}
.service-link:hover .service-link-arrow{background:#a8792c}

/* Keep every service arrow in the same right-hand column. */
.service-link{display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:center;gap:16px;width:100%}
.service-link>span:first-child{min-width:0}
.service-link>.service-link-arrow{justify-self:end;margin-left:0;width:28px;height:28px}

/* Compact mobile rhythm; desktop sizes and spacing remain unchanged. */
@media(max-width:850px){
 main .wrap{padding-top:32px;padding-bottom:32px}
 main .wrap.menu-section{padding-top:16px}
 main .page-intro{padding-bottom:20px}
 main .hero-copy{padding-top:30px;padding-bottom:30px}
 .hero h1{font-size:clamp(28px,8.8vw,46px);line-height:1.14;margin-bottom:16px}
 .hero-result-line{white-space:nowrap}
 .desktop-heading-break{display:none}
 main h2{font-size:clamp(28px,7.4vw,38px);line-height:1.18;margin-bottom:16px}
 main h2 br{display:none}
 main p,main p.lead{line-height:1.55;margin-top:12px;margin-bottom:16px}
 main .eyebrow{margin-top:0;margin-bottom:12px}
 main .actions{gap:12px;margin:16px 0}
 main .split,main .contact-grid{gap:24px}
 main .section-head{margin-bottom:20px}
 main .note{padding:18px 20px}
 main .note>:first-child{margin-top:0}
 main .note>:last-child{margin-bottom:0}
 main .cta{padding-top:36px;padding-bottom:36px}
 main .cta p{margin-bottom:18px}
 main .category-nav{gap:8px;margin:20px 0}
 main .style-collection{padding:20px 0}
 main .portfolio-details{margin:18px 0;padding:12px 0}
 main .service-link{padding:18px 0}
 main .first-visit-steps{gap:16px;margin:20px 0}
 .footer-bottom{margin-top:24px;padding-top:18px}
}

/* Three-action groups repeat the cream, tan-gold and brown palette. */
.button.gold,.button.gold.outline{background:#ead8b9;border:1px solid #a77b3e;color:var(--ink)}
.button.gold:hover,.button.gold.outline:hover{background:#dec49a;text-decoration:none}

/* Full-width, slowly moving client hairstyle strip. */
.hair-pan-banner{--pan-height:320px;--pan-gap:8px;background:#f0e6d8;padding:38px 0 24px;border-block:1px solid #c9ae85;overflow:hidden}
.hair-pan-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:22px}
.hair-pan-heading .eyebrow{margin-bottom:8px}
.hair-pan-heading h2{font-size:clamp(1.7rem,3vw,2.6rem);line-height:1.15;margin:0}
.hair-pan-toggle{flex-shrink:0;min-height:44px;cursor:pointer;font:inherit}
.hair-pan-window{width:100%;overflow:hidden;background:#c39a45;border-block:5px solid #c39a45}
.hair-pan-track{display:flex;width:max-content;animation:hair-pan-scroll 120s linear infinite;will-change:transform}
.hair-pan-group{display:flex;gap:var(--pan-gap);padding-right:var(--pan-gap);flex:none}
.hair-pan-photo{margin:0;width:calc(var(--pan-height)*.8);height:var(--pan-height);flex:none;overflow:hidden;background:#c39a45}
.hair-pan-photo img{display:block;width:100%;height:100%;object-fit:cover;max-width:none;user-select:none;-webkit-touch-callout:none}
.hair-pan-banner.is-paused .hair-pan-track{animation-play-state:paused}
.hair-pan-link{text-align:center;margin-top:18px}
@media(hover:hover){.hair-pan-window:hover .hair-pan-track{animation-play-state:paused}}
@keyframes hair-pan-scroll{to{transform:translateX(-50%)}}
@media(min-width:1600px){.hair-pan-banner{--pan-height:360px}}
@media(max-width:600px){.hair-pan-banner{--pan-height:240px;--pan-gap:6px;padding:26px 0 20px}.hair-pan-heading{align-items:flex-start;gap:12px;margin-bottom:18px}.hair-pan-heading h2{font-size:1.55rem}.hair-pan-toggle{font-size:.8rem;padding:10px 12px}.hair-pan-track{animation-duration:100s}}
@media(prefers-reduced-motion:reduce){.hair-pan-track{animation:none;transform:none;will-change:auto}.hair-pan-window{overflow-x:auto;scroll-snap-type:x proximity}.hair-pan-photo{scroll-snap-align:start}.hair-pan-group[aria-hidden]{display:none}.hair-pan-toggle{display:none}}

/* The photo strip itself handles pause gestures without opening images. */
.hair-pan-window{cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:pan-y}
.hair-pan-photo img{pointer-events:none;-webkit-user-drag:none}
.hair-pan-window:focus-visible{outline:3px solid #a77b3e;outline-offset:4px}
@media(prefers-reduced-motion:reduce){.hair-pan-window{touch-action:auto}}

/* A quiet upward glide for section headings, without changing spacing. */
.title-reveal{transition:opacity .7s ease,transform .7s cubic-bezier(.22,.61,.36,1)}
.title-reveal-pending{opacity:0;transform:translateY(16px)}
@media(prefers-reduced-motion:reduce){.title-reveal{transition:none}.title-reveal-pending{opacity:1;transform:none}}
@media print{.title-reveal-pending{opacity:1;transform:none}}

/* Text panels move together; the gold circle and hair image reveal as one. */
.content-reveal{transition:opacity .85s ease,translate .85s cubic-bezier(.22,.61,.36,1)}
.content-reveal-pending{opacity:0;translate:0 14px}
.editorial-photo.content-reveal{transition-duration:1s}
@media(prefers-reduced-motion:reduce){.content-reveal{transition:none}.content-reveal-pending{opacity:1;translate:none}}
@media print{.content-reveal-pending{opacity:1;translate:none}}

/* Give scroll entrances time to register once the section is in view. */
.title-reveal{transition-duration:1.25s;transition-delay:.1s}
.title-reveal-pending{transform:translateY(22px)}
.content-reveal{transition-duration:1.35s;transition-delay:.1s}
.content-reveal-pending{translate:0 20px}
.editorial-photo.content-reveal{transition-duration:1.5s}
/* The strip heading uses its banner's padding instead of a second section's. */
.hair-pan-heading.wrap{padding-top:0;padding-bottom:0;margin-bottom:20px}
.hair-pan-banner{padding-top:30px;padding-bottom:22px}
main>.wrap.page-intro{padding-top:44px;padding-bottom:28px}
main>.wrap:not(.page-intro):not(.menu-section):not(.about-tiktok):not(.about-instagram):not(.about-facebook):not(.about-routine),main>.dark>.wrap{padding-block:40px}
@media(max-width:850px){
 .hair-pan-banner{padding-top:24px;padding-bottom:18px}
 .hair-pan-heading.wrap{padding-block:0;margin-bottom:16px}
 main>.wrap.page-intro{padding-top:28px;padding-bottom:20px}
 main>.wrap:not(.page-intro):not(.menu-section):not(.about-tiktok):not(.about-instagram):not(.about-facebook):not(.about-routine),main>.dark>.wrap{padding-block:28px}
}
@media(prefers-reduced-motion:reduce){.title-reveal,.content-reveal{transition:none}.title-reveal-pending{transform:none}.content-reveal-pending{translate:none}}

/* New cutouts carry their own clothing fade; keep all hair fully opaque. */
.editorial-new-cutout img{-webkit-mask-image:none;mask-image:none;max-height:340px}
.editorial-new-cutout{max-width:285px}
.contact-block .editorial-new-cutout{margin:22px auto 0}
.big-year+.editorial-new-cutout{margin:12px auto 0;max-width:250px}
@media(max-width:760px){.editorial-new-cutout{width:min(68%,235px)}.editorial-new-cutout img{max-height:270px}.big-year+.editorial-new-cutout{max-width:210px}}

/* Fade clothing below the hair on shorter cuts and side profiles. */
.editorial-photo-803 img,.editorial-photo-805 img,.editorial-photo-806 img,.editorial-photo-807 img,.editorial-photo-808 img,.editorial-photo-809 img{-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 88%,rgba(0,0,0,.85) 92%,rgba(0,0,0,.4) 97%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 88%,rgba(0,0,0,.85) 92%,rgba(0,0,0,.4) 97%,transparent 100%)}

.editorial-new-cutout::after{top:50%;left:5%;width:90%;transform:translateY(-50%)}
/* Refined gallery motion: image transforms never resize the frame. */
.elegant-look .portfolio-photo-button{overflow:hidden}
.elegant-look .portfolio-photo-button>img,.elegant-look .portfolio-photo-button>.portfolio-crop{transition:transform 1s cubic-bezier(.2,.65,.25,1);transform-origin:center}
.elegant-look figcaption{background:linear-gradient(110deg,#513923eb,#292019f0);color:#fff8ed;border-radius:3px;padding:6px 10px!important;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;font-size:13px!important;line-height:1.25!important;width:100%;box-sizing:border-box;transition:opacity .6s ease}
.explore-look{color:#f5d99e!important;font-size:12px;text-underline-offset:3px;white-space:nowrap}
@media(hover:hover) and (pointer:fine){.elegant-look figcaption{opacity:0}.elegant-look:hover figcaption,.elegant-look:focus-within figcaption{opacity:1}.elegant-look:hover .portfolio-photo-button>img,.elegant-look:hover .portfolio-photo-button>.portfolio-crop{transform:scale(1.025)}}
.look-entered .portfolio-photo-button>img,.look-entered .portfolio-photo-button>.portfolio-crop{animation:look-breathe 1.5s ease-in-out}
@keyframes look-breathe{0%,100%{transform:scale(1)}45%{transform:scale(1.02)}}
.stylist-photo-toggle{width:100%;padding:0;border:1px solid #bb9554;border-radius:5px;background:#eee2ce;color:#38281d;cursor:pointer;overflow:hidden;touch-action:pan-y}
.stylist-photo-stage{display:block;position:relative;aspect-ratio:3/4;overflow:hidden;width:100%}
.stylist-photo-stage .stylist-portrait,.stylist-photo-stage .stylist-work-image{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:contain;animation:stylist-photo-in .65s ease}
.stylist-photo-stage [hidden]{display:none!important}
.stylist-toggle-hint{display:block;padding:10px 8px;font-size:14px;font-weight:600;line-height:1.4}
.stylist-work-controls{display:flex;align-items:center;gap:8px;justify-content:space-between;margin-top:10px}
.stylist-work-controls[hidden]{display:none}
.stylist-work-controls .button{padding:6px 12px!important;font-size:24px!important;min-width:40px;min-height:44px}
.stylist-work-caption{margin:0;text-align:center;font-size:12px;line-height:1.4}
@keyframes stylist-photo-in{from{opacity:.2;transform:translateY(5px)}to{opacity:1;transform:none}}
.transformation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.transformation{min-width:0}.transformation h3{margin-bottom:10px}.reveal-instruction{font-weight:600;margin:0}.transformation .small{margin:5px 0 14px}
.transformation-frame{position:relative;aspect-ratio:3/4;overflow:hidden;border:2px solid #b68d43;border-radius:6px;background:#f6eee1;isolation:isolate}
.transformation-frame>img,.transformation-canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.transformation-canvas{opacity:0;pointer-events:none;touch-action:none;transition:opacity .8s ease}
.transformation-canvas.ready{opacity:1;pointer-events:auto;cursor:crosshair}
.transformation-before.canvas-ready{visibility:hidden}
.transformation-label{position:absolute;left:12px;top:12px;border-radius:3px;background:#35251de3;color:#fff8ed;padding:5px 12px;font-size:13px;pointer-events:none}
.is-revealed .transformation-before{visibility:hidden}.is-revealed .transformation-canvas{opacity:0;pointer-events:none}
.transformation .actions{margin-top:14px;gap:10px}.transformation [hidden]{display:none!important}
.gold-shimmer .transformation-frame{animation:transformation-shimmer 1.1s ease-in-out}
@keyframes transformation-shimmer{0%,100%{box-shadow:0 0 0 0 #d8b46400}45%{box-shadow:0 0 0 3px #e8c87888,0 0 20px #d8b46466;border-color:#eed48d}}
@media(max-width:640px){.transformation-grid{grid-template-columns:1fr;gap:24px}.stylist-toggle-hint{font-size:11px;padding:8px 4px}.stylist-work-controls{flex-wrap:wrap;gap:4px}.stylist-work-caption{order:3;width:100%}.transformation .button{padding:10px 16px}}
@media(prefers-reduced-motion:reduce){.elegant-look *, .stylist-photo-stage img,.transformation-canvas,.transformation-frame{animation:none!important;transition:none!important;transform:none!important}}
.photo-slide.is-active{pointer-events:auto}
.elegant-look{overflow:hidden}
.elegant-look>img{transition:transform 1s ease;transform-origin:center}
@media(hover:hover) and (pointer:fine){.elegant-look:hover>img{transform:scale(1.025)}}
.look-entered>img{animation:look-breathe 1.5s ease-in-out}
@media(prefers-reduced-motion:reduce){.elegant-look>img{transform:none!important;animation:none!important}}
.style-collection .client-slideshow .slide-stage{height:calc(var(--slide-photo-height) + 4rem)}
.style-collection .client-slideshow .photo-slide{grid-template-rows:var(--slide-photo-height) 4rem}
/* The caption space is reserved before image loading, so controls never jump. */
.transformation-frame{scroll-margin-top:100px}
.stylist-name-toggle{font:inherit;line-height:inherit;color:inherit;letter-spacing:inherit;background:transparent;border:0;padding:0;text-align:inherit;cursor:pointer}
.stylist-name-toggle:focus-visible{outline:2px solid #b68d43;outline-offset:5px;border-radius:3px}
#quick-weave-work .portfolio-videos{align-items:start}
#quick-weave-work .portfolio-video{display:grid;grid-template-rows:auto auto auto;align-content:start}
#quick-weave-work .portfolio-video h3{min-height:3.5em;align-items:start}
#quick-weave-work .portfolio-video iframe{width:100%;max-width:360px;aspect-ratio:9/16;height:auto;box-sizing:border-box}
@media(max-width:640px){#quick-weave-work .portfolio-video h3{min-height:0}}

/* Home transformations replace the featured carousel; carousel now on Services. */
.hero:not(:has(.hero-showcase)){grid-template-columns:1fr}
.hero:not(:has(.hero-showcase)) .hero-copy{max-width:900px;margin-inline:auto}
.about-showcase .client-slideshow{max-width:680px;margin-inline:auto}
.about-showcase>p{text-align:center;margin-top:1rem}

/* Brief gold celebration after the before layer has dissolved. */
.reveal-sparkles{position:absolute;inset:0;pointer-events:none;z-index:5;overflow:hidden}
.reveal-sparkles i{position:absolute;left:50%;top:42%;font-style:normal;font-size:15px;color:#e7bd59;text-shadow:0 0 5px #fff2bd;opacity:0;transform:translate(-50%,-50%) scale(.2)}
.gold-shimmer .reveal-sparkles i{animation:reveal-gold-burst 1s cubic-bezier(.16,.7,.3,1) calc(.8s + var(--delay)) both}
@keyframes reveal-gold-burst{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(0) scale(.2)}15%{opacity:1}65%{opacity:.85}100%{opacity:0;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(calc(-1 * var(--distance))) scale(.65)}}
@media(prefers-reduced-motion:reduce){.reveal-sparkles{display:none}.reveal-sparkles i{animation:none!important}}

.reveal-sparkles i{font-size:clamp(22px,4vw,34px);text-shadow:0 0 9px #fff4c4,0 0 18px #e7bd5988}
.gold-shimmer .reveal-sparkles i{animation-duration:1.15s}
.transformation-frame.is-revealed,.is-revealed .transformation-frame{cursor:pointer}
.client-slideshow,.client-slideshow .slide-stage,.client-slideshow .photo-slide img,.client-slideshow .portfolio-photo-button{border-color:#c39a45}
.client-slideshow .photo-slide img{border:2px solid #c39a45}

.gold-link-arrow{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;width:1.65em;height:1.65em;flex:none;margin-left:.3em;background:linear-gradient(135deg,#d4ad58,#ac7d2e);color:#fff;border:1px solid #ac7d2e;border-radius:5px;box-shadow:0 2px 4px #38231918}
.gold-link-arrow svg{width:1.1em;height:1.1em;display:block}

/* Compact homepage introduction beneath the new-client invitation. */
.home-welcome .home-services-intro{max-width:920px;margin:22px auto 28px;padding:26px 30px;background:linear-gradient(125deg,#efe1c6,#f8f1e6);border:1px solid #c5a66d;border-radius:8px;text-align:center}
.home-services-intro h1{font-size:clamp(28px,3vw,40px);line-height:1.18;margin:0 0 12px;letter-spacing:-.025em}
.home-services-intro p.lead{max-width:790px;margin:0 auto;font-size:17px;line-height:1.6}
.home-services-intro .actions{justify-content:center;gap:12px;margin:18px 0 0}
.home-services-intro .actions .button{min-height:46px;padding:10px 18px}
@media(min-width:851px){.back-to-top{right:24px;width:52px;height:52px}}
@media(max-width:850px){.home-welcome .home-services-intro{padding:20px 18px;margin:18px 0 24px}.home-services-intro p.lead{font-size:16px;line-height:1.55}.home-services-intro .actions{gap:10px;margin-top:16px}.home-services-intro .actions .button{font-size:14px;padding:10px 14px}}

/* Videos live inside the opened portfolio, with compact portrait previews. */
.portfolio-details .portfolio-local-video{display:inline-block;vertical-align:top;width:min(100%,280px);margin:16px 12px 20px 0;text-align:left}
.portfolio-details .portfolio-local-video h3{font:600 16px/1.4 'DM Sans',sans-serif;margin:0 0 10px}
.portfolio-video-preview{position:relative;aspect-ratio:9/16;background:#352319;border:1px solid #b49355;border-radius:6px;overflow:hidden}
.portfolio-video-preview video{width:100%;height:100%;max-height:none;border:0;object-fit:contain}
.portfolio-video-enlarge{position:absolute;inset:0;border:0;background:transparent;cursor:pointer;color:white;display:flex;align-items:flex-end;justify-content:center;padding:16px;font:600 14px/1.4 'DM Sans',sans-serif}
.portfolio-video-enlarge span{background:#5a371deb;border:1px solid #c5a15d;border-radius:4px;padding:8px 14px}
.portfolio-video-enlarge:hover span{background:#866128}
.portfolio-video-enlarge:focus-visible{outline:3px solid #e1bd70;outline-offset:-4px}
.portfolio-details .portfolio-videos{margin-top:20px;align-items:start}
.portfolio-details .portfolio-video{max-width:280px}
.portfolio-details .portfolio-video iframe{width:100%;height:auto;aspect-ratio:9/16}
.portfolio-embed-enlarge{margin:10px 0}
.portfolio-large-player video{max-height:78dvh;width:100%;object-fit:contain}
.portfolio-large-player iframe{display:block;border:1px solid #b49355;width:min(100%,440px);height:76dvh;margin:12px auto 0}

/* Focus a slideshow photo on desktop hover or mobile tap. */
.hair-pan-photo{position:relative}
.hair-pan-photo::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.38);opacity:0;pointer-events:none;transition:opacity .28s ease}
.hair-pan-window.has-selected-photo .hair-pan-photo::after{opacity:1}
.hair-pan-window.has-selected-photo .hair-pan-photo.is-selected::after{opacity:0}
@media(hover:hover) and (pointer:fine){
 .hair-pan-window:has(.hair-pan-photo:hover) .hair-pan-photo::after{opacity:1}
 .hair-pan-window:has(.hair-pan-photo:hover) .hair-pan-photo:hover::after{opacity:0}
}
@media(prefers-reduced-motion:reduce){.hair-pan-photo::after{transition:none}}

/* Trim the captured black strip below these two slideshow photos. */
.hair-pan-photo img[src$="home-pan-20261006-01-black-towel-v1.webp"],
.hair-pan-photo img[src$="home-pan-20261006-02.jpg"]{height:103%;object-position:center top}

/* Salon and arrival imagery gently rises into view. */
.home-welcome .salon-photos>figure.content-reveal,
#arrival .salon-photos>figure.content-reveal{transition-duration:1.5s}
.home-welcome .salon-photos>figure.content-reveal-pending,
#arrival .salon-photos>figure.content-reveal-pending{translate:0 28px}
.home-welcome .salon-photos>figure:nth-child(2).content-reveal,
#arrival .arrival-social.content-reveal{transition-delay:.18s}

#bridal-events-work .portfolio-local-video{display:block;width:100%;max-width:none;min-width:0;margin:0}
#bridal-events-work .portfolio-local-video h3{min-height:45px}
#bridal-events-work .portfolio-video-context{max-width:600px}
@media(max-width:540px){#bridal-events-work .portfolio-local-videos{gap:12px}#bridal-events-work .portfolio-local-video h3{font-size:14px;min-height:60px}.portfolio-video-enlarge span{padding:7px 9px}}
@media(prefers-reduced-motion:reduce){.home-welcome .salon-photos>figure.content-reveal,#arrival .salon-photos>figure.content-reveal{transition:none}.home-welcome .salon-photos>figure.content-reveal-pending,#arrival .salon-photos>figure.content-reveal-pending{translate:none;opacity:1}}

/* Every portfolio uses compact pairs, including mixed native and TikTok videos. */
.portfolio-details .portfolio-media-videos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:600px;margin:20px 0;align-items:start}
.portfolio-media-videos>.portfolio-local-videos,.portfolio-media-videos>.portfolio-videos{display:contents}
.portfolio-details .portfolio-media-videos :is(.portfolio-local-video,.portfolio-video){display:block;width:100%;max-width:none;min-width:0;margin:0}
.portfolio-details .portfolio-media-videos :is(.portfolio-local-video,.portfolio-video) h3{font:600 16px/1.4 'DM Sans',sans-serif;min-height:68px;margin:0 0 10px}
.portfolio-details .portfolio-media-videos iframe{display:block;width:100%;max-width:none;height:100%;aspect-ratio:9/16;border:0}
.portfolio-details .portfolio-media-videos .portfolio-embed-enlarge{margin:0}
.portfolio-media-videos>.portfolio-video:only-child{grid-column:1}
@media(max-width:540px){.portfolio-details .portfolio-media-videos{gap:12px}.portfolio-details .portfolio-media-videos :is(.portfolio-local-video,.portfolio-video) h3{font-size:14px;min-height:80px}.portfolio-media-videos .portfolio-video-enlarge{padding:8px}.portfolio-media-videos .portfolio-video-enlarge span{font-size:12px;padding:6px 8px}}

/* Unified gold-circle cutout reveal, after its lazy photo is ready. */
.editorial-photo.editorial-art-reveal{transition:opacity 1.6s ease,translate 1.6s cubic-bezier(.22,.61,.36,1),scale 1.6s ease;transition-delay:.12s}
.editorial-photo.editorial-art-reveal.content-reveal-pending{opacity:0;translate:0 28px;scale:.985}
@media(prefers-reduced-motion:reduce){.editorial-photo.editorial-art-reveal{transition:none}.editorial-photo.editorial-art-reveal.content-reveal-pending{opacity:1;translate:none;scale:1}}
@media print{.editorial-photo.editorial-art-reveal.content-reveal-pending{opacity:1;translate:none;scale:1}}

/* Match rows across neighboring cards even when a heading wraps. */
@supports(grid-template-rows:subgrid){
 @media(min-width:641px){
  .transformation-grid{column-gap:28px;row-gap:0;align-items:stretch}
  .transformation-grid>.transformation{display:grid;grid-template-rows:subgrid;grid-row:span 5;row-gap:0;align-content:start;margin-bottom:28px}
  .transformation-grid>.transformation:nth-last-child(-n+2){margin-bottom:0}
  .transformation-grid>.transformation>h3,.transformation-grid>.transformation>.reveal-instruction{align-self:start}
  .transformation-grid>.transformation>.transformation-frame{align-self:start;width:100%;box-sizing:border-box}
 }
 .portfolio-videos{column-gap:24px;row-gap:0;align-items:stretch}
 .portfolio-videos>.portfolio-video,#quick-weave-work .portfolio-videos>.portfolio-video{grid-template-rows:subgrid;grid-row:span 3;row-gap:0;margin-bottom:24px}
 .portfolio-videos>.portfolio-video:nth-last-child(-n+2){margin-bottom:0}
 .portfolio-videos>.portfolio-video>h3,#quick-weave-work .portfolio-videos>.portfolio-video>h3{min-height:0;align-self:start}
}

/* Quiet portrait framing for the homepage gallery; no changes to motion or sizing. */
.luxury-gallery .hair-pan-window{background:linear-gradient(110deg,#35231b,#62442c,#35231b);border-block-color:#b78c49;box-shadow:0 8px 22px #35231b1c,0 2px 5px #35231b14}
.luxury-gallery .hair-pan-photo{box-shadow:0 2px 12px #160d0933}
.luxury-gallery .hair-pan-photo::before{content:"";position:absolute;inset:7px;z-index:2;border:1px solid #ead3a899;box-shadow:inset 0 0 0 1px #35231b24;pointer-events:none;transition:border-color .28s ease,box-shadow .28s ease}
.luxury-gallery .hair-pan-photo.is-selected::before{border-color:#f5dda6;box-shadow:inset 0 0 12px #e6bd6533,0 0 9px #e6bd653d}
@media(hover:hover) and (pointer:fine){.luxury-gallery .hair-pan-photo:hover::before{border-color:#f5dda6;box-shadow:inset 0 0 12px #e6bd6533,0 0 9px #e6bd653d}}
@media(max-width:600px){.luxury-gallery .hair-pan-photo::before{inset:5px}}
@media(prefers-reduced-motion:reduce){.luxury-gallery .hair-pan-photo::before{transition:none}}
/* Shared portrait composition: opaque hair, rounded clothing fade, two ring layers. */
main .editorial-photo.editorial-photo{
 position:relative;isolation:isolate;display:grid;place-items:start center;
 width:min(100%,260px);max-width:260px;aspect-ratio:1/1.15;
 padding:0;align-self:center;justify-self:center;margin:0 auto;
}
main .editorial-photo.editorial-photo::before,
main .editorial-photo.editorial-photo::after{
 content:"";display:block;position:absolute;box-sizing:border-box;
 inset:auto;top:11%;bottom:auto;left:3%;right:auto;
 width:94%;height:auto;aspect-ratio:1;border-radius:50%;
 border:3px solid #b18b50;background:none;opacity:.95;
 transform:none;box-shadow:none;filter:none;pointer-events:none;
}
/* The complete ring sits behind the head; only its lower arc overlays the body. */
main .editorial-photo.editorial-photo::before{z-index:0}
main .editorial-photo.editorial-photo::after{z-index:2;clip-path:inset(56% 0 0)}
main .editorial-photo.editorial-photo img{
 position:relative;z-index:1;display:block;align-self:start;justify-self:center;
 width:auto;height:auto;max-width:92%;max-height:92%;
 object-fit:contain;object-position:center top;margin:0;
 box-shadow:none;filter:none;
 -webkit-mask-image:none;mask-image:none;
 -webkit-mask-size:100% 100%;mask-size:100% 100%;
 -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
 -webkit-mask-composite:source-over;mask-composite:add;
}
main .welcome-film .editorial-photo.editorial-photo,
main .contact-block .editorial-photo.editorial-photo{margin:20px auto 0}
main .big-year+.editorial-photo.editorial-photo{margin:12px auto 0}
@media(max-width:850px){
 main .editorial-photo.editorial-photo{width:min(70%,215px);max-width:215px}
 main .welcome-film .editorial-photo.editorial-photo{padding-bottom:0}
}

/* Align the soft lower portrait boundary to the ring, rather than image corners.
   The unmasked upper half preserves hair/head overlap; the lower half fades inside
   the 47%-radius ring. Both layers use the same fixed 100:115 frame on every page. */
main .editorial-photo.editorial-photo .editorial-portrait-stage{
 position:absolute;inset:0;z-index:1;display:grid;place-items:start center;
 -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20115%22%20preserveAspectRatio%3D%22none%22%3E%3Cdefs%3E%3CradialGradient%20id%3D%22curve%22%3E%3Cstop%20offset%3D%220.90%22%20stop-color%3D%22white%22%2F%3E%3Cstop%20offset%3D%220.95%22%20stop-color%3D%22white%22%20stop-opacity%3D%220.65%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22white%22%20stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%3ClinearGradient%20id%3D%22head%22%20x2%3D%220%22%20y2%3D%221%22%3E%3Cstop%20offset%3D%220.46%22%20stop-color%3D%22white%22%2F%3E%3Cstop%20offset%3D%220.519%22%20stop-color%3D%22white%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2259.65%22%20r%3D%2245.5%22%20fill%3D%22url%28%23curve%29%22%2F%3E%3Crect%20width%3D%22100%22%20height%3D%22115%22%20fill%3D%22url%28%23head%29%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20115%22%20preserveAspectRatio%3D%22none%22%3E%3Cdefs%3E%3CradialGradient%20id%3D%22curve%22%3E%3Cstop%20offset%3D%220.90%22%20stop-color%3D%22white%22%2F%3E%3Cstop%20offset%3D%220.95%22%20stop-color%3D%22white%22%20stop-opacity%3D%220.65%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22white%22%20stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%3ClinearGradient%20id%3D%22head%22%20x2%3D%220%22%20y2%3D%221%22%3E%3Cstop%20offset%3D%220.46%22%20stop-color%3D%22white%22%2F%3E%3Cstop%20offset%3D%220.519%22%20stop-color%3D%22white%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2259.65%22%20r%3D%2245.5%22%20fill%3D%22url%28%23curve%29%22%2F%3E%3Crect%20width%3D%22100%22%20height%3D%22115%22%20fill%3D%22url%28%23head%29%22%2F%3E%3C%2Fsvg%3E");
 -webkit-mask-size:100% 100%;mask-size:100% 100%;
 -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
}

/* Keep the relocated community panel and salon photos visually connected. */
#main > .home-community{padding-bottom:20px}
#main > .home-salon-photos{padding-top:0;padding-bottom:20px}
#main > .home-salon-photos .salon-photos{margin:0 0 16px}
#main > #new-clients{padding-top:24px}
@media(max-width:850px){
 #main > .home-community{padding-bottom:16px}
 #main > .home-salon-photos{padding-bottom:16px}
 #main > #new-clients{padding-top:20px}
}

/* Clear, tappable first-visit steps in the salon's cream and gold palette. */
#new-clients .first-visit-cards{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:0;margin:24px 0}
#new-clients .first-visit-cards>li{min-width:0;display:flex;flex-direction:column;padding:0;background:#fcf7ee;border:1px solid #c4a56c;border-radius:8px;overflow:hidden}
#new-clients .first-visit-card{display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:12px;padding:18px;min-height:160px;text-decoration:none}
#new-clients .first-visit-number{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:50%;background:#ecdcba;color:#58402c;font-size:15px;font-weight:700}
#new-clients .first-visit-title{font-size:17px;font-weight:600;line-height:1.4}
#new-clients .first-visit-action{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin-top:auto;color:#76552d;font-size:13px;font-weight:600;line-height:1.4}
#new-clients .first-visit-call{padding:12px 18px;min-height:44px;border-top:1px solid #e1d2b6;font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:3px}
@media(max-width:500px){#new-clients .first-visit-cards{grid-template-columns:1fr;gap:12px}#new-clients .first-visit-card{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px 14px;min-height:108px;padding:16px}#new-clients .first-visit-number{grid-row:1/3}#new-clients .first-visit-action{grid-column:2}}

/* Center the homepage social invitation on desktop. */
@media(min-width:851px){
 #follow-textures{text-align:center}
 #follow-textures>p{margin-left:auto;margin-right:auto}
 #follow-textures .social-links{justify-content:center}
 #follow-textures .social-links a{text-align:left}
}

/* Keep the welcome introduction close to the new-client shortcut. */
#main .home-welcome .home-services-intro{margin:16px auto 0;padding:24px 28px}
@media(max-width:850px){#main .home-welcome .home-services-intro{margin:14px 0 0;padding:20px 18px}}

/* Salon portraits echo the banner's curved edge with a quiet gold frame. */
.home-curved-photo{width:min(100%,320px);margin:0;aspect-ratio:3/4;border:3px solid #b18b50;border-radius:50% 10px 10px 50% / 50% 10px 10px 50%;overflow:hidden;background:#e9d8bc;line-height:0}
.home-curved-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 60%}
.home-care-photo .home-curved-photo{justify-self:center}
.home-care-photo h2{font-size:clamp(32px,3.8vw,54px);margin-bottom:20px}
.home-care-photo .lead{max-width:650px}
.home-roots-photo{display:block;padding:24px 5%}
.home-roots-inner{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);align-items:center;gap:36px;max-width:1000px;margin:auto}
.home-roots-photo .home-curved-photo{max-width:220px;justify-self:center}
.home-roots-copy{display:grid;gap:12px;text-align:center}
.home-roots-copy>span:first-child{font:400 clamp(26px,3vw,40px)/1.2 'Italiana',Georgia,serif}
@media(max-width:850px){
 .home-care-photo .split{gap:20px}
 .home-care-photo .home-curved-photo{width:min(76%,260px)}
 .home-roots-photo{padding:24px 6%}
 .home-roots-inner{grid-template-columns:1fr;gap:18px}
 .home-roots-photo .home-curved-photo{width:min(64%,210px)}
 .home-roots-copy{gap:8px}
}

/* Curved portraits sit at the section edges, echoing the salon banner. */
#main .home-care-photo>.wrap.split{max-width:none;display:grid;grid-template-columns:minmax(0,1fr) clamp(220px,30vw,360px);gap:28px;padding:28px 0;align-items:center}
#main .home-care-photo>.wrap>div{width:100%;max-width:760px;justify-self:center;padding:12px 5vw}
#main .home-care-photo .home-curved-photo{width:100%;max-width:none;justify-self:end;border-right:0;border-radius:50% 0 0 50% / 50% 0 0 50%}
#main .home-roots-photo{padding:24px 0}
#main .home-roots-inner{max-width:none;grid-template-columns:clamp(160px,22vw,260px) minmax(0,1fr);gap:28px}
#main .home-roots-photo .home-curved-photo{width:100%;max-width:none;justify-self:start;border-left:0;border-radius:0 50% 50% 0 / 0 50% 50% 0}
#main .home-roots-copy{padding:12px 5vw;max-width:950px;justify-self:center}
@media(max-width:850px){
 #main .home-care-photo>.wrap.split{grid-template-columns:minmax(0,1fr) clamp(110px,32vw,220px);gap:12px;padding:24px 0}
 #main .home-care-photo>.wrap>div{padding:0 0 0 6vw}
 #main .home-care-photo h2{font-size:clamp(26px,4.5vw,36px);line-height:1.14}
 #main .home-care-photo .lead{font-size:16px;line-height:1.6}
 #main .home-care-photo .actions{margin-bottom:0}
 #main .home-care-photo .button{padding:10px 14px;font-size:14px}
 #main .home-roots-inner{grid-template-columns:clamp(100px,30vw,180px) minmax(0,1fr);gap:12px}
 #main .home-roots-copy{padding:0 6vw 0 0;font-size:14px;gap:8px}
 #main .home-roots-copy>span:first-child{font-size:26px}
}

/* Bring the hairstyles forward inside the existing curved frames. */
#main .home-care-photo .home-curved-photo img{transform:scale(1.3);transform-origin:50% 68%}
#main .home-roots-photo .home-curved-photo img{transform:scale(1.12);transform-origin:50% 54%}

/* A larger curved client photo anchors the booking guidance on the left. */
#booking-help .services-booking-photo{display:grid;grid-template-columns:minmax(280px,44%) minmax(0,1fr);gap:0;align-items:center;padding:0;border-left:0;margin:16px 0 20px}
#booking-help .services-curved-photo{width:100%;max-width:none;min-height:560px;aspect-ratio:auto;align-self:stretch;position:relative;justify-self:start;border-left:0;border-radius:0 50% 50% 0 / 0 50% 50% 0}
#booking-help .services-booking-photo .editorial-copy{padding:24px 28px;min-width:0}
#booking-help .services-booking-photo p{max-width:none}
#booking-help .services-curved-photo img{position:absolute;inset:0;object-position:50% 48%;transform:scale(1.25);transform-origin:50% 48%}
@media(max-width:850px){
 #booking-help .services-booking-photo{grid-template-columns:minmax(110px,38%) minmax(0,1fr);margin:12px 0 16px}
 #booking-help .services-curved-photo{min-height:0;aspect-ratio:3/4;align-self:center}
 #booking-help .services-booking-photo .editorial-copy{padding:18px 16px}
 #booking-help .services-booking-photo h2{font-size:26px}
 #booking-help .services-booking-photo p{font-size:15px;line-height:1.6}
 #booking-help .services-booking-photo .actions{gap:10px}
 #booking-help .services-booking-photo .button{font-size:13px;padding:10px 12px}
}

/* Preserve the actual photographed hair; only the background layer is retouched. */
#booking-help .services-curved-photo .services-original-hair{position:absolute;inset:0;width:100%;height:100%;display:block;transform:scale(1.25);transform-origin:50% 50%}

/* Give the two curved side portraits more presence on phones. */
@media(max-width:650px){
 #main .home-care-photo>.wrap.split{grid-template-columns:minmax(0,1fr) minmax(145px,44vw);gap:8px}
 #main .home-care-photo>.wrap>div{padding-left:5vw}
 #main .home-care-photo .home-curved-photo{aspect-ratio:auto;height:clamp(260px,75vw,430px)}
 #main .home-care-photo .home-curved-photo img{transform:scale(1.05);transform-origin:50% 60%}
 #booking-help .services-booking-photo{display:flow-root}
 #booking-help .services-curved-photo{float:left;width:48%;height:clamp(280px,78vw,430px);aspect-ratio:auto;margin:0 16px 14px 0}
 #booking-help .services-booking-photo .editorial-copy{display:block}
}

/* A quiet entrance for the three curved, gold-framed portraits. */
.home-curved-photo.content-reveal{transition:opacity .9s ease,translate .9s cubic-bezier(.22,.61,.36,1);transition-delay:0s}
.home-curved-photo.content-reveal-pending{opacity:0;translate:0 10px}
@media(prefers-reduced-motion:reduce){.home-curved-photo.content-reveal{transition:none}.home-curved-photo.content-reveal-pending{opacity:1;translate:none}}
@media print{.home-curved-photo.content-reveal-pending{opacity:1;translate:none}}

/* Center the community heading and founding year on phones only. */
@media(max-width:650px){#main .home-community>div:first-child>.eyebrow,#main .home-community .big-year{text-align:center;width:100%;max-width:none}}

/* Salon product portrait, framed to echo the curved editorial photos. */
.salon-product-booking{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);align-items:center;gap:38px;padding-left:5%;padding-right:5%}
.salon-product-art{margin:0 auto;width:min(100%,460px);text-align:center;line-height:1.5}
.salon-product-art img{display:block;width:100%;height:auto;border:3px solid #b18b50;border-radius:46% 46% 18% 18% / 30% 30% 16% 16%;padding:14px 8px;background:#f6f1e9}
.salon-product-art figcaption{margin-top:15px;color:#765b37;font-size:17px;font-weight:600}
.salon-product-art figcaption span{display:block;font-size:14px;font-weight:400;margin-top:3px}
.salon-product-panel{padding:28px 5%;border-top:1px solid var(--line)}
.salon-product-booking-copy{min-width:0}
.salon-product-art.content-reveal{transition:opacity .9s ease,translate .9s cubic-bezier(.22,.61,.36,1);transition-delay:0s}
.salon-product-art.content-reveal-pending{opacity:0;translate:0 10px}
@media(max-width:850px){.salon-product-booking{grid-template-columns:1fr;gap:24px}.salon-product-art{width:min(100%,360px)}.salon-product-booking{padding-top:30px;padding-bottom:30px}}
@media(prefers-reduced-motion:reduce){.salon-product-art.content-reveal{transition:none}.salon-product-art.content-reveal-pending{opacity:1;translate:none}}
@media print{.salon-product-art.content-reveal-pending{opacity:1;translate:none}}

/* Desktop viewport fitting only. Existing columns, gaps and mobile rules stay intact. */
@media (min-width:851px) {
 :root{--desktop-media-height:max(120px,calc(100svh - var(--desktop-header-height,180px) - var(--desktop-booking-height,72px) - 96px))}
 .transformation-grid .transformation-frame{height:min(64vw,var(--desktop-media-height));aspect-ratio:auto}
 .transformation-frame>img{object-fit:contain}
 .stylist-photo-stage{height:min(44vw,var(--desktop-media-height));aspect-ratio:auto}
 .stylist-photo-stage .stylist-portrait,.stylist-photo-stage .stylist-work-image{height:100%;object-fit:contain}
 .client-slideshow{--slide-photo-height:min(400px,var(--desktop-media-height))}
 .hero-showcase .client-slideshow .slide-stage{height:min(626px,var(--desktop-media-height));aspect-ratio:auto}
 .hero-showcase .photo-slide img{height:100%;max-height:100%;object-fit:contain}
 .salon-photos img,.suite-gallery .client-photo img,.portfolio-thumbnails .client-photo img,
 .client-gallery .client-photo img,.owner-photo,.welcome-film video,.portfolio-local-video video{max-height:var(--desktop-media-height);object-fit:contain}
 .portfolio-video-preview{height:min(534px,var(--desktop-media-height));aspect-ratio:auto}
 .portfolio-details .portfolio-media-videos iframe{height:min(534px,var(--desktop-media-height));aspect-ratio:auto}
 .service-tiktok{height:min(640px,var(--desktop-media-height));aspect-ratio:auto}
}

/* Careers hero accent: enlarge visually without moving the grid or copy. */
@media (min-width:851px) {
 main > .page-intro.editorial-aside .editorial-photo-802 {
  transform:scale(1.2);
  transform-origin:center;
 }
}
