:root {
  --ink:#1d1d1c; --muted:#66645f; --paper:#f1ece7; --white:#fff;
  --line:#1d1d1c26; --yellow:#ffed00; --sand:#e2d8cc;
  --accent:#8a7150; --gutter:clamp(24px,5.2vw,104px); --space:clamp(84px,9vw,160px);
  --serif:'Source Serif 4 Variable',Georgia,serif;
  font-family:'Albert Sans Variable',Arial,Helvetica,sans-serif;
  color:var(--ink); background:var(--paper); font-synthesis:none;
}
* { box-sizing:border-box }
html { overflow-x:clip; scroll-behavior:auto; scroll-padding-top:100px; scrollbar-gutter:stable }
body { margin:0; padding-top:96px; font-size:17px; line-height:1.65; overflow-x:clip }
body.home,body.about-page { padding-top:0 }
html.modal-open,body.modal-open { overflow:hidden; overscroll-behavior:none }
a { color:inherit; text-decoration:none }
button,input,textarea { font:inherit; color:inherit }
button { cursor:pointer; -webkit-tap-highlight-color:transparent }
button:disabled { cursor:wait; opacity:.55 }
a,button,input,summary { touch-action:manipulation }
:focus-visible { outline:2px solid #7c7c7c; outline-offset:6px }
.on-dark :focus-visible,.site-footer :focus-visible { outline-color:var(--yellow) }
img { display:block; max-width:100% }
figure,h1,h2,h3,p { margin:0 }
h1,h2 { font-family:'Albert Sans Variable',Arial,Helvetica,sans-serif; font-weight:400; line-height:1.08; letter-spacing:-.055em }
h1 { font-size:clamp(56px,6.5vw,110px) }
h2 { font-size:clamp(42px,4.6vw,76px) }
h3 { font-size:clamp(24px,2.3vw,38px); font-weight:400; line-height:1.15; letter-spacing:-.035em }
em { font-family:Georgia,'Times New Roman',serif; font-style:italic; font-weight:400; color:var(--accent); letter-spacing:-.045em }
.advantages em,.story-band em,.style-divider em,.detail-intro em { color:var(--sand) }
.section { padding:var(--space) var(--gutter) }
.eyebrow { display:block; font-size:12px; line-height:1.5; letter-spacing:.14em; font-weight:500; margin-bottom:26px }
.eyebrow::before { content:''; display:inline-block; width:24px; height:2px; background:var(--yellow); vertical-align:middle; margin-right:12px }
.button { border:1px solid currentColor; background:none; display:inline-flex; align-items:center; justify-content:center; min-height:56px; padding:17px 28px; font-size:14px; font-weight:500; line-height:1.35; transition:background .3s,color .3s,border-color .3s,transform .3s }
.button:hover { background:var(--ink); border-color:var(--ink); color:white; transform:translateY(-2px) }
.button.dark { background:var(--ink); color:#fff; border-color:var(--ink) }
.button.dark:hover,.button.yellow { background:var(--yellow); border-color:var(--yellow); color:var(--ink) }
.button.yellow:hover { background:#fff; border-color:#fff; color:var(--ink) }
.button.light { color:white; border-color:#ffffff80 }
.button.light:hover { background:var(--yellow); border-color:var(--yellow); color:var(--ink) }
.text-link { display:inline-block; border:0; border-bottom:1px solid currentColor; padding:0 0 6px; background:none; line-height:1.5; font-size:14px; transition:opacity .3s }
.text-link:hover { opacity:.6 }
.skip { position:fixed; top:-100px; left:20px; z-index:100; background:var(--yellow); padding:14px 20px }
.skip:focus { top:10px }
/* Official logo assets retain their original proportions and clear space. */
.site-header { position:fixed; top:0; left:0; right:0; z-index:40; height:96px; padding:0 var(--gutter); display:flex; align-items:center; gap:clamp(24px,3vw,54px); background:#f1ece7f5; border-bottom:1px solid var(--line); color:var(--ink); transition:background .4s,color .4s,height .4s,border-color .4s }
.site-header.on-dark { background:transparent; border-color:#ffffff28; color:#fff }
.site-header.is-scrolled { height:80px; background:#1d1d1cf5; color:#fff; border-color:#ffffff20 }
.wordmark { display:block; position:relative; flex-shrink:0; width:124px; min-width:124px; height:55px }
.wordmark img { width:100%; height:auto; object-fit:contain }
.logo-light { display:none }
.on-dark>.wordmark .logo-dark,.is-scrolled>.wordmark .logo-dark,.site-footer .logo-dark { display:none }
.on-dark>.wordmark .logo-light,.is-scrolled>.wordmark .logo-light,.site-footer .logo-light { display:block }
.desktop-nav { display:flex; justify-content:center; align-items:center; flex:1; gap:clamp(18px,2.3vw,42px); font-size:14px }
.desktop-nav>a,.desktop-nav summary { position:relative; padding:12px 0; white-space:nowrap }
.desktop-nav>a::after,.desktop-nav summary::after { content:''; position:absolute; bottom:4px; left:0; width:100%; height:2px; background:var(--yellow); transform:scaleX(0); transform-origin:left; transition:transform .35s }
.desktop-nav>a:hover::after,.desktop-nav>a[aria-current]::after,.desktop-nav summary:hover::after,.collection-menu[open] summary::after { transform:scaleX(1) }
summary { cursor:pointer; list-style:none }
summary::-webkit-details-marker { display:none }
.collection-menu summary { display:flex; align-items:center; gap:10px }
.collection-menu summary>span { margin:0 }
.nav-chevron { display:block; width:7px; height:7px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:rotate(45deg); margin-top:-4px; transition:transform .22s }
.collection-menu[open] .nav-chevron { transform:rotate(225deg); margin-top:3px }
.header-phone { font-size:14px; white-space:nowrap }
.mega { position:absolute; top:calc(100% - 1px); left:var(--gutter); right:var(--gutter); background:var(--paper); color:var(--ink); padding:30px 38px; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; box-shadow:0 20px 40px #0002; font-size:15px }
.mega .all-link { grid-column:1/-1; border-bottom:1px solid var(--line); padding-bottom:18px }
.mega a { width:fit-content }
.mega a:hover { text-decoration:underline; text-decoration-color:var(--yellow); text-decoration-thickness:3px; text-underline-offset:6px }
.menu-toggle { display:none; background:none; border:0; width:44px; height:44px; padding:10px }
.menu-toggle span { display:block; width:24px; height:1px; background:currentColor; margin:7px 0; transition:transform .3s }
.header-actions { display:flex; align-items:center; gap:12px }
.site-header.is-collapsed { height:76px; background:transparent; color:var(--ink); border-color:transparent; pointer-events:none }
.site-header.is-collapsed>.wordmark,.site-header.is-collapsed>.desktop-nav,.site-header.is-collapsed>.header-phone { display:none }
.site-header.is-collapsed .header-actions { margin-left:auto; pointer-events:auto }
.site-header.is-collapsed .menu-toggle { display:block; width:50px; height:50px; margin:0; padding:12px; background:var(--ink); color:#fff; border-radius:50%; box-shadow:0 4px 24px #00000014 }
.site-header.is-collapsed .menu-toggle span { width:24px }
/* Cinematic first screen: photography, typography and compact controls. */
.hero { position:relative; height:100svh; min-height:760px; max-height:1250px; overflow:hidden; background:var(--ink); color:white }
.hero-slide,.hero-slide picture,.hero-slide img,.hero-shade { position:absolute; inset:0; width:100%; height:100% }
.hero-slide { opacity:0; transition:opacity 1.25s ease; pointer-events:none }
.hero-slide.active { opacity:1 }
.hero-slide img { object-fit:cover; object-position:center; transform:scale(1.035) }
.hero-slide.active img { animation:hero-zoom 18s ease-out forwards }
.hero.is-offscreen .hero-slide.active img { animation-play-state:paused }
@keyframes hero-zoom { from { transform:scale(1.035) } to { transform:scale(1.105) } }
.hero-shade { background:linear-gradient(90deg,#0008,#0000 85%),linear-gradient(180deg,#0006 0%,#0001 40%,#0008 100%); pointer-events:none }
.hero-content { position:relative; z-index:2; height:100%; padding:140px var(--gutter) 80px; display:flex; flex-direction:column; pointer-events:none }
.hero-content a,.hero-content button { pointer-events:auto }
.hero-location { display:flex; justify-content:space-between; gap:25px; font-size:12px; line-height:1.7; letter-spacing:.1em }
.hero-location .eyebrow { font-size:12px }
.hero-location>span:last-child { text-align:right }
.hero h1 { font-size:clamp(70px,7.6vw,128px); line-height:1.05; margin:auto 0 35px; max-width:1100px; white-space:pre-line; letter-spacing:-.045em; text-shadow:0 2px 45px #0003 }
.hero h1 em { color:#f1ece7 }
.hero-bottom { display:flex; justify-content:space-between; align-items:flex-end; gap:50px }
.hero-bottom>div:first-child { max-width:360px }
.hero-bottom p { font-size:16px; line-height:1.65; max-width:345px; margin-bottom:26px; color:#ffffffe8 }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px }
.hero-actions .text-link { color:#fff }
.hero-controls { min-width:275px; text-align:right }
.hero-caption { font-size:12px; letter-spacing:.13em }
.hero-controls>div:not(.slide-progress) { display:flex; align-items:center; justify-content:flex-end; gap:18px; margin-top:18px }
.hero-controls button,.rail-controls button { border:1px solid #ffffff70; border-radius:50%; background:none; width:46px; height:46px; font-size:27px; line-height:1; transition:background .3s,color .3s,border-color .3s }
.hero-controls button:hover { background:white; color:var(--ink); border-color:white }
.hero-controls .hero-pause { font-size:16px; width:38px; border:0 }
.hero-count { font-size:17px; font-variant-numeric:tabular-nums; white-space:nowrap }
.hero-count i { font-size:13px; font-style:normal; opacity:.6; padding-left:7px }
.slide-progress { height:2px; width:100%; background:#ffffff35; margin-top:20px; overflow:hidden }
.slide-progress span { display:block; width:100%; height:100%; background:var(--yellow); transform:scaleX(0); transform-origin:left }
.slide-progress.running span { animation:slide-time 9s linear forwards }
.slide-progress.paused span { animation-play-state:paused }
@keyframes slide-time { to { transform:scaleX(1) } }
.scroll-cue { position:absolute; bottom:24px; left:var(--gutter); display:flex; gap:14px; align-items:center; font-size:10px; letter-spacing:.14em; line-height:1; color:#ffffffb0 }
.scroll-cue i { display:block; width:65px; height:1px; background:#ffffff55; position:relative; overflow:hidden }
.scroll-cue i::after { content:''; display:block; width:22px; height:1px; background:var(--yellow); animation:cue 2.8s ease-in-out infinite }
@keyframes cue { from { transform:translateX(-22px) } to { transform:translateX(65px) } }
/* Editorial brand mosaic. */
.brand-section { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9%; align-items:center; background:var(--paper) }
.brand-copy h2 { white-space:pre-line; margin-bottom:30px }
/* Content must fit its grid track, including long CMS headings and image intrinsic sizes. */
.brand-section>*,.brand-mosaic>*,.about-story>*,.intro-row>*,.detail-story>*,.consultation>*,.contacts-layout>* { min-width:0 }
.brand-copy>p { font-size:16px; color:var(--muted); max-width:540px; margin-bottom:26px; line-height:1.8 }
.brand-copy>.text-link { margin-top:5px }
.brand-stats { display:flex; gap:36px; justify-content:space-between; margin-top:45px; border-top:1px solid var(--line); padding-top:28px }
.brand-stats strong { font-family:var(--serif); font-size:57px; font-weight:400; letter-spacing:-.08em; line-height:1 }
.brand-stats strong span { font-size:30px; vertical-align:top; margin-left:3px }
.brand-stats p { font-size:12px; line-height:1.4; color:var(--muted); margin-top:14px; max-width:120px }
/* Four photographs share one silhouette; wide interiors balance along a diagonal. */
.brand-mosaic { --mosaic-gap:clamp(8px,1.1vw,16px); display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-template-rows:minmax(0,1.12fr) minmax(0,1fr) auto; gap:var(--mosaic-gap); width:100%; aspect-ratio:1.06; align-self:center }
.brand-mosaic figure { position:relative; overflow:hidden; width:100%; height:100%; min-height:0; margin:0; aspect-ratio:auto }
.brand-mosaic img { width:100%; height:100%; object-fit:cover }
.brand-mosaic .mosaic-1 { grid-column:1 / span 7; grid-row:1 }
.brand-mosaic .mosaic-2 { grid-column:8 / -1; grid-row:1 }
.brand-mosaic .mosaic-3 { grid-column:1 / span 5; grid-row:2 }
.brand-mosaic .mosaic-4 { grid-column:6 / -1; grid-row:2 }
.mosaic-1 img { object-position:55% 55% }
.mosaic-2 img { object-position:55% 45% }
.mosaic-3 img { object-position:42% 52% }
.mosaic-4 img { object-position:50% 57% }
.mosaic-caption { grid-column:1 / -1; grid-row:3; font-size:12px; line-height:1.5; letter-spacing:.14em; color:var(--muted) }
.section-heading { margin-bottom:48px }
.row-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:32px }
.section-heading .eyebrow { margin-bottom:20px }
.rail { display:flex; gap:26px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding-bottom:12px; scroll-behavior:smooth; overscroll-behavior-x:contain }
.rail::-webkit-scrollbar { display:none }
.rail>* { scroll-snap-align:start; flex-shrink:0 }
.rail-controls { display:flex; align-items:center; gap:16px; white-space:nowrap; font-variant-numeric:tabular-nums; font-size:13px }
.rail-controls button { color:var(--ink); border-color:#1d1d1c50 }
.rail-controls button:hover { background:var(--yellow); border-color:var(--yellow) }
.advantages { background:var(--ink); color:white; overflow:hidden; padding-right:0 }
.advantages>.section-heading { padding-right:var(--gutter) }
.advantages .rail-controls button { color:white; border-color:#ffffff65 }
.advantages .rail-controls button:hover { color:var(--ink) }
.advantages-track { padding-right:var(--gutter) }
.advantage { width:calc((100vw - var(--gutter)*2 - 52px)/3); min-width:270px }
.advantage-image { position:relative; overflow:hidden }
.advantage-image img { width:100%; aspect-ratio:1.14; object-fit:cover; transition:transform 1s cubic-bezier(.2,.7,.2,1) }
.advantage:hover img { transform:scale(1.055) }
.advantage-image>span { position:absolute; top:16px; left:18px; font-size:12px; color:white; text-shadow:0 1px 9px black }
.advantage h3 { font-family:var(--serif); font-size:31px; margin-top:24px; letter-spacing:-.03em }
.advantage p { color:#ffffffa6; font-size:15px; max-width:345px; margin-top:14px; line-height:1.7 }
.collection-section { overflow:hidden; background:#fff; padding-right:0 }
.collection-section>.section-heading,.rail-foot { padding-right:var(--gutter) }
.collection-track { padding-right:var(--gutter); gap:32px }
.collection-track>.collection-card { width:calc((100vw - var(--gutter)*2 - 32px)/2.15) }
.collection-card>a { display:block; position:relative }
.collection-card img { width:100%; aspect-ratio:1.28; object-fit:cover; transition:filter .6s }
.collection-card a:hover img { filter:brightness(.85) }
.card-top { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:24px }
.card-top h3 { font-size:32px; letter-spacing:-.035em }
.card-number { font-size:12px; color:var(--muted) }
.collection-card p { color:var(--muted); font-size:15px; line-height:1.6; max-width:460px; margin-top:12px }
.collection-card .text-link { font-size:13px; margin-top:18px }
.rail-foot { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-top:35px }
.rail-foot p { font-size:14px; color:var(--muted) }
.small-counter { font-family:'Albert Sans Variable',Arial,sans-serif; font-size:12px; color:var(--muted); vertical-align:super; padding-left:8px }
/* Full-width image interlude. */
.style-divider { position:relative; isolation:isolate; height:75vh; min-height:550px; max-height:900px; color:#fff; overflow:hidden; display:flex; align-items:center; justify-content:center; text-align:center; padding:70px var(--gutter) }
.style-image { position:absolute; inset:-5% 0; width:100%; height:110%; max-width:none; object-fit:cover; z-index:-2 }
.style-divider::after { content:''; position:absolute; inset:0; background:#0005; z-index:-1 }
.style-divider h2 { font-size:clamp(56px,7vw,110px); margin:22px 0 36px; line-height:1.06 }
.style-divider .eyebrow { color:white }
/* About: a photographic opening, then a tactile narrative. */
.about-hero { position:relative; background:var(--ink); color:white; min-height:740px; height:94svh; max-height:1100px; overflow:hidden }
.about-photo { position:absolute; top:0; right:0; width:68%; height:100%; overflow:hidden }
.about-photo img { width:100%; height:100%; object-fit:cover; object-position:55% center }
.about-shade { position:absolute; inset:0; background:linear-gradient(90deg,#1d1d1c 10%,#1d1d1ce8 27%,#1d1d1c20 65%,#1d1d1c05),linear-gradient(0deg,#1d1d1c75,transparent 50%) }
.about-hero-content { position:relative; z-index:2; height:100%; display:flex; flex-direction:column; padding:138px var(--gutter) 70px; max-width:1250px }
.about-hero .breadcrumbs { color:#ffffff9e; margin-bottom:auto; font-size:12px }
.about-hero .breadcrumbs a:hover { color:white }
.about-hero .eyebrow { margin-top:25px }
.about-hero h1 { font-size:clamp(65px,6.4vw,104px); line-height:1.08; max-width:1060px }
.about-hero h1 em { color:#e2d8cc }
.about-hero-bottom { margin-top:40px; display:flex; align-items:flex-end; gap:50px }
.about-hero-bottom p { font-size:16px; color:#ffffffe0; max-width:350px }
.photo-credit { position:absolute; right:var(--gutter); bottom:30px; z-index:2; font-size:10px; color:#ffffffc2; letter-spacing:.16em }
.about-story { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10%; align-items:center }
.about-story-photo { position:relative; padding-bottom:75px }
.about-story-photo figure { overflow:hidden }
.about-story-photo img { width:100%; aspect-ratio:.9; object-fit:cover }
.experience { display:flex; align-items:center; gap:25px; position:absolute; right:-30px; bottom:0; background:var(--yellow); padding:25px 40px 30px; color:var(--ink) }
.experience strong { font-family:var(--serif); font-weight:400; font-size:100px; line-height:.85; letter-spacing:-.07em }
.experience strong span { font-size:60px }
.experience p { font-size:13px; line-height:1.5 }
.about-story-copy h2 { margin-bottom:30px; font-size:clamp(42px,4.4vw,72px) }
.about-story-copy>p { font-size:16px; color:var(--muted); margin-bottom:25px; line-height:1.8 }
.story-band { background:var(--ink); color:white }
.story-band-heading { display:flex; justify-content:space-between; gap:35px; align-items:flex-start }
.story-band-heading h2 { width:64%; font-size:clamp(44px,4.8vw,80px) }
.story-band-heading .eyebrow { margin-top:10px }
.story-columns { display:grid; grid-template-columns:repeat(3,1fr); gap:50px; margin-top:65px }
.story-columns article { border-top:1px solid #ffffff30; padding-top:28px }
.step-number { color:var(--yellow); font-size:13px; display:block; margin-bottom:38px }
.story-columns h3 { font-family:var(--serif); font-size:38px; margin-bottom:20px }
.story-columns p { font-size:16px; color:#ffffff9e }
/* Shared inner pages. */
.page-intro { padding-top:55px; padding-bottom:60px }
.breadcrumbs { display:flex; gap:12px; font-size:12px; line-height:1.6; flex-wrap:wrap; color:var(--muted); margin-bottom:36px }
.breadcrumbs a:hover { color:var(--ink) }
.page-intro .eyebrow { margin-bottom:25px }
.intro-row { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:8%; align-items:end }
.intro-row h1 { font-size:clamp(54px,6.3vw,103px); line-height:1.09 }
.intro-row>p { font-size:16px; color:var(--muted); max-width:450px; padding-bottom:8px }
.catalog { padding-top:0; background:var(--paper) }
.catalog-label { display:flex; justify-content:space-between; border-top:1px solid var(--line); font-size:12px; letter-spacing:.1em; padding:24px 0 }
.catalog-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:70px 32px }
.catalog-grid .collection-card img { aspect-ratio:1.28 }
.detail-intro { padding-top:45px; padding-bottom:50px; background:var(--ink); color:#fff }
.detail-intro .breadcrumbs { color:#ffffff85; margin-bottom:35px }
.detail-intro .breadcrumbs a:hover { color:#fff }
.detail-intro .intro-row { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) }
.detail-intro h1 { font-family:'Albert Sans Variable',Arial,sans-serif; font-size:clamp(58px,7.5vw,120px); letter-spacing:-.04em }
.detail-intro .intro-row>p { color:#ffffffb0; font-size:15px }
.detail-hero { width:100%; overflow:hidden; background:var(--ink) }
.detail-hero img { width:100%; height:68vh; min-height:430px; max-height:900px; object-fit:cover }
.detail-story { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:9%; padding-bottom:65px }
.detail-story h2 { font-size:clamp(33px,3.8vw,59px); line-height:1.12; max-width:560px }
.detail-story-heading>.button { margin-top:32px }
.prose { font-size:16px; color:var(--muted); line-height:1.8 }
.prose p { margin-bottom:25px; white-space:pre-line }
.gallery-section { padding-top:35px; background:#fff }
.gallery-section h2 { font-size:clamp(38px,4.2vw,65px) }
.gallery-total { font-size:14px; color:var(--muted) }
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px }
.gallery-item { padding:0; border:0; position:relative; overflow:hidden; width:100%; background:var(--sand) }
.gallery-item img { width:100%; aspect-ratio:1; object-fit:cover; transition:transform .8s,filter .8s }
.gallery-item:hover img { transform:scale(1.055); filter:brightness(.85) }
.gallery-item span { position:absolute; left:20px; bottom:20px; background:var(--yellow); color:var(--ink); padding:8px 15px; opacity:0; transform:translateY(8px); transition:opacity .3s,transform .3s; font-size:13px }
.gallery-item:hover span,.gallery-item:focus-visible span { opacity:1; transform:none }
.news-empty { margin:0 var(--gutter) var(--space); padding:65px; background:var(--sand) }
.news-empty h2 { margin-bottom:25px }
.news-empty p { max-width:500px; color:var(--muted); margin-bottom:30px; font-size:16px }
.news-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px }
.news-grid .card-top h3 { font-size:28px }
.news-date { display:block; font-size:12px; color:var(--muted); margin-top:20px }
.home-news-track>.collection-card { width:calc((100% - 52px)/3) }
.news-controls { justify-content:flex-end; margin-top:30px }
.privacy-copy { max-width:1000px; padding-top:0 }
.video-section video { width:100%; max-height:720px; background:var(--ink) }
/* Consultation and salon. */
.consultation { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:10%; background:var(--sand); padding-top:clamp(56px,6vw,96px); padding-bottom:clamp(40px,4vw,64px) }
.consultation h2 { margin-bottom:25px; white-space:pre-line }
.consultation>div>p { max-width:470px; color:var(--muted); font-size:16px }
.consultation form { min-width:0; padding-top:10px }
.consultation label:not(.consent) { display:block; font-size:14px; margin-bottom:25px }
.consultation input:not([type=checkbox]) { width:100%; display:block; border:0; border-bottom:1px solid #1d1d1c65; border-radius:0; padding:15px 0; background:none; font-size:18px; color:var(--ink) }
.consultation input::placeholder { color:#726c65 }
.consent { display:flex; gap:13px; align-items:flex-start; font-size:13px; line-height:1.6; color:#56514b; cursor:pointer; margin-bottom:30px }
.consent input { flex-shrink:0; width:18px; height:18px; margin:3px 0 0; accent-color:var(--ink) }
.consent a { text-decoration:underline }
.honey { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important }
.consultation .button { width:100%; font-size:14px }
.form-status { font-size:14px; margin-top:18px; line-height:1.5 }
form[data-consultation] .form-status:empty,form[data-consultation] .studio-form-status:empty { display:none }
/* Studio v41 form controls use the same typography and straight edges as the site. */
.consultation .studio-form-tools,.consultation .studio-form-status { font-family:inherit }
.consultation .studio-captcha label { display:grid; gap:8px; margin:0 }
.consultation .studio-captcha input { max-width:240px; border-radius:0; font-family:inherit }
.consultation .studio-captcha button { background:none; color:var(--ink); border-color:#1d1d1c65; border-radius:0; font-family:inherit }
.consultation label.studio-consent { display:flex; gap:13px; margin:0; font-family:inherit; font-size:14px }
.consultation .studio-consent input[type=checkbox] { accent-color:var(--ink) }
.consultation .studio-form-tools input:focus-visible,.consultation .studio-form-tools button:focus-visible,.consultation .studio-consent a:focus-visible { outline-color:var(--accent) }
.contacts { background:var(--paper) }
.contacts-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:9% }
.contact-info h3 { font-family:var(--serif); font-size:38px; line-height:1.16; margin-bottom:26px }
.contact-info>p { color:var(--muted); font-size:15px; max-width:500px }
.contact-info .contact-address { color:var(--ink); font-size:19px; margin-bottom:6px }
.contact-info>p[data-cms-field] { margin-top:20px }
.contact-info dl { margin:30px 0 }
.contact-info dl>div { display:grid; grid-template-columns:112px 1fr; gap:15px; padding:13px 0; border-top:1px solid var(--line); font-size:14px }
.contact-info dt { color:var(--muted) }
.contact-info dd { margin:0 }
.map-panel { position:relative; min-height:500px; background:var(--sand); overflow:hidden }
.map-panel::before,.map-panel::after { content:''; position:absolute; width:180%; height:28px; background:#f1ece7; left:-40%; top:50%; transform:rotate(-35deg) }
.map-panel::after { top:20%; transform:rotate(45deg) }
.map-panel iframe { position:absolute; inset:0; width:100%; height:100%; border:0; opacity:0; transition:opacity .3s; z-index:2 }
.map-panel.loaded iframe { opacity:1 }
.map-label { position:absolute; z-index:3; left:50%; top:50%; transform:translate(-50%,-50%); background:var(--ink); color:white; width:280px; padding:30px }
.map-label::after { content:''; position:absolute; bottom:-10px; left:50%; border-left:10px solid transparent; border-right:10px solid transparent; border-top:10px solid var(--ink) }
.map-label>span { font-size:10px; letter-spacing:.13em; display:block; margin-bottom:13px }
.map-label strong { display:block; font-size:30px; font-weight:400; line-height:1.2 }
.map-label small { display:block; font-size:12px; margin:10px 0 24px; color:#ffffffa0 }
.map-label .text-link { color:var(--yellow); font-size:13px }
.map-panel.loaded .map-label { display:none }
/* Footer and dialogs. */
.site-footer { padding:70px var(--gutter) 25px; color:#fff; background:var(--ink); border-top:1px solid #ffffff20 }
.footer-main { display:grid; grid-template-columns:1fr .8fr 1.45fr 1.1fr; gap:40px }
.site-footer .eyebrow { font-size:10px; color:#ffffff85; margin-bottom:22px }
.site-footer .eyebrow::before { display:none }
.site-footer a:not(.wordmark) { display:block; font-size:14px; margin-bottom:9px; transition:color .3s }
.site-footer a:hover { color:var(--yellow) }
.site-footer p { font-size:14px; color:#ffffff90; margin-top:25px }
.footer-collections>div { display:grid; grid-template-columns:1fr 1fr; gap:0 20px }
.site-footer .footer-phone { font-size:20px; white-space:nowrap }
.footer-bottom { border-top:1px solid #ffffff25; margin-top:65px; padding-top:24px; display:flex; justify-content:space-between; gap:30px; font-size:12px; color:#ffffff85 }
.footer-bottom a { font-size:12px!important }
.lightbox { padding:0; border:0; background:var(--ink); color:white; width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; overflow:hidden }
.lightbox::backdrop { background:var(--ink) }
.lightbox[open] { display:flex; flex-direction:column }
.lightbox-top,.lightbox-bottom { display:flex; justify-content:space-between; align-items:center; padding:20px 32px; flex-shrink:0 }
.lightbox-top { height:76px; border-bottom:1px solid #ffffff20 }
.lightbox-title { font-size:15px; letter-spacing:.12em }
.lightbox button { background:none; border:0; color:#fff; width:48px; height:48px; font-size:36px; line-height:1 }
.lightbox-stage { display:flex; justify-content:space-between; align-items:center; flex:1; min-height:0; gap:20px; padding:20px 25px }
.lightbox-stage img { max-width:calc(100% - 140px); max-height:100%; width:auto; height:auto; object-fit:contain; transition:opacity .2s }
.lightbox-stage button { flex-shrink:0 }
.lightbox-bottom { font-size:12px; color:#ffffff80; height:60px }
.lightbox-counter { font-size:16px; color:white }
/* Compact menu occupies one screen without an inner scroll. */
.mobile-menu { border:0; background:var(--ink); color:var(--paper); width:100%; max-width:100vw; height:100dvh; max-height:100dvh; margin:0; padding:24px var(--gutter) 18px; overflow:hidden; overscroll-behavior:contain }
.mobile-menu::backdrop { background:var(--ink) }
.mobile-menu[open] { display:flex; flex-direction:column; animation:menu-in .35s cubic-bezier(.2,.65,.25,1) }
.mobile-menu .logo-dark,.request-art .logo-dark { display:none }
.mobile-menu .logo-light,.request-art .logo-light { display:block }
.mobile-menu-head { display:flex; align-items:center; justify-content:space-between; gap:25px; padding-bottom:20px; border-bottom:1px solid #ffffff24; flex-shrink:0 }
.menu-location { margin-left:auto; font-size:12px; letter-spacing:.08em; color:#ffffff8a }
.dialog-close { display:flex; align-items:center; justify-content:center; flex-shrink:0; width:48px; height:48px; border:1px solid currentColor; border-radius:50%; background:none; font-size:32px; font-weight:300; line-height:1; transition:background .25s,color .25s }
.mobile-menu .dialog-close { color:var(--paper); border-color:#ffffff45 }
.dialog-close:hover { background:var(--yellow); color:var(--ink); border-color:var(--yellow) }
.menu-layout { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:12%; padding:24px 0; align-items:center; flex:1; min-height:0 }
.mobile-menu nav>a,.mobile-menu nav>details>summary { display:flex; align-items:center; gap:18px; font-family:inherit; font-size:clamp(28px,2.65vw,44px); line-height:1.1; min-height:62px; padding:12px 0; border-bottom:1px solid #ffffff24; letter-spacing:-.045em }
.menu-label { display:block; min-width:0; line-height:1.14 }

.menu-number { flex:0 0 24px; color:#ffffff65; font-family:'Albert Sans Variable',Arial,sans-serif; font-size:12px; font-style:normal; letter-spacing:0 }
.menu-collection summary i { position:relative; width:20px; height:20px; margin-left:auto; flex-shrink:0 }
.menu-collection summary i::before,.menu-collection summary i::after { content:''; position:absolute; width:20px; height:1px; top:10px; left:0; background:currentColor; transition:transform .25s }
.menu-collection summary i::after { transform:rotate(90deg) }
.menu-collection[open] summary i::after { transform:rotate(0) }
.mobile-collections { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 15px; padding:12px 0 10px 42px; font-size:14px; line-height:1.4; letter-spacing:.01em }
.mobile-collections a { display:flex; align-items:center; min-height:34px; width:fit-content }

.mobile-collections .menu-all-collections { grid-column:1/-1; color:var(--yellow); margin-bottom:4px }
.menu-invitation { min-width:0 }
.menu-invitation .eyebrow { font-size:12px; color:#ffffffa0; margin-bottom:18px }
.menu-slogan { font-size:clamp(26px,2.55vw,40px); line-height:1.17; letter-spacing:-.045em; margin-bottom:24px }
.menu-slogan em { color:var(--sand) }
.menu-phone { display:block; font-size:clamp(23px,2.1vw,32px); line-height:1.25; letter-spacing:-.035em; margin-bottom:14px; width:fit-content }
.mobile-address { font-size:14px; color:#ffffff9e; line-height:1.5; margin-bottom:20px }
.mobile-address p:last-child { margin-top:8px }
.menu-invitation>.button { min-width:220px; min-height:50px; padding:14px 24px }
.menu-photo { margin-top:22px; overflow:hidden; max-width:400px }
.menu-photo img { width:100%; height:clamp(85px,14vh,155px); object-fit:cover }
.menu-bottom { display:flex; justify-content:space-between; align-items:center; gap:20px; border-top:1px solid #ffffff24; padding-top:14px; font-size:12px; line-height:1.4; color:#ffffff8a; letter-spacing:.05em; flex-shrink:0 }
.menu-bottom a { font-size:14px; letter-spacing:0 }
.request-dialog { width:min(1020px,calc(100% - 48px)); max-width:1020px; max-height:calc(100dvh - 48px); margin:auto; padding:0; border:0; background:var(--paper); color:var(--ink); overflow:auto; overscroll-behavior:contain }
.request-dialog::backdrop { background:#1d1d1cbf; animation:backdrop-in .35s ease }
.request-dialog[open] { animation:request-fade .22s ease both }
.request-layout { display:grid; grid-template-columns:.84fr 1.16fr; min-width:0 }
.request-art { position:relative; overflow:hidden; background:var(--ink); color:white }
.request-art>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:58% center; opacity:.62 }
.request-art::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,#1d1d1c60,transparent 40%,#1d1d1cd9) }
.request-art-copy { position:relative; z-index:1; display:flex; flex-direction:column; justify-content:space-between; height:100%; min-height:570px; padding:38px 30px }
.request-art-copy>p { font-size:44px; line-height:1.13; letter-spacing:-.05em; margin:auto 0 30px; padding-top:140px }
.request-art-copy em { color:var(--sand) }
.request-art-copy>span:last-child { font-size:10px; letter-spacing:.14em }
.request-body { padding:28px 40px 36px; min-width:0 }
.request-topline { display:flex; align-items:center; justify-content:space-between; gap:16px; position:sticky; top:-1px; z-index:2; background:var(--paper); padding-bottom:18px }
.request-topline .eyebrow { margin:0; font-size:10px }
.request-topline .dialog-close { width:42px; height:42px; border-color:var(--line) }
.request-body h2 { font-size:clamp(34px,3.5vw,49px); line-height:1.13; white-space:pre-line }
.request-intro { font-size:14px; color:var(--muted); line-height:1.65; margin:18px 0 26px; max-width:400px }
.request-body form>label:not(.consent) { display:block; font-size:14px; margin-bottom:22px }
.request-body form>label>input:not([type=checkbox]) { display:block; width:100%; border:0; border-bottom:1px solid #1d1d1c60; border-radius:0; background:none; padding:11px 0 12px; font-size:16px; line-height:1.5 }
.request-body input::placeholder { color:#807a72 }
.request-body .consent { font-size:14px; margin:5px 0 24px; line-height:1.6 }
.request-body form>.button { width:100%; min-height:54px }
.request-body .studio-form-tools,.request-body .studio-form-status { font-family:inherit }
.request-body .studio-captcha input,.request-body .studio-captcha button { font-family:inherit; color:var(--ink); border-color:var(--line); border-radius:0; background:none }
.request-body .studio-consent { font-family:inherit; font-size:14px }
@keyframes menu-in { from { opacity:.2; transform:translateY(-12px) } to { opacity:1 } }
@keyframes request-in { from { opacity:0; transform:translateY(16px) } to { opacity:1 } }
@keyframes backdrop-in { from { opacity:0 } to { opacity:1 } }
/* Content is always visible. Entry effects run as transient JS animations. */
.reveal { opacity:1; transform:none }
.reveal.reveal-await { opacity:0 }
.reveal-photo { clip-path:none }
.type-line { display:block }
.type-line-inner { display:block }
.type-line { overflow:clip; padding:.08em 0 .12em; margin:-.08em 0 -.12em }
/* Responsive composition: natural touch scrolling and generous tap targets. */
@media(min-width:1600px) {
 .hero-content { padding-top:165px; padding-bottom:95px }
 .hero h1 { margin-bottom:45px }
 .about-hero-content { max-width:1450px; padding-top:165px }
}
@media(max-width:1150px) {
 .desktop-nav { gap:20px; font-size:13px }
 .site-header { gap:25px }
 .header-phone { font-size:13px }
 .wordmark { width:110px; min-width:110px; height:49px }
 .hero h1 { font-size:88px }
 .brand-section { gap:6% }
 .brand-stats { gap:22px }
 .brand-stats strong { font-size:49px }
 .about-story { gap:7% }
 .experience { right:-15px; padding:22px 30px }
 .footer-main { grid-template-columns:1fr .8fr 1.4fr; gap:30px }
 .footer-main>div:last-child { grid-column:1/-1; display:flex; gap:30px; align-items:center }
 .footer-main>div:last-child .eyebrow,.footer-main>div:last-child a { margin:0 }
}
@media(max-width:900px) {
 .desktop-nav { display:none }
 .menu-toggle { display:block }
 .header-phone { margin-left:auto; font-size:14px }
 .site-header { height:86px }
 body { padding-top:86px }
 .hero { height:100svh; min-height:780px }
 .hero-content { padding-top:126px; padding-bottom:78px }
 .hero h1 { font-size:clamp(64px,10vw,90px) }
 .hero-location { font-size:10px }
 .hero-location .eyebrow { font-size:10px }
 .hero-bottom { gap:30px }
 .hero-controls { min-width:230px }
 .hero-controls>div:not(.slide-progress) { gap:12px }
 .brand-section { grid-template-columns:minmax(0,1fr); gap:60px }
 .brand-copy>p { max-width:650px }
 .brand-stats { max-width:650px; justify-content:flex-start; gap:55px }
 .brand-mosaic { max-width:680px; width:100%; margin:auto }
 .advantage { width:44vw }
 .collection-track>.collection-card { width:68vw }
 .home-news-track>.collection-card { width:65% }
 .about-hero { min-height:750px; height:90svh }
 .about-photo { width:82% }
 .about-shade { background:linear-gradient(90deg,#1d1d1cea,#1d1d1c45 80%),linear-gradient(0deg,#1d1d1c75,transparent 80%) }
 .about-hero h1 { font-size:clamp(60px,8.2vw,82px) }
 .about-hero-content { padding-top:120px }
 .about-hero-bottom { gap:30px }
 .about-story { gap:50px; grid-template-columns:minmax(0,1fr) }
 .about-story-photo { max-width:650px; padding-bottom:60px }
 .about-story-photo img { aspect-ratio:1.2 }
 .experience { right:-15px }
 .about-story-copy { max-width:650px }
 .story-band-heading { display:block }
 .story-band-heading h2 { width:100% }
 .story-columns { gap:30px }
 .contacts-layout { grid-template-columns:repeat(2,minmax(0,1fr)); gap:5% }
 .contact-info dl>div { grid-template-columns:1fr; gap:3px }
 .consultation { gap:6% }
 .detail-story { gap:6% }
 .gallery-grid { grid-template-columns:repeat(2,1fr) }
 .news-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
}
@media(max-width:600px) {
 :root { --gutter:23px; --space:80px }
 body { padding-top:80px; font-size:16px }
 .site-header { height:80px; padding:0 23px; gap:14px }
 .site-header.is-scrolled { height:72px }
 .wordmark { width:102px; min-width:102px; height:45px }
 .header-phone { font-size:12px }
 .menu-toggle { margin-right:-10px }
 .hero { min-height:740px; height:100svh; max-height:1000px }
 .hero-content { padding:108px 23px 48px }
 .hero-location { font-size:9px; letter-spacing:.08em; gap:20px }
 .hero-location .eyebrow { max-width:125px; font-size:9px; letter-spacing:.1em; line-height:1.7 }
 .hero-location .eyebrow::before { width:15px; margin-right:6px }
 .hero h1 { font-size:clamp(51px,12.3vw,73px); line-height:1.1; margin:auto 0 26px; letter-spacing:-.04em }
 .hero-bottom { display:block }
 .hero-bottom>div:first-child { max-width:310px }
 .hero-bottom p { font-size:15px; max-width:300px; line-height:1.65; margin-bottom:22px }
 .hero-bottom .button { min-height:51px; font-size:13px; padding:15px 23px }
 .hero-controls { min-width:0; margin-top:28px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:13px; text-align:left }
 .hero-controls>div:not(.slide-progress) { gap:9px; margin-top:0 }
 .hero-caption { font-size:9px; letter-spacing:.09em; max-width:145px }
 .hero-controls button { width:36px; height:36px; font-size:23px }
 .hero-controls .hero-pause { font-size:14px; width:26px }
 .hero-count { font-size:14px }
 .hero-count i { padding-left:2px; font-size:11px }
 .slide-progress { grid-column:1/-1; margin-top:0 }
 .scroll-cue { bottom:17px; font-size:8px }
 .hero-shade { background:linear-gradient(180deg,#0006,transparent 30%,#0004 48%,#000b) }
 .eyebrow { font-size:10px; margin-bottom:23px; line-height:1.6 }
 .eyebrow::before { width:18px; margin-right:9px }
 h2,.brand-copy h2 { font-size:43px; line-height:1.12; letter-spacing:-.045em }
 .brand-copy h2 { font-size:clamp(32px,10vw,43px) }
 main h1,main h2,main h3,.type-line-inner { overflow-wrap:anywhere }
 .brand-copy,.brand-mosaic { width:100%; max-width:100% }
 .brand-copy>p { font-size:16px }
 .brand-section { gap:40px }
 .brand-stats { gap:0; justify-content:space-between; margin-top:35px; padding-top:25px }
 .brand-stats strong { font-size:44px }
 .brand-stats strong span { font-size:24px }
 .brand-stats p { font-size:11px; max-width:95px; line-height:1.45; margin-top:10px }
 .brand-mosaic { --mosaic-gap:8px; aspect-ratio:.99 }
 .mosaic-caption { font-size:12px; letter-spacing:.1em }
 .section-heading { margin-bottom:33px }
 .section-heading h2 { font-size:42px; line-height:1.12 }
 .row-heading { align-items:start; gap:20px }
 .advantages .row-heading { display:block }
 .advantages .rail-controls { margin-top:28px }
 .rail { gap:18px }
 .advantage { width:79vw; min-width:0 }
 .advantage h3 { font-size:29px }
 .advantage p { font-size:15px; padding-right:12px }
 .rail-controls { font-size:12px; gap:13px }
 .rail-controls button { width:42px; height:42px }
 .collection-section>.row-heading { display:block }
 .collection-section>.row-heading>.text-link { margin-top:20px }
 .collection-track>.collection-card { width:83vw }
 .collection-card img { aspect-ratio:1.12 }
 .card-top { margin-top:21px }
 .card-top h3 { font-size:29px }
 .collection-card p { font-size:15px }
 .rail-foot { display:block; margin-top:26px }
 .rail-foot p { font-size:13px }
 .rail-foot .rail-controls { justify-content:flex-end; margin-top:22px }
 .style-divider { height:70svh; min-height:480px; max-height:700px }
 .style-divider h2 { font-size:50px; line-height:1.1 }
 .style-divider .button { font-size:13px }
 .about-hero { min-height:740px; height:100svh; max-height:1000px }
 .about-photo { width:100%; height:100% }
 .about-photo img { object-position:60% center }
 .about-shade { background:linear-gradient(0deg,#1d1d1ce8,transparent 85%),linear-gradient(90deg,#1d1d1c80,transparent 95%) }
 .about-hero-content { padding:105px 23px 62px }
 .about-hero .breadcrumbs { font-size:10px; margin-bottom:auto }
 .about-hero .eyebrow { margin-top:25px; margin-bottom:23px; font-size:9px }
 .about-hero h1 { font-size:clamp(43px,10.9vw,66px); line-height:1.13 }
 .about-hero-bottom { display:block; margin-top:26px }
 .about-hero-bottom p { font-size:15px; max-width:300px; margin-bottom:24px }
 .photo-credit { bottom:20px; font-size:9px }
 .about-story { gap:35px }
 .about-story-photo { padding-bottom:54px; margin-right:12px }
 .about-story-photo img { aspect-ratio:1.02 }
 .experience { right:-12px; gap:20px; padding:25px 23px }
 .experience strong { font-size:80px }
 .experience strong span { font-size:46px }
 .experience p { font-size:12px }
 .about-story-copy h2 { font-size:43px; line-height:1.13 }
 .about-story-copy>p { font-size:16px }
 .story-band-heading h2 { font-size:45px; line-height:1.12 }
 .story-columns { grid-template-columns:1fr; gap:32px; margin-top:45px }
 .story-columns article { padding-top:25px; display:grid; grid-template-columns:40px 1fr; gap:12px 15px }
 .step-number { margin:9px 0 0 }
 .story-columns h3 { font-size:32px; margin:0 }
 .story-columns p { grid-column:2; font-size:15px }
 .page-intro { padding-top:32px; padding-bottom:42px }
 .breadcrumbs { font-size:11px; gap:8px; margin-bottom:28px }
 .intro-row,.detail-intro .intro-row { display:block }
 .intro-row h1 { font-size:clamp(43px,11.1vw,65px); line-height:1.12 }
 .intro-row>p { font-size:15px; margin-top:23px; padding:0 }
 .catalog-grid { grid-template-columns:1fr; gap:48px }
 .catalog-label { font-size:10px; letter-spacing:.08em; padding:22px 0 }
 .catalog-grid .collection-card img { aspect-ratio:1.13 }
 .detail-intro { padding-top:32px; padding-bottom:35px }
 .detail-intro h1 { font-size:clamp(40px,10.9vw,67px); overflow-wrap:anywhere }
 .detail-intro .breadcrumbs { margin-bottom:30px }
 .detail-hero img { min-height:0; height:55svh; max-height:570px; aspect-ratio:1.1 }
 .detail-story { grid-template-columns:minmax(0,1fr); gap:28px; padding-top:55px; padding-bottom:40px }
 .detail-story h2 { font-size:34px; line-height:1.18 }
 .prose { font-size:16px }
 .gallery-section { padding-top:30px }
 .gallery-section .row-heading { display:block }
 .gallery-section h2 { font-size:37px }
 .gallery-total { display:block; font-size:13px; margin-top:18px }
 .gallery-grid { gap:11px }
 .gallery-item span { display:none }
 .news-empty { margin-bottom:65px; padding:35px 25px }
 .news-empty h2 { font-size:38px }
 .news-empty p { font-size:15px }
 .news-grid { grid-template-columns:1fr }
 .home-news-track>.collection-card { width:90% }
 .consultation { grid-template-columns:minmax(0,1fr); gap:38px }
 .consultation h2 { font-size:44px; line-height:1.12 }
 .consultation>div>p { font-size:16px }
 .consultation form { padding-top:0 }
 .consultation input:not([type=checkbox]) { font-size:16px }
 .consent { font-size:13px }
 .contacts-layout { grid-template-columns:minmax(0,1fr); gap:40px }
 .contact-info h3 { font-size:34px }
 .contact-info .contact-address { font-size:18px }
 .contact-info dl>div { grid-template-columns:105px 1fr; gap:8px; font-size:13px }
 .contact-info .button { width:100% }
 .map-panel { min-height:365px }
 .site-footer { padding-top:60px }
 .footer-main { grid-template-columns:1fr 1fr; gap:38px 25px }
 .footer-collections { grid-column:1/-1 }
 .footer-main>div:last-child { display:block }
 .footer-main>div:last-child .eyebrow { margin-bottom:20px }
 .footer-main>div:last-child a { margin-bottom:10px }
 .site-footer p,.site-footer a:not(.wordmark) { font-size:13px }
 .footer-bottom { margin-top:40px; display:flex; flex-wrap:wrap; justify-content:flex-start; gap:10px 20px; font-size:11px }
 .footer-bottom>span { width:100% }
 .footer-bottom a { font-size:11px!important }
 .footer-bottom>a:last-child { margin-left:auto }
 .lightbox-top { padding:13px 15px; height:65px }
 .lightbox-title { font-size:12px }
 .lightbox-stage { position:relative; justify-content:center; padding:8px; gap:0 }
 .lightbox-stage img { max-width:100%; max-height:100% }
 .lightbox-stage button { position:absolute; bottom:10px; z-index:2; width:44px; height:44px; background:#0009; border-radius:50%; font-size:29px }
 .lightbox-stage button:first-child { left:14px }
 .lightbox-stage button:last-child { right:14px }
 .lightbox-bottom { padding:12px 18px; font-size:10px }
 .lightbox-counter { font-size:14px }
}
@media(prefers-reduced-motion:reduce) {
 html,.rail { scroll-behavior:auto }
 *,*::before,*::after { animation:none!important; transition:none!important }
 .hero-slide img,.hero-slide.active img { transform:none }
 .reveal,.reveal-photo,.reveal.reveal-await { opacity:1; transform:none; clip-path:none }
 .type-line-inner { transform:none }
}
@media(max-width:360px) {
 .header-phone { display:none }
 .menu-toggle { margin-left:auto }
}
@media(max-width:900px) {
 .site-header>.header-phone { display:none }
 .header-actions { margin-left:auto; gap:12px }
 .menu-toggle { width:46px; height:46px; border:1px solid #1d1d1c40; border-radius:50%; margin:0; padding:10px }
 .on-dark .menu-toggle { border-color:#ffffff60 }
 .site-header.is-scrolled .menu-toggle { border-color:#ffffff60 }
 .request-dialog { width:min(700px,calc(100% - 32px)); max-height:calc(100dvh - 32px) }
 .request-layout { grid-template-columns:.68fr 1fr }
 .request-body { padding:24px 28px 30px }
 .request-art-copy { padding:30px 24px }
 .request-art-copy>p { font-size:35px }
}
@media(max-width:600px) {
 .site-header.is-collapsed { height:72px }
 .site-header.is-collapsed .header-actions { gap:10px }
 .site-header.is-collapsed .menu-toggle { width:46px; height:46px; padding:10px }
 .hero-actions { gap:18px }
 .hero-actions .text-link { font-size:13px }
 .consultation { padding-top:52px; padding-bottom:40px; gap:30px }
 .detail-story-heading>.button { margin-top:24px; min-height:50px; font-size:13px }
 .request-dialog { width:calc(100% - 24px); max-height:calc(100dvh - 24px) }
 .request-layout { grid-template-columns:1fr }
 .request-art { display:none }
 .request-body { padding:20px 24px 28px }
 .request-topline { padding-bottom:22px }
 .request-topline .eyebrow { font-size:9px }
 .request-body h2 { font-size:38px; line-height:1.14 }
 .request-intro { font-size:14px; margin:16px 0 24px }
 .request-body .consent { font-size:14px; margin-bottom:22px }
}

.detail-story-heading>.detail-story-caption { max-width:510px; margin-top:24px; color:var(--muted); font-size:18px; line-height:1.7; letter-spacing:0 }
@media(max-height:800px) {
 .menu-photo { display:none }
 .menu-layout { padding:18px 0 }
 .mobile-menu nav>a,.mobile-menu nav>details>summary { min-height:54px; padding:10px 0; font-size:clamp(27px,2.4vw,36px) }
}
@media(max-height:760px) {
 .mobile-menu nav:has(.menu-collection[open])>a { display:none }
}
@media(max-width:900px) {
 .menu-layout { gap:6% }
 .menu-location { max-width:240px; text-align:right }
 .mobile-collections { padding-left:32px; gap:0 10px }
 .mobile-collections a { min-height:32px }
}
@media(max-width:600px) {
 .detail-story-heading>.detail-story-caption { font-size:16px; margin-top:20px }
 .mobile-menu { padding:18px 23px 14px }
 .mobile-menu-head { padding-bottom:14px; gap:15px }
 .mobile-menu-head .wordmark { width:92px; min-width:92px; height:41px }
 .mobile-menu .dialog-close { width:42px; height:42px }
 .menu-location { display:none }
 .menu-layout { grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr) auto; gap:18px; padding:16px 0; align-items:center }
 .mobile-menu nav>a,.mobile-menu nav>details>summary { font-size:28px; min-height:47px; padding:8px 0; gap:12px }
 .menu-number { flex-basis:20px }
 .mobile-menu nav:has(.menu-collection[open])>a { display:none }
 .mobile-collections { padding-left:0; padding-top:14px; column-gap:10px; font-size:14px }
 .mobile-collections a { min-height:34px }
 .menu-invitation .eyebrow,.menu-slogan,.menu-photo { display:none }
 .menu-phone { font-size:25px; margin-bottom:10px }
 .mobile-address { font-size:14px; line-height:1.45; margin-bottom:14px }
 .mobile-address p:last-child { margin-top:4px }
 .menu-invitation>.button { width:100%; min-height:48px; padding:13px 20px }
 .menu-bottom { padding-top:10px }
 .menu-bottom>span { display:none }
}
@media(max-width:600px) and (max-height:670px) {
 .mobile-menu { padding:12px 20px }
 .mobile-menu-head { padding-bottom:10px }
 .menu-layout { padding:10px 0; gap:10px }
 .mobile-menu nav>a,.mobile-menu nav>details>summary { min-height:41px; font-size:25px; padding:6px 0 }
 .mobile-collections { padding-top:8px; padding-bottom:6px }
 .mobile-collections a { min-height:31px }
 .menu-phone { font-size:23px; margin-bottom:8px }
 .mobile-address { margin-bottom:10px }
 .menu-invitation>.button { min-height:44px; padding:11px 20px }
}
@media(max-height:520px) and (min-width:601px) {
 .mobile-menu { padding-top:12px; padding-bottom:12px }
 .mobile-menu-head { padding-bottom:10px }
 .mobile-menu-head .wordmark { width:92px; min-width:92px; height:41px }
 .menu-layout { padding:12px 0; gap:6% }
 .mobile-menu nav>a,.mobile-menu nav>details>summary { min-height:36px; font-size:26px; padding:5px 0 }
 .menu-invitation .eyebrow,.menu-slogan,.menu-photo { display:none }
 .menu-phone { font-size:23px; margin-bottom:10px }
 .mobile-address { margin-bottom:12px }
 .mobile-collections { padding-top:8px; padding-bottom:6px }
 .mobile-collections a { min-height:28px }
 .menu-bottom { padding-top:8px }
}
@media(prefers-reduced-motion:reduce) {
 .hero-slide.active img { animation:none; transform:none }
}

/* Menu highlight changes color immediately, preserving the typeface and geometry. */
.mobile-menu nav>a:hover .menu-label,.mobile-menu summary:hover .menu-label,
.mobile-menu nav>a:focus-visible .menu-label,.mobile-menu summary:focus-visible .menu-label,
.mobile-collections a:hover,.mobile-collections a:focus-visible { color:var(--yellow); transition:none }
.mobile-menu .menu-label,.mobile-collections a { transition:none }
.mobile-menu { isolation:isolate }
.menu-backdrop { position:absolute; inset:0; z-index:-1; overflow:hidden; pointer-events:none }
.menu-backdrop>img { width:100%; height:100%; object-fit:cover; filter:blur(4px); transform:scale(1.035) }
.menu-backdrop::after { content:''; position:absolute; inset:0; background:#101010c7 }
.mobile-menu .menu-photo { display:none }
.mobile-menu .menu-number,.mobile-menu .menu-location,.mobile-menu .mobile-address,.mobile-menu .menu-bottom,.mobile-menu .menu-invitation .eyebrow { color:#ffffffe0 }
form[data-consultation] input:not([type=checkbox]):focus,form[data-consultation] input:not([type=checkbox]):focus-visible { outline:none; box-shadow:none }
.detail-story-heading { display:flex; flex-direction:column; align-items:flex-start; min-height:100% }
.detail-story-heading>.detail-story-caption { margin-bottom:32px }
.detail-story-heading>.button { margin-top:auto }
.detail-story>.prose { display:flex; flex-direction:column; justify-content:space-between; gap:25px }
.detail-story>.prose>p { margin:0 }
@media(max-width:600px) {
 .detail-story-heading { min-height:0 }
 .detail-story-heading>.detail-story-caption { margin-bottom:0 }
 .detail-story-heading>.button { margin-top:24px }
 .detail-story>.prose { gap:22px }
}

.menu-label { pointer-events:none }
.menu-layout { align-items:center }
.menu-layout>nav { align-self:center; min-width:0 }
.menu-invitation { align-self:center }
.menu-backdrop { contain:paint }
.request-dialog { width:min(1020px,calc(100vw - 48px)); height:min(720px,calc(100dvh - 48px)); overflow:hidden }
.request-layout { height:100%; min-height:0; overflow:hidden }
.request-body { height:100%; min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable }
.request-art-copy { min-height:0; height:100% }
@keyframes request-fade { from { opacity:0 } to { opacity:1 } }
@media(max-width:900px) {
 .request-dialog { width:min(700px,calc(100vw - 32px)); height:min(720px,calc(100dvh - 32px)) }
}
@media(max-width:600px) {
 .request-dialog { width:calc(100vw - 24px); height:min(720px,calc(100dvh - 24px)) }
}
