:root{--accent:#bc4f6f;--accent-soft:#f7e5e9;--ink:#24181d;--paper:#f7f5f1;--line:color-mix(in srgb,var(--ink) 18%,transparent);--muted:color-mix(in srgb,var(--ink) 65%,white)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;transition:color .4s,background .4s}
.grain{position:fixed;z-index:9;pointer-events:none;inset:0;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.shell{width:min(1240px,calc(100% - 64px));margin-inline:auto}
.site-header{height:88px;display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--line)}
.brand{font:800 16px Manrope,sans-serif;letter-spacing:.2em;text-decoration:none;color:inherit}
.header-nav{display:flex;gap:26px;margin-left:auto}
.header-nav a,.header-phone{color:inherit;text-decoration:none;font-size:12px;font-weight:600}
.header-phone{margin-left:12px}
.header-cta,.dark-button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;background:var(--ink);border:0;color:white;text-decoration:none;text-transform:uppercase;padding:15px 17px;font:10px 'DM Mono',monospace;letter-spacing:.08em;cursor:pointer}
.header-cta span,.dark-button span{color:var(--accent);font-size:16px}
.direction-menu{display:none;background:none;border:0;color:inherit;font:11px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.08em}
.hero{height:660px;position:relative;color:white;overflow:hidden}
.hero-image,.hero-overlay{position:absolute;inset:0}
.hero-image{display:block;overflow:hidden;transform:scale(1.02)}
.hero-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--hero-position,center)}
.hero-overlay{background:linear-gradient(90deg,rgba(13,10,11,.78),rgba(14,11,12,.28) 55%,rgba(14,11,12,.06))}
.hero-copy{position:relative;padding-top:98px}
.overline{font:10px 'DM Mono',monospace;letter-spacing:.14em;text-transform:uppercase;margin:0 0 23px;display:flex;align-items:center;gap:10px}
.overline:before{content:'';width:28px;height:1px;background:currentColor}
.light{color:color-mix(in srgb,var(--accent) 75%,white)}
h1,h2{font-size:clamp(45px,5.9vw,80px);line-height:.98;letter-spacing:-.06em;font-weight:600;margin:0}
h1 i,h2 i{font:500 1em 'Playfair Display',serif}
h1{max-width:680px}
.hero-description{max-width:390px;font-size:14px;line-height:1.7;margin:27px 0 36px;color:#f4eff0}
.hero-actions{display:flex;gap:25px;align-items:center}
.scroll-link{font:10px 'DM Mono',monospace;color:white;text-transform:uppercase;letter-spacing:.08em;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.6);padding-bottom:8px}
.scroll-link span{font-size:16px;margin-left:7px}
.hero-meta{position:absolute;left:50%;transform:translateX(-50%);bottom:33px;display:flex;gap:60px;align-items:end}
.hero-meta div{display:grid;gap:6px}
.hero-meta small,.service-meta small,footer small{font:9px 'DM Mono',monospace;letter-spacing:.11em}
.hero-meta strong{font-size:12px}
.hero-meta p{font:10px 'DM Mono',monospace;margin:0 0 0 auto;letter-spacing:.1em}
.direction-rail{background:var(--accent-soft);padding:24px 0 29px;transition:background .4s}
.direction-rail p{font:10px 'DM Mono',monospace;letter-spacing:.1em;text-transform:uppercase;margin:0 0 15px}
.direction-tabs{display:flex;gap:7px;overflow:auto;padding-bottom:2px}
.direction-tabs button{flex:0 0 auto;background:transparent;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);color:inherit;padding:11px 13px;font:600 11px Manrope,sans-serif;cursor:pointer;transition:.2s}
.direction-tabs button:hover,.direction-tabs button.active{background:var(--ink);border-color:var(--ink);color:#fff}
.direction-tabs small{font:9px 'DM Mono',monospace;color:var(--accent);margin-right:8px}
.intro{display:grid;grid-template-columns:1.2fr .8fr;gap:100px;padding:135px 0}
.intro>div+div{padding-top:52px}
.intro>div+div p{font-size:17px;line-height:1.7;margin:0 0 31px}
.under-link{color:inherit;font:10px 'DM Mono',monospace;letter-spacing:.08em;text-decoration:none;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:9px}
.under-link span{font-size:16px;margin-left:7px;color:var(--accent)}
.featured{background:var(--accent-soft);padding:76px 0}
.featured-grid{display:grid;grid-template-columns:1fr 1fr;min-height:530px}
.featured-photo{background:center/cover no-repeat;min-height:400px}
.featured article{padding:58px clamp(35px,6vw,90px);display:flex;flex-direction:column;align-items:start}
.featured h2{font-size:clamp(38px,4vw,58px);margin-bottom:24px}
.featured article>p:not(.overline){line-height:1.7;font-size:14px;max-width:360px}
.service-meta{display:flex;gap:35px;padding:26px 0;margin-top:auto}
.service-meta span{display:grid;gap:7px}
.service-meta b{font-size:13px}
.gallery{padding:140px 0}
.section-heading{display:grid;grid-template-columns:1fr .8fr;gap:70px;align-items:end;margin-bottom:55px}
.section-heading h2{font-size:clamp(40px,4.8vw,66px)}
.section-heading>p{font-size:13px;line-height:1.7;max-width:365px;margin:0 0 7px}
.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:145px;gap:10px}
.gallery-item{border:0;padding:0;background:center/cover no-repeat;position:relative;cursor:pointer;overflow:hidden}
.gallery-item:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.3));opacity:0;transition:.25s}
.gallery-item:hover:after{opacity:1}
.gallery-item span{position:absolute;z-index:1;bottom:12px;left:13px;color:#fff;font:10px 'DM Mono',monospace;opacity:0;transition:.25s}
.gallery-item:hover span{opacity:1}
.item-1{grid-column:span 5;grid-row:span 3}
.item-2{grid-column:span 4;grid-row:span 2}
.item-3{grid-column:span 3;grid-row:span 2}
.item-4{grid-column:span 3;grid-row:span 2}
.item-5{grid-column:span 4;grid-row:span 2}
.item-6{grid-column:span 5;grid-row:span 3}
.item-7{grid-column:span 3;grid-row:span 2}
.item-8{grid-column:span 4;grid-row:span 2}
.item-9{grid-column:span 5;grid-row:span 2}
.item-10{grid-column:span 3;grid-row:span 2}
.promise{background:var(--ink);color:#fff;padding:107px 0 72px}
.promise .light{color:var(--accent)}
.promise-copy{display:grid;grid-template-columns:1.1fr .6fr;gap:80px}
.promise-copy h2{font-size:clamp(44px,5.1vw,70px)}
.promise-copy p{font-size:14px;line-height:1.75;margin:15px 0 0}
.promise-points{margin-top:80px;border-top:1px solid rgba(255,255,255,.25);display:grid;grid-template-columns:repeat(3,1fr)}
.promise-points span{padding:22px 0;font:10px 'DM Mono',monospace;color:var(--accent)}
.promise-points b{font:600 13px Manrope,sans-serif;color:white;margin-left:20px}
.booking{display:grid;grid-template-columns:.9fr 1fr;gap:115px;padding:136px 0}
.booking h2{font-size:clamp(42px,4.4vw,63px)}
.booking>div>p:not(.overline){font-size:14px;line-height:1.7;max-width:340px}
.visit-info{margin-top:48px;display:grid;gap:10px;font:11px 'DM Mono',monospace;letter-spacing:.03em}
.booking form{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.booking label{font-size:11px;font-weight:700}
.booking input,.booking select{display:block;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:inherit;padding:13px 0 10px;font:13px Manrope,sans-serif;outline:0}
.booking input:focus,.booking select:focus{border-color:var(--accent)}
.booking form .dark-button{grid-column:1/-1;margin-top:14px;width:max-content;min-width:215px}
.booking form small,.form-message{grid-column:1/-1;font-size:10px;line-height:1.55;color:var(--muted)}
.form-message{color:var(--accent);font-weight:700}
footer{background:#eae6df;padding:43px 0}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:30px;align-items:start}
.footer-grid>div{display:grid;gap:8px;font-size:12px}
.footer-grid a:not(.brand){color:inherit;font-size:12px}
.admin-link{font:10px 'DM Mono',monospace!important;letter-spacing:.05em;text-transform:uppercase;text-align:right}

@media(max-width:800px){.shell{width:min(100% - 36px,600px)}
.site-header{height:70px;gap:13px}
.brand{font-size:14px}
.header-nav,.header-phone{display:none}
.direction-menu{display:block;margin-left:auto}
.header-cta{display:none}
.hero{height:620px}
.hero-copy{padding-top:82px}
.hero-meta{width:calc(100% - 36px);bottom:25px;gap:20px}
.hero-meta div:nth-child(2){display:none}
.hero-meta p{margin-left:auto}
.hero-actions{gap:18px}
.direction-rail{padding:19px 0 21px}
.intro,.section-heading,.promise-copy,.booking{grid-template-columns:1fr;gap:31px}
.intro{padding:80px 0}
.intro>div+div{padding:0}
.intro>div+div p{font-size:15px}
.featured{padding:36px 0}
.featured-grid{grid-template-columns:1fr}
.featured-photo{min-height:330px}
.featured article{padding:40px 25px;min-height:390px}
.gallery{padding:84px 0}
.section-heading{margin-bottom:35px}
.gallery-grid{grid-auto-rows:92px;gap:6px}
.item-1{grid-column:span 7;grid-row:span 3}
.item-2{grid-column:span 5;grid-row:span 2}
.item-3{grid-column:span 5;grid-row:span 2}
.item-4{grid-column:span 7;grid-row:span 2}
.item-5{grid-column:span 6;grid-row:span 2}
.item-6{grid-column:span 6;grid-row:span 3}
.item-7{grid-column:span 5;grid-row:span 2}
.item-8{grid-column:span 7;grid-row:span 2}
.item-9{grid-column:span 7;grid-row:span 2}
.item-10{grid-column:span 5;grid-row:span 2}
.promise{padding:75px 0 35px}
.promise-points{margin-top:50px;grid-template-columns:1fr}
.promise-points span{border-bottom:1px solid rgba(255,255,255,.18)}
.booking{padding:84px 0}
.booking form{grid-template-columns:1fr}
.footer-grid{grid-template-columns:1fr 1fr}
.admin-link{text-align:left;grid-column:1/-1;margin-top:10px}
}

body{--muted:var(--muted-color,#756e6c)}
.header-cta,.dark-button{background:var(--surface,var(--ink));color:var(--on-dark,#fff)}
.promise{background:var(--surface,var(--ink));color:var(--on-dark,#fff)}
.promise-points b{color:var(--on-dark,#fff)}
.hero-description{color:var(--on-dark,#f4eff0)}
.booking-pwa-slot{grid-column:1/-1}
.pwa-settings{border-top:1px solid var(--line);margin-top:18px;padding-top:23px;display:grid;gap:14px}
.pwa-settings h3{font-size:23px;margin:0}
.pwa-settings>p{font-size:13px;line-height:1.55;margin:0}
.pwa-settings label{font-size:12px;font-weight:500;display:flex;gap:9px;align-items:flex-start}
.pwa-settings input{width:auto;margin:1px 0 0}
.pwa-settings .dark-button{width:max-content;margin-top:2px}
.pwa-settings .under-link{width:max-content;border:0;background:transparent;padding:0;cursor:pointer}
.pwa-settings small{font-size:11px;color:var(--muted)}
.booking form{display:block}.booking form[hidden]{display:none!important}.booking-flow{display:grid;gap:15px}.booking-step{display:flex;gap:13px;align-items:center;padding:18px 0 10px;border-top:1px solid var(--line)}.booking-step>span{color:var(--accent);font:10px 'DM Mono',monospace}.booking-step div{display:grid;gap:4px}.booking-step small,.selected-visit span{font:9px 'DM Mono',monospace;letter-spacing:.09em}.booking-step b{font-size:13px}.booking-step.muted{opacity:.48}.booking-directions,.booking-dates{display:flex;gap:6px;overflow-x:auto;padding-bottom:3px}.booking-directions button,.booking-dates button{flex:0 0 auto;border:1px solid var(--line);background:transparent;color:inherit;padding:10px 11px;cursor:pointer;font:11px Manrope,sans-serif}.booking-directions button.active,.booking-dates button.active{background:var(--ink);border-color:var(--ink);color:#fff}.booking-dates button{display:grid;min-width:58px;gap:3px;text-align:center}.booking-dates button small{font:8px 'DM Mono',monospace;text-transform:uppercase}.booking-dates button b{font-size:17px}.booking-dates.is-disabled{opacity:.45}.booking-services{display:grid;gap:6px}.booking-services button{width:100%;border:1px solid var(--line);background:transparent;color:inherit;padding:12px 14px;display:grid;grid-template-columns:1fr auto 14px;gap:8px;text-align:left;align-items:center;cursor:pointer}.booking-services button.active{border-color:var(--ink);background:var(--accent-soft)}.booking-services span{font-size:12px;font-weight:700}.booking-services small{font:10px 'DM Mono',monospace;color:var(--muted)}.booking-services b{font-size:17px;font-weight:400}.booking-slots{font-size:12px;line-height:1.5;min-height:46px}.booking-slots p{margin:0 0 10px}.booking-slots>div{display:flex;flex-wrap:wrap;gap:6px}.booking-slots button{border:1px solid var(--line);background:transparent;color:inherit;padding:9px 11px;font:11px 'DM Mono',monospace;cursor:pointer}.booking-slots button.active{background:var(--ink);border-color:var(--ink);color:#fff}.booking-contact{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:8px}.booking-contact .selected-visit,.booking-contact .dark-button{grid-column:1/-1}.booking-contact.is-hidden{display:none}.selected-visit{padding:14px;background:var(--accent-soft);display:grid;gap:4px}.selected-visit b{font-size:13px}.selected-visit p{margin:0;font-size:11px}.booking form>small,.booking form>.form-message{display:block;margin-top:15px}.booking form .dark-button{margin-top:5px}@media(max-width:800px){.booking-contact{grid-template-columns:1fr}.booking-directions{margin-right:-18px}.booking form .dark-button{width:100%}}
.booking-services span em{margin-left:5px;padding:3px 4px;background:var(--accent-soft);font:8px 'DM Mono',monospace;font-style:normal}.booking-addons{display:grid;gap:6px}.booking-addons label{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;padding:10px 12px;border:1px solid var(--line);font-size:12px;cursor:pointer}.booking-addons input{accent-color:var(--ink)}.booking-addons small{font:10px 'DM Mono',monospace;color:var(--muted)}.booking-addons.is-disabled,.booking-staff.is-disabled{opacity:.42;pointer-events:none}.booking-addons p,.booking-staff p{margin:0;color:var(--muted);font-size:12px}.booking-staff{display:grid;gap:6px}.booking-staff button{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;text-align:left;padding:12px 14px;border:1px solid var(--line);background:transparent;color:inherit;cursor:pointer}.booking-staff button.active{background:var(--accent-soft);border-color:var(--ink)}.booking-staff span{font-size:12px;font-weight:700}.booking-staff small{font:10px 'DM Mono',monospace;color:var(--muted)}
.booking-mode{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:8px;background:var(--accent-soft)}.booking-mode button{display:flex;align-items:center;gap:8px;padding:11px;border:1px solid transparent;background:transparent;color:inherit;text-align:left;font:11px Manrope,sans-serif;cursor:pointer}.booking-mode button.active{border-color:var(--ink);background:#fff}.booking-mode small{font:9px 'DM Mono',monospace;color:var(--accent)}
body.single-direction .booking-flow>.booking-directions,body.single-direction .booking-flow>.booking-step:has(+.booking-directions){display:none}
.yclients-booking{grid-column:2;width:100%;min-width:0;align-self:start}.yclients-booking iframe{display:block;width:100%;max-width:545px;height:960px;border:0;background:#fff;overflow:auto}.yclients-booking p{margin:0;padding:22px;border-left:3px solid var(--accent);background:var(--accent-soft);font-size:13px;line-height:1.55}@media(max-width:800px){.yclients-booking{grid-column:auto}.yclients-booking iframe{height:min(920px,calc(100svh - 36px));max-width:100%}}
.footer-actions{display:grid;justify-items:end}.x3m-credit{grid-column:1/-1;justify-self:end;display:flex;align-items:center;gap:7px;width:max-content;max-width:100%;margin-top:16px;padding-top:17px;border-top:1px solid var(--line);color:var(--ink);font-size:10px!important;line-height:1.35;white-space:nowrap;text-decoration:none}.x3m-credit img{flex:0 0 22px;width:22px;height:22px}.x3m-credit strong{font:800 11px Manrope,Arial,sans-serif;letter-spacing:.08em}.x3m-credit span:last-child{color:var(--muted)}.x3m-credit:hover{text-decoration:underline!important;text-underline-offset:3px}@media(max-width:800px){.footer-actions{justify-items:start;grid-column:1/-1;margin-top:10px}.x3m-credit{justify-self:start;white-space:normal;width:100%;max-width:420px;text-align:left}}
.hero-image{opacity:1;transition:opacity .32s ease}.hero-copy{transition:opacity .28s ease,transform .28s ease}.hero-copy.is-changing{opacity:1;transform:translateY(0)}.hero-controls{position:absolute;z-index:2;left:50%;bottom:30px;transform:translateX(-50%);display:flex;align-items:center;gap:12px}.hero-controls>button,.hero-controls [data-hero-dots] button{border:0;background:transparent;color:#fff;cursor:pointer}.hero-controls>button{font-size:18px;padding:6px}.hero-controls [data-hero-dots]{display:flex;gap:7px}.hero-controls [data-hero-dots] button{width:26px;height:2px;padding:0;background:rgba(255,255,255,.45)}.hero-controls [data-hero-dots] button.active{background:var(--accent)}.masters{padding:128px 0}.masters-grid{display:grid;gap:20px}.master-card{display:grid;grid-template-columns:minmax(300px,.85fr) 1fr;background:var(--accent-soft)}.master-card img{width:100%;height:100%;min-height:430px;object-fit:cover}.master-card>div{padding:clamp(30px,5vw,76px);display:flex;flex-direction:column;align-items:flex-start}.master-card h3{margin:0 0 7px;font-size:clamp(34px,4vw,54px);line-height:1;letter-spacing:-.055em}.master-card b{font-size:13px}.master-card>div>p:not(.overline){max-width:440px;margin:28px 0 34px;font-size:14px;line-height:1.7}@media(max-width:800px){.site-header .header-cta{display:inline-flex;margin-left:0;padding:12px 13px;gap:10px;font-size:9px}.site-header .direction-menu{margin-left:auto}body.single-direction .site-header .direction-menu{display:none}body.single-direction .site-header .header-cta{margin-left:auto}.hero-controls{width:calc(100% - 36px);bottom:18px;justify-content:flex-end}.masters{padding:76px 0}.master-card{grid-template-columns:1fr}.master-card img{min-height:330px}.master-card>div{padding:34px 25px}}
/* The mobile card deliberately keeps its copy below the photograph. */
@media (max-width:800px){
  .master-card{display:flex!important;flex-direction:column!important;overflow:hidden;background:var(--accent-soft)!important}
  .master-card img{position:static!important;inset:auto!important;z-index:auto!important;display:block!important;flex:none!important;width:100%!important;height:330px!important;min-height:0!important;object-fit:cover!important}
  .master-card>div{position:static!important;inset:auto!important;z-index:auto!important;transform:none!important;display:flex!important;width:100%!important;padding:34px 25px!important;background:var(--accent-soft)!important;color:var(--ink)!important}
}
body.lightbox-open{overflow:hidden}.gallery-lightbox{position:fixed;z-index:30;inset:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(10px,3vw,38px);padding:clamp(18px,4vw,58px);background:rgba(20,16,15,.94);backdrop-filter:blur(8px)}.gallery-lightbox[hidden]{display:none}.gallery-lightbox figure{width:100%;height:100%;margin:0;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:13px;justify-items:center}.gallery-lightbox img{display:block;max-width:100%;max-height:calc(100svh - 130px);width:auto;height:auto;object-fit:contain;box-shadow:0 18px 70px rgba(0,0,0,.38)}.gallery-lightbox figcaption{color:rgba(255,255,255,.7);font:10px 'DM Mono',monospace;letter-spacing:.13em}.gallery-lightbox-close,.gallery-lightbox-arrow{border:0;color:#fff;cursor:pointer}.gallery-lightbox-close{position:absolute;top:18px;right:22px;width:42px;height:42px;background:transparent;font:36px/1 Arial,sans-serif}.gallery-lightbox-arrow{width:48px;height:58px;background:rgba(255,255,255,.1);font:26px/1 Arial,sans-serif}.gallery-lightbox-arrow:hover,.gallery-lightbox-arrow:focus-visible{background:var(--accent);outline:0}.gallery-lightbox-close:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:800px){.gallery-lightbox{grid-template-columns:1fr;gap:0;padding:18px}.gallery-lightbox figure{grid-row:1}.gallery-lightbox img{max-height:calc(100svh - 104px)}.gallery-lightbox-arrow{position:absolute;z-index:1;top:calc(50% - 29px);width:42px;height:54px;background:rgba(0,0,0,.35)}.gallery-lightbox-arrow.previous{left:18px}.gallery-lightbox-arrow.next{right:18px}.gallery-lightbox-close{top:11px;right:11px}}
.hero-controls[hidden]{display:none!important}
/* Premium art direction layer: works with every colour profile set in admin. */
:root{--luxury-shadow:0 26px 80px color-mix(in srgb,var(--ink) 16%,transparent);--luxury-radius:2px;--luxury-paper:color-mix(in srgb,var(--paper) 93%,white)}

body{background:linear-gradient(135deg,var(--luxury-paper),var(--paper) 45%,color-mix(in srgb,var(--accent-soft) 32%,var(--paper)));letter-spacing:-.012em}

.shell{width:min(1320px,calc(100% - 80px))}
.site-header{height:100px;border-bottom-color:color-mix(in srgb,var(--ink) 13%,transparent);position:relative;z-index:5}
.brand{font-size:17px;letter-spacing:.26em}
.header-nav{gap:31px}
.header-nav a,.header-phone{font-size:11px;letter-spacing:.025em}
.header-nav a{position:relative;padding:8px 0}
.header-nav a:after{content:'';position:absolute;height:1px;left:0;right:0;bottom:0;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .32s ease}
.header-nav a:hover:after{transform:scaleX(1)}
.header-cta,.dark-button{min-height:48px;padding:15px 19px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);transition:transform .25s,box-shadow .25s,background .25s}
.header-cta:hover,.dark-button:hover{transform:translateY(-2px);box-shadow:0 12px 24px color-mix(in srgb,var(--ink) 23%,transparent),inset 0 0 0 1px rgba(255,255,255,.18)}

.hero{height:min(760px,calc(100vh - 100px));min-height:650px;margin:0 auto;width:min(1480px,100%);isolation:isolate}
.hero-image{transform:scale(1.035);transition:transform 1.8s cubic-bezier(.2,.7,.2,1),opacity .35s ease}
.hero:hover .hero-image{transform:scale(1.005)}
.hero-overlay{background:linear-gradient(90deg,rgba(13,10,11,.88) 0%,rgba(13,10,11,.58) 34%,rgba(13,10,11,.13) 69%,rgba(13,10,11,.06) 100%)}
.hero:after{content:'';position:absolute;z-index:1;inset:24px;border:1px solid rgba(255,255,255,.18);pointer-events:none}
.hero-copy{z-index:2;padding-top:clamp(105px,15vh,156px)}
.hero-copy .overline{margin-bottom:31px}
.hero-copy h1{max-width:760px;font-size:clamp(58px,6.6vw,106px);letter-spacing:-.07em;text-wrap:balance}
.hero-description{font-size:15px;max-width:410px;margin-top:31px}
.hero-actions{margin-top:43px;gap:32px}
.scroll-link{border:0;padding-bottom:0;opacity:.93}
.scroll-link:hover{opacity:1;color:var(--accent)}
.hero-controls{z-index:3;left:auto;right:calc((100vw - min(1320px,calc(100vw - 80px)))/2 + 25px);transform:none;bottom:45px}
.hero-controls>button{width:39px;height:39px;border:1px solid rgba(255,255,255,.38);font-size:15px}
.hero-controls>button:hover{background:var(--accent);border-color:var(--accent)}
.hero-controls [data-hero-dots] button{width:38px}

.direction-rail{position:relative;padding:33px 0 36px;background:color-mix(in srgb,var(--accent-soft) 80%,white)}
.direction-rail:before{content:'01 — 08';position:absolute;right:max(40px,calc((100vw - 1320px)/2));top:32px;color:color-mix(in srgb,var(--ink) 48%,transparent);font:9px 'DM Mono',monospace;letter-spacing:.18em}
.direction-tabs{gap:9px}
.direction-tabs button{padding:12px 16px;border-radius:999px;border-color:color-mix(in srgb,var(--ink) 18%,transparent);transition:background .25s,color .25s,border .25s,transform .25s}
.direction-tabs button:hover{transform:translateY(-2px)}

.intro{gap:min(15vw,210px);padding:170px 0}
.intro h2{font-size:clamp(52px,5.3vw,83px);max-width:780px}
.intro>div+div{padding-top:64px;border-top:1px solid var(--line)}
.intro>div+div p{font-size:19px;line-height:1.63;max-width:430px}
.under-link{transition:color .2s,border .2s}
.under-link:hover{color:var(--accent);border-color:var(--accent)}

.featured{position:relative;padding:100px 0;background:transparent}
.featured:before{content:'';position:absolute;inset:0 0 0 15%;background:var(--accent-soft);z-index:-1}
.featured-grid{min-height:610px;box-shadow:var(--luxury-shadow)}
.featured-photo{min-height:610px;position:relative}
.featured-photo:after{content:'SIGNATURE SERVICE';position:absolute;bottom:20px;left:22px;color:white;font:9px 'DM Mono',monospace;letter-spacing:.17em;text-shadow:0 1px 9px #000}
.featured article{background:color-mix(in srgb,var(--paper) 95%,white);padding:74px clamp(42px,6vw,105px)}
.featured h2{font-size:clamp(45px,4.3vw,67px)}
.featured article>p:not(.overline){font-size:15px}
.service-meta{width:100%;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:21px 0;margin:33px 0}
.service-meta span+span{border-left:1px solid var(--line);padding-left:34px}
.featured .dark-button{margin-top:auto}

.masters{padding:160px 0}
.section-heading{gap:120px;margin-bottom:68px}
.section-heading h2{font-size:clamp(49px,5vw,78px)}
.section-heading>p{font-size:15px}
.master-card{grid-template-columns:minmax(390px,.9fr) 1fr;background:var(--luxury-paper);box-shadow:var(--luxury-shadow);overflow:hidden}
.master-card img{min-height:530px;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.master-card:hover img{transform:scale(1.035)}
.master-card>div{padding:clamp(48px,7vw,112px)}
.master-card h3{font-size:clamp(45px,4.5vw,68px)}
.master-card>div>p:not(.overline){font-size:15px;margin-top:35px}
.master-card .under-link{margin-top:auto}

.gallery{padding:165px 0}
.gallery-grid{gap:14px;grid-auto-rows:157px}
.gallery-item{box-shadow:0 12px 26px color-mix(in srgb,var(--ink) 9%,transparent)}
.gallery-item:after{opacity:1;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.45));transition:background .3s}
.gallery-item:hover:after{background:rgba(20,15,16,.21)}
.gallery-item span{opacity:1;letter-spacing:.1em}
.gallery-item:hover{z-index:2;transform:scale(1.016);transition:transform .3s}

.promise{padding:126px 0 84px;position:relative;overflow:hidden}
.promise:after{content:'MĀISON';position:absolute;right:-.06em;bottom:-.24em;color:rgba(255,255,255,.035);font:600 min(26vw,360px)/.8 Manrope,sans-serif;letter-spacing:-.1em;pointer-events:none}
.promise-copy{gap:120px;position:relative;z-index:1}
.promise-copy h2{font-size:clamp(52px,5.5vw,86px)}
.promise-copy p{font-size:15px}
.promise-points{position:relative;z-index:1;margin-top:100px}
.promise-points span{padding:25px 0}
.promise-points span+span{padding-left:25px;border-left:1px solid rgba(255,255,255,.25)}

.booking{padding:165px 0;gap:145px}
.booking>div{position:sticky;top:35px;height:max-content}
.booking h2{font-size:clamp(52px,4.8vw,72px)}
.booking>div>p:not(.overline){font-size:15px}
.booking form{background:color-mix(in srgb,var(--paper) 92%,white);padding:34px;box-shadow:0 18px 55px color-mix(in srgb,var(--ink) 8%,transparent)}
.booking-flow{gap:18px}
.booking-step:first-child{border-top:0;padding-top:0}
.booking-step>span{font-size:11px}
.booking-services button,.booking-staff button,.booking-addons label{transition:border .2s,background .2s,transform .2s}
.booking-services button:hover,.booking-staff button:hover,.booking-addons label:hover{border-color:var(--ink);transform:translateX(3px)}

footer{padding:66px 0 42px;background:color-mix(in srgb,var(--paper) 85%,var(--accent-soft))}
.footer-grid{grid-template-columns:1.25fr 1fr 1fr auto;gap:45px}
.footer-grid .brand{font-size:18px}
.x3m-credit{margin-top:35px;padding-top:22px}

@media(max-width:800px){.shell{width:min(100% - 36px,620px)}
.site-header{height:76px}
.hero{min-height:640px;height:calc(100svh - 76px)}
.hero:after{inset:12px}
.hero-copy{padding-top:86px}
.hero-copy h1{font-size:clamp(51px,14vw,75px)}
.hero-description{font-size:14px}
.hero-actions{margin-top:33px}
.hero-controls{left:18px;right:18px;bottom:24px;justify-content:flex-end}
.hero-controls>button{width:34px;height:34px}
.direction-rail:before{display:none}
.direction-rail{padding:26px 0}
.intro{padding:105px 0;gap:37px}
.intro>div+div{padding-top:25px}
.intro>div+div p{font-size:17px}
.featured{padding:30px 0}
.featured:before{left:0}
.featured-grid{min-height:0}
.featured-photo{min-height:430px}
.featured article{padding:43px 27px;min-height:420px}
.masters,.gallery{padding:105px 0}
.section-heading{gap:25px;margin-bottom:38px}
.master-card img{min-height:420px}
.master-card>div{padding:40px 28px;min-height:390px}
.gallery-grid{gap:8px;grid-auto-rows:100px}
.promise{padding:90px 0 40px}
.promise-copy{gap:30px}
.promise-points{margin-top:56px}
.promise-points span+span{padding-left:0}
.booking{padding:105px 0;gap:48px}
.booking>div{position:static}
.booking form{padding:21px}
.footer-grid{gap:27px}
}

@media(prefers-reduced-motion:reduce){.hero-image,.master-card img,.header-cta,.dark-button,.gallery-item{transition:none!important}
}
/* MĀISON Atelier design system. Structure stays stable; art direction changes per niche. */
:root{
  --paper:#f7f5f1;
  --hero-position:center;
  --atelier-radius:0px;
  --atelier-space:clamp(88px,10vw,164px);
  --atelier-serif:'Playfair Display',Georgia,serif;
  --atelier-sans:Manrope,Arial,sans-serif;
}

body{background:var(--paper)}
.hero-image img{object-position:var(--hero-position)}

/* Conversion layer directly under the hero. */
.trust-strip{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper) 94%,white)}
.trust-strip-grid{display:grid;grid-template-columns:repeat(3,1fr);min-height:96px}
.trust-strip-grid>div{display:grid;align-content:center;gap:8px;padding:19px 34px;border-left:1px solid var(--line)}
.trust-strip-grid>div:last-child{border-right:1px solid var(--line)}
.trust-strip small{font:9px 'DM Mono',monospace;letter-spacing:.14em;color:var(--muted-color);text-transform:uppercase}
.trust-strip b{font:500 13px var(--atelier-sans);letter-spacing:-.01em}

.entry-paths{display:grid;grid-template-columns:repeat(2,1fr);padding-top:50px}
.entry-paths.single-path{grid-template-columns:1fr}
.entry-paths>a{position:relative;min-height:282px;padding:36px 40px;overflow:hidden;background:var(--surface);color:var(--on-dark);text-decoration:none;border-right:1px solid color-mix(in srgb,var(--on-dark) 18%,transparent);display:flex;flex-direction:column;align-items:flex-start;transition:transform .35s,box-shadow .35s}
.entry-paths.single-path>a{min-height:220px}
.entry-paths>a:last-child{background:color-mix(in srgb,var(--accent) 78%,var(--surface));border-right:0}
.entry-paths>a:before{content:'';position:absolute;width:290px;height:290px;border:1px solid color-mix(in srgb,var(--on-dark) 18%,transparent);border-radius:50%;right:-75px;top:-105px;transition:transform .55s}
.entry-paths>a:hover{transform:translateY(-5px);box-shadow:var(--luxury-shadow)}
.entry-paths>a:hover:before{transform:scale(1.12)}
.entry-paths small{font:9px 'DM Mono',monospace;letter-spacing:.16em;color:color-mix(in srgb,var(--accent) 72%,white)}
.entry-paths b{font:500 clamp(38px,4vw,61px)/.95 var(--atelier-sans);letter-spacing:-.055em;margin:36px 0}
.entry-paths b i{font-family:var(--atelier-serif);font-weight:500}
.entry-paths span{margin-top:auto;font:10px 'DM Mono',monospace;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid color-mix(in srgb,var(--on-dark) 45%,transparent);padding-bottom:8px}
.entry-paths em{font-style:normal;color:var(--accent);margin-left:12px}

.featured-photo:after{content:attr(data-label)}
.featured[data-featured-label] .featured-photo:after{content:attr(data-featured-label)}
.promise{background:var(--surface);color:var(--on-dark)}
.promise .light,.promise-points span{color:var(--accent)}
.master-card>div{background:color-mix(in srgb,var(--paper) 95%,white)}

/* 01 — manicure: precision, glossy surfaces and strict product grid. */
body[data-design="precision"]{--atelier-radius:0px}
body[data-design="precision"] .hero{width:min(1420px,calc(100% - 48px));margin-top:24px;height:min(720px,calc(100vh - 130px))}
body[data-design="precision"] .hero:after{inset:18px;border-color:rgba(255,255,255,.35)}
body[data-design="precision"] .hero-overlay{background:linear-gradient(90deg,rgba(32,18,25,.86),rgba(32,18,25,.43) 48%,rgba(32,18,25,.08))}
body[data-design="precision"] .entry-paths>a{border-top:5px solid var(--accent)}
body[data-design="precision"] .featured-grid{grid-template-columns:1.08fr .92fr}
body[data-design="precision"] .gallery-grid{grid-auto-rows:132px;gap:18px}
body[data-design="precision"] .gallery-item{box-shadow:none;border:1px solid var(--line)}

/* 02 — barber: cinematic monolith, dense dark framing. */
body[data-design="monolith"] .site-header{background:var(--surface);color:var(--on-dark);width:100%;padding-inline:max(40px,calc((100vw - 1320px)/2));border-bottom-color:rgba(255,255,255,.14)}
body[data-design="monolith"] .hero{width:100%;max-width:none}
body[data-design="monolith"] .hero-overlay{background:linear-gradient(90deg,rgba(10,9,8,.92),rgba(10,9,8,.62) 38%,rgba(10,9,8,.08) 72%)}
body[data-design="monolith"] .entry-paths>a{min-height:310px}
body[data-design="monolith"] .entry-paths>a:first-child{background:#161513}
body[data-design="monolith"] .intro h2,body[data-design="monolith"] .section-heading h2{text-transform:uppercase;font-weight:800;letter-spacing:-.07em}
body[data-design="monolith"] .intro h2 i,body[data-design="monolith"] .section-heading h2 i{text-transform:none;font-weight:500}
body[data-design="monolith"] .featured:before{background:var(--surface)}
body[data-design="monolith"] .featured article{background:#f1ece5}
body[data-design="monolith"] .gallery-grid{gap:5px}

/* 03 — hair: magazine-led asymmetry and oversized serif voice. */
body[data-design="editorial"] .hero-copy{margin-left:0;padding-left:max(40px,calc((100vw - 1320px)/2));width:56%;background:color-mix(in srgb,var(--paper) 92%,transparent);color:var(--ink);height:100%}
body[data-design="editorial"] .hero-copy .light{color:var(--accent)}
body[data-design="editorial"] .hero-description,body[data-design="editorial"] .hero-copy .scroll-link{color:var(--ink)}
body[data-design="editorial"] .hero-copy h1{font-family:var(--atelier-serif);font-weight:500}
body[data-design="editorial"] .hero-copy h1 i{font-family:var(--atelier-sans);font-weight:700}
body[data-design="editorial"] .hero-overlay{background:linear-gradient(90deg,rgba(244,239,234,.1) 50%,rgba(20,12,12,.06))}
body[data-design="editorial"] .featured:before{left:45%}
body[data-design="editorial"] .featured-grid{grid-template-columns:1.2fr .8fr}
body[data-design="editorial"] .master-card{grid-template-columns:1fr 1.2fr}
body[data-design="editorial"] .gallery-item:nth-child(even){transform:translateY(20px)}

/* 04 — lashes: airy veil, soft framing and quiet transitions. */
body[data-design="veil"]{--atelier-radius:28px}
body[data-design="veil"] .hero{width:min(1420px,calc(100% - 56px));margin-top:28px;border-radius:var(--atelier-radius)}
body[data-design="veil"] .hero-image,body[data-design="veil"] .hero-overlay{border-radius:inherit}
body[data-design="veil"] .hero:after{border-radius:20px}
body[data-design="veil"] .hero-overlay{background:linear-gradient(90deg,rgba(31,25,39,.78),rgba(31,25,39,.34) 48%,rgba(31,25,39,.04))}
body[data-design="veil"] .entry-paths>a,body[data-design="veil"] .featured-grid,body[data-design="veil"] .master-card,body[data-design="veil"] .booking form{border-radius:var(--atelier-radius)}
body[data-design="veil"] .featured:before{inset:32px 5% 32px 25%;border-radius:52px}
body[data-design="veil"] .gallery-item{border-radius:80px 80px 12px 12px}

/* 05 — brows: measured geometry and architectural lines. */
body[data-design="geometry"] .hero:after{inset:0 50% 0 0;border:0;border-right:1px solid rgba(255,255,255,.45)}
body[data-design="geometry"] .hero-copy h1{max-width:590px}
body[data-design="geometry"] .entry-paths>a:before{border-radius:0;transform:rotate(45deg);right:-125px}
body[data-design="geometry"] .intro{grid-template-columns:.8fr 1.2fr;border-top:1px solid var(--line)}
body[data-design="geometry"] .intro>div+div{border-top:0;border-left:1px solid var(--line);padding-left:80px}
body[data-design="geometry"] .featured-grid{grid-template-columns:.82fr 1.18fr}
body[data-design="geometry"] .gallery-grid{grid-auto-rows:175px}
body[data-design="geometry"] .gallery-item{box-shadow:none;clip-path:polygon(0 0,94% 0,100% 10%,100% 100%,0 100%)}

/* 06 — epilation: discreet soft-clinical system. */
body[data-design="soft-clinic"]{--atelier-radius:18px}
body[data-design="soft-clinic"] .hero{width:min(1380px,calc(100% - 72px));margin-top:36px;border-radius:18px}
body[data-design="soft-clinic"] .hero-image,body[data-design="soft-clinic"] .hero-overlay{border-radius:inherit}
body[data-design="soft-clinic"] .hero-overlay{background:linear-gradient(90deg,rgba(49,28,24,.82),rgba(49,28,24,.27) 55%,rgba(49,28,24,.05))}
body[data-design="soft-clinic"] .entry-paths>a,body[data-design="soft-clinic"] .booking form{border-radius:18px}
body[data-design="soft-clinic"] .featured-grid{box-shadow:none;border:1px solid var(--line);border-radius:18px;overflow:hidden}
body[data-design="soft-clinic"] .gallery-item{border-radius:9px;box-shadow:none}

/* 07 — cosmetology: credible clinical luxury and information hierarchy. */
body[data-design="clinical"] .hero{height:min(690px,calc(100vh - 100px))}
body[data-design="clinical"] .hero-overlay{background:linear-gradient(90deg,rgba(14,33,29,.9),rgba(14,33,29,.48) 44%,rgba(14,33,29,.08))}
body[data-design="clinical"] .entry-paths>a{background:color-mix(in srgb,var(--surface) 94%,white)}
body[data-design="clinical"] .entry-paths>a:last-child{background:var(--accent)}
body[data-design="clinical"] .intro{border-bottom:1px solid var(--line)}
body[data-design="clinical"] .featured-grid{box-shadow:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
body[data-design="clinical"] .featured article{background:var(--paper)}
body[data-design="clinical"] .gallery-grid{grid-auto-rows:140px;gap:20px}
body[data-design="clinical"] .gallery-item{box-shadow:none;border-radius:50% 50% 3px 3px}

/* 08 — spa: immersive sanctuary and softened architecture. */
body[data-design="sanctuary"]{--atelier-radius:120px}
body[data-design="sanctuary"] .hero{width:min(1420px,calc(100% - 56px));margin-top:28px;border-radius:180px 180px 0 0}
body[data-design="sanctuary"] .hero-image,body[data-design="sanctuary"] .hero-overlay{border-radius:inherit}
body[data-design="sanctuary"] .hero:after{border-radius:160px 160px 0 0}
body[data-design="sanctuary"] .hero-overlay{background:linear-gradient(90deg,rgba(9,31,25,.88),rgba(9,31,25,.42) 50%,rgba(9,31,25,.08))}
body[data-design="sanctuary"] .entry-paths>a{border-radius:120px 120px 0 0;text-align:center;align-items:center}
body[data-design="sanctuary"] .featured-photo{border-radius:240px 240px 0 0}
body[data-design="sanctuary"] .featured-grid{box-shadow:none}
body[data-design="sanctuary"] .gallery-item{border-radius:100px 100px 0 0}
body[data-design="sanctuary"] .promise{text-align:center}
body[data-design="sanctuary"] .promise-copy{grid-template-columns:1fr;justify-items:center}
body[data-design="sanctuary"] .promise-copy p{max-width:540px}

@media(max-width:800px){
  .trust-strip-grid{grid-template-columns:1fr 1fr;min-height:0}
  .trust-strip-grid>div{padding:17px 16px;border-bottom:1px solid var(--line)}
  .trust-strip-grid>div:nth-child(2){border-right:1px solid var(--line)}
  .trust-strip-grid>div:last-child{grid-column:1/-1;border-left:1px solid var(--line)}
  .entry-paths{grid-template-columns:1fr;padding-top:24px}
  .entry-paths>a,.entry-paths.single-path>a{min-height:205px;padding:27px 28px;border-right:0;border-bottom:1px solid color-mix(in srgb,var(--on-dark) 18%,transparent)}
  .entry-paths b{font-size:42px;margin:25px 0}
  .entry-paths>a:before{width:210px;height:210px}
  body[data-design] .hero{width:100%;margin-top:0;border-radius:0;height:calc(100svh - 76px);min-height:620px}
  body[data-design] .hero-image,body[data-design] .hero-overlay{border-radius:0}
  body[data-design] .hero:after{inset:12px;border-radius:0}
  body[data-design="editorial"] .hero-copy{width:auto;margin:0;padding-left:18px;background:transparent;color:white;height:auto}
  body[data-design="editorial"] .hero-copy .light{color:color-mix(in srgb,var(--accent) 72%,white)}
  body[data-design="editorial"] .hero-description,body[data-design="editorial"] .hero-copy .scroll-link{color:white}
  body[data-design="editorial"] .hero-overlay{background:linear-gradient(180deg,rgba(15,10,10,.35),rgba(15,10,10,.82))}
  body[data-design="geometry"] .intro{grid-template-columns:1fr;border-top:0}
  body[data-design="geometry"] .intro>div+div{border-left:0;padding-left:0;border-top:1px solid var(--line)}
  body[data-design] .featured-grid{grid-template-columns:1fr}
  body[data-design] .featured:before{inset:0;left:0;border-radius:0}
  body[data-design] .master-card{grid-template-columns:1fr;border-radius:0}
  body[data-design] .master-card>div{position:relative;color:var(--ink);background:var(--paper)}
  body[data-design="editorial"] .gallery-item:nth-child(even){transform:none}
  body[data-design="sanctuary"] .entry-paths>a{border-radius:70px 70px 0 0}
  body[data-design="sanctuary"] .featured-photo{border-radius:120px 120px 0 0}
}

@media(max-width:430px){
  .trust-strip b{font-size:11px}
  .entry-paths b{font-size:37px}
  .entry-paths span{font-size:8px}
}

@media(prefers-reduced-motion:reduce){.entry-paths>a,.entry-paths>a:before{transition:none}}

/* Readability and efficient responsive media. */
body{--accessible-muted:color-mix(in srgb,var(--ink) 78%,var(--paper))}
.featured-photo>img,.gallery-item>img{display:block;width:100%;height:100%;object-fit:cover}
.featured-photo>img{position:absolute;inset:0}
.gallery-item>img{position:absolute;inset:0;transition:transform .35s ease}
.gallery-item:hover>img{transform:scale(1.025)}
.trust-strip small,.direction-rail p,.direction-tabs small,.booking form>small,.booking form>.form-message,.x3m-credit span:last-child{color:var(--accessible-muted)}
.booking-step small,.booking-services small,.booking-staff small,.booking-addons small,.booking-staff p{color:#24181d!important}
.direction-tabs button.active small{color:#fff}
.entry-paths small,.promise .light,.promise-points span{color:color-mix(in srgb,var(--on-dark) 82%,var(--accent))}
.booking-step>span,.booking-mode small{color:#24181d!important}
.booking-step.muted,.booking-dates.is-disabled,.booking-addons.is-disabled,.booking-staff.is-disabled{opacity:1}
