:root {
  --ink: #0a0a0a;
  --paper: #ecece9;
  --ivory: #f7f7f4;
  --muted: #9b9b97;
  --line: rgba(10, 10, 10, .17);
  --serif: "Italiana", "Times New Roman", serif;
  --sans: "DM Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-weight: 300; overflow-x: hidden; }
body.menu-open { overflow: hidden; }
img { display: block; width: 100%; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
.public-icon { display:inline-block; width:1.25em; height:1.25em; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; vertical-align:middle; }
.noise { position: fixed; inset: 0; z-index: 100; opacity: .025; pointer-events: none; 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='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E"); }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 999; background: white; padding: 10px 16px; transform: translateY(-160%); transition: .2s; }
.skip-link:focus { transform: translateY(0); }

.site-header { position: fixed; inset: 0 0 auto; height: 84px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 4vw; color: #fff; z-index: 50; transition: background .4s, height .4s, color .4s; }
.site-header.scrolled { height: 68px; background: rgba(10,10,10,.92); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(255,255,255,.12); }
.brand { display: inline-flex; width: max-content; align-items: center; line-height: 1; }
.brand-logo-image { display:block; width:150px; height:auto; transition:width .4s; }
.site-header .brand-logo-image { width:120px; }
.desktop-nav { display: flex; gap: 32px; font-size: 12px; transition:gap .4s, font-size .4s; }
.desktop-nav a { position: relative; padding: 10px 0; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; bottom: 4px; width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .35s; }
.desktop-nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.header-actions { justify-self:end; display:flex; align-items:center; gap:24px; }
.header-cta { color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.45); padding: 13px 18px; display: inline-flex; gap: 24px; align-items: center; cursor: pointer; font-size: 11px; transition: color .3s, background .3s, padding .4s, gap .4s, font-size .4s; }
.header-cta svg { width:15px; height:15px; }
.header-cta:hover { color: #000; background: #fff; }
.menu-toggle { display: none; }
.mobile-menu { display: none; }

.js .site-header { opacity:0; transform:translateY(-16px); }
.js.is-ready .site-header { opacity:1; transform:none; transition:opacity .7s .1s ease, transform .7s .1s cubic-bezier(.2,.7,.2,1), background .4s, height .4s, color .4s; }

.hero { position: relative; min-height: 100svh; height: 820px; color: #f5f1e9; background: #050505; display: flex; align-items: center; overflow: hidden; }
.hero-media { position: absolute; inset: 0 0 0 41%; overflow:hidden; }
.hero-media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#050505 0 9%,rgba(5,5,5,.86) 18%,transparent 44%),linear-gradient(0deg,rgba(0,0,0,.55),transparent 45%); }
.hero-media img { height: 100%; object-fit: cover; object-position: center 30%; filter:saturate(.78) contrast(1.05); transform: scale(1.025); }
.js.is-ready .hero-media img { animation:heroIn 1.6s cubic-bezier(.2,.7,.2,1) both; }
.hero-shade { position:absolute; inset:0; background:radial-gradient(circle at 17% 43%,rgba(201,178,144,.075),transparent 30%),linear-gradient(115deg,transparent 0 30%,rgba(181,151,112,.06) 35%,transparent 43%); }
.hero-home .eyebrow { color:rgba(245,241,233,.82); }
.hero-home .eyebrow::before { background:#b9a17f; }
.hero-copy { position: relative; width: min(650px, 54vw); margin-left: 8vw; z-index: 2; padding-top: 60px; }
.eyebrow { margin: 0 0 27px; text-transform: uppercase; letter-spacing: .32em; font-size: 9px; font-weight: 600; }
.eyebrow::before { content: ""; display: inline-block; width: 28px; height: 1px; background: currentColor; vertical-align: middle; margin-right: 12px; }
.eyebrow.dark { color: #5d5a55; }
h1,h2,h3,p { margin-top: 0; }
h1, h2 { font-family: var(--serif); font-weight: 400; letter-spacing: -.035em; }
h1 { margin-bottom: 27px; font-size: clamp(54px, 6.5vw, 98px); line-height: .96; }
h1 em, h2 em { font-weight: 400; }
h1 em { position: relative; }
h1 em::after { content: ""; position: absolute; left: -2%; right: -10%; bottom: 5%; height: 8px; border-top: 1px solid #fff; transform: rotate(-3deg); }
.hero-intro { width: 440px; max-width: 90%; color: rgba(255,255,255,.72); font-size: 14px; line-height: 1.75; }
.hero-actions { display: flex; align-items: center; gap: 30px; margin-top: 36px; }
.button { min-height: 50px; padding: 0 22px; border: 1px solid; display: inline-flex; align-items: center; justify-content: space-between; gap: 36px; cursor: pointer; font-size: 11px; letter-spacing: .03em; transition: color .3s, background .3s, transform .3s; }
.button:hover { transform: translateY(-2px); }
.button-light { color: #080808; background: #f2eee6; border-color: #f2eee6; }
.button-light:hover { color: #fff; background: transparent; }
.button-dark { color: #fff; background: #0a0a0a; border-color: #0a0a0a; }
.button-dark:hover { color: #0a0a0a; background: transparent; }
.text-link { display: inline-flex; align-items: center; gap: 20px; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.45); font-size: 11px; }
.text-link .public-icon { transition: transform .3s; }
.text-link:hover .public-icon { transform:translateX(3px); }
.hero-bottom { position:absolute; z-index:2; left:8vw; right:4vw; bottom:30px; display:flex; justify-content:flex-end; align-items:end; }
.scroll-note { display:flex; gap:10px; align-items:center; font-size:8px; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.55); writing-mode:vertical-rl; }
.scroll-note span { width:1px; height:42px; background:rgba(255,255,255,.55); animation: scrollPulse 1.8s infinite; }

.marquee { background:#d8d8d4; overflow:hidden; padding:15px 0; border-block:1px solid rgba(0,0,0,.14); }
.marquee-track { display:flex; width:max-content; align-items:center; text-transform:uppercase; font-size:9px; letter-spacing:.34em; animation:marquee 24s linear infinite; will-change:transform; }
.marquee-group { display:flex; min-width:100vw; flex:none; align-items:center; justify-content:space-around; gap:30px; padding-inline:15px; }
.marquee-track i { flex:none; font-style:normal; font-size:9px; }
.marquee-track span { flex:none; white-space:nowrap; }

.section { padding: 110px 8vw; }
.section-heading { display:grid; grid-template-columns:1.1fr .7fr; gap:10vw; align-items:end; margin-bottom:65px; }
.section-heading h2, .manifesto h2, .testimonial-intro h2, .visit h2, .gallery h2, .booking-modal h2 { font-size:clamp(46px,5vw,74px); line-height:1; margin:0; }
.section-heading > p { color:#625f59; line-height:1.8; max-width:480px; font-size:13px; margin:0; }
.service-layout { display:grid; grid-template-columns:.82fr 1.18fr; gap:8vw; align-items:center; }
.service-visual { position:relative; height:680px; }
.service-visual > img { height:100%; object-fit:cover; filter:saturate(.7); }
.image-tag { position:absolute; bottom:0; left:0; background:var(--paper); padding:15px 19px; font:16px var(--serif); }
.round-seal { position:absolute; right:-48px; top:44px; width:95px; height:95px; border-radius:50%; color:#fff; background:#0b0b0b; display:grid; place-items:center; }
.round-seal span { position:absolute; font-size:6px; letter-spacing:.23em; text-transform:uppercase; }
.round-seal b { font:23px var(--serif); }
.service-item { border-top:1px solid var(--line); }
.service-item button { width:100%; min-height:92px; padding:0; border:0; background:transparent; cursor:pointer; display:grid; grid-template-columns:45px 1fr auto 24px; gap:15px; align-items:center; text-align:left; color:inherit; }
.service-number { font-size:8px; color:#8a867e; }
.service-title { font:26px var(--serif); }
.service-price { font-size:10px; color:#69655e; white-space:nowrap; }
.service-icon { width:24px; height:24px; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; }
.service-icon .public-icon { grid-area:1 / 1; width:13px; height:13px; }
.service-icon .icon-minus,.service-item.is-open .service-icon .icon-plus { display:none; }
.service-item.is-open .service-icon .icon-minus { display:block; }
.service-detail { display:grid; grid-template-rows:0fr; transition:grid-template-rows .45s ease; }
.service-detail > * { overflow:hidden; }
.service-detail p { font-size:12px; color:#67635d; line-height:1.7; width:75%; margin-bottom:0; }
.service-detail ul { font-size:9px; letter-spacing:.08em; text-transform:uppercase; line-height:2; color:#858078; padding:0 0 23px; list-style:none; overflow:hidden; margin:12px 0 0; }
.service-item.is-open .service-detail { grid-template-rows:1fr; }
.view-menu { margin-top:28px; }

.manifesto { display:grid; grid-template-columns:1fr 1fr; background:#0b0b0b; color:#fff; min-height:830px; }
.manifesto-image { position:relative; overflow:hidden; }
.manifesto-image img { position:absolute; inset:0; height:100%; object-fit:cover; filter:saturate(.35); }
.corner-lines { position:absolute; inset:22px; border-left:1px solid rgba(255,255,255,.35); border-top:1px solid rgba(255,255,255,.35); width:70px; height:70px; }
.manifesto-copy { padding:100px 8vw 80px; display:flex; flex-direction:column; justify-content:center; }
.manifesto-copy h2 { font-size:clamp(42px,4.1vw,64px); }
.manifesto-notes { display:grid; grid-template-columns:1.2fr 1fr; gap:45px; margin:55px 0; align-items:end; }
.manifesto-notes > p { color:rgba(255,255,255,.58); font-size:12px; line-height:1.8; margin:0; }
.signature { font:22px var(--serif); font-style:italic; transform:rotate(-3deg); }
.signature small { font:6px var(--sans); display:block; letter-spacing:.28em; margin-top:8px; }
.values { border-top:1px solid rgba(255,255,255,.16); }
.value { display:grid; grid-template-columns:55px 1fr; padding:20px 0; border-bottom:1px solid rgba(255,255,255,.16); }
.value strong { font-size:8px; color:#827e76; }
.value span { font-size:10px; color:rgba(255,255,255,.5); }
.value b { display:block; color:#fff; font:18px var(--serif); margin-bottom:6px; }

.artists { background:#f8f6f1; }
.section-heading.compact { margin-bottom:45px; }
.artist-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:17px; }
.artist-card { position:relative; }
.artist-image { height:510px; overflow:hidden; background:#ddd; }
.artist-image img { height:100%; object-fit:cover; filter:grayscale(1); transition:transform .8s cubic-bezier(.2,.7,.2,1), filter .5s; }
.artist-card:hover img { transform:scale(1.035); filter:grayscale(.25); }
.image-crop-one img { object-position:60% 19%; }
.image-crop-two img { object-position:14% 20%; }
.image-crop-three img { object-position:62% 16%; }
.artist-info { display:flex; justify-content:space-between; align-items:center; padding:18px 4px; }
.artist-info h3 { font:24px var(--serif); margin:0 0 5px; }
.artist-info p { font-size:8px; text-transform:uppercase; letter-spacing:.14em; color:#77726b; margin:0; }
.artist-info a { width:30px; height:30px; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; transition:.3s; }
.artist-info a:hover { background:#111; color:#fff; }

.gallery { background:#0a0a0a; color:#fff; min-height:1040px; display:grid; grid-template-columns:1fr .7fr 1fr; grid-template-rows:auto 290px 270px; gap:18px; padding:110px 8vw; }
.gallery-title { grid-column:1/3; padding:20px 4vw 40px 0; align-self:center; }
.gallery-title .text-link { margin-top:35px; }
.gallery-card { border:0; padding:0; cursor:zoom-in; position:relative; overflow:hidden; background:#222; color:#fff; text-align:left; }
.gallery-card img { height:100%; object-fit:cover; transition:transform .7s ease, filter .7s; }
.gallery-card span { position:absolute; left:15px; bottom:15px; font-size:8px; letter-spacing:.12em; text-transform:uppercase; opacity:0; transform:translateY(8px); transition:.3s; }
.gallery-card::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.55),transparent 45%); opacity:0; transition:.3s; }
.gallery-card span { z-index:2; }
.gallery-card:hover img { transform:scale(1.045); filter:brightness(.8); }
.gallery-card:hover::after, .gallery-card:hover span { opacity:1; transform:none; }
.gallery-a { grid-column:3; grid-row:1/3; }
.gallery-a img { object-position:50% 30%; }
.gallery-b { grid-column:1; grid-row:2/4; }
.gallery-b img { object-position:65% 18%; }
.gallery-c { grid-column:2; grid-row:2; }
.gallery-c img { object-position:20% 25%; }
.gallery-quote { grid-column:2/4; grid-row:3; display:flex; align-items:center; justify-content:center; gap:20px; border:1px solid rgba(255,255,255,.15); }
.gallery-quote span { font:70px var(--serif); color:#918879; height:65px; }
.gallery-quote p { font:24px/1.4 var(--serif); margin:0; }

.testimonials { padding:110px 8vw; display:grid; grid-template-columns:.75fr 1.25fr; gap:8vw; align-items:center; background:#d9d1c3; }
.testimonial-controls { display:flex; gap:18px; align-items:center; margin-top:50px; }
.testimonial-controls button { width:38px; height:38px; border:1px solid rgba(0,0,0,.24); border-radius:50%; background:transparent; cursor:pointer; transition:.3s; }
.testimonial-controls button:hover { background:#0a0a0a; color:#fff; }
.testimonial-controls span { font-size:8px; letter-spacing:.15em; }
.testimonial-stage { position:relative; min-height:380px; background:#f6f3ed; padding:65px 6vw; display:flex; align-items:center; }
.testimonial { display:none; animation:fadeSlide .6s ease; }
.testimonial.is-active { display:block; }
.stars { font-size:9px; letter-spacing:4px; margin-bottom:28px; }
blockquote { margin:0; font:clamp(26px,2.7vw,42px)/1.28 var(--serif); }
.client { display:flex; align-items:center; gap:13px; margin-top:38px; }
.client > span { width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:#111; color:#fff; font-size:8px; }
.client p { margin:0; }
.client b { display:block; font:14px var(--serif); }
.client small { display:block; font-size:7px; text-transform:uppercase; letter-spacing:.14em; color:#77736c; margin-top:4px; }

.visit { display:grid; grid-template-columns:1.05fr .95fr; min-height:720px; background:#111; color:#fff; }
.visit-map { position:relative; overflow:hidden; background:#d9d1c3; min-height:550px; }
.map-grid { position:absolute; inset:-30%; transform:rotate(-13deg); background-image:linear-gradient(90deg,rgba(0,0,0,.12) 1px,transparent 1px),linear-gradient(rgba(0,0,0,.12) 1px,transparent 1px); background-size:64px 48px; }
.map-grid::before,.map-grid::after { content:""; position:absolute; background:#b7aea0; }
.map-grid::before { width:18px; height:140%; left:42%; transform:rotate(22deg); }
.map-grid::after { height:20px; width:150%; top:55%; transform:rotate(-7deg); }
.map-river { position:absolute; width:95%; height:160px; left:-20%; top:45%; border:32px solid rgba(248,246,241,.65); border-inline:0; transform:rotate(17deg); border-radius:50%; }
.map-pin { position:absolute; left:53%; top:45%; transform:translate(-50%,-50%); width:66px; height:66px; border-radius:50% 50% 50% 0; rotate:-45deg; background:#0a0a0a; color:#fff; display:grid; place-items:center; box-shadow:0 15px 35px rgba(0,0,0,.24); }
.map-pin span { rotate:45deg; font:22px var(--serif); }
.map-label { position:absolute; right:10%; bottom:15%; font:26px var(--serif); color:rgba(0,0,0,.45); }
.visit-copy { padding:90px 7vw; display:flex; flex-direction:column; justify-content:center; }
.visit-lead { max-width:460px; color:rgba(255,255,255,.58); font-size:13px; line-height:1.8; margin:28px 0 40px; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:25px 40px; padding:28px 0; border-block:1px solid rgba(255,255,255,.14); }
.contact-grid small { text-transform:uppercase; letter-spacing:.2em; color:#8a857e; font-size:7px; }
.contact-grid p { font:16px/1.5 var(--serif); margin:8px 0 0; }
.contact-grid a { font-size:8px; display:inline-block; border-bottom:1px solid rgba(255,255,255,.3); margin-top:10px; padding-bottom:3px; }
.button.wide { width:100%; margin-top:30px; }

footer { background:#050505; color:#fff; padding:70px 8vw 25px; border-top:1px solid rgba(255,255,255,.12); }
.footer-top { display:grid; grid-template-columns:.7fr 1fr 1.1fr; gap:7vw; align-items:center; padding-bottom:60px; }
.footer-brand .brand-logo-image { width:220px; }
.footer-top > p { font:20px/1.4 var(--serif); color:rgba(255,255,255,.65); margin:0; }
.newsletter label { display:block; font-size:8px; text-transform:uppercase; letter-spacing:.2em; margin-bottom:15px; }
.newsletter div { display:flex; border-bottom:1px solid rgba(255,255,255,.45); }
.newsletter input { flex:1; min-width:0; color:#fff; background:transparent; border:0; outline:0; padding:12px 0; font-size:11px; }
.newsletter button { color:#fff; background:transparent; border:0; font-size:18px; cursor:pointer; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.12); padding-top:27px; display:flex; justify-content:space-between; font-size:11px; line-height:1.5; letter-spacing:.1em; color:rgba(255,255,255,.58); text-transform:uppercase; }
.footer-bottom div { display:flex; flex-wrap:wrap; gap:12px 25px; }
.footer-bottom a,.menu-socials a { display:inline-flex; align-items:center; gap:5px; }
.footer-bottom a .public-icon,.menu-socials a .public-icon { width:10px; height:10px; }

.booking-modal { width:min(760px,calc(100% - 24px)); max-height:calc(100dvh - 20px); border:1px solid rgba(255,255,255,.35); padding:25px 34px 28px; background:#f4f1eb; color:#111; overflow:auto; scrollbar-width:thin; scrollbar-color:rgba(71,48,56,.25) transparent; }
dialog::backdrop { background:rgba(0,0,0,.78); backdrop-filter:blur(5px); }
.booking-modal[open] { animation:modalIn .4s ease; }
.modal-close { position:absolute; top:20px; right:20px; width:35px; height:35px; border:1px solid var(--line); border-radius:50%; background:transparent; cursor:pointer; display:grid; place-items:center; padding:0; }
.modal-close .public-icon { width:17px; height:17px; }
.modal-brand { position:relative; width:150px; margin:-18px 0 24px -34px; }
.modal-brand img { width:100%; height:auto; filter:invert(1); }
.booking-modal .eyebrow { margin-bottom:10px; }
.booking-modal h2 { font-size:clamp(42px,4vw,52px); line-height:.98; }
.booking-modal h2 br { display:none; }
.booking-modal h2 em { margin-left:.15em; }
.booking-modal > p:not(.eyebrow) { max-width:610px; margin-top:7px; color:#6a665f; font-size:11px; line-height:1.55; }
.booking-modal form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-top:15px; }
.booking-modal label { font-size:8px; text-transform:uppercase; letter-spacing:.16em; }
.booking-modal form > label:not(.booking-honeypot) { padding:9px 13px 7px; border:1px solid rgba(71,48,56,.11); border-radius:11px; background:rgba(255,255,255,.7); transition:border-color .18s,box-shadow .18s,background .18s; }
.booking-modal form > label:not(.booking-honeypot):focus-within { border-color:rgba(138,89,104,.65); background:#fff; box-shadow:0 0 0 3px rgba(138,89,104,.08); }
.booking-modal input,.booking-modal select { width:100%; border:0; background:transparent; padding:7px 0 2px; outline:0; color:var(--ink); text-transform:none; letter-spacing:0; font-size:12px; border-radius:0; }
.booking-date-time { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.booking-availability-hint { margin:-5px 0 0!important; color:#746b6d!important; font-size:10px!important; line-height:1.45!important; }
.booking-availability-hint.is-error { color:#9a3f49!important; }
.booking-schedule-picker { grid-column:1/-1; padding:13px 14px 14px; border:1px solid rgba(71,48,56,.14); border-radius:15px; background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(240,230,231,.45)); box-shadow:0 10px 28px rgba(71,48,56,.045); }
.booking-schedule-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:10px; }
.booking-schedule-heading span,.booking-time-label { display:block; color:#8b7e78; font-size:7px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.booking-schedule-heading strong { display:block; margin-top:3px; font:400 18px/1.2 var(--serif); letter-spacing:0; text-transform:none; }
.booking-date-nav { display:flex; gap:5px; }
.booking-date-nav button { display:grid; width:31px; height:31px; place-items:center; border:1px solid rgba(71,48,56,.16); border-radius:50%; background:#fff; color:var(--ink); cursor:pointer; }
.booking-date-nav button:disabled { cursor:not-allowed; opacity:.3; }
.booking-date-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
.booking-date-grid button { position:relative; display:grid; min-width:0; min-height:60px; align-content:center; justify-items:center; gap:2px; padding:5px 3px; overflow:hidden; border:1px solid rgba(71,48,56,.12); border-radius:12px; background:#fff; color:var(--ink); cursor:pointer; transition:border-color .18s,background .18s,color .18s,transform .18s; }
.booking-date-grid button:hover:not(:disabled) { border-color:var(--berry); transform:translateY(-2px); }
.booking-date-grid button small { color:#8b7e78; font-size:7px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.booking-date-grid button strong { font:400 19px/1 var(--serif); }
.booking-date-grid button span { color:#a09792; font-size:7px; line-height:1; text-transform:uppercase; }
.booking-date-grid button.is-selected { border-color:var(--berry-deep); background:var(--berry-deep); color:#fff; box-shadow:0 8px 20px rgba(71,48,56,.18); }
.booking-date-grid button.is-selected small,.booking-date-grid button.is-selected span { color:rgba(255,255,255,.72); }
.booking-date-grid button:disabled { border-style:dashed; background:rgba(238,234,228,.55); color:#aaa19c; cursor:not-allowed; }
.booking-date-grid button:disabled::after { position:absolute; width:130%; height:1px; background:rgba(71,48,56,.12); content:""; transform:rotate(-48deg); }
.booking-date-grid button:disabled small,.booking-date-grid button:disabled span { color:#aaa19c; }
.booking-time-section { margin-top:11px; padding-top:10px; border-top:1px solid rgba(71,48,56,.12); }
.booking-time-label { margin-bottom:7px; }
.booking-time-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:6px; }
.booking-time-grid button { min-height:32px; padding:6px 4px; border:1px solid rgba(71,48,56,.14); border-radius:8px; background:#fff; color:var(--ink); font-size:10px; cursor:pointer; transition:border-color .18s,background .18s,color .18s,transform .18s; }
.booking-time-grid button:hover { transform:translateY(-1px); }
.booking-time-grid button:hover,.booking-time-grid button.is-selected { border-color:var(--berry-deep); background:var(--berry-deep); color:#fff; }
.booking-time-grid.is-empty { display:block; }
.booking-time-grid p { margin:0; color:#8b7e78; font-size:10px; line-height:1.5; }
.booking-modal .booking-availability-hint,.booking-modal .booking-form-status,.booking-modal .button.wide { grid-column:1/-1; }
.booking-modal .button.wide { min-height:44px; margin-top:1px; }
.booking-honeypot { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; }
.booking-form-status { margin:0!important; padding:11px 13px; border:1px solid #b96b72; border-radius:8px; background:#fff4f4; color:#7d3037!important; font-size:11px!important; line-height:1.5!important; }
.booking-modal button[disabled] { cursor:wait; opacity:.65; }
.lightbox { border:0; padding:0; max-width:min(90vw,800px); background:transparent; overflow:visible; }
.lightbox img { max-height:88vh; object-fit:contain; }
.lightbox button { position:fixed; top:18px; right:24px; width:44px; height:44px; display:grid; place-items:center; padding:0; color:#fff; border:0; background:transparent; cursor:pointer; }
.lightbox button .public-icon { width:30px; height:30px; }
.toast { position:fixed; z-index:90; right:24px; bottom:24px; min-width:min(380px,calc(100vw - 30px)); background:#fff; color:#111; box-shadow:0 15px 60px rgba(0,0,0,.25); padding:23px 26px; display:flex; align-items:center; gap:18px; transform:translateY(140%); opacity:0; transition:.4s; }
.toast.is-visible { transform:none; opacity:1; }
.toast p { margin:0; font-size:9px; color:#777; }
.toast b { display:block; color:#111; font-size:11px; margin-bottom:3px; }

.reveal { opacity:1; transform:none; }
.js .reveal { opacity:0; transform:translateY(26px); }
.js.is-ready .reveal { transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); transition-delay:var(--reveal-delay, 0ms); }
.js.is-ready .reveal.is-visible { opacity:1; transform:none; }

@keyframes heroIn { from { opacity:0; transform:scale(1.09); } to { opacity:1; transform:scale(1.025); } }
@keyframes marquee { from { transform:translate3d(0,0,0); } to { transform:translate3d(-50%,0,0); } }
@keyframes scrollPulse { 50% { opacity:.2; transform:scaleY(.7); } }
@keyframes fadeSlide { from { opacity:0; transform:translateX(15px); } }
@keyframes modalIn { from { opacity:0; transform:translateY(25px) scale(.98); } }

/* Keep large screens editorial and spacious without scaling the UI like a poster. */
@media (min-width: 1100px) {
  .site-header { height:92px; padding-inline:3.8vw; }
  .site-header.scrolled,
  .site-header.header-solid { height:72px; }
  .site-header .brand-logo-image { width:120px; }
  .desktop-nav { gap:40px; font-size:12px; }
  .header-cta { min-width:184px; padding:14px 20px; font-size:11px; }
  .site-header:is(.scrolled, .header-solid) .brand-logo-image { width:105px; }
  .site-header:is(.scrolled, .header-solid) .desktop-nav { gap:34px; font-size:11px; }
  .site-header:is(.scrolled, .header-solid) .header-cta { padding:12px 18px; gap:18px; font-size:10px; }

  .hero { min-height:700px; height:100svh; max-height:920px; }
  .hero-media { left:33.5%; }
  .hero-media::after { background:linear-gradient(90deg,#050505 0 6%,rgba(5,5,5,.96) 10%,rgba(5,5,5,.42) 22%,transparent 35%),linear-gradient(0deg,rgba(0,0,0,.52),transparent 52%),radial-gradient(circle at 70% 42%,transparent 42%,rgba(0,0,0,.16) 100%); }
  .hero-media img { object-position:center 43%; }
  .hero-copy { width:min(590px,46vw); margin-left:3.8vw; padding-top:70px; }
  .hero-copy h1 { font-size:clamp(76px,7.35vw,108px); line-height:.96; }
  .hero-copy .eyebrow { font-size:9px; }
  .hero-intro { width:360px; font-size:13px; }
  .hero-actions { margin-top:34px; gap:28px; }
  .js.is-ready .hero-home .hero-actions { opacity:1; transform:none; }
  .hero-actions .button { min-height:50px; padding-inline:24px; font-size:11px; }
  .hero-actions .text-link { font-size:11px; }
  .hero-bottom { left:3.8vw; right:3.8vw; bottom:30px; }
  .scroll-note { font-size:8px; }
  .marquee { padding-block:16px; }
  .marquee-track { font-size:9px; }

  .section { padding:130px 5vw; }
  .section-heading { gap:8vw; margin-bottom:80px; }
  .section-heading h2,
  .manifesto h2,
  .testimonial-intro h2,
  .visit h2,
  .gallery h2 { font-size:clamp(72px,6.2vw,104px); }
  .section-heading > p { max-width:640px; font-size:18px; }
  .service-layout { gap:7vw; }
  .service-visual { height:860px; }
  .service-item button { min-height:124px; }
  .service-title { font-size:36px; }
  .service-price { font-size:14px; }
  .service-detail p { font-size:16px; }
  .service-detail ul { font-size:13px; }

  .manifesto { min-height:1050px; }
  .manifesto-copy { padding:140px 5vw 120px; }
  .manifesto-notes > p { font-size:16px; }
  .signature { font-size:30px; }
  .value { padding-block:28px; }
  .value span { font-size:14px; }
  .value b { font-size:25px; }

  .artist-image { height:690px; }
  .artist-info h3 { font-size:33px; }
  .artist-info p { font-size:12px; }
  .gallery { min-height:1340px; padding:165px 5vw; grid-template-rows:auto 380px 350px; }
  .gallery-quote p { font-size:33px; }
  .testimonials { padding:165px 5vw; gap:7vw; }
  .testimonial-stage { min-height:510px; padding:85px 6vw; }
  .visit { min-height:940px; }
  .visit-copy { padding:125px 5vw; }
  .visit-lead { font-size:18px; }
  .contact-grid p { font-size:23px; }
  footer { padding:100px 5vw 36px; }
  .footer-brand .brand-logo-image { width:310px; }
  .footer-top > p { font-size:28px; }
}

@media (max-width: 980px) {
  .site-header { grid-template-columns:1fr auto; height:72px; padding:0 22px; }
  .desktop-nav,.header-actions { display:none; }
  .menu-toggle { justify-self:end; display:flex; width:42px; height:42px; border:1px solid rgba(255,255,255,.28); background:transparent; flex-direction:column; align-items:center; justify-content:center; gap:6px; cursor:pointer; }
  .menu-toggle span { width:17px; height:1px; background:#fff; transition:.3s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
  .mobile-menu { position:fixed; z-index:40; inset:0; padding:110px 24px 35px; background:#0a0a0a; color:#fff; display:flex; flex-direction:column; visibility:hidden; opacity:0; transition:.4s; }
  .mobile-menu.is-open { visibility:visible; opacity:1; }
  .mobile-menu-nav { display:flex; flex-direction:column; }
  .mobile-menu-nav a { font:37px var(--serif); padding:12px 0; border-bottom:1px solid rgba(255,255,255,.15); transform:translateY(15px); opacity:0; transition:.4s; }
  .mobile-menu.is-open .mobile-menu-nav a { transform:none; opacity:1; }
  .mobile-menu-nav a:nth-child(2) { transition-delay:.05s; }.mobile-menu-nav a:nth-child(3) { transition-delay:.1s; }.mobile-menu-nav a:nth-child(4) { transition-delay:.15s; }.mobile-menu-nav a:nth-child(5) { transition-delay:.2s; }
  .mobile-menu-nav small { font:8px var(--sans); color:#777; margin-right:12px; }
  .mobile-menu .button { margin-top:25px; width:100%; }
  .menu-meta { margin-top:auto; display:flex; justify-content:space-between; font-size:8px; text-transform:uppercase; letter-spacing:.1em; color:#888; }
  .menu-socials { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px 16px; }
  .hero { height:800px; align-items:end; }
  .hero-media { inset:0; }
  .hero-media::after { background:linear-gradient(0deg,#090909 3%,rgba(9,9,9,.92) 25%,transparent 70%),linear-gradient(90deg,rgba(0,0,0,.38),transparent 70%); }
  .hero-copy { width:auto; margin:0 24px 120px; padding:0; }
  .hero-copy h1 { font-size:clamp(52px,12vw,78px); }
  .hero-intro { font-size:13px; }
  .hero-bottom { left:24px; right:24px; bottom:24px; }
  .scroll-note { display:none; }
  .section { padding:85px 24px; }
  .section-heading { grid-template-columns:1fr; gap:25px; margin-bottom:45px; }
  .section-heading > p { max-width:600px; }
  .service-layout { grid-template-columns:1fr; gap:50px; }
  .service-visual { height:620px; }
  .round-seal { right:16px; }
  .manifesto { grid-template-columns:1fr; }
  .manifesto-image { min-height:650px; }
  .manifesto-copy { padding:85px 24px; }
  .artist-image { height:420px; }
  .gallery { padding:85px 24px; min-height:900px; }
  .testimonials { padding:85px 24px; grid-template-columns:1fr; gap:45px; }
  .testimonial-intro { display:grid; grid-template-columns:1fr auto; }
  .testimonial-intro .eyebrow { grid-column:1/-1; }
  .testimonial-controls { margin:0; align-self:end; }
  .visit { grid-template-columns:1fr; }
  .visit-map { min-height:450px; }
  .visit-copy { padding:75px 24px; }
}

@media (max-width: 640px) {
  .site-header .brand-logo-image { width:112px; }
  .hero { min-height:760px; height:100svh; max-height:880px; }
  .hero-media img { object-position:58% 20%; }
  .hero-copy { margin-bottom:122px; }
  .hero-copy .eyebrow { margin-bottom:18px; }
  .hero-copy h1 { font-size:49px; line-height:.98; margin-bottom:18px; }
  .hero-intro { line-height:1.55; max-width:330px; }
  .hero-actions { margin-top:24px; gap:20px; }
  .hero-actions .button { min-height:46px; padding:0 16px; gap:18px; }
  .hero-actions .text-link { font-size:9px; }
  .section-heading h2, .manifesto h2, .testimonial-intro h2, .visit h2, .gallery h2, .booking-modal h2 { font-size:45px; }
  .section { padding:72px 20px; }
  .service-visual { height:480px; }
  .round-seal { width:78px; height:78px; top:20px; }
  .service-item button { min-height:82px; grid-template-columns:27px 1fr auto 22px; gap:8px; }
  .service-title { font-size:21px; }
  .service-detail p { width:94%; }
  .service-price { font-size:8px; }
  .manifesto-image { min-height:470px; }
  .manifesto-copy { padding:70px 20px; }
  .manifesto-notes { grid-template-columns:1fr; gap:25px; margin:40px 0; }
  .artist-grid { grid-template-columns:1fr; gap:28px; }
  .artist-image { height:520px; }
  .gallery { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:auto 370px 250px 200px; padding:75px 20px; min-height:0; }
  .gallery-title { grid-column:1/-1; padding:0 0 25px; }
  .gallery-a { grid-column:1; grid-row:2; }
  .gallery-b { grid-column:2; grid-row:2; }
  .gallery-c { grid-column:1/-1; grid-row:3; }
  .gallery-quote { grid-column:1/-1; grid-row:4; padding:20px; }
  .gallery-quote p { font-size:20px; }
  .testimonial-intro { display:block; }
  .testimonial-controls { margin-top:30px; }
  .testimonial-stage { min-height:430px; padding:45px 25px; }
  blockquote { font-size:28px; }
  .contact-grid { grid-template-columns:1fr; }
  .visit-map { min-height:380px; }
  .footer-top { grid-template-columns:1fr; gap:35px; }
  .footer-bottom { gap:25px; flex-direction:column; }
  .booking-modal { width:calc(100% - 14px); max-height:calc(100dvh - 14px); padding:19px 17px 21px; }
  .modal-brand { width:130px; margin:-10px 0 22px -16px; }
  .booking-modal h2 { font-size:39px; }
  .booking-modal h2 br { display:block; }
  .booking-modal h2 em { margin-left:0; }
  .booking-modal form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .booking-modal input:not([type="hidden"]),.booking-modal select,.booking-modal textarea { font-size:16px!important; }
  .booking-modal form > label:first-of-type,.booking-modal form > label:nth-of-type(4),.booking-schedule-picker,.booking-modal .booking-availability-hint,.booking-modal .booking-form-status,.booking-modal .button.wide { grid-column:1/-1; }
  .booking-date-time { grid-template-columns:1fr; gap:14px; }
  .booking-schedule-picker { padding:14px; }
  .booking-date-grid { grid-template-columns:repeat(7,58px); margin-inline:-14px; padding:0 14px 5px; overflow-x:auto; scrollbar-width:none; }
  .booking-date-grid::-webkit-scrollbar { display:none; }
  .booking-date-grid button { min-height:58px; }
  .booking-time-grid { grid-template-columns:repeat(4,1fr); }
  .toast { left:15px; right:15px; bottom:15px; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .js .reveal { opacity:1; transform:none; }
  .js .site-header { opacity:1; transform:none; }
  .marquee-track { animation-duration:24s !important; animation-iteration-count:infinite !important; }
}

/* Multi-page public site */
.site-header.header-solid { background:rgba(5,5,5,.97); border-bottom:0; box-shadow:0 16px 38px rgba(0,0,0,.12); }
.desktop-nav a.active::after { transform:scaleX(1); }
.hero-home h1 em::after { display:none; }
.hero-index { position:absolute; right:4vw; bottom:34px; z-index:2; display:flex; gap:10px; align-items:baseline; color:rgba(255,255,255,.5); font-size:8px; letter-spacing:.22em; }
.hero-index b { color:#fff; font:28px var(--serif); letter-spacing:0; }
.intro-grid { display:grid; grid-template-columns:.25fr 1fr .7fr; gap:6vw; align-items:start; background:var(--ivory); }
.intro-number { color:#8c877f; font:24px var(--serif); padding-top:42px; }
.intro-number span { font:8px var(--sans); letter-spacing:.15em; }
.intro-title h2,.feature-copy h2,.story-copy blockquote,.care-banner h2,.editorial-copy h2,.instagram-cta h2,.visit-details h2 { font-size:clamp(45px,5vw,78px); line-height:1.02; margin:0; }
.intro-copy { padding-top:42px; color:#65615b; font-size:13px; line-height:1.85; }
.line-link { display:inline-flex; justify-content:space-between; gap:35px; padding:12px 0; border-bottom:1px solid currentColor; color:#111; font-size:10px; text-transform:uppercase; letter-spacing:.11em; }
.feature-split { display:grid; grid-template-columns:1.05fr .95fr; min-height:850px; background:#0a0a0a; color:#fff; }
.feature-image { position:relative; overflow:hidden; }
.feature-image img { height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05); }
.feature-image span { position:absolute; left:25px; bottom:25px; padding:10px 13px; background:#f4f1eb; color:#111; font-size:8px; text-transform:uppercase; letter-spacing:.14em; }
.feature-copy { padding:110px 7vw; display:flex; flex-direction:column; justify-content:center; }
.mini-services { margin:55px 0 30px; border-top:1px solid rgba(255,255,255,.18); }
.mini-services a { display:grid; grid-template-columns:35px 1fr auto 20px; align-items:center; gap:15px; min-height:80px; border-bottom:1px solid rgba(255,255,255,.18); }
.mini-services > a > span:first-child,.mini-services small { color:#817d77; font-size:8px; }
.mini-services b { font:21px var(--serif); font-weight:400; }
.mini-service-meta { display:flex; align-items:baseline; justify-content:flex-end; gap:13px; white-space:nowrap; }
.mini-services .mini-service-meta small { text-transform:uppercase; letter-spacing:.08em; }
.mini-services .mini-service-meta strong { color:#fff; font:20px var(--serif); font-weight:400; }
.mini-services i { display:grid; place-items:center; font-style:normal; }
.mini-services i .public-icon { width:15px; height:15px; }
.feature-copy > .button { align-self:flex-start; }
.home-story { display:grid; grid-template-columns:minmax(0,1fr) minmax(340px,.85fr) minmax(210px,.5fr); align-items:center; gap:clamp(45px,6vw,105px); background:#d8d8d4; }
.story-portrait img { height:650px; object-fit:cover; }
.story-copy blockquote { font-size:clamp(32px,3.5vw,54px); }
.story-copy > p:not(.eyebrow) { color:#625f59; font-size:12px; line-height:1.8; margin:30px 0; }
.story-detail { position:relative; width:min(100%,290px); padding:11px 11px 0; align-self:end; justify-self:end; border:1px solid rgba(10,10,10,.16); background:rgba(247,247,244,.46); }
.story-detail::before { position:absolute; inset:-9px 9px 9px -9px; z-index:0; border-top:1px solid rgba(10,10,10,.22); border-left:1px solid rgba(10,10,10,.22); content:""; pointer-events:none; }
.story-detail img { position:relative; z-index:1; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:center; filter:grayscale(1) contrast(1.04); }
.story-detail span { position:relative; z-index:1; min-height:42px; padding:0 3px; display:flex; align-items:center; gap:9px; color:#514e49; font-size:7px; font-style:normal; font-weight:500; letter-spacing:.18em; text-transform:uppercase; }
.story-detail span i { width:22px; height:1px; background:rgba(10,10,10,.35); }
.closing-cta { padding:130px 8vw; background:#0a0a0a; color:#fff; text-align:center; }
.closing-cta .eyebrow::before { display:none; }
.closing-cta h2 { font-size:clamp(50px,7vw,104px); line-height:.98; margin:0 0 45px; }
.closing-cta .button { margin:auto; }
.footer-book small { display:block; color:#777; text-transform:uppercase; letter-spacing:.18em; font-size:7px; margin-bottom:12px; }
.footer-book button { width:100%; padding:12px 0; display:flex; justify-content:space-between; color:#fff; background:none; border:0; border-bottom:1px solid rgba(255,255,255,.45); cursor:pointer; }
.footer-nav { display:flex; gap:30px; padding:25px 0; border-top:1px solid rgba(255,255,255,.12); font:20px var(--serif); }

.page-hero { position:relative; min-height:620px; padding:190px 8vw 90px; display:grid; grid-template-columns:1.25fr .55fr; gap:10vw; align-items:end; overflow:hidden; background:#050505; color:#f4f4f1; }
.page-hero::before { position:absolute; inset:0 0 0 33.5%; background-position:center 43%; background-size:cover; background-repeat:no-repeat; content:""; filter:grayscale(.92) saturate(.18) contrast(1.1) brightness(.88); transform:scale(1.025); }
.page-hero::after { position:absolute; inset:0; background:linear-gradient(90deg,#050505 0 35%,rgba(5,5,5,.96) 39%,rgba(5,5,5,.52) 52%,transparent 68%),linear-gradient(0deg,rgba(0,0,0,.5),transparent 54%),radial-gradient(circle at 82% 42%,transparent 40%,rgba(0,0,0,.18) 100%); content:""; pointer-events:none; }
.page-hero > * { position:relative; z-index:1; min-width:0; }
.page-hero .eyebrow::before { background:#aaa; }
.page-hero h1 { margin:0; font-size:clamp(65px,8vw,124px); }
.page-hero h1 em::after { display:none; }
.page-hero > p { width:100%; min-width:0; max-width:400px; color:rgba(255,255,255,.6); line-height:1.8; font-size:13px; overflow-wrap:anywhere; }
.page-hero-image { background:#050505; }
.service-page { display:grid; grid-template-columns:.42fr 1fr; gap:8vw; background:#f7f7f4; }
.service-aside { position:sticky; top:120px; align-self:start; }
.service-aside > span { font:36px var(--serif); }
.service-aside p { color:#6d6962; font-size:12px; line-height:1.8; margin:24px 0 30px; }
.service-page .service-item button { min-height:120px; }
.service-page .service-title { font-size:32px; }
.service-page .service-detail > div { overflow:hidden; }
.inline-book { border:0; border-bottom:1px solid #111; background:none; padding:0 0 5px; margin-bottom:25px; cursor:pointer; font-size:9px; text-transform:uppercase; letter-spacing:.12em; display:inline-flex; align-items:center; gap:7px; }
.note-dark button { display:flex; align-items:center; justify-content:space-between; }
.care-banner { display:grid; grid-template-columns:1fr 1fr; gap:10vw; padding:110px 8vw; color:#f4f4f1; background:#050505; }
.care-points { border-top:1px solid rgba(255,255,255,.2); }
.care-points p { display:grid; grid-template-columns:45px 1fr; padding:24px 0; margin:0; border-bottom:1px solid rgba(255,255,255,.2); }
.care-points b { color:#777; font-size:8px; }.care-points span { font:22px var(--serif); }
.editorial-story { display:grid; grid-template-columns:1fr .85fr; gap:10vw; align-items:center; background:#f7f7f4; }
.editorial-image { position:relative; overflow:hidden; }.editorial-image::after { position:absolute; inset:0 0 0 auto; width:70px; background:linear-gradient(90deg,transparent,#f7f7f4); content:""; pointer-events:none; }.editorial-image img { height:760px; object-fit:cover; object-position:center 20%; filter:grayscale(1) contrast(1.04); }.editorial-image span { position:absolute; bottom:0; left:0; z-index:1; background:#f7f7f4; padding:15px; font-size:8px; text-transform:uppercase; letter-spacing:.14em; }
.editorial-image img.about-founder-photo { height:auto; object-fit:contain; filter:none; }
.editorial-copy > p:not(.eyebrow) { color:#69655f; line-height:1.85; font-size:13px; margin:28px 0; }
.signature { margin-top:50px; }
.editorial-copy .signature-attribution { font-size:11px; }
.team-editorial { display:grid; grid-template-columns:minmax(0,1.14fr) minmax(360px,.86fr); height:clamp(510px,43vw,600px); min-height:0; border-block:1px solid rgba(10,10,10,.12); background:#e7e6e2; }
.team-editorial__portrait { position:relative; min-height:0; overflow:hidden; background:#d8d6d0; }
.team-editorial__portrait::after { position:absolute; inset:0; background:linear-gradient(90deg,transparent 70%,rgba(8,8,8,.1)),linear-gradient(0deg,rgba(0,0,0,.24),transparent 25%); content:""; pointer-events:none; }
.team-editorial__portrait img { height:100%; object-fit:cover; object-position:center 35%; filter:saturate(.66) contrast(1.04); transition:transform 1.2s cubic-bezier(.2,.7,.2,1); }
.team-editorial__portrait:hover img { transform:scale(1.018); }
.team-editorial__portrait > span { position:absolute; left:28px; bottom:25px; z-index:1; color:rgba(255,255,255,.86); font-size:7px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; }
.team-editorial__copy { position:relative; display:flex; flex-direction:column; justify-content:center; padding:52px clamp(42px,6vw,88px); }
.team-editorial__copy h2 { max-width:560px; margin:0; font-size:clamp(42px,4vw,62px); line-height:1; }
.team-editorial__copy h2 em { color:#74736e; font-weight:400; }
.team-editorial__copy > p:not(.eyebrow) { max-width:470px; margin:27px 0 34px; color:#60605c; font-size:12px; line-height:1.75; }
.team-editorial__principles { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(10,10,10,.22); border-bottom:1px solid rgba(10,10,10,.22); }
.team-editorial__principles span { padding:15px 12px 15px 0; color:#555550; font-size:8px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }
.team-editorial__principles span + span { padding-left:16px; border-left:1px solid rgba(10,10,10,.18); }
.values-page { padding:110px 8vw; color:#f4f4f1; background:#050505; }
.value-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:50px; border-top:1px solid rgba(255,255,255,.18); }
.value-grid article { padding:40px 4vw 20px 0; border-right:1px solid rgba(255,255,255,.18); }.value-grid article + article { padding-left:4vw; }
.value-grid span { color:#777; font-size:8px; }.value-grid h3 { font:30px var(--serif); margin:55px 0 18px; }.value-grid p { color:#888; font-size:12px; line-height:1.8; }
.about-quote { position:relative; height:clamp(720px,61vw,1100px); display:grid; place-items:center; overflow:hidden; color:#fff; background:#171a18; }
.about-quote::after { content:""; position:absolute; inset:0; background:rgba(0,0,0,.57); }
.about-quote img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 33%; filter:grayscale(1) contrast(1.08); }
.about-quote blockquote { position:relative; z-index:1; max-width:900px; padding:30px; text-align:center; font-size:clamp(42px,5.5vw,78px); text-shadow:0 2px 22px rgba(0,0,0,.7); }
.gallery-page { display:grid; grid-template-columns:1.1fr .7fr 1fr; grid-template-rows:350px 400px 320px; gap:12px; background:#f7f7f4; }
.gallery-tile { position:relative; overflow:hidden; border:0; padding:0; cursor:zoom-in; background:#080808; color:#fff; }.gallery-tile::after { position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.48),transparent 38%); content:""; pointer-events:none; }.gallery-tile img { height:100%; object-fit:cover; filter:grayscale(1) contrast(1.06); transition:transform .7s,filter .7s; }.gallery-tile:hover img { filter:grayscale(1) contrast(1.12) brightness(.86); transform:scale(1.04); }.gallery-tile span { position:absolute; left:15px; bottom:15px; z-index:1; font-size:8px; text-transform:uppercase; letter-spacing:.12em; }
.tile-tall { grid-row:1/3; }.tile-tall img { object-position:50% 20%; }.tile-wide { grid-column:2/4; grid-row:2; }.tile-wide img { object-position:50% 22%; }.tile-detail { grid-column:1/3; grid-row:3; }.tile-detail img { object-position:center 32%; }
.gallery-note { padding:40px; display:flex; flex-direction:column; justify-content:space-between; border:1px solid var(--line); }.gallery-note span { color:#73736f; font-size:8px; letter-spacing:.15em; }.gallery-note p { font:27px/1.35 var(--serif); }.note-dark { grid-column:3; grid-row:3; color:#fff; background:#050505; }.note-dark button { color:#fff; background:none; border:0; border-bottom:1px solid #777; padding:10px 0; text-align:left; cursor:pointer; }
.instagram-cta { padding:100px 8vw; text-align:center; background:#d8d8d4; }.instagram-cta .eyebrow::before { display:none; }.instagram-cta h2 { margin-bottom:25px; }
.visit-page { display:grid; grid-template-columns:1.1fr .9fr; background:#f7f7f4; }
.visit-map-panel { min-height:780px; isolation:isolate; background:#d8d2c6; border:12px solid #e9e5dd; box-shadow:inset 0 0 0 1px rgba(10,10,10,.12); }
.visit-map-panel::before { position:absolute; inset:0; z-index:1; background:radial-gradient(circle at 54% 46%,transparent 0 18%,rgba(89,76,58,.06) 65%,rgba(45,38,29,.12) 100%); content:""; pointer-events:none; }
.visit-map-panel::after { position:absolute; inset:0 0 0 auto; z-index:4; width:100px; background:linear-gradient(90deg,transparent,#f7f7f4); content:""; pointer-events:none; }
.visit-map-panel .map-grid { inset:-16%; background-color:#d8d2c6; background-image:linear-gradient(90deg,rgba(68,59,47,.16) 1px,transparent 1px),linear-gradient(rgba(68,59,47,.16) 1px,transparent 1px); background-size:54px 42px; }
.visit-map-panel .map-grid::before { left:37%; width:18px; height:145%; background:#b9afa0; box-shadow:inset 0 0 0 1px rgba(51,43,33,.12); }
.visit-map-panel .map-grid::after { top:53%; height:19px; background:#b9afa0; box-shadow:inset 0 0 0 1px rgba(51,43,33,.12); }
.map-avenue,.map-cross-street { position:absolute; z-index:2; color:rgba(35,30,24,.52); background:#eeeae2; box-shadow:0 0 0 1px rgba(59,50,39,.12); font-size:7px; font-weight:500; letter-spacing:.15em; text-transform:uppercase; }
.map-avenue { left:-8%; width:125%; height:14px; transform:rotate(-13deg); }
.map-avenue span { position:absolute; left:44%; top:4px; white-space:nowrap; }
.map-avenue-one { top:22%; }.map-avenue-two { top:45%; height:19px; background:#f4f1eb; box-shadow:0 0 0 1px rgba(59,50,39,.2); }.map-avenue-two span { top:5px; }.map-avenue-three { top:69%; }
.map-cross-street { top:-10%; width:12px; height:125%; transform:rotate(9deg); }
.map-cross-street span { position:absolute; top:24%; left:-51px; width:120px; transform:rotate(-90deg); text-align:center; }
.map-cross-one { left:25%; }.map-cross-two { left:72%; }
.map-landmark { position:absolute; top:10%; right:10%; z-index:2; width:105px; height:82px; display:grid; place-items:center; border:1px solid rgba(47,40,31,.18); background:rgba(183,174,158,.7); color:rgba(37,31,24,.55); text-align:center; text-transform:uppercase; letter-spacing:.2em; font-size:6px; }
.map-nearby { position:absolute; z-index:3; display:flex; align-items:center; gap:7px; color:rgba(35,30,24,.62); font-size:6px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }.map-nearby i { width:8px; height:8px; border:2px solid rgba(35,30,24,.52); border-radius:50%; }.map-nearby-monumental { right:14%; bottom:28%; }.map-nearby-diagonal { left:11%; top:12%; }
.map-area-label { position:absolute; z-index:2; color:rgba(46,39,30,.23); font:clamp(18px,2vw,27px) var(--serif); font-style:italic; letter-spacing:.04em; }.map-area-eixample { left:9%; top:29%; }
.visit-map-panel .map-pin { z-index:5; left:54%; top:46%; width:68px; height:68px; transition:transform .35s,box-shadow .35s; }
.visit-map-panel:hover .map-pin { transform:translate(-50%,-55%); box-shadow:0 22px 42px rgba(0,0,0,.28); }
.visit-map-panel .map-pin img { width:47px; height:auto; rotate:45deg; object-fit:contain; }.map-pin i { position:absolute; right:-7px; bottom:-7px; width:13px; height:13px; border:3px solid #d8d2c6; border-radius:50%; background:#0a0a0a; }
.map-pin-label { position:absolute; left:calc(54% + 58px); top:calc(46% - 25px); z-index:5; min-width:180px; padding:12px 15px; border-left:2px solid #0a0a0a; background:rgba(247,247,244,.9); box-shadow:0 8px 24px rgba(40,34,26,.12); backdrop-filter:blur(8px); }
.map-pin-label::before { position:absolute; top:50%; right:100%; width:24px; height:1px; background:#0a0a0a; content:""; }
.map-pin-label small { display:block; margin-bottom:4px; color:#746e65; font-size:6px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; }.map-pin-label strong { font:15px var(--serif); font-weight:400; }
.map-location-card { position:absolute; left:5%; bottom:6%; z-index:6; width:min(340px,74%); padding:25px 27px 22px; background:rgba(247,247,244,.94); box-shadow:0 20px 55px rgba(47,39,29,.18); backdrop-filter:blur(10px); }
.map-location-card small { display:block; margin-bottom:10px; color:#777067; font-size:7px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; }
.map-location-card strong { display:block; font:25px/1.2 var(--serif); font-weight:400; }
.map-location-card > span { display:flex; align-items:center; justify-content:space-between; margin-top:20px; padding-top:15px; border-top:1px solid var(--line); font-size:9px; letter-spacing:.04em; }
.map-location-card .public-icon { width:14px; height:14px; transition:transform .3s; }.visit-map-panel:hover .map-location-card .public-icon { transform:translate(3px,-3px); }
.map-compass { position:absolute; top:5%; left:5%; z-index:5; width:44px; height:44px; display:grid; place-items:center; border:1px solid rgba(33,28,22,.28); border-radius:50%; background:rgba(241,237,229,.76); font:10px var(--serif); }
.map-compass::before { position:absolute; top:5px; width:1px; height:10px; background:#0a0a0a; content:""; }.map-compass i { padding-top:10px; font-style:normal; }
.map-scale { position:absolute; right:7%; bottom:6%; z-index:5; padding-bottom:6px; border-bottom:2px solid rgba(25,22,18,.55); color:rgba(25,22,18,.65); font-size:7px; letter-spacing:.12em; }
.visit-details { position:relative; z-index:5; padding:100px 8vw; display:flex; flex-direction:column; justify-content:center; }.visit-details h2 { font-size:clamp(38px,4vw,60px); margin-bottom:45px; }.detail-row { display:grid; grid-template-columns:130px 1fr; padding:25px 0; border-top:1px solid var(--line); }.detail-row small { text-transform:uppercase; letter-spacing:.15em; color:#777; font-size:7px; }.detail-row p { font:18px/1.5 var(--serif); margin:0; }

@media (max-width:980px) {
  .intro-grid { grid-template-columns:70px 1fr; }.intro-copy { grid-column:2; padding-top:0; }
  .feature-split,.service-page,.care-banner,.editorial-story,.visit-page { grid-template-columns:1fr; }
  .feature-image { min-height:620px; }.service-aside { position:static; }.care-banner { gap:50px; }
  .home-story { grid-template-columns:1fr 1fr; }.story-detail { display:none; }
  .page-hero { padding-inline:24px; }
  .page-hero::before { inset:0; background-position:center 43%; }
  .page-hero::after { background:linear-gradient(0deg,#050505 0%,rgba(5,5,5,.9) 30%,rgba(5,5,5,.2) 72%,transparent 100%),linear-gradient(90deg,rgba(5,5,5,.58),transparent 75%); }
  .gallery-page { grid-template-rows:300px 360px 280px; }
  .editorial-image::after { inset:auto 0 0; width:auto; height:80px; background:linear-gradient(0deg,#f7f7f4,transparent); }
  .team-editorial { grid-template-columns:1fr; }
  .team-editorial { height:auto; }
  .team-editorial__portrait { min-height:0; aspect-ratio:16/9; }
  .team-editorial__portrait::after { background:linear-gradient(0deg,rgba(0,0,0,.3),transparent 32%); }
  .team-editorial__copy { padding:58px 8vw 64px; }
  .visit-map-panel { min-height:620px; }.visit-map-panel::after { inset:auto 0 0; width:auto; height:90px; background:linear-gradient(0deg,#f7f7f4,transparent); }.visit-details { padding:80px 24px; }
}
@media (max-width:640px) {
  .page-hero { min-height:570px; padding:145px 20px 65px; grid-template-columns:minmax(0,1fr); gap:35px; }.page-hero h1 { font-size:58px; }.page-hero > p { margin:0; }
  .intro-grid { grid-template-columns:1fr; gap:25px; }.intro-number { padding:0; }.intro-copy { grid-column:auto; }
  .feature-image { min-height:500px; }.feature-copy { padding:75px 20px; }.mini-services a { grid-template-columns:25px 1fr auto 16px; gap:10px; }.mini-service-meta { flex-direction:column; align-items:flex-end; gap:3px; }.mini-services .mini-service-meta strong { font-size:18px; }
  .home-story { grid-template-columns:1fr; gap:0; padding:64px 18px 70px; overflow:hidden; }
  .story-portrait { position:relative; width:min(88%,380px); margin:0 auto 56px; padding:8px; border:1px solid rgba(10,10,10,.14); background:rgba(247,247,244,.5); }
  .story-portrait::before { position:absolute; inset:-8px 8px 8px -8px; border-top:1px solid rgba(10,10,10,.2); border-left:1px solid rgba(10,10,10,.2); content:""; pointer-events:none; }
  .story-portrait picture { position:relative; z-index:1; display:block; overflow:hidden; }
  .story-portrait img { height:auto; aspect-ratio:4/5; object-fit:cover; object-position:center; filter:grayscale(1) contrast(1.035); }
  .story-copy { padding:0 2px; }
  .story-copy .eyebrow { margin-bottom:20px; }
  .story-copy blockquote { font-size:clamp(31px,8.3vw,38px); line-height:1.06; letter-spacing:-.025em; }
  .story-copy > p:not(.eyebrow) { margin:24px 0 28px; font-size:11px; line-height:1.75; }
  .closing-cta { padding:90px 20px; }
  .footer-nav { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.footer-top { padding-bottom:40px; }
  .service-page .service-item button { min-height:95px; }.service-page .service-title { font-size:22px; }
  .care-banner { padding:75px 20px; }.editorial-image img { height:540px; }.editorial-story { padding-inline:20px; }
  .team-editorial__portrait { aspect-ratio:16/11; }
  .team-editorial__portrait img { object-position:center 28%; }
  .team-editorial__portrait > span { left:18px; bottom:17px; }
  .team-editorial__copy { padding:48px 20px 52px; }
  .team-editorial__copy h2 { font-size:clamp(40px,11.5vw,52px); }
  .team-editorial__copy > p:not(.eyebrow) { margin:23px 0 30px; font-size:11px; }
  .team-editorial__principles { grid-template-columns:repeat(3,1fr); }
  .team-editorial__principles span,.team-editorial__principles span + span { padding:13px 6px 13px 0; border-bottom:0; }
  .team-editorial__principles span + span { padding-left:10px; border-left:1px solid rgba(10,10,10,.18); }
  .value-grid { grid-template-columns:1fr; }.value-grid article,.value-grid article + article { padding:30px 0; border-right:0; border-bottom:1px solid rgba(255,255,255,.18); }.value-grid h3 { margin:25px 0 12px; }.about-quote { height:560px; }
  .gallery-page { grid-template-columns:1fr 1fr; grid-template-rows:420px 220px 300px 230px; gap:10px; }.tile-tall { grid-column:1/-1; grid-row:1; }.gallery-note { grid-column:1/-1; grid-row:2; padding:25px; }.tile-wide { grid-column:1/-1; grid-row:3; }.tile-detail { grid-column:1; grid-row:4; }.note-dark { grid-column:2; grid-row:4; }.gallery-note p { font-size:20px; }
  .visit-map-panel { min-height:540px; border-width:8px; }
  .visit-map-panel::after { height:45px; }
  .visit-map-panel .map-grid { inset:-12%; background-size:48px 38px; }
  .visit-map-panel .map-pin { left:56%; top:39%; width:64px; height:64px; }
  .visit-map-panel .map-pin img { width:43px; }
  .map-pin-label { display:none; }
  .map-location-card { left:14px; right:14px; bottom:18px; width:auto; padding:18px 20px 17px; }
  .map-location-card small { margin-bottom:8px; font-size:6px; }
  .map-location-card strong { font-size:20px; }
  .map-location-card > span { margin-top:14px; padding-top:13px; }
  .map-landmark,.map-scale { display:none; }
  .map-area-eixample { left:7%; top:29%; font-size:19px; }
  .map-nearby-diagonal { left:14%; top:13%; }
  .map-nearby-monumental { right:8%; bottom:36%; }
  .map-compass { top:18px; left:18px; width:38px; height:38px; }
  .detail-row { grid-template-columns:100px 1fr; }
}

@media (max-width:380px) {
  .visit-map-panel { min-height:500px; border-width:6px; }
  .visit-map-panel .map-pin { left:58%; top:37%; width:58px; height:58px; }
  .visit-map-panel .map-pin img { width:39px; }
  .map-location-card { left:10px; right:10px; bottom:12px; padding:16px; }
  .map-location-card strong { font-size:18px; }
  .map-nearby-monumental { display:none; }
}

/* 2026 beauty atelier refresh ------------------------------------------------ */
:root {
  --ink: #111111;
  --paper: #efefec;
  --ivory: #fbfbf9;
  --muted: #777773;
  --line: rgba(17, 17, 17, .15);
  --berry: #111111;
  --berry-deep: #050505;
  --rose: #9b9b97;
  --blush: #e2e2df;
  --champagne: #c5c5bf;
  --sans: "Manrope", Arial, sans-serif;
}

body { background: var(--paper); }
::selection { color: #fff; background: var(--berry); }

.site-header { padding-inline: 3vw; }
.site-header.scrolled,
.site-header.header-solid { background: rgba(5,5,5,.94); border-color: rgba(255,255,255,.1); backdrop-filter: blur(18px); }
.site-header.header-solid { color: #fff; }
.desktop-nav { gap: clamp(24px,3vw,42px); font-size: 11px; letter-spacing: .06em; }
.desktop-nav a.active::after { transform: scaleX(1); }
.header-cta,
.button { border-radius: 999px; }
.header-cta { border-color: rgba(255,255,255,.5); padding: 12px 17px 12px 20px; }
.site-header .brand-logo-image { width: 148px; filter:drop-shadow(0 2px 12px rgba(0,0,0,.16)); }

.hero { background: var(--berry-deep); }
.hero-media { inset: 22px 22px 22px 50%; border-radius: 48% 48% 14px 14px; box-shadow:0 22px 70px rgba(0,0,0,.28),inset 0 0 0 1px rgba(255,255,255,.08); }
.hero-media::after { background: linear-gradient(90deg,rgba(5,5,5,.8),transparent 28%),linear-gradient(0deg,rgba(0,0,0,.38),transparent 55%); }
.hero-media img { object-position: 50% 29%; filter: grayscale(1) contrast(1.05); }
.hero-shade { background: radial-gradient(circle at 18% 43%,rgba(216,185,146,.13),transparent 30%); }
.hero-shade::before { position:absolute; left:4vw; bottom:-21vw; width:43vw; aspect-ratio:1; border:1px solid rgba(232,214,211,.12); border-radius:50%; box-shadow:0 0 0 42px rgba(232,214,211,.025),0 0 0 84px rgba(232,214,211,.02); content:""; }
.hero-copy { width:min(590px,44vw); margin-left:7vw; }
.hero-home .eyebrow::before { background: var(--champagne); }
.hero-copy h1 { max-width:590px; margin-bottom:30px; font-size:clamp(58px,5.8vw,88px); line-height:.98; letter-spacing:-.03em; }
.hero-copy h1 em { color:#d8d8d4; }
.hero-copy h1 em::after { border-color:rgba(216,185,146,.7); }
.hero-intro { width:390px; color:rgba(255,255,255,.68); font-size:13px; line-height:1.8; }
.hero-index { color:rgba(255,255,255,.38); }
.text-link { color:#fff7f4; }
.button-light { border-color:rgba(255,255,255,.5); }
.button-light:hover { color:var(--berry-deep); }
.hero-actions { gap:28px; margin-top:40px; }
.hero-actions .button { min-width:215px; }
.hero-actions .text-link { padding-bottom:7px; border-bottom:1px solid rgba(255,255,255,.35); }
.hero-index { right:3.5vw; bottom:5.5vh; }

.marquee { color:var(--berry-deep); background:var(--blush); border-color:rgba(17,17,17,.14); }
.marquee i { color:var(--berry); }
.section { padding-block:clamp(90px,10vw,150px); }
.intro-grid { background:var(--ivory); }
.intro-number { color:var(--berry); }
.intro-title h2 em,
.editorial-copy h2 em { color:var(--berry); }
.eyebrow.dark { color:var(--berry); }
.eyebrow::before { background:var(--rose); }
.line-link { border-color:rgba(17,17,17,.38); }

.feature-split { min-height:850px; background:var(--berry-deep); }
.feature-image { margin:24px 0 24px 24px; border-radius:240px 240px 8px 8px; }
.feature-image img { filter:grayscale(1) contrast(1.05); }
.feature-image span { color:var(--berry-deep); background:rgba(255,250,247,.92); border-radius:999px; }
.mini-services { border-color:rgba(255,255,255,.15); }
.mini-services a { border-color:rgba(255,255,255,.15); transition:padding .3s,color .3s; }
.mini-services a:hover { padding-inline:10px; color:#d8d8d4; }
.mini-services .mini-service-meta strong { color:#ededeb; }

.home-story { background:#dededb; }
.story-portrait { position:relative; }
.story-portrait img { border-radius:220px 220px 8px 8px; filter:grayscale(1) contrast(1.03); }
.story-copy blockquote { color:var(--berry-deep); }
.story-detail { border-color:rgba(17,17,17,.2); background:rgba(251,251,249,.55); transform:rotate(2deg); }
.story-detail img { filter:grayscale(1) contrast(1.03); }
.closing-cta { position:relative; overflow:hidden; background:var(--berry-deep); }
.closing-cta::before,.closing-cta::after { position:absolute; width:24vw; aspect-ratio:1; border:1px solid rgba(232,214,211,.12); border-radius:50%; content:""; }
.closing-cta::before { left:-9vw; top:-13vw; box-shadow:0 0 0 35px rgba(232,214,211,.025); }
.closing-cta::after { right:-10vw; bottom:-15vw; }
.closing-cta h2 em { color:#d8d8d4; }

.page-hero { background:var(--berry-deep); }
.service-hero::before { inset:0 0 0 43%; background-image:url('../assets/service.jpeg'); background-position:center 33%; filter:grayscale(1) contrast(1.04) brightness(.68); border-radius:55% 0 0 0; }
.gallery-hero { isolation:isolate; background:radial-gradient(ellipse at 86% 46%,#191615 0%,#090808 37%,#050505 72%); }
.gallery-hero::before { display:none; }
.gallery-hero__media { position:absolute; inset:0 0 0 auto; z-index:1; width:min(64%,880px); min-width:0; overflow:hidden; pointer-events:none; }
.gallery-hero__media video { display:block; width:clamp(420px,39vw,560px); max-width:100%; height:100%; margin-left:auto; object-fit:cover; object-position:center 27%; filter:grayscale(.55) contrast(1.04) brightness(.88); -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.3) 17%,#000 48%); mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.3) 17%,#000 48%); }
.gallery-hero > *:not(.gallery-hero__media) { position:relative; z-index:3; }
.page-hero-image::before { inset:0; background-image:url('../assets/about-hero-lash-treatment.webp'); background-position:center; filter:brightness(.72) saturate(.82) contrast(1.03); border-radius:0; }
.page-hero::after { background:linear-gradient(90deg,var(--berry-deep) 0 39%,rgba(5,5,5,.93) 47%,rgba(5,5,5,.15) 75%),linear-gradient(0deg,rgba(5,5,5,.58),transparent 55%); }
.gallery-hero::after { z-index:2; background:linear-gradient(90deg,#050505 0%,rgba(5,5,5,.93) 31%,rgba(5,5,5,.46) 55%,rgba(5,5,5,.05) 82%),linear-gradient(0deg,rgba(5,5,5,.55),transparent 50%); }
.gallery-hero > p { color:rgba(255,255,255,.82); text-shadow:0 2px 18px rgba(0,0,0,.8); }
.page-hero h1 em { color:#d8d8d4; }
.service-page,.editorial-story,.gallery-page,.visit-page { background:var(--ivory); }
.service-item button { transition:padding .25s,background .25s; }
.service-item button:hover { padding-inline:16px; background:rgba(234,214,211,.26); }
.service-price { color:var(--berry); }

  .care-banner-copy { max-width:480px; margin:22px 0 0; color:rgba(255,255,255,.68); font-size:13px; line-height:1.75; }
  .service-advice-link { align-self:center; justify-self:start; color:#f4f4f1; }
  .service-advice-link .public-icon { width:15px; height:15px; }
.care-banner,.values-page,.note-dark { background:var(--berry-deep); }
.care-banner h2 em { color:#d8d8d4; }
.care-points b { color:#aaa; }
.editorial-image img,.gallery-tile img,.about-quote img { filter:grayscale(1) contrast(1.03); }
.editorial-image::after { background:linear-gradient(90deg,transparent,var(--ivory)); }
.value-grid span { color:#aaa; }
.value-grid p { color:rgba(255,255,255,.58); }
.about-quote::after { background:rgba(0,0,0,.45); }
.gallery-tile { border-radius:180px 180px 6px 6px; }
.gallery-tile:hover img { filter:grayscale(1) contrast(1.08) brightness(.88); }
.gallery-note { border-radius:6px; }
.note-dark { border-radius:6px; }
.instagram-cta { background:var(--blush); }
.visit-map-panel { background:#deded9; border-color:#f0f0ed; }
.visit-map-panel .map-grid { background-color:#deded9; }
.visit-details h2 em { color:var(--berry); }

footer { background:#050505; }
.footer-brand .brand-logo-image { width:220px; }
.booking-modal { width:min(760px,calc(100% - 24px)); color:var(--ink); background:radial-gradient(circle at 100% 0,rgba(213,169,182,.16),transparent 32%),var(--ivory); border-radius:28px 28px 12px 12px; box-shadow:0 28px 90px rgba(0,0,0,.28); }
.booking-modal::backdrop { background:rgba(0,0,0,.72); backdrop-filter:blur(8px); }
.booking-modal h2 em { color:var(--berry); }
.booking-modal input,.booking-modal select { border-color:rgba(71,48,56,.18); background:transparent; }

/* Center public dialogs inside the visible viewport and keep controls reachable. */
.booking-modal-header > p:not(.eyebrow) { max-width: 610px; margin-top: 7px; color: #6a665f; font-size: 11px; line-height: 1.55; }
.booking-modal-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.booking-modal form > .booking-modal-body, .booking-modal form > .booking-modal-actions { grid-column: 1 / -1; }
.booking-modal-body > label:not(.booking-honeypot) { padding: 9px 13px 7px; border: 1px solid rgba(71,48,56,.11); border-radius: 11px; background: rgba(255,255,255,.7); transition: border-color .18s, box-shadow .18s, background .18s; }
.booking-modal-body > label:not(.booking-honeypot):focus-within { border-color: rgba(138,89,104,.65); background: #fff; box-shadow: 0 0 0 3px rgba(138,89,104,.08); }
:root { --modal-visual-height: 100vh; --modal-visual-half-height: 50vh; --modal-visual-half-width: 50vw; }
@supports (height: 100dvh) {
  :root { --modal-visual-height: 100dvh; --modal-visual-half-height: 50dvh; }
}
@media (max-width: 820px) {
  .booking-modal[open], .lightbox[open] {
    position: fixed;
    inset: auto;
    top: calc(var(--modal-visual-top, 0px) + var(--modal-visual-half-height));
    left: calc(var(--modal-visual-left, 0px) + var(--modal-visual-half-width));
    width: min(560px, calc(var(--modal-visual-width, 100vw) - 24px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)));
    max-height: min(680px, calc(var(--modal-visual-height) - 32px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)));
    margin: 0;
    transform: translate(-50%, -50%);
  }
  .booking-modal[open] {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
    border-radius: 18px;
    animation: none;
  }
  .booking-modal-header { position: relative; flex: 0 0 auto; padding: 17px 18px 13px; border-bottom: 1px solid var(--line); }
  .booking-modal-header .modal-close { top: 14px; right: 14px; }
  .booking-modal h2 { max-width: calc(100% - 34px); font-size: 31px; }
  .booking-modal h2 br { display: none; }
  .booking-modal-header > p:not(.eyebrow) { margin: 8px 0 0; color: #6a665f; font-size: 11px; line-height: 1.45; }
  .booking-modal form { display: flex; min-height: 0; flex: 1 1 auto; flex-direction: column; gap: 0; margin: 0; }
  .booking-modal-body { display: grid; min-height: 0; flex: 1 1 auto; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; gap: 9px; overflow-x: hidden; overflow-y: auto; padding: 14px 18px 16px; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
  .booking-modal-body > label:first-of-type, .booking-modal-body > label:nth-of-type(4) { grid-column: 1 / -1; }
  .booking-modal-actions { flex: 0 0 auto; padding: 12px 18px 15px; border-top: 1px solid var(--line); background: var(--ivory); }
  .booking-modal-actions .button { width: 100%; }
  .lightbox[open] { display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 48px 0 0; }
  .lightbox img { max-height: calc(var(--modal-visual-height) - 96px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)); }
  .lightbox button { position: absolute; top: 0; right: 0; }
}
.toast { background:var(--berry-deep); color:#fff; }
.toast .public-icon { width:30px; height:30px; stroke-width:1.9; }

/* Prevent iOS from zooming the page when a form control receives focus. */
@media (max-width: 820px) {
    input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="hidden"]),
    select,
    textarea {
        font-size: 16px !important;
    }
}
.toast p { color:rgba(255,255,255,.82); font-size:14px; line-height:1.5; }
.toast b { color:#fff; font-size:17px; line-height:1.25; margin-bottom:5px; }

@media (max-width:980px) {
  .page-hero::before { inset:0; border-radius:0; }
  .page-hero-image::before { background-position:68% center; }
  .page-hero::after { background:linear-gradient(0deg,var(--berry-deep) 0%,rgba(5,5,5,.9) 38%,rgba(5,5,5,.18) 78%); }
  .gallery-hero__media { width:65%; }
  .gallery-hero__media video { width:min(100%,500px); object-position:center 26%; }
  .gallery-hero::after { background:linear-gradient(0deg,#050505 0%,rgba(5,5,5,.86) 34%,rgba(5,5,5,.28) 75%,rgba(5,5,5,.12) 100%),linear-gradient(90deg,rgba(5,5,5,.65),transparent 78%); }
  .editorial-image::after { background:linear-gradient(0deg,var(--ivory),transparent); }
}
@media (max-width:640px) {
  .gallery-hero__media { width:100%; }
  .gallery-hero__media video { width:100%; object-position:center 30%; -webkit-mask-image:none; mask-image:none; }
}

@media (min-width:761px) and (max-width:1120px) {
  .hero-media { left:48%; }
  .hero-copy { width:45vw; margin-left:5vw; }
  .hero-copy h1 { font-size:clamp(54px,6vw,68px); }
  .hero-intro { width:min(360px,90%); }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:18px; }
}

@media (max-width:760px) {
  .site-header { height:72px; padding-inline:20px; }
  .site-header .brand-logo-image { width:128px; }
  .hero { min-height:760px; align-items:flex-end; }
  .hero-media { inset:0; border-radius:0; }
  .hero-media::after { background:linear-gradient(0deg,var(--berry-deep) 0%,rgba(5,5,5,.9) 35%,rgba(5,5,5,.08) 76%),linear-gradient(90deg,rgba(5,5,5,.25),transparent); }
  .hero-media img { object-position:57% 20%; }
  .hero-copy { width:auto; margin:0; padding:120px 20px 62px; }
  .hero-copy h1 { font-size:clamp(51px,15vw,72px); }
  .hero-intro { font-size:13px; }
  .hero-index { display:none; }
  .feature-image { margin:14px 14px 0; min-height:520px; border-radius:190px 190px 6px 6px; }
  .home-story { background:#dededb; }
  .story-portrait img { border-radius:170px 170px 6px 6px; }
  .gallery-tile { border-radius:120px 120px 5px 5px; }
}

/* Editorial homepage hero ------------------------------------------------- */
.site-header:not(.scrolled):not(.header-solid) { color:#fff; }
.site-header:not(.scrolled):not(.header-solid) .brand-logo-image { filter:drop-shadow(0 2px 14px rgba(0,0,0,.2)); }
.site-header:not(.scrolled):not(.header-solid) .header-cta { color:#fff; background:rgba(0,0,0,.2); border-color:rgba(255,255,255,.48); border-radius:999px; backdrop-filter:blur(14px); }
.site-header:not(.scrolled):not(.header-solid) .header-cta:hover { color:#111; background:#fff; border-color:#fff; }
@media (min-width:981px) {
  .site-header:not(.scrolled):not(.header-solid) .desktop-nav { transform:translateX(-11vw); }
}

.editorial-hero { --hero-ink:#fff; --hero-primary:#fff; --hero-soft:#d2d0cc; position:relative; min-height:680px; height:100svh; max-height:940px; overflow:hidden; display:flex; align-items:center; color:var(--hero-ink); background:#090909; isolation:isolate; }
.editorial-hero__media { position:absolute; inset:0; overflow:hidden; background:#090909; }
.editorial-hero__media img { width:100%; height:100%; object-fit:cover; object-position:center center; filter:grayscale(1) contrast(1.03) brightness(.96); transform:scale(1.005); }
.editorial-hero__media video { width:100%; height:100%; object-fit:cover; object-position:center center; filter:grayscale(1) contrast(1.04) brightness(.86); transform:scale(1.02); }
.js.is-ready .editorial-hero__media img { animation:editorialPortraitIn 1.8s cubic-bezier(.2,.7,.2,1) both; }
.js.is-ready .editorial-hero__media video { animation:heroIn 1.8s cubic-bezier(.2,.7,.2,1) both; }
.editorial-hero__veil { position:absolute; z-index:1; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.84) 0%,rgba(0,0,0,.63) 34%,rgba(0,0,0,.18) 61%,rgba(0,0,0,.06) 100%),linear-gradient(0deg,rgba(0,0,0,.62),transparent 48%),radial-gradient(circle at 72% 32%,transparent 0 18%,rgba(0,0,0,.12) 53%,rgba(0,0,0,.3) 100%); }
.editorial-hero__content { position:relative; z-index:4; width:min(610px,44vw); margin-left:6.5vw; padding:82px 0 90px; }
.editorial-hero__kicker { margin-bottom:24px; color:rgba(255,250,245,.78); }
.editorial-hero__kicker .eyebrow { margin:0; }
.editorial-hero__content h1 { max-width:590px; margin:0; font-size:clamp(66px,6.2vw,96px); line-height:.86; letter-spacing:-.047em; }
.hero-line { position:relative; display:block; width:max-content; }
.hero-line--primary { color:var(--hero-primary); }
.hero-line--continuation { margin-left:4.6vw; }
.editorial-hero__intro { width:370px; max-width:90%; margin:38px 0 0 4px; font-size:12px; line-height:1.72; color:rgba(255,250,245,.73); }
.editorial-hero__actions { display:flex; align-items:center; gap:28px; margin:25px 0 0 4px; }
.hero-booking-button { min-width:235px; min-height:47px; color:#111; background:#fff; border-color:#fff; border-radius:0; text-transform:uppercase; font-size:9px; font-weight:600; letter-spacing:.16em; }
.hero-booking-button:hover { color:#fff; background:transparent; }
.editorial-hero__link { display:inline-flex; align-items:center; gap:14px; padding:8px 0; border-bottom:1px solid rgba(255,255,255,.48); font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.editorial-hero__link .public-icon { width:15px; transition:transform .3s; }
.editorial-hero__link:hover .public-icon { transform:translateX(4px); }

@media (min-width:981px) {
  .editorial-hero__media img { position:absolute; inset:0 clamp(18px,2.6vw,48px) 0 auto; width:min(72vw,1220px); object-position:center 46%; -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.12) 7%,#000 27%,#000 94%,transparent 100%); mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.12) 7%,#000 27%,#000 94%,transparent 100%); }
  .editorial-hero__media video { position:absolute; inset:0 0 0 auto; width:min(56vw,900px); object-position:center 46%; }
  .editorial-hero__veil { background:linear-gradient(90deg,#090909 0%,rgba(9,9,9,.98) 31%,rgba(9,9,9,.76) 44%,rgba(9,9,9,.2) 60%,rgba(0,0,0,.025) 76%,transparent 100%),linear-gradient(0deg,rgba(0,0,0,.48),transparent 48%); }
}

@keyframes editorialPortraitIn { from { opacity:0; transform:scale(1.035); } to { opacity:1; transform:scale(1.005); } }

.trust-line { display:grid; grid-template-columns:1fr auto 1fr auto 1fr auto 1fr; align-items:center; gap:22px; min-height:74px; padding:16px 5vw; color:#111; background:#f4f4f1; border-bottom:1px solid rgba(0,0,0,.16); text-align:center; text-transform:uppercase; font-size:8px; letter-spacing:.22em; }
.trust-line i { font-style:normal; font-size:8px; }

.home-intro { display:grid; grid-template-columns:1.15fr .7fr; gap:5vw; align-items:start; padding:clamp(110px,12vw,175px) 7vw; background:#f6f6f3; }
.home-intro__heading .eyebrow { margin-bottom:30px; }
.home-intro h2,.service-worlds h2,.result-story h2,.philosophy-section h2,.reviews-editorial h2,.visit-editorial h2 { margin:0; font-size:clamp(50px,6.2vw,92px); line-height:.94; }
.home-intro h2 em,.service-worlds h2 em,.philosophy-section h2 em,.reviews-editorial h2 em { color:#73736e; }
.home-intro__body { padding-top:54px; }
.home-intro__body > p { max-width:440px; margin:0 0 42px; color:#5f5f5b; font-size:13px; line-height:1.9; }
.editorial-line-link { display:inline-flex; align-items:center; justify-content:space-between; gap:44px; padding:0 0 10px; border-bottom:1px solid rgba(0,0,0,.42); font-size:10px; letter-spacing:.06em; text-transform:uppercase; }
.editorial-line-link .public-icon { width:14px; transition:transform .3s; }
.editorial-line-link:hover .public-icon { transform:translate(3px,-3px); }

.service-worlds { padding:clamp(100px,10vw,155px) 3vw; background:#e3e2de; }
.service-worlds__header { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(280px,.6fr); gap:7vw; align-items:end; padding:0 4vw 66px; }
.service-worlds__header > p { max-width:430px; margin:0 0 8px; color:#555550; font-size:13px; line-height:1.75; }
.service-worlds__grid { display:grid; grid-template-columns:1.12fr .88fr; grid-template-rows:390px 390px; gap:14px; }
.service-world { position:relative; overflow:hidden; border:1px solid rgba(255,255,255,.1); color:#f8f5ef; background:#090909; box-shadow:0 18px 42px rgba(0,0,0,.2); }
.service-world--large { grid-row:1/3; }
.service-world img { height:100%; object-fit:cover; object-position:center 30%; filter:grayscale(.86) saturate(.6) contrast(1.08) brightness(.69); transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.service-world--brows img { object-position:center 72%; filter:grayscale(.82) saturate(.65) contrast(1.07) brightness(.78); }
.service-world--details img { object-position:center 80%; filter:grayscale(.86) saturate(.6) contrast(1.08) brightness(.64); }
.service-world::before { position:absolute; z-index:3; inset:12px; border:1px solid rgba(255,255,255,.13); content:""; pointer-events:none; }
.service-world::after { position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.28),transparent 34%,rgba(0,0,0,.38) 58%,rgba(0,0,0,.97) 100%); content:""; pointer-events:none; }
.service-world--large::after { background:linear-gradient(180deg,rgba(0,0,0,.27),transparent 30%,rgba(0,0,0,.14) 57%,rgba(0,0,0,.94) 100%); }
.service-world--brows::after { background:linear-gradient(180deg,rgba(0,0,0,.16),transparent 36%,rgba(0,0,0,.36) 58%,rgba(0,0,0,.96) 100%); }
.service-world:hover img { transform:scale(1.012); }
.service-world:focus-visible { outline:2px solid #fff; outline-offset:-5px; }
.service-world__number { position:absolute; z-index:2; top:26px; left:30px; font-size:10px; font-weight:600; letter-spacing:.13em; }
.service-world__copy { position:absolute; z-index:2; left:clamp(24px,3vw,44px); right:clamp(24px,3vw,44px); bottom:clamp(24px,3vw,42px); }
.service-world__copy small { display:block; margin-bottom:14px; color:#ded2c1; font-size:9px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; }
.service-world__copy h3 { max-width:680px; margin:0; font:clamp(44px,4.3vw,66px)/1.02 var(--serif); letter-spacing:-.035em; }
.service-world:not(.service-world--large) .service-world__copy h3 { font-size:clamp(34px,3.3vw,49px); }
.service-world__copy p { max-width:470px; margin:16px 0 0; color:rgba(255,255,255,.9); font-size:13px; line-height:1.55; }
.service-world__tags { display:block; max-width:480px; margin-top:11px; color:#d2c7b8; font-size:10px; line-height:1.6; }
.service-world__copy b { display:flex; width:max-content; align-items:center; gap:12px; margin-top:22px; padding-top:11px; border-top:1px solid rgba(224,207,185,.72); color:#f0e6d8; font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.service-world__copy b .public-icon { width:15px; transition:transform .25s ease; }
.service-world:hover .service-world__copy b .public-icon { transform:translate(2px,-2px); }
.service-world--dark { border:1px solid rgba(255,255,255,.12); background:#080808; }
.service-world--dark::after { background:radial-gradient(circle at 76% 20%,rgba(255,255,255,.07),transparent 33%),linear-gradient(0deg,rgba(0,0,0,.7),transparent 62%); }
.service-world__monogram { position:absolute; right:-2%; top:-18%; color:rgba(255,255,255,.035); font:220px/.9 var(--serif); letter-spacing:-.1em; }

.result-story { display:grid; grid-template-columns:.82fr 1.18fr; min-height:930px; color:#fff; background:#080808; }
.result-story__copy { display:flex; flex-direction:column; justify-content:center; padding:105px 7vw; }
.result-story__copy h2 { font-size:clamp(50px,5.3vw,80px); }
.result-story__copy h2 em { color:#a9a9a5; }
.result-story__copy > p:not(.eyebrow) { max-width:430px; margin:32px 0 35px; color:rgba(255,255,255,.57); font-size:12px; line-height:1.85; }
.result-story__list { margin:0 0 40px; padding:0; list-style:none; border-top:1px solid rgba(255,255,255,.15); }
.result-story__list li { display:grid; grid-template-columns:45px 1fr; padding:18px 0; border-bottom:1px solid rgba(255,255,255,.15); color:rgba(255,255,255,.78); font-size:10px; }
.result-story__list span { color:rgba(255,255,255,.35); font-size:8px; }
.button-outline { align-self:flex-start; color:#fff; background:transparent; border-color:rgba(255,255,255,.45); }
.button-outline:hover { color:#080808; background:#fff; }
.result-story__image { position:relative; margin:24px 24px 24px 0; overflow:hidden; }
.result-story__image img { height:100%; object-fit:cover; object-position:center; filter:grayscale(1) contrast(1.08); }
.result-story__image::after { position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.48),transparent 45%); content:""; }
.result-story__image figcaption { position:absolute; z-index:2; left:28px; right:28px; bottom:28px; display:flex; justify-content:space-between; padding-top:16px; border-top:1px solid rgba(255,255,255,.45); color:rgba(255,255,255,.68); font-size:8px; letter-spacing:.18em; text-transform:uppercase; }

.proof-strip { display:grid; grid-template-columns:repeat(4,1fr); background:#f4f4f1; }
.proof-strip > div { min-height:235px; padding:34px 3vw; border-right:1px solid rgba(0,0,0,.14); }
.proof-strip strong { display:block; margin-bottom:58px; color:#888883; font-size:8px; font-weight:400; }
.proof-strip b { display:block; margin-bottom:9px; font:32px var(--serif); font-weight:400; }
.proof-strip span { color:#70706b; font-size:9px; }

.philosophy-section { display:grid; grid-template-columns:.78fr 1.22fr; gap:9vw; padding:clamp(110px,12vw,175px) 7vw; background:#d9d9d5; }
.philosophy-section__values { border-top:1px solid rgba(0,0,0,.2); }
.philosophy-section__values article { display:grid; grid-template-columns:85px .65fr 1fr; align-items:center; gap:25px; min-height:135px; border-bottom:1px solid rgba(0,0,0,.2); }
.philosophy-section__values span { color:#777772; font-size:8px; }
.philosophy-section__values h3 { margin:0; font:34px var(--serif); font-weight:400; }
.philosophy-section__values p { margin:0; color:#60605c; font-size:11px; line-height:1.7; }

.reviews-editorial { padding:clamp(48px,5vw,70px) 7vw 30px; background:#f6f6f3; }
.reviews-editorial__header { display:grid; grid-template-columns:1fr .48fr; gap:5vw; align-items:end; margin-bottom:32px; }
.reviews-editorial__header .eyebrow { margin-bottom:15px; }
.reviews-editorial__header > p:last-child { max-width:350px; margin:0 0 8px; color:#656560; font-size:12px; line-height:1.85; }
.reviews-editorial h2 { font-size:clamp(39px,4.5vw,66px); }
.reviews-slider__viewport { overflow-x:auto; scrollbar-width:none; scroll-behavior:smooth; scroll-snap-type:x mandatory; overscroll-behavior-inline:contain; }
.reviews-slider__viewport::-webkit-scrollbar { display:none; }
.reviews-slider__track { display:flex; gap:12px; }
.review-card { position:relative; min-height:310px; padding:24px 24px 22px; display:flex; flex:0 0 calc((100% - 24px)/3); flex-direction:column; justify-content:space-between; border:1px solid rgba(0,0,0,.16); background:#edede9; scroll-snap-align:start; transition:transform .4s ease,background .4s ease; }
.review-card:hover { transform:translateY(-4px); background:#fff; }
.review-card--featured { color:#fff; background:#101010; border-color:#101010; }
.review-card--featured:hover { background:#181818; }
.review-card--featured::after { position:absolute; right:3vw; bottom:12%; color:rgba(255,255,255,.035); font:clamp(120px,13vw,200px)/.7 var(--serif); content:'“'; pointer-events:none; }
.review-card__top { display:flex; align-items:center; justify-content:space-between; color:#777772; font-size:8px; letter-spacing:.14em; }
.review-card--featured .review-card__top { color:rgba(255,255,255,.48); }
.review-card__stars { color:#111; font-size:9px; letter-spacing:5px; }
.review-card--featured .review-card__stars { color:#fff; }
.review-card blockquote { position:relative; z-index:1; max-width:680px; margin:22px 0; color:#282824; font-family:var(--sans); font-size:clamp(14px,.95vw,15px); font-weight:400; line-height:1.65; letter-spacing:-.005em; }
.review-card--featured blockquote { color:#fff; font-size:clamp(14px,1vw,16px); line-height:1.6; }
.review-card blockquote p { margin:0 0 1em; }
.review-card blockquote p:last-child { margin-bottom:0; }
.review-card__more { margin-top:16px; }
.review-card__more summary { width:max-content; color:#61615c; cursor:pointer; list-style:none; font-size:9px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.review-card__more summary::-webkit-details-marker { display:none; }
.review-card__more summary::after { display:inline-block; margin-left:8px; content:'+'; font-size:13px; font-weight:400; transition:transform .25s ease; }
.review-card__more[open] summary { margin-bottom:16px; }
.review-card__more[open] summary::after { transform:rotate(45deg); }
.review-card__more summary:hover { color:#111; }
.review-card--featured .review-card__more summary { color:rgba(255,255,255,.66); }
.review-card__footer { display:flex; align-items:end; justify-content:space-between; margin:0; }
.review-card__footer strong,.review-card__footer small { display:block; font-weight:400; }
.review-card__footer strong { margin-bottom:7px; font:16px var(--serif); }
.review-card__footer small { color:#666662; font-size:9px; line-height:1.5; letter-spacing:.08em; text-transform:uppercase; }
.review-card--featured .review-card__footer small { color:rgba(255,255,255,.48); }
.review-card__footer > span { color:rgba(255,255,255,.17); font:32px var(--serif); letter-spacing:-.08em; }
.reviews-slider__controls { display:none; align-items:center; justify-content:space-between; padding-top:14px; }
.reviews-slider__controls p { margin:0; color:#777772; font-size:8px; letter-spacing:.16em; }
.reviews-slider__controls > div { display:flex; gap:8px; }
.reviews-slider__controls button { width:40px; height:40px; border:1px solid rgba(0,0,0,.22); border-radius:50%; color:#111; background:transparent; cursor:pointer; transition:color .25s,background .25s; }
.reviews-slider__controls button:hover { color:#fff; background:#111; }
.reviews-editorial__footer { display:flex; align-items:center; justify-content:space-between; gap:30px; padding-top:18px; border-top:1px solid rgba(0,0,0,.13); }
.reviews-editorial__footer p { margin:0; color:#777772; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }

.visit-editorial { position:relative; overflow:hidden; min-height:790px; padding:115px 7vw 45px; color:#fff; background:#070707; }
.visit-editorial__top { display:grid; grid-template-columns:1fr; align-items:start; }
.visit-editorial h2 { font-size:clamp(60px,8vw,122px); }
.visit-editorial h2 em { color:#979793; }
.visit-editorial__intro { max-width:520px; margin:24px 0 0; color:rgba(255,255,255,.68); font-size:12px; line-height:1.75; }
.visit-editorial__details { position:relative; z-index:2; display:grid; grid-template-columns:.75fr .75fr 1fr; gap:5vw; align-items:end; margin-top:90px; padding-top:30px; border-top:1px solid rgba(255,255,255,.2); }
.visit-editorial__details small { display:block; margin-bottom:14px; color:rgba(255,255,255,.4); font-size:8px; letter-spacing:.18em; text-transform:uppercase; }
.visit-editorial__details p { margin:0; color:rgba(255,255,255,.75); font-size:11px; line-height:1.8; }
.visit-editorial__actions { display:flex; flex-direction:column; gap:16px; align-items:stretch; }
.visit-editorial__actions .button { width:100%; }
.visit-editorial__actions > button { display:flex; justify-content:space-between; padding:8px 0; color:#fff; background:transparent; border:0; border-bottom:1px solid rgba(255,255,255,.35); cursor:pointer; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.visit-editorial__actions .public-icon { width:14px; }
.visit-editorial__word { position:absolute; left:-1vw; bottom:-5vw; color:rgba(255,255,255,.025); font:clamp(120px,20vw,300px)/.8 var(--serif); letter-spacing:-.07em; white-space:nowrap; }

@media (max-width:980px) {
  .editorial-hero__content { width:49vw; margin-left:4vw; }
  .editorial-hero__content h1 { font-size:clamp(61px,8.5vw,78px); }
  .home-intro { grid-template-columns:1fr; }.home-intro__body { padding-top:0; }
  .service-worlds__header { grid-template-columns:1fr .55fr; gap:6vw; }
  .result-story { grid-template-columns:1fr 1fr; }.result-story__copy { padding-inline:5vw; }
  .philosophy-section { grid-template-columns:1fr; gap:70px; }
  .reviews-editorial__header { grid-template-columns:1fr; }
  .review-card { flex-basis:calc((100% - 12px)/2); }
  .reviews-slider__controls { display:flex; }
}

@media (max-width:760px) {
  .site-header:not(.scrolled):not(.header-solid) .menu-toggle { position:absolute; top:15px; right:20px; z-index:2; background:rgba(0,0,0,.28); border-color:rgba(255,255,255,.42); backdrop-filter:blur(10px); }
  .site-header:not(.scrolled):not(.header-solid) .menu-toggle span { background:#fff; }
  body.menu-open .site-header:not(.scrolled):not(.header-solid) .brand-logo-image { filter:none; }
  body.menu-open .site-header:not(.scrolled):not(.header-solid) .menu-toggle { border-color:rgba(255,255,255,.28); }
  body.menu-open .site-header:not(.scrolled):not(.header-solid) .menu-toggle span { background:#fff; }
  .editorial-hero { min-height:760px; height:100svh; max-height:900px; align-items:flex-end; }
  .editorial-hero__media { bottom:0; }
  .editorial-hero__media img { height:min(60%,460px); object-position:62% center; filter:grayscale(1) contrast(1.03) brightness(.9); transform:none; -webkit-mask-image:linear-gradient(#000 0%,#000 72%,transparent 100%); mask-image:linear-gradient(#000 0%,#000 72%,transparent 100%); }
  .js.is-ready .editorial-hero__media img { animation:none; }
  .editorial-hero__media video { object-position:center center; filter:grayscale(1) contrast(1.04) brightness(.78); }
  .editorial-hero__veil { background:linear-gradient(0deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.78) 35%,rgba(0,0,0,.14) 73%,rgba(0,0,0,.2) 100%),linear-gradient(90deg,rgba(0,0,0,.28),transparent 75%); }
  .editorial-hero__content { width:auto; margin:0; padding:230px 20px 48px; }
  .editorial-hero__kicker { margin-bottom:15px; }
  .editorial-hero__content .eyebrow { margin-bottom:0; font-size:8px; }
  .editorial-hero__content h1 { font-size:clamp(49px,15vw,66px); line-height:.78; }
  .hero-line--continuation { margin-left:8vw; }
  .editorial-hero__intro { width:315px; margin-top:25px; font-size:11px; line-height:1.6; }
  .editorial-hero__actions { gap:19px; margin-top:20px; }
  .editorial-hero__actions.reveal { opacity:1; transform:none; }
  .hero-booking-button { min-width:205px; min-height:44px; padding-inline:15px; }
  .editorial-hero__link { display:none; }
  .trust-line { display:flex; overflow:hidden; justify-content:flex-start; min-height:58px; padding-inline:20px; white-space:nowrap; }.trust-line span:nth-of-type(n+3),.trust-line i:nth-of-type(n+2) { display:none; }
  .home-intro { grid-template-columns:1fr; gap:30px; padding:85px 20px; }.home-intro__body { grid-column:auto; }.home-intro h2,.service-worlds h2,.philosophy-section h2,.reviews-editorial h2 { font-size:clamp(47px,13vw,66px); }
  .service-worlds { padding:80px 14px 14px; }.service-worlds__header { grid-template-columns:1fr; gap:24px; padding:0 6px 40px; }.service-worlds__header > p { display:block; margin:0; font-size:12px; }
  .service-worlds__grid { display:flex; flex-direction:column; }.service-world { min-height:520px; }.service-world:not(.service-world--large) { min-height:390px; }.service-world__copy { left:20px; right:20px; bottom:22px; }.service-world__copy b { position:static; margin-top:20px; }
  .result-story { display:flex; flex-direction:column-reverse; min-height:0; }.result-story__image { height:560px; margin:14px 14px 0; }.result-story__copy { padding:75px 20px 85px; }
  .proof-strip { grid-template-columns:1fr 1fr; }.proof-strip > div { min-height:190px; padding:27px 20px; border-bottom:1px solid rgba(0,0,0,.14); }.proof-strip strong { margin-bottom:38px; }.proof-strip b { font-size:27px; }
  .philosophy-section { padding:85px 20px; gap:60px; }.philosophy-section__values article { grid-template-columns:55px 1fr; gap:15px; padding:24px 0; }.philosophy-section__values p { grid-column:2; }.philosophy-section__values h3 { font-size:30px; }
  .reviews-editorial { padding:48px 14px 28px; }.reviews-editorial__header { grid-template-columns:1fr; gap:18px; margin-bottom:24px; padding:0 6px; }.reviews-editorial__header > p:last-child { grid-column:auto; }.reviews-editorial__header > p:last-child { display:none; }.reviews-editorial h2 { font-size:clamp(38px,10.5vw,50px); }.review-card { min-height:300px; padding:23px 20px 21px; flex-basis:88%; }.review-card blockquote,.review-card--featured blockquote { margin:22px 0; font-size:15px; line-height:1.65; }.reviews-slider__controls { display:flex; padding:13px 6px 0; }.reviews-slider__controls button { width:36px; height:36px; }.reviews-editorial__footer { align-items:flex-start; flex-direction:column; padding:18px 6px 0; }.reviews-editorial__footer .editorial-line-link { width:100%; }
  .reviews-slider__controls { padding:22px 6px 24px; }
  .visit-editorial { min-height:770px; padding:85px 20px 35px; }.visit-editorial__top { grid-template-columns:1fr; gap:55px; }.visit-editorial h2 { font-size:clamp(55px,16vw,78px); }.visit-editorial__intro { max-width:430px; font-size:11px; }.visit-editorial__details { grid-template-columns:1fr 1fr; gap:35px 20px; margin-top:70px; }.visit-editorial__actions { grid-column:1/-1; }.visit-editorial__word { bottom:4vw; }
  .visit-editorial__word { left:0; bottom:7vw; width:100vw; max-width:none; padding:0; color:rgba(255,255,255,.07); font-size:clamp(64px,21vw,112px); line-height:.85; letter-spacing:-.085em; text-align:center; transform:none; }
  .service-worlds__grid { display:flex; flex-direction:column; }
  .service-worlds__grid .service-world { position:relative; top:auto; display:block; width:100%; height:clamp(410px,70svh,540px); min-height:0; margin-bottom:18px; border:1px solid rgba(255,255,255,.14); box-shadow:0 20px 48px rgba(0,0,0,.22); }
  .service-worlds__grid .service-world:nth-child(2) { top:auto; }
  .service-worlds__grid .service-world:nth-child(3) { top:auto; margin-bottom:0; }
  .service-worlds__grid .service-world__copy { left:22px; right:22px; bottom:26px; }
  .service-worlds__grid .service-world__copy h3,.service-worlds__grid .service-world:not(.service-world--large) .service-world__copy h3 { max-width:100%; font-size:clamp(34px,9.5vw,43px); line-height:1.02; }
  .service-worlds__grid .service-world__copy p { max-width:100%; margin-top:12px; font-size:12px; }
  .service-worlds__grid .service-world__tags { font-size:9px; }
  .service-worlds__grid .service-world__copy b { margin-top:16px; }
  .service-worlds__grid .service-world:hover img { transform:none; }
  .service-worlds__grid .service-world--lashes img,
  .service-worlds__grid .service-world--lashes:hover img { transform:scale(1.25); transform-origin:70% 42%; }
  .service-worlds__grid .service-world--brows img,
  .service-worlds__grid .service-world--brows:hover img { transform:scale(1.25); transform-origin:center 46%; }
  .service-worlds__grid .service-world--details img, .service-worlds__grid .service-world--details:hover img { transform:scale(1.8); transform-origin:center 95%; }
  .js .service-worlds__grid .service-world.reveal,
  .js.is-ready .service-worlds__grid .service-world.reveal,
  .js.is-ready .service-worlds__grid .service-world.reveal.is-visible { opacity:1; transform:none; filter:none; transition:none; }
}

@media (prefers-reduced-motion:reduce) {
  .editorial-hero__media img { animation:none!important; transform:none; }
  .editorial-hero__media video { animation:none!important; transform:none; }
  .reviews-slider__viewport { scroll-behavior:auto; }
}

/* Visit page --------------------------------------------------------------- */
.visit-hero { min-height:620px; padding:190px 8vw 90px; grid-template-columns:1.25fr .55fr; gap:10vw; align-items:end; background:#070707; }
.visit-hero::before { inset:0 0 0 auto; width:min(64%,760px); background-image:url('../assets/studio/lashwithus-studio-06.jpeg'); background-size:cover; background-position:center 24%; filter:grayscale(1) contrast(1.03) brightness(.94); transform:none; border-radius:0; -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.12) 7%,rgba(0,0,0,.5) 18%,#000 32%,#000 94%,transparent 100%); mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.12) 7%,rgba(0,0,0,.5) 18%,#000 32%,#000 94%,transparent 100%); }
.visit-hero::after { background:linear-gradient(90deg,#070707 0%,rgba(7,7,7,.98) 34%,rgba(7,7,7,.78) 45%,rgba(7,7,7,.35) 58%,rgba(7,7,7,.08) 76%,transparent 100%),linear-gradient(0deg,rgba(7,7,7,.6),rgba(7,7,7,.18) 30%,transparent 55%); }
.visit-hero__title h1 { font-size:clamp(65px,8vw,124px); }
.visit-hero__title h1 em { color:#aaa9a4; }
.visit-hero__title .eyebrow { margin:24px 0 0; }
.visit-hero__intro { min-width:0; align-self:end; padding-bottom:6px; }
.visit-hero__intro p { min-width:0; max-width:365px; margin-bottom:28px; color:rgba(255,255,255,.7); font-size:12px; line-height:1.8; overflow-wrap:anywhere; }
.visit-hero__intro a { display:inline-flex; align-items:center; gap:25px; padding-bottom:9px; border-bottom:1px solid rgba(255,255,255,.46); font-size:9px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; }
.visit-hero__intro a .public-icon { width:15px; transition:transform .3s; }
.visit-hero__intro a:hover .public-icon { transform:translateX(4px); }

.visit-studio { padding:36px 6vw 26px; background:#f3f0e9; scroll-margin-top:84px; }
.visit-studio__inner { max-width:960px; margin-inline:auto; }
.visit-studio__masthead { display:flex; justify-content:space-between; gap:24px; padding-top:18px; border-top:1px solid #a9a49b; color:#5e5a52; font-size:10px; font-weight:400; letter-spacing:.15em; text-transform:uppercase; }
.visit-studio__masthead p { margin:0; }
.visit-studio__heading { display:grid; grid-template-columns:1.6fr 1fr; gap:4vw; align-items:end; margin:24px 0 28px; }
.visit-studio__heading h2 { margin:0; font:clamp(56px,6vw,88px)/.94 var(--serif); letter-spacing:-.045em; }
.visit-studio__heading h2 em,.visit-studio h3 em { color:#84786a; }
.visit-studio__intro { max-width:330px; padding-bottom:8px; }
.visit-studio__edition { display:block; color:#766d61; font-size:10px; font-weight:400; letter-spacing:.13em; line-height:1.6; text-transform:uppercase; }
.visit-studio__intro p,.visit-studio__note p { margin:16px 0 0; color:#625b52; font-size:13px; line-height:1.75; }
.visit-studio__opening { display:grid; grid-template-columns:minmax(0,1.9fr) minmax(0,1fr); gap:3vw; align-items:start; }
.visit-studio__lounge { padding-top:clamp(24px,3vw,44px); }
.visit-studio__aside { max-width:300px; margin:18px 0 0; color:#6e655a; font:italic 24px/1.3 var(--serif); }
.visit-studio__photo { display:block; min-width:0; margin:0; }
.visit-studio__image { position:relative; display:block; overflow:hidden; background:#dedbd5; }
.visit-studio__image img { width:100%; height:auto; transition:transform .6s; }
.visit-studio__image:hover img { transform:scale(1.025); }
.visit-studio__image:focus-visible { outline:2px solid var(--ink); outline-offset:6px; }
.visit-studio__expand { position:absolute; right:16px; bottom:16px; display:grid; place-items:center; width:36px; height:36px; color:#fff; background:rgba(10,10,10,.5); border:1px solid rgba(255,255,255,.45); opacity:0; transform:translateY(5px); transition:opacity .25s,transform .25s; }
.visit-studio__image:hover .visit-studio__expand,.visit-studio__image:focus-visible .visit-studio__expand { opacity:1; transform:none; }
.visit-studio__caption { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-top:10px; padding-top:8px; border-top:1px solid #c9c3b8; color:#514b43; font-size:11px; line-height:1.5; }
.visit-studio__caption small { color:#7e7568; font-size:10px; letter-spacing:.12em; }
.visit-studio__details { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px 24px; align-items:start; margin-top:28px; }
.visit-studio__note { grid-column:1/-1; display:grid; grid-template-columns:1.2fr 1fr; gap:8px 4vw; padding:18px 0 0; border-top:1px solid #c9c3b8; }
.visit-studio__note .visit-studio__edition { grid-column:1; }
.visit-studio__note h3 { grid-column:1; max-width:540px; margin-top:8px; }
.visit-studio__note p { grid-column:2; grid-row:1/span 2; align-self:end; max-width:360px; margin:0 0 4px; }
.visit-studio h3 { margin:18px 0 0; font:clamp(30px,3vw,38px)/1.06 var(--serif); letter-spacing:-.025em; }
.visit-studio__photo--welcome { margin-top:24px; }
.visit-studio__photo--reception { width:100%; }
.visit-studio__footer { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-top:24px; padding-top:12px; border-top:1px solid #a9a49b; color:#615b52; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.visit-studio__footer a { display:inline-flex; align-items:center; gap:20px; min-height:44px; }
.visit-studio__footer a:hover { color:#0a0a0a; }
.visit-studio__footer .public-icon { transform:rotate(90deg); }
@media (hover:none) {
  .visit-studio__expand { opacity:1; transform:none; }
}

.visit-page { grid-template-columns:minmax(0,1.04fr) minmax(440px,.96fr); min-height:880px; background:#f4f4f1; }
.visit-map-panel { min-height:880px; border:18px solid #e6e6e1; background:#d8d7d1; }
.visit-map-panel::after { width:70px; background:linear-gradient(90deg,transparent,#f4f4f1); }
.visit-details { padding:105px clamp(45px,7vw,110px); justify-content:flex-start; background:#f4f4f1; }
.visit-details__heading { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:70px; }
.visit-details__heading .eyebrow { margin:0; }
.visit-details__index { color:#8a8983; font-size:8px; letter-spacing:.17em; }
.visit-details h2 { margin:0; font-size:clamp(44px,4.2vw,65px); line-height:.97; }
.visit-details h2 em { display:inline-block; margin-top:8px; color:#7c7b76; font-size:.63em; line-height:1.14; }
.visit-details h2 a { transition:opacity .3s; }
.visit-details h2 a:hover { opacity:.65; }
.visit-details__copy { max-width:480px; margin:34px 0 48px; color:#696964; font-size:11px; line-height:1.85; }
.visit-info-grid { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid rgba(0,0,0,.18); border-bottom:1px solid rgba(0,0,0,.18); }
.visit-info-card { min-height:190px; padding:26px 28px 25px 0; }
.visit-info-card + .visit-info-card { padding-left:28px; border-left:1px solid rgba(0,0,0,.18); }
.visit-info-card > span { display:block; margin-bottom:28px; color:#85847e; font-size:7px; font-weight:500; letter-spacing:.18em; text-transform:uppercase; }
.visit-info-card p { display:flex; flex-direction:column; gap:10px; margin:0; }
.visit-info-card p b,.visit-info-card p > a { display:grid; grid-template-columns:1fr auto; gap:12px; font:15px/1.35 var(--serif); font-weight:400; }
.visit-info-card p small { color:#6e6d68; font:9px/1.5 var(--sans); }
.visit-info-card p > a { display:block; padding-bottom:9px; border-bottom:1px solid rgba(0,0,0,.1); }
.visit-info-card p > a:last-child { border-bottom:0; }
.visit-hours-readable { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.visit-actions { display:grid; grid-template-columns:1.2fr .8fr; gap:20px; align-items:center; margin-top:34px; }
.visit-actions .button { width:100%; min-height:54px; }
.visit-directions-link { display:flex; align-items:center; justify-content:space-between; min-height:54px; padding:0 0 0 4px; border-bottom:1px solid rgba(0,0,0,.4); font-size:9px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; }
.visit-directions-link .public-icon { width:14px; transition:transform .3s; }
.visit-directions-link:hover .public-icon { transform:translate(3px,-3px); }

.arrival-guide { position:relative; overflow:hidden; padding:125px 7vw 60px; color:#f4f4f1; background:#080808; }
.arrival-guide__heading { position:relative; z-index:1; display:grid; grid-template-columns:.42fr 1fr; gap:7vw; align-items:end; }
.arrival-guide__heading .eyebrow { margin-bottom:56px; }
.arrival-guide__heading h2 { margin:0; font-size:clamp(53px,6.5vw,96px); line-height:.94; }
.arrival-guide__heading h2 em { color:#999994; }
.arrival-guide__grid { position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,1fr); margin-top:92px; border-top:1px solid rgba(255,255,255,.2); }
.arrival-guide__grid article { min-height:280px; padding:30px 4.5vw 35px 0; border-right:1px solid rgba(255,255,255,.2); }
.arrival-guide__grid article + article { padding-left:4.5vw; }
.arrival-guide__grid article:last-child { border-right:0; }
.arrival-guide__grid span { color:rgba(255,255,255,.34); font-size:8px; letter-spacing:.12em; }
.arrival-guide__grid h3 { margin:72px 0 18px; font:30px/1.1 var(--serif); font-weight:400; }
.arrival-guide__grid p { max-width:320px; margin:0; color:rgba(255,255,255,.54); font-size:10px; line-height:1.8; }
.arrival-guide__footer { position:relative; z-index:1; display:flex; justify-content:space-between; align-items:center; margin-top:25px; padding-top:28px; border-top:1px solid rgba(255,255,255,.2); }
.arrival-guide__footer p { margin:0; color:rgba(255,255,255,.48); font-size:9px; letter-spacing:.06em; }
.arrival-guide__footer a { display:inline-flex; align-items:center; gap:38px; padding-bottom:8px; border-bottom:1px solid rgba(255,255,255,.48); font-size:9px; letter-spacing:.1em; text-transform:uppercase; }
.arrival-guide__footer .public-icon { width:14px; }

@media (max-width:980px) {
  .visit-hero { padding-inline:24px; }
  .visit-hero::before { inset:0; width:100%; background-position:center 22%; -webkit-mask-image:none; mask-image:none; }
  .visit-hero::after { background:linear-gradient(0deg,#070707 0,rgba(7,7,7,.93) 36%,rgba(7,7,7,.15) 80%),linear-gradient(90deg,rgba(7,7,7,.6),transparent 75%); }
  .visit-page { grid-template-columns:1fr; }
  .visit-map-panel { min-height:650px; border-width:14px; }
  .visit-map-panel::after { inset:auto 0 0; width:auto; height:80px; background:linear-gradient(0deg,#f4f4f1,transparent); }
  .visit-details { padding:90px 8vw 105px; }
  .visit-details__copy { max-width:570px; }
  .visit-studio { padding:30px 5vw 24px; }
  .visit-studio__heading { gap:4vw; margin-block:22px 26px; }
  .visit-studio__heading h2 { font-size:clamp(60px,8vw,78px); }
  .visit-studio__opening { grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:4vw; }
  .visit-studio__lounge { padding-top:32px; }
  .visit-studio__details { gap:24px 20px; }
  .visit-studio h3 { font-size:32px; }
  .visit-studio__note { gap:8px 4vw; }
  .visit-studio__note p { max-width:350px; }
  .visit-studio__photo--welcome { margin-top:24px; }
  .arrival-guide { padding-inline:5vw; }
  .arrival-guide__heading { grid-template-columns:.32fr 1fr; gap:5vw; }
}

@media (max-width:640px) {
  .visit-hero { min-height:570px; padding:145px 20px 65px; grid-template-columns:minmax(0,1fr); gap:35px; align-content:normal; }
  .visit-hero::before { background-position:center top; }
  .visit-hero::after { background:linear-gradient(0deg,#070707 0 24%,rgba(7,7,7,.9) 42%,rgba(7,7,7,.64) 57%,rgba(7,7,7,.26) 72%,rgba(7,7,7,.08) 88%),linear-gradient(90deg,rgba(7,7,7,.5),transparent 80%); }
  .visit-hero__title h1 { font-size:clamp(40px,11.5vw,58px); }
  .visit-hero__intro { display:block; width:100%; max-width:350px; }
  .visit-hero__intro p { width:100%; max-width:none; margin-bottom:20px; font-size:10px; line-height:1.65; }
  .visit-hero__intro a { justify-self:start; font-size:8px; }
  .visit-studio { padding:26px 20px 20px; }
  .visit-studio__masthead { font-size:9px; letter-spacing:.09em; gap:14px; }
  .visit-studio__heading { grid-template-columns:1fr; gap:14px; margin:20px 0 22px; }
  .visit-studio__heading h2 { font-size:clamp(50px,14vw,66px); }
  .visit-studio__intro { max-width:320px; padding-bottom:0; }
  .visit-studio__intro p,.visit-studio__note p { margin-top:16px; font-size:12px; }
  .visit-studio__opening { grid-template-columns:1fr; gap:18px; }
  .visit-studio__lounge { width:86%; margin-left:auto; padding-top:0; }
  .visit-studio__aside { margin-top:14px; font-size:22px; }
  .visit-studio__details { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:24px; }
  .visit-studio h3 { margin-top:12px; font-size:32px; }
  .visit-studio__note { display:block; padding-top:16px; }
  .visit-studio__note h3,.visit-studio__note p { max-width:320px; }
  .visit-studio__photo--welcome { margin-top:22px; }
  .visit-studio__caption { gap:8px; margin-top:8px; padding-top:8px; font-size:11px; }
  .visit-studio__caption small { font-size:9px; }
  .visit-studio__expand { right:10px; bottom:10px; width:30px; height:30px; }
  .visit-studio__photo--reception { grid-column:1/-1; width:86%; justify-self:center; }
  .visit-studio__photo--reception .visit-studio__image { aspect-ratio:4/3; }
  .visit-studio__photo--reception img { height:100%; object-fit:cover; object-position:center 45%; }
  .visit-studio__footer { align-items:flex-start; flex-direction:column; gap:4px; margin-top:20px; font-size:9px; }
  .visit-map-panel { min-height:520px; border-width:8px; }
  .visit-details { padding:72px 20px 82px; }
  .visit-details__heading { margin-bottom:48px; }
  .visit-details h2 { font-size:clamp(39px,11vw,50px); }
  .visit-details__copy { margin:28px 0 40px; }
  .visit-info-grid { grid-template-columns:1fr; }
  .visit-info-card { min-height:0; padding:25px 0 28px; }
  .visit-info-card + .visit-info-card { padding:27px 0 28px; border-top:1px solid rgba(0,0,0,.18); border-left:0; }
  .visit-info-card > span { margin-bottom:22px; }
  .visit-info-card p b { grid-template-columns:1fr auto; }
  .visit-actions { grid-template-columns:1fr; gap:13px; margin-top:30px; }
  .arrival-guide { padding:85px 20px 45px; }
  .arrival-guide::before { top:-.1em; font-size:180px; }
  .arrival-guide__heading { grid-template-columns:1fr; gap:48px; }
  .arrival-guide__heading .eyebrow { margin-bottom:28px; }
  .arrival-guide__heading h2 { font-size:clamp(48px,14vw,64px); }
  .arrival-guide__grid { grid-template-columns:1fr; margin-top:62px; }
  .arrival-guide__grid article,.arrival-guide__grid article + article { min-height:0; padding:28px 0 32px; border-right:0; border-bottom:1px solid rgba(255,255,255,.2); }
  .arrival-guide__grid h3 { margin:32px 0 13px; font-size:27px; }
  .arrival-guide__footer { align-items:flex-start; flex-direction:column; gap:28px; margin-top:34px; }
  .arrival-guide__footer a { width:100%; justify-content:space-between; }
}

@media (max-width:380px) {
  .visit-map-panel { min-height:480px; }
}

@media (prefers-reduced-motion:reduce) {
  .visit-studio__image img,.visit-studio__expand { transition:none; }
  .visit-studio__image:hover img { transform:none; }
}

/* Refined mobile menu ----------------------------------------------------- */
@media (max-width:640px) {
  .mobile-menu {
    padding:96px 20px 22px;
    background:
      radial-gradient(circle at 100% 0, rgba(255,255,255,.07), transparent 34%),
      #090909;
  }

  .mobile-menu-nav {
    gap:3px;
  }

  .mobile-menu-nav a {
    display:flex;
    align-items:center;
    min-height:56px;
    padding:13px 0 14px;
    border-top:1px solid rgba(255,255,255,.16);
    border-bottom:0;
    font-size:34px;
    line-height:1;
    letter-spacing:-.025em;
  }

  .mobile-menu-nav a:last-child {
    border-bottom:1px solid rgba(255,255,255,.16);
  }

  .mobile-menu-nav a.active {
    color:#f2eee6;
  }

  .mobile-menu-nav a.active small {
    color:#c9b79f;
  }

  .mobile-menu-nav small {
    width:30px;
    margin-right:8px;
    color:rgba(255,255,255,.42);
    font-size:8px;
    letter-spacing:.08em;
  }

  .mobile-menu > .locale-switcher {
    margin:22px 0 0;
    padding-top:13px;
    border-top:1px solid rgba(255,255,255,.12);
    font-size:9px;
  }

  .mobile-menu .button {
    min-height:52px;
    margin-top:24px;
    padding:0 21px;
    border-radius:999px;
    letter-spacing:.02em;
  }

  .menu-meta {
    align-items:flex-end;
    gap:18px;
    padding-top:18px;
    font-size:7px;
    line-height:1.5;
  }

  .menu-meta > span:first-child {
    flex:0 0 auto;
  }

  .menu-socials {
    gap:5px 12px;
  }
}

/* Category-led public treatment menu */
.service-page {
  grid-template-columns:minmax(235px,.38fr) minmax(0,1fr);
  gap:clamp(60px,8vw,135px);
  align-items:start;
  padding-top:clamp(90px,9vw,140px);
}
.service-aside { top:105px; }
.service-aside .eyebrow { margin-bottom:24px; }
.service-aside h2 { margin:0; font-size:clamp(42px,4.2vw,62px); line-height:.98; }
.service-aside h2 em { color:#77736e; }
.service-aside > p:not(.eyebrow) { max-width:315px; margin:27px 0 34px; font-size:12px; }
.service-aside > .button { margin-top:34px; }
.service-category-nav { border-top:1px solid var(--line); }
.service-category-nav a {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:11px;
  align-items:center;
  min-height:58px;
  border-bottom:1px solid var(--line);
  transition:padding .25s,background .25s;
}
.service-category-nav a:hover { padding-inline:9px; background:rgba(234,214,211,.28); }
.service-category-nav span,.service-category-nav small { color:#817d76; font-size:7px; letter-spacing:.1em; text-transform:uppercase; }
.service-category-nav strong { overflow:hidden; font:16px/1.15 var(--serif); font-weight:400; text-overflow:ellipsis; white-space:nowrap; }
.service-category-nav small { white-space:nowrap; }
.service-catalogue { min-width:0; }
.service-category { scroll-margin-top:90px; }
.service-category + .service-category { margin-top:clamp(80px,9vw,125px); }
.service-category-header {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:24px;
  align-items:end;
  min-height:110px;
  padding:0 0 22px;
  border-bottom:1px solid #111;
}
.service-category-header small {
  margin:9px 0 0;
  color:#817d76;
  font-size:7px;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.service-category-header h2 { max-width:700px; margin:0; font-size:clamp(42px,5vw,72px); line-height:.96; overflow-wrap:anywhere; }
.service-category-header small { align-self:end; margin-bottom:8px; white-space:nowrap; }
.service-category .service-item:first-child { border-top:0; }
.service-page .service-item {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto 70px;
  gap:18px;
  align-items:center;
  min-height:92px;
  padding:16px 0;
  border-color:rgba(10,10,10,.14);
}
.service-copy { min-width:0; }
.service-page .service-title { font-size:clamp(24px,2.35vw,36px); line-height:1.08; }
.service-duration {
  color:#77736d;
  font-size:8px;
  letter-spacing:.12em;
  text-align:right;
  text-transform:uppercase;
  white-space:nowrap;
}
.service-page .service-price { min-width:70px; font:28px/1 var(--serif); text-align:right; }
.service-page .service-description { max-width:610px; width:82%; margin:7px 0 0; color:#6f6b65; font-size:12px; line-height:1.55; }
.service-maintenance-notes { margin:24px 0 0; padding-left:20px; color:#6f6b65; font-size:12px; font-style:italic; line-height:1.65; }
.service-maintenance-notes li + li { margin-top:6px; }
.service-empty { min-height:360px; padding:65px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; border:1px solid var(--line); }
.service-empty > span { font:clamp(35px,4vw,55px) var(--serif); }
.service-empty p { max-width:480px; margin:22px 0 30px; color:#67635d; font-size:13px; line-height:1.75; }

.locale-switcher { display:flex; align-items:center; gap:5px; font-size:9px; letter-spacing:.12em; }
.locale-switcher a { color:inherit; opacity:.48; text-decoration:none; }
.locale-switcher a.active { opacity:1; text-decoration:underline; text-underline-offset:4px; }
.mobile-menu > .locale-switcher { margin:0 0 20px; color:#fff; }

@media (max-width:900px) {
  .service-page { grid-template-columns:1fr; gap:75px; }
  .service-aside { position:static; }
  .service-aside > p:not(.eyebrow) { max-width:500px; }
  .service-category-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:0; gap:8px; }
  .service-category-nav a { padding:0 14px; border:1px solid var(--line); }
  .service-category-nav a:hover { padding-inline:18px; }
  .service-aside > .button { margin-top:28px; }
}

@media (max-width:600px) {
  .service-hero > p { width:calc(100vw - 40px); max-width:none; padding-right:8px; font-size:11px; }
  .service-page { width:100%; max-width:100vw; gap:42px; padding:65px 20px 70px; overflow:hidden; }
  .service-aside,.service-catalogue { width:calc(100vw - 40px); min-width:0; max-width:calc(100vw - 40px); }
  .service-aside h2 { font-size:47px; }
  .service-aside > .button { width:100%; }
  .service-category-nav { grid-template-columns:1fr; }
  .service-category-nav a { min-height:54px; }
  .service-category + .service-category { margin-top:34px; }
  .service-category-header { grid-template-columns:1fr; min-height:0; padding-bottom:12px; }
  .service-category-header h2 { font-size:clamp(38px,12vw,52px); }
  .service-category-header > small { display:none; }
  .service-page .service-item {
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    min-height:78px;
    padding:13px 0;
  }
  .service-page .service-title { font-size:23px; }
  .service-page .service-copy { grid-column:1; grid-row:1; }
  .service-duration { grid-column:1; grid-row:2; font-size:10px; text-align:left; }
  .service-page .service-price { grid-column:2; grid-row:1 / span 2; min-width:0; font-size:23px; }
  .service-page .service-description { width:94%; margin-top:5px; font-size:11px; line-height:1.5; }
  .service-empty { min-height:330px; padding:35px 25px; }
}
