@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 100 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/plex-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 100 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/plex-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{color-scheme:dark;--paper:#090a0b;--white:#eeeae3;--ink:#eeeae3;--muted:#a1a3a6;--blue:#d0bea5;--line:#ffffff20;--panel:#141618;--ease:cubic-bezier(.22,.61,.36,1);--font:'IBM Plex Sans',Arial,sans-serif;--display:'IBM Plex Sans',Arial,sans-serif}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:105px}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.65 var(--font);-webkit-font-smoothing:antialiased}
body:has(dialog[open]){overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit;cursor:pointer}
button,a{-webkit-tap-highlight-color:transparent}
img{display:block;max-width:100%}
button:disabled{opacity:.5;cursor:wait}
[hidden]{display:none!important}
::selection{background:#d0bea5;color:#090a0b}
:focus-visible{outline:2px solid #d0bea5;outline-offset:5px}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-family:var(--display);font-weight:500}
p{line-height:1.65}
h2{font-size:clamp(38px,4.5vw,72px);line-height:1.12;letter-spacing:-.055em}
h3{font-size:27px;line-height:1.25;letter-spacing:-.035em}
.wrap{width:min(1440px,calc(100% - 128px));margin-inline:auto}
.section{padding-block:125px}
.muted{color:var(--muted)}
.silver{color:#bdc0c3}
.eyebrow{font-size:10px;letter-spacing:2.2px;font-weight:500;margin-bottom:27px;color:#bbb9b4}
.small-note{font-size:11px;color:var(--muted);line-height:1.6}
.dot{display:inline-block;width:6px;height:6px;background:#b8c9b2;border-radius:50%;margin-right:9px;box-shadow:0 0 12px #b8c9b240}
.button{position:relative;display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:56px;padding:15px 23px;background:var(--white);color:#161719;border:1px solid var(--white);border-radius:3px;font-size:13px;font-weight:500;overflow:hidden;transition:background .55s,color .55s,border-color .55s,transform .8s var(--ease)}
.button:before{content:'';position:absolute;inset:-50% -30%;background:linear-gradient(105deg,transparent 35%,#fff8,transparent 60%);transform:translateX(-110%);transition:transform 1s var(--ease);pointer-events:none}
.button>span:last-child:not(.booking-label){font-size:23px;line-height:1;transition:transform .7s var(--ease)}
.button.small{min-height:42px;padding:10px 17px;font-size:12px}
.button.light{background:var(--white);color:#111;border-color:var(--white)}
.button.outline{background:transparent;color:var(--ink);border-color:#ffffff50}
.text-link{position:relative;display:inline-flex;align-items:center;gap:20px;background:none;border:0;border-bottom:1px solid #ffffff50;padding:8px 0;font-size:13px;width:fit-content;transition:color .5s,border-color .5s}
.text-link span{transition:transform .6s var(--ease)}
.skip{position:fixed;top:-100px;left:20px;padding:15px;background:#eee;color:#111;z-index:300}
.skip:focus{top:10px}
.reading-progress{position:fixed;left:0;top:0;right:0;height:2px;background:var(--blue);z-index:200;transform:scaleX(0);transform-origin:left;pointer-events:none}

.header{height:88px;border-bottom:1px solid #ffffff19;display:flex;align-items:center;gap:30px;padding-inline:48px;background:#0b0d0ee8;position:absolute;top:0;left:0;right:0;z-index:60}
.brand{display:flex;align-items:center;gap:15px;flex-shrink:0}
.brand b{font-family:var(--display);font-size:15px;letter-spacing:1.2px;font-weight:700}
.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:2px;color:#b7b9bb}
.brand-mark{color:var(--white);font-size:37px;letter-spacing:-9px;font-weight:bold;line-height:1;margin-right:5px;transform:skew(-8deg)}
.header nav{display:flex;gap:30px;margin-left:auto;font-size:12px;color:#c5c6c7}
.header-actions{display:flex;align-items:center;gap:18px;margin-left:18px;min-width:0}
.header-hours{margin:0;color:var(--white);font-size:12px;line-height:1.5;max-width:240px;overflow-wrap:anywhere}
.header-actions .button{flex-shrink:0}
.header nav a{padding-block:10px;position:relative}
.header nav a:after{content:'';position:absolute;bottom:3px;left:0;right:0;height:1px;background:var(--white);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.menu-toggle{display:none;background:none;border:0;width:44px;height:44px;padding:10px}
.menu-toggle span{height:1px;background:var(--ink);display:block;margin:6px 0;transition:transform .6s var(--ease)}
.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:absolute;inset:76px 0 auto;background:#111315;z-index:55;padding:24px}
.mobile-menu a{display:block;padding:17px 0;border-bottom:1px solid var(--line);font-family:var(--display);font-size:23px}

.hero{min-height:800px;height:min(980px,100svh);position:relative;isolation:isolate;overflow:hidden;background:#090c0e}
.hero-scene{position:absolute;inset:0;z-index:-3}
.hero-scene img{width:100%;height:100%;object-fit:cover;object-position:64% center}
.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#070a0de6, #070a0d60 48%,#070a0d00 80%),linear-gradient(0deg,#090a0b 0%,transparent 30%,#090a0b10 70%,#090a0b70);z-index:-2;pointer-events:none}

.hero-content{height:100%;display:flex;flex-direction:column;padding-top:130px;min-height:inherit}
.hero-top{display:flex;justify-content:space-between;gap:24px;align-items:center}
.hero-top .eyebrow{margin:0;color:#c6c8c9;font-size:10px}
.hero-heading{flex:1;display:flex;justify-content:center;flex-direction:column;padding:36px 0 42px}
.hero h1{font-size:clamp(62px,7.2vw,112px);line-height:1.025;letter-spacing:-.067em;font-weight:500;max-width:850px}
.hero-line{display:block}
.hero-aside{margin-top:28px}
.hero-aside p{font-size:15px;color:#bdc0c3;line-height:1.7;margin-bottom:27px}
.hero-actions{display:flex;align-items:center;gap:28px}
.hero-actions .text-link{font-size:12px}
.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:20px;padding-bottom:35px}
.scroll-cue{display:flex;gap:14px;align-items:center;font-size:9px;letter-spacing:1.5px;color:#aaaeb1}
.scroll-cue>span{display:grid;place-items:center;width:37px;height:48px;border:1px solid #ffffff35;border-radius:30px;font-size:17px;color:var(--white)}
.hero-bottom>p{font-size:10px;letter-spacing:1.6px;line-height:2;margin-left:auto;margin-right:25px}
.hero-bottom>p span{font-size:11px;letter-spacing:0;color:var(--muted)}
.hero-foot{display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid var(--line);padding-block:26px;font-size:11px;color:var(--muted)}
.hero-foot a{color:var(--white);white-space:nowrap}
.hero-foot a span{margin-left:30px}
.intro{padding-bottom:105px}
.intro-statement{font-size:clamp(31px,3.6vw,56px);max-width:1000px}
.intro-bottom{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-top:45px}
.signature{font-size:11px;letter-spacing:3px;color:#d0bea5}
.intro-bottom p{font-size:13px;color:var(--muted)}
.announcement{margin-top:24px;background:var(--panel);padding:18px 22px;border-left:2px solid var(--blue)}

#services{border-top:1px solid var(--line)}
.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:55px}
.section-heading>p{color:var(--muted);font-size:13px;max-width:360px;margin-bottom:5px}
.catalog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}
.filters,.gallery-tabs{display:flex;gap:8px;flex-wrap:wrap}
.filter{border:1px solid var(--line);background:transparent;border-radius:30px;padding:11px 20px;font-size:12px;transition:background .6s,color .6s,border-color .6s}
.filter.active{background:var(--white);border-color:var(--white);color:#101214}
.services-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.service-card{min-width:0;position:relative;display:flex;flex-direction:column;background:#111315;border:1px solid #ffffff0e;border-radius:7px;overflow:hidden;transition:border-color .7s,transform .8s var(--ease)}
.card-photo{aspect-ratio:1.55;overflow:hidden;background:#171b1e;position:relative}
.card-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#11131566,transparent 50%);pointer-events:none}
.card-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.65);transition:transform 1.6s var(--ease)}
.card-category{position:absolute;left:18px;top:18px;background:#0a0c0fcc;border:1px solid #ffffff20;color:#f0eee9;padding:5px 10px;border-radius:30px;font-size:9px;letter-spacing:1px;z-index:1}
.card-copy{padding:25px;display:flex;flex-direction:column;flex:1}
.card-copy h3{font-size:23px;letter-spacing:-.04em;line-height:1.2;overflow-wrap:anywhere}
.card-copy>p{font-size:12px;color:var(--muted);margin:14px 0 26px;line-height:1.7}
.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;border-top:1px solid var(--line);padding-top:17px}
.card-price{font-size:14px;white-space:nowrap}
.card-open{border:0;background:none;color:#c5b59f;padding:8px 0;font-size:11px}
.card-open:after{content:'';position:absolute;inset:0}
.service-card:focus-within{outline:2px solid var(--blue);outline-offset:4px}
.show-all{grid-column:1/-1;min-height:54px;border:1px solid #ffffff35;border-radius:3px;background:transparent;font-size:12px;margin-top:12px;transition:background .6s,border-color .6s}
.catalog-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:32px}
.catalog-bottom p{font-size:13px}
#catalog-status:not(:empty){padding:16px;background:#2c241c;margin-bottom:20px}
.service-row{grid-column:1/-1;border-bottom:1px solid var(--line);padding:18px}
.service-row summary{display:flex;gap:20px;cursor:pointer}
.service-row summary .service-name{flex:1}
.service-row small{display:block}
.service-index{display:none}
.service-description{padding-top:18px}
.service-description img{object-fit:cover;margin-bottom:20px}

.care-band{height:760px;position:relative;isolation:isolate;overflow:hidden;background:#080a0c}
.care-photo{position:absolute;inset:0;z-index:-2}
.care-photo img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.08);filter:brightness(.65)}
.care-band:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#090a0bde,#090a0b30 65%),linear-gradient(0deg,#090a0b,transparent 25%,transparent 80%,#090a0b);z-index:-1}
.care-copy{padding-block:140px}
.care-copy h2{font-size:clamp(54px,6vw,94px);line-height:1.04}
.care-copy p:not(.eyebrow){color:#c0c4c7;margin:28px 0;font-size:14px}
.care-orbit{position:absolute;right:16%;top:40%;width:180px;height:180px;border:1px solid #ffffff30;border-radius:50%;display:grid;place-items:center;transform:rotate(-15deg)}
.care-orbit:before,.care-orbit:after{content:'';position:absolute;inset:17px;border:1px solid #ffffff18;border-radius:50%}
.care-orbit:after{inset:-35px;border-style:dashed;border-color:#ffffff15}
.care-orbit span{font-size:8px;letter-spacing:2px;max-width:110px;text-align:center;color:#d3d5d7}
.care-orbit i{position:absolute;width:8px;height:8px;background:#dbd2c6;border-radius:50%;top:8px;left:45px;box-shadow:0 0 25px #fff8}
.photo-credit{position:absolute;right:20px;bottom:16px;color:#c4c7ca;background:#090a0b80;padding:4px 8px;border-radius:3px;font-size:9px;z-index:2}

.interior{position:relative}
.interior-heading{margin-bottom:55px}
.interior-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:10%;align-items:center}
.interior-picture{position:relative}
.interior-picture img{width:100%;aspect-ratio:1.1;object-fit:cover;border-radius:5px;filter:saturate(.65)}
.interior-picture .small-note{display:block;margin-top:12px;font-size:10px}
.interior-copy h3{font-size:36px;margin-bottom:28px}
.interior-copy p{color:var(--muted);margin-bottom:20px;font-size:14px}
.interior-copy .button{margin:12px 0 16px}
.interior-copy .small-note{font-size:11px}
.place-section{background:#111315;border-block:1px solid #ffffff08}
.place-layout{display:grid;grid-template-columns:1.45fr 1fr;gap:25px;margin-bottom:22px}
.gallery-open{padding:0;border:0;background:#1c2024;position:relative;overflow:hidden;border-radius:5px;color:white;text-align:left}
.gallery-open img{width:100%;height:100%;object-fit:cover;filter:saturate(.72);transition:transform 1.6s var(--ease)}
.gallery-open>span{position:absolute;left:0;right:0;bottom:0;padding:70px 28px 25px;background:linear-gradient(transparent,#080a0cdb);font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.gallery-open b{font-size:26px;font-weight:400}
.place-main{height:620px}
.place-main img{object-position:52% center}
.place-side{display:grid;grid-template-rows:350px auto;gap:24px}
.place-side>button img{object-position:center 45%}
.place-note{padding:10px 8px 0}
.place-note p{color:var(--muted);max-width:440px;margin-block:14px;font-size:13px}
.photo-library{border-block:1px solid var(--line);margin-top:32px;padding-block:16px}
.photo-library>summary{display:flex;justify-content:space-between;cursor:pointer;font-size:14px;padding:8px 0}
.photo-library>p{margin-block:20px}
.gallery-tabs{margin-block:20px}
.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.photo-grid .gallery-open{aspect-ratio:1.2}
.photo-grid .gallery-open span{font-size:10px;padding:30px 12px 12px}
.principles{display:grid;grid-template-columns:1.2fr 1fr;gap:10%}
.principle-list article{border-bottom:1px solid var(--line);padding:28px 0}
.principle-list article:first-child{padding-top:0}
.principle-list h3{font-size:23px;margin-bottom:14px}
.principle-list p{color:var(--muted);font-size:13px}

.booking-section{position:relative;overflow:hidden;background:#141719;border-block:1px solid var(--line)}
.booking-section:before{content:'';position:absolute;width:70vw;height:70vw;border:1px solid #ffffff08;border-radius:50%;left:-28vw;top:-20vw;box-shadow:0 0 0 80px #ffffff02,0 0 0 160px #ffffff02;pointer-events:none}
.booking-grid{position:relative;display:grid;grid-template-columns:1.25fr 1fr;gap:10%}
.booking-grid h2{font-size:clamp(50px,6.2vw,96px);line-height:1.1}
.booking-grid h2 span{color:#a7a49d}
.booking-section .eyebrow{color:#c0b29f}
.booking-state{font-size:9px;letter-spacing:1.6px;margin-bottom:26px}
.booking-copy h3{font-size:30px;margin-bottom:22px}
.booking-copy>p:not(.booking-state){color:var(--muted);max-width:460px;font-size:14px}
.booking-copy>.button{margin:26px 0 18px}
.booking-copy>.booking-note{font-size:11px!important}
.booking-steps{padding:0;margin:32px 0 0;list-style:none;counter-reset:steps}
.booking-steps li{counter-increment:steps;border-top:1px solid var(--line);padding:16px 0;font-size:12px}
.booking-steps li:before{content:'0' counter(steps);display:inline-block;width:44px;color:#c0b29f;font-size:10px}
.faq{display:grid;grid-template-columns:1fr 1.2fr;gap:9%}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:25px 0;cursor:pointer;font-size:16px;line-height:1.4;transition:color .5s}
.faq summary span{font-size:25px;transition:transform .7s var(--ease);flex-shrink:0;color:#c0b29f}
.faq details[open] summary span{transform:rotate(45deg)}
.faq details p{padding:0 40px 24px 0;color:var(--muted);font-size:13px}
summary::-webkit-details-marker{display:none}
.contacts{background:#111315}
.contacts .section-heading{align-items:end}
.contact-phone{font-family:var(--display);font-size:clamp(23px,2.5vw,38px);letter-spacing:-.04em}
.contacts .section-heading p:not(.eyebrow){color:var(--muted);margin-top:13px;font-size:12px}
.contact-grid{display:grid;grid-template-columns:.8fr 1.4fr;gap:24px}
.address-card{background:#1a1c1e;border:1px solid #ffffff09;padding:35px;display:flex;align-items:start;flex-direction:column;border-radius:5px}
.location-mark{font-size:56px;color:var(--blue);line-height:1;margin-bottom:28px}
.address-card h3{font-size:25px;line-height:1.4;max-width:360px;overflow-wrap:anywhere}
.address-card .button{margin-top:30px}
.address-card .text-link{margin-block:16px 25px}
.address-card .small-note{margin-top:auto}
.map-container{min-height:470px;position:relative;background:#292d2e;border-radius:5px;overflow:hidden}
.map-container iframe{border:0;position:absolute;inset:0;width:100%;height:100%;pointer-events:none;filter:grayscale(.85)}
.map-container.active iframe{pointer-events:auto;filter:none}
.map-activate{position:absolute;inset:0;width:100%;border:0;background:transparent;display:flex;align-items:end;justify-content:center;padding:20px;font-size:12px;color:#eee;isolation:isolate}
.map-activate:after{content:'';position:absolute;left:0;right:0;bottom:0;height:60px;background:#111315eb;z-index:-1}
.map-deactivate{position:absolute;top:12px;right:12px;border:1px solid var(--line);border-radius:3px;background:#111315;padding:12px;font-size:12px;z-index:2}

.footer{padding-block:65px 32px}
.footer-wordmark{font-family:var(--display);font-size:clamp(50px,12vw,185px);letter-spacing:-.075em;font-weight:700;line-height:1.2;padding-bottom:45px;color:#24272a;white-space:nowrap}
.footer-wordmark span{font-size:20px;vertical-align:top;letter-spacing:0;margin-left:12px;line-height:4}
.footer-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:32px;border-bottom:1px solid var(--line)}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:26px;font-size:10px;color:var(--muted)}
#studio-link{color:#c4b59f;border-bottom:1px solid #c4b59f50;padding-block:5px}
.mobile-booking{display:none}

dialog{padding:0;border:1px solid #ffffff25;color:var(--ink);border-radius:9px;max-height:90svh;box-shadow:0 30px 100px #0009}
dialog::backdrop{background:#030405e6;backdrop-filter:blur(12px)}
.dialog-close{position:absolute;right:16px;top:16px;z-index:5;border:1px solid #ffffff30;border-radius:50%;width:44px;height:44px;background:#171b1fe8;color:var(--ink);font-size:28px;line-height:1;transition:transform .7s var(--ease),background .5s}
.service-dialog{width:min(1040px,calc(100% - 48px));background:var(--panel);overflow:auto}
.service-detail-grid{display:grid;grid-template-columns:1fr 1.1fr}
.service-detail-image{position:relative;background:#1d2125;min-height:540px}
.service-detail-image img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.service-detail-image .photo-credit{bottom:15px;right:15px;left:15px;width:fit-content}
.service-detail-copy{padding:60px 40px 36px}
.service-detail-copy .eyebrow{color:var(--blue);margin-bottom:18px}
.service-detail-copy h2{font-size:38px;line-height:1.12;overflow-wrap:anywhere}
.service-detail-copy .lead{font-size:17px;line-height:1.5;margin-block:24px;color:var(--white)}
.service-detail-copy h3{font-size:12px;font-weight:600;margin:25px 0 10px;letter-spacing:.3px}
.service-detail-copy p{font-size:13px;color:var(--muted);white-space:pre-line}
.service-facts{display:flex;gap:30px;margin-block:28px;border-block:1px solid var(--line);padding-block:18px}
.service-facts small{display:block;font-size:10px;color:var(--muted);margin-bottom:7px}
.service-facts strong{font-size:15px;font-weight:400}
.service-detail-copy .button{width:100%}
.gallery-dialog{width:min(1100px,calc(100% - 40px));background:#0d1013;color:white;overflow:auto}
.gallery-dialog>img{height:72svh;width:100%;object-fit:contain;background:#0d1013}
.gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px}
.gallery-controls p{font-size:11px;text-align:center;color:#c5c7ca}
.gallery-controls button{background:transparent;color:white;border:1px solid #ffffff40;border-radius:50%;width:44px;height:44px;flex-shrink:0;font-size:22px}
.image-failed{object-fit:contain!important;background:#202529}
.empty{grid-column:1/-1;padding:36px;border:1px solid var(--line)}

.consult-launch{position:fixed;right:24px;bottom:24px;z-index:45;display:flex;align-items:center;gap:12px;background:#202427e8;border:1px solid #c4b59f55;padding:12px 20px 12px 12px;border-radius:50px;font-size:11px;transition:transform .7s var(--ease),background .6s}
.consult-spark{display:grid;place-items:center;width:34px;height:34px;border:1px solid #c4b59f55;border-radius:50%;color:#d0bea5;font-size:24px}
.consult-dialog{width:min(510px,calc(100% - 32px));background:#121619;padding:36px;max-height:90svh;overflow:auto}
.consult-head .consult-spark{width:48px;height:48px;margin-bottom:24px;font-size:32px}
.consult-head .eyebrow{font-size:8px;margin-bottom:14px}
.consult-head h2{font-size:38px;margin-bottom:18px}
.consult-head>p:last-child{color:var(--muted);font-size:13px}
.consult-suggestions{display:flex;flex-wrap:wrap;gap:8px;margin-block:25px}
.consult-suggestions button{border:1px solid var(--line);background:#1c2024;border-radius:20px;font-size:11px;padding:9px 13px;transition:background .5s}
.consult-messages{display:flex;flex-direction:column;gap:12px;max-height:340px;overflow:auto;overscroll-behavior:contain}
.consult-message{padding:16px 18px;background:#1b2024;border:1px solid #ffffff0c;border-radius:12px;font-size:13px;white-space:pre-wrap}
.consult-message.user{align-self:end;background:#353631;max-width:90%;border-radius:12px 12px 3px 12px}
.consult-message a{display:block;color:#d0bea5;margin-top:10px}
.consult-service{display:block;width:100%;text-align:left;background:transparent;border:0;border-top:1px solid var(--line);padding:12px 0 0;margin-top:12px;font-size:12px;color:var(--white)}
.consult-service span{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.consult-input-row{display:flex;border:1px solid #ffffff30;border-radius:5px;align-items:center;margin-top:22px;padding:5px;background:#0c1013}
.consult-input-row:focus-within{border-color:var(--blue)}
.consult-input-row input{min-width:0;flex:1;border:0;background:none;color:var(--white);padding:10px;font-size:12px;outline:0}
.consult-input-row input::placeholder{color:#989da2}
.consult-input-row button{width:40px;height:40px;border:0;border-radius:3px;background:var(--white);color:#111;font-size:24px}
.consult-mode{font-size:9px;color:var(--muted);margin-top:13px;line-height:1.6}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media(hover:hover) and (pointer:fine){.button:hover{background:#d0bea5;border-color:#d0bea5;color:#111}
.button:hover:before{transform:translateX(110%)}
.button:hover>span:last-child:not(.booking-label){transform:translate(3px,-3px)}
.text-link:hover{color:var(--blue);border-color:var(--blue)}
.text-link:hover span{transform:translate(3px,-2px)}
.header nav a:hover:after{transform:scaleX(1)}
.service-card:hover{border-color:#ffffff35;transform:translateY(-3px)}
.service-card:hover .card-photo img,.gallery-open:hover img{transform:scale(1.035)}
.filter:not(.active):hover,.show-all:hover{background:#23272b;border-color:#ffffff60}
.faq summary:hover{color:var(--blue)}
.dialog-close:hover{transform:rotate(90deg);background:#333}
.consult-launch:hover{transform:translateY(-4px);background:#303538}
.consult-suggestions button:hover{background:#343a3e}
}

@media(min-width:1700px){.hero{height:980px}
.hero h1{font-size:118px}
.hero-content{padding-top:150px}
.hero-aside p{font-size:17px}
.card-photo{aspect-ratio:1.6}
}

@media(max-width:1200px){.wrap{width:calc(100% - 80px)}
.header{padding-inline:40px;gap:20px}
.header nav{gap:22px}
.hero{min-height:760px}
.section{padding-block:95px}
.card-copy{padding:21px}
.card-copy h3{font-size:21px}
.card-bottom{align-items:start;flex-direction:column;gap:2px}
.place-main{height:570px}
.place-side{grid-template-rows:300px auto}
.booking-grid{gap:6%}
.booking-grid h2{font-size:6vw}
.address-card{padding:26px}
.address-card h3{font-size:23px}
}

@media(max-width:900px){.wrap{width:calc(100% - 56px)}
.header{padding-inline:28px}
.header nav{gap:18px}
.hero h1{font-size:clamp(64px,8.8vw,80px)}
.hero-scene img{object-position:61% center}
.hero:after{background:linear-gradient(90deg,#070a0de6,#070a0d60 65%,#070a0d10),linear-gradient(0deg,#090a0b,transparent 35%)}
.section-heading>p{max-width:250px;font-size:12px}
.services-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.card-bottom{flex-direction:row;align-items:center}
.catalog-toolbar{align-items:start;flex-direction:column;gap:15px}
.interior-grid{gap:7%}
.interior-copy h3{font-size:28px}
.interior-copy p{font-size:13px}
.place-layout{grid-template-columns:1fr 1fr;gap:20px}
.place-main{height:530px}
.place-side{grid-template-rows:260px auto}
.place-note h3{font-size:24px}
.place-note p{font-size:12px}
.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.principles{gap:7%}
.booking-copy h3{font-size:25px}
.faq{gap:6%}
.faq summary{font-size:14px}
.contact-grid{grid-template-columns:1fr 1.2fr}
.address-card .button{font-size:11px;padding:14px;gap:10px}
.care-orbit{right:10%;width:135px;height:135px}
.service-detail-copy{padding:65px 26px 30px}
.service-detail-copy h2{font-size:32px}
.service-facts{gap:18px;flex-wrap:wrap}
.footer-bottom{flex-wrap:wrap}
}

@media(max-width:1000px){
.header nav{display:none}
.header-actions{margin-left:auto}
.menu-toggle{display:block}
.mobile-menu{top:88px}
}
@media(max-width:800px){.header{height:76px}
.mobile-menu{top:76px}
.hero-content{padding-top:110px}
.hero{height:850px;min-height:0}
.hero-bottom>p{margin-right:0}
.hero-top .eyebrow{font-size:9px;letter-spacing:1.4px}
.section-heading{align-items:start}
.contact-grid{grid-template-columns:1fr}
.address-card{display:grid;grid-template-columns:1fr 1fr;gap:16px 32px}
.location-mark{display:none}
.address-card .button{margin:0;align-self:start}
.address-card .text-link{margin:0}
.address-card .small-note{grid-column:2;grid-row:2/4}
.map-container{height:420px;min-height:0}
.faq{grid-template-columns:1fr;gap:35px}
.intro-bottom{align-items:start}
.intro-bottom p{font-size:12px}
.service-detail-grid{grid-template-columns:1fr 1fr}
.consult-launch{right:18px;bottom:18px}
}

@media(max-width:600px){html{scroll-padding-top:24px}
.wrap{width:calc(100% - 40px)}
.header{height:72px;padding-inline:20px;gap:12px}
.brand{gap:12px}
.brand b{font-size:13px}
.brand small{font-size:6.5px;letter-spacing:1.7px}
.brand-mark{font-size:30px;letter-spacing:-7px}
.header .button{padding:8px 12px;min-height:38px;gap:10px;font-size:11px}
.menu-toggle{width:36px;padding:7px}
.mobile-menu{top:72px}
.hero{height:850px;min-height:760px;max-height:1080px}
.hero-content{padding-top:102px}
.hero-top{display:block}
.hero-heading{justify-content:start;padding-top:36px;padding-bottom:10px}
.hero h1{font-size:clamp(52px,12.8vw,76px);letter-spacing:-.065em;line-height:1.06}
.hero-aside{margin-top:27px}
.hero-aside p{font-size:13px;margin-bottom:24px;color:#c0c5c8}
.hero-actions{gap:22px;align-items:start;flex-direction:column}
.hero-actions .button{font-size:12px;min-height:51px;padding:13px 18px;gap:25px}
.hero-actions .text-link{font-size:11px;padding-bottom:5px}
.hero-scene img{object-position:66% center}
.hero:after{background:linear-gradient(180deg,#080a0d80,#080a0d4d 52%,#090a0b10 78%,#090a0b 100%),linear-gradient(90deg,#070a0dcc,#070a0d30 85%)}
.hero-bottom{padding-bottom:30px;gap:12px}
.scroll-cue{font-size:8px;letter-spacing:1px;gap:10px;max-width:160px}
.scroll-cue>span{flex-shrink:0;width:30px;height:40px}
.hero-bottom>p{font-size:8px;letter-spacing:1px}
.hero-bottom>p span{font-size:9px}
.hero-foot{padding-block:22px;align-items:start;font-size:10px;gap:24px}
.hero-foot>span{max-width:220px}
.hero-foot a{white-space:normal;max-width:90px}
.hero-foot a span{margin-left:7px}
.section{padding-block:76px}
.eyebrow{font-size:9px;letter-spacing:1.7px;margin-bottom:22px}
h2{font-size:39px;line-height:1.14}
.intro-statement{font-size:29px;line-height:1.28;letter-spacing:-.035em}
.intro-bottom{display:block;margin-top:32px}
.intro-bottom p{margin-top:25px;font-size:12px}
.section-heading{display:block;margin-bottom:33px}
.section-heading>p{margin-top:25px;max-width:320px;font-size:12px}
.filters{gap:7px}
.filter{padding:10px 15px;font-size:11px}
.catalog-toolbar{margin-bottom:22px}
.services-list{grid-template-columns:1fr;gap:20px}
.card-photo{aspect-ratio:1.6}
.card-copy{padding:24px}
.card-copy h3{font-size:25px}
.card-copy>p{font-size:13px;margin-bottom:24px}
.card-bottom{padding-top:17px}
.card-price{font-size:15px}
.card-open{font-size:12px}
.show-all{margin-top:5px}
.catalog-bottom{align-items:start;flex-direction:column;gap:16px}
.catalog-bottom p{font-size:12px}
.care-band{height:660px}
.care-copy{padding-block:90px}
.care-copy h2{font-size:57px}
.care-copy p:not(.eyebrow){font-size:13px;margin-block:25px}
.care-photo img{object-position:62% center}
.care-orbit{right:12%;top:74%;width:80px;height:80px}
.care-orbit:after{inset:-15px}
.care-orbit span{font-size:5px;letter-spacing:1px;max-width:60px}
.care-orbit i{width:5px;height:5px;top:0;left:23px}
.care-band .photo-credit{font-size:8px;right:14px;bottom:12px}
.interior-heading{margin-bottom:32px}
.interior-grid{grid-template-columns:1fr;gap:32px}
.interior-picture img{aspect-ratio:1.15}
.interior-copy h3{font-size:30px}
.interior-copy p{font-size:13px}
.place-layout{grid-template-columns:1fr;gap:20px}
.place-main{height:auto;aspect-ratio:1}
.place-side{grid-template-rows:280px auto;gap:20px}
.place-note{padding:5px 0}
.place-note h3{font-size:28px}
.place-note p{font-size:13px}
.photo-library>summary{font-size:12px;gap:20px}
.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.photo-grid .gallery-open span{font-size:9px;padding:25px 10px 10px}
.principles{grid-template-columns:1fr;gap:36px}
.principle-list article{padding:24px 0}
.principle-list h3{font-size:22px}
.booking-grid{grid-template-columns:1fr;gap:44px}
.booking-grid h2{font-size:48px}
.booking-copy h3{font-size:27px}
.booking-copy>p:not(.booking-state){font-size:13px}
.booking-copy>.button{width:100%}
.booking-section:before{width:700px;height:700px;left:-400px;top:-350px}
.faq{gap:32px}
.faq summary{font-size:14px;padding-block:22px}
.faq details p{font-size:12px;padding-right:16px}
.contacts .section-heading>div:last-child{margin-top:30px}
.contact-phone{font-size:29px}
.contact-grid{gap:20px}
.address-card{display:flex;padding:27px;gap:0}
.address-card h3{font-size:24px}
.address-card .button{margin-top:28px;font-size:12px;width:100%;padding-inline:18px}
.address-card .text-link{margin-block:18px 24px}
.address-card .small-note{font-size:10px}
.map-container{height:350px}
.footer{padding-top:44px;padding-bottom:105px}
.footer-wordmark{font-size:12vw;padding-bottom:32px}
.footer-wordmark span{font-size:11px;margin-left:6px;line-height:2}
.footer-top{padding-bottom:25px}
.footer-bottom{flex-direction:column;align-items:start;gap:13px;font-size:10px}
.mobile-booking{display:block;position:fixed;left:0;right:0;bottom:0;padding:10px 20px calc(10px + env(safe-area-inset-bottom));background:#0b0e11e8;z-index:40;border-top:1px solid #ffffff20}
.mobile-booking a{display:flex;align-items:center;justify-content:space-between;min-height:44px;background:var(--white);color:#141618;padding:10px 16px;border-radius:3px;font-size:12px}
.mobile-booking a>span:last-child{font-size:21px}
.consult-launch{bottom:calc(83px + env(safe-area-inset-bottom));right:16px;width:48px;height:48px;padding:6px;justify-content:center}
.consult-launch>span:last-child{display:none}
.consult-launch .consult-spark{border:0;font-size:28px}
.service-dialog{width:calc(100% - 24px);max-height:92svh}
.service-detail-grid{display:block}
.service-detail-image{height:240px;min-height:0}
.service-detail-copy{padding:30px 24px}
.service-detail-copy h2{font-size:33px}
.service-detail-copy .lead{font-size:16px;margin-block:20px}
.service-facts{gap:24px}
.service-facts strong{font-size:14px}
.gallery-dialog{width:calc(100% - 20px)}
.gallery-dialog>img{height:65svh}
.gallery-controls{padding:16px 12px;gap:12px}
.gallery-controls p{font-size:10px}
.consult-dialog{padding:28px 22px;max-height:85svh}
.consult-head h2{font-size:35px}
.consult-messages{max-height:28svh}
.consult-head>p:last-child{font-size:12px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*:before,*:after{animation:none!important;transition:none!important}
.photo-motion img{transform:none!important}
.service-card:hover{transform:none}
.silver{background:none;-webkit-text-fill-color:currentColor;color:#bdc0c3}
}


.consult-dialog.has-messages .consult-head .consult-spark{display:none}
.consult-dialog.has-messages .consult-head>p:last-child{display:none}
.consult-dialog.has-messages .consult-suggestions{margin-block:18px}
.consult-dialog.has-messages .consult-messages{max-height:42svh}


.motion-toggle{font:inherit;color:var(--muted);background:transparent;border:0;border-bottom:1px solid var(--line);padding:4px 0}
.motion-toggle[aria-pressed=true]{color:var(--blue)}
.motion-toggle:disabled{cursor:default;opacity:1}

html[data-reduce-motion=true]{scroll-behavior:auto}
html[data-reduce-motion=true] *,html[data-reduce-motion=true] *:before,html[data-reduce-motion=true] *:after{animation:none!important;transition:none!important}
html[data-reduce-motion=true] .photo-motion img,html[data-reduce-motion=true] .service-card:hover{transform:none!important}


/* A single, slow camera movement; all other large surfaces stay composited. */
.hero-scene{animation:camera-drift 30s ease-in-out infinite alternate;transform-origin:65% 65%}
.hero:before{content:none}
.hero-top .dot{animation:status-breathe 6s ease-in-out infinite}
.hero h1 .silver{animation:none}
.scroll-cue>span{animation:scroll-invite 4.5s ease-in-out infinite}
.care-photo{animation:none}
.consult-message.pending{position:relative;min-height:58px}
.consult-message.pending:after{content:'···';display:inline-block;margin-left:8px;letter-spacing:3px;animation:status-breathe 1.8s ease-in-out infinite}
.service-card:focus-within{border-color:var(--blue)}
.gallery-open:focus-visible img{transform:scale(1.035)}
.consult-service{transition:color .5s var(--ease),transform .65s var(--ease)}
.consult-service:hover,.consult-service:focus-visible{color:var(--blue);transform:translateX(3px)}
.footer-bottom a{transition:color .5s}
.footer-bottom a:hover{color:var(--ink)}
.ambient-paused,.ambient-paused *{animation-play-state:paused!important}
.button:focus-visible:before{transform:translateX(110%)}
@keyframes camera-drift{from{transform:scale(1)}to{transform:scale(1.025)}}
@keyframes status-breathe{50%{opacity:.45}}
@keyframes scroll-invite{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(5px)}}
@media(prefers-reduced-motion:reduce){.hero-scene{animation:none;transform:none}}
html[data-reduce-motion=true] .hero-scene{animation:none;transform:none}

/* Final integration: the previous composition, with centered dialogue artwork. */
.consult-spark{flex:none;line-height:0;animation:none}

.consult-icon{display:block;width:28px;height:28px;object-fit:contain;margin:0;transform:none}

.consult-head .consult-icon{width:34px;height:34px}

.consult-launch:hover .consult-icon{transform:scale(1.06);transition:transform .55s var(--ease)}

.consult-launch:focus-visible{outline-offset:4px}

.consult-launch,.consult-input-row button,.dialog-close,.gallery-controls button{min-width:44px;min-height:44px}

.consult-dialog{overscroll-behavior:contain;scrollbar-gutter:stable;max-height:calc(100dvh - 32px)}

.consult-input-row input{min-width:0;font-size:16px}

.consult-input-row{position:sticky;bottom:0;background:var(--panel);z-index:1}

.consult-messages{overscroll-behavior:contain;overflow-wrap:anywhere}

.consult-message.pending{min-height:54px}

.service-dialog,.gallery-dialog{overscroll-behavior:contain}

.gallery-dialog>img{touch-action:pan-y}

.headline-mask{max-width:100%}

.catalog-toolbar{min-height:44px}

#catalog-status:empty{display:none}

@media(max-width:600px){
 .consult-launch{width:50px;height:50px;padding:0;display:grid;place-items:center}

 .consult-launch .consult-spark{width:34px;height:34px;margin:0;padding:0;display:grid;place-items:center}

 .consult-launch .consult-icon{width:32px;height:32px}

 .consult-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px);padding:28px 20px}

 .filter{min-height:44px}

 .card-open{min-height:44px}

 .hero-visible .mobile-booking{transform:translateY(110%);visibility:hidden;pointer-events:none}

 .hero-visible .consult-launch{bottom:calc(20px + env(safe-area-inset-bottom))}

 .mobile-booking{transition:transform .6s var(--ease)}

 .consult-dialog.has-messages .consult-head h2{font-size:28px}

}

@media(max-width:359px){
 .header{padding-inline:14px;gap:7px}

 .brand{gap:10px}
.brand b{font-size:11px}

 .header .button{padding-inline:9px;gap:6px;font-size:10px}

 .wrap{width:calc(100% - 32px)}

 .hero h1{font-size:12.7vw}

 .hero-aside p{font-size:13px}

 .hero-bottom{gap:12px}
.hero-bottom>p{font-size:8px}

 h2{font-size:34px}

 .address-card{padding:22px}
.address-card .button{gap:10px;font-size:11px}

 .consult-launch{right:12px}

}

/* Keep the helper clear of the hero caption and the bottom booking bar. */
.menu-toggle{min-width:44px;min-height:44px}
@media(max-width:600px){.hero-visible .consult-launch{bottom:calc(96px + env(safe-area-inset-bottom))}}

/* Scroll the contents while keeping close controls available on small screens. */
.service-dialog{overflow:hidden}
#service-detail{max-height:calc(92dvh - 4px);overflow-y:auto;overscroll-behavior:contain}
.consult-dialog{padding:0;overflow:hidden}
.consult-body{padding:36px;max-height:calc(100dvh - 36px);overflow-y:auto;overscroll-behavior:contain}
@media(max-width:600px){.consult-body{padding:28px 20px;max-height:calc(100dvh - 28px)}}
/* Dedicated space for the helper: clear of catalog actions and the mobile CTA. */
.consult-launch{right:8px;bottom:24px;width:48px;height:48px;padding:0;display:grid;place-items:center}
.consult-launch>span:last-child{display:none}
.consult-launch .consult-spark{width:36px;height:36px;border:0;margin:0}
.consult-launch .consult-icon{width:32px;height:32px}
@media(max-width:600px){
 .mobile-booking{padding-right:84px}
 .consult-launch{right:20px;bottom:calc(10px + env(safe-area-inset-bottom));width:45px;height:45px}
 .hero-visible .consult-launch{bottom:calc(96px + env(safe-area-inset-bottom))}
 .mobile-booking a{gap:8px}
}

/* Refinement 4: typography, quiet silver linework and resilient map controls. */
body{font-size:16px;scrollbar-color:#666d72 #141618}
input,textarea{caret-color:var(--blue)}
h2,h3{letter-spacing:-.025em}
.hero h1{letter-spacing:-.035em}
.footer-wordmark{letter-spacing:-.04em;font-weight:500;color:#646b70}
.card-copy>p,.principle-list p,.faq details p,.interior-copy>p,.place-note p,.booking-copy>p:not(.booking-state),.service-detail-copy>p{font-size:16px;line-height:1.65;max-width:65ch}
.card-copy h3{font-size:25px}
.consult-head>p:last-child,.consult-message{font-size:15px}
.consult-mode,.consult-service span{font-size:12px}
.card-price,.service-facts strong{font-variant-numeric:tabular-nums}
.eyebrow,.hero-top .eyebrow,.consult-head .eyebrow,.booking-state,.brand small,.card-category,.photo-credit,.scroll-cue,.hero-bottom>p{font-size:11px}
.eyebrow{letter-spacing:1.6px}
.brand small{letter-spacing:.7px}
.footer-bottom{font-size:12px}
.hero-bottom>p{letter-spacing:1px}
.price-source{font-size:12px;color:var(--muted);max-width:68ch;margin:0 0 28px}
.price-source a{text-decoration:underline;text-underline-offset:4px;color:#c8c4bd}
.section-art{display:block;width:100%;max-width:520px;height:auto;margin-top:40px;color:#747d83;pointer-events:none;overflow:visible}
.section-art .art-drift{animation:diagram-breathe 7s ease-in-out infinite}
.section-art .art-light{animation:diagram-breathe 9s ease-in-out infinite}
.clock-sweep{transform-origin:260px 122px;animation:clock-turn 60s linear infinite}
@keyframes diagram-breathe{0%,100%{opacity:.3}50%{opacity:.85}}
@keyframes clock-turn{to{transform:rotate(360deg)}}
.booking-section:before{content:none}
.footer{position:relative;isolation:isolate}
.footer-art{position:absolute;inset:0;max-width:none;height:180px;margin:0;opacity:.6;z-index:-1;overflow:hidden}
.footer-wordmark{position:relative;padding-top:24px}
.consult-launch{border-radius:14px;background:#1a1e21;border-color:#92999e66;backdrop-filter:none}
.consult-head .consult-spark{border:0;border-radius:0}
.consult-icon{transition:transform .75s var(--ease),opacity .55s var(--ease)}
.consult-launch:hover .consult-icon{transform:translateY(-1px);transition:transform .75s var(--ease)}
.consult-message{border-radius:5px;border:0}
.consult-message.user{border-radius:5px 5px 0 5px}
.consult-body,.consult-messages{scroll-behavior:smooth;overflow-anchor:none}
.consult-dialog.has-messages .consult-head>p:last-child{display:none}
.consult-dialog.has-messages .consult-head h2{margin-bottom:12px}
.consult-messages{max-height:min(40dvh,360px);scrollbar-gutter:stable}
.consult-service{min-height:44px;font-size:14px}
.map-recovery{position:absolute;bottom:0;left:0;right:0;min-height:46px;background:#15191c;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px 16px;z-index:3;font-size:12px}
.map-recovery button{padding:8px 0;background:none;border:0;color:#c6cbd0}
.map-recovery a{color:var(--blue);text-align:right}
.map-activate{padding-bottom:62px}
.map-activate:after{height:94px}
.map-container iframe{height:calc(100% - 46px);filter:none}
@media(max-width:800px){.section-art{max-width:420px;margin-top:28px}.principles,.faq{gap:36px}.footer-art{height:150px}}
@media(max-width:600px){.hero h1{font-size:clamp(43px,12.3vw,70px);letter-spacing:-.035em}.hero-top{align-items:start;gap:12px}.hero-top .eyebrow{max-width:190px}.header{gap:10px}.header .brand{gap:10px}.header .brand-mark{font-size:25px}.header .brand small{font-size:9px;letter-spacing:.2px}.header .button{font-size:11px}.brand b{font-size:13px}.section-art{max-width:340px;margin:26px 0 6px}.footer-art{height:95px}.footer-wordmark{padding-top:12px}.card-copy>p{font-size:15px}.hero-bottom>p{font-size:11px;letter-spacing:0}.scroll-cue{font-size:10px}.map-recovery{font-size:11px;gap:10px}.consult-suggestions button{min-height:44px}.hero-scene{animation-duration:36s}}
@media(max-width:359px){.header .brand small{display:none}.header .brand b{font-size:12px}.header .button{font-size:11px;padding-inline:9px}.hero-top{flex-wrap:wrap}.hero h1{font-size:12.3vw}.hero-bottom>p{font-size:10px}.scroll-cue{font-size:9px}.hero-bottom{gap:8px}}
@media(prefers-reduced-motion:reduce){.section-art *{animation:none!important}.consult-body,.consult-messages{scroll-behavior:auto}}
html[data-reduce-motion=true] .section-art *{animation:none!important}
html[data-reduce-motion=true] .consult-body,html[data-reduce-motion=true] .consult-messages{scroll-behavior:auto}

.headline-word{display:inline-block}
.headline-mask{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.12em;margin-bottom:-.12em}

.scroll-words .word{color:var(--ink)}

/* Release 5: predictable controls at narrow widths and with the keyboard open. */
.map-recovery{min-height:56px}
.map-recovery button,.map-recovery a{display:flex;align-items:center;min-height:44px}
.map-container iframe{height:calc(100% - 56px)}
.map-activate{bottom:56px;padding-bottom:18px}
.map-activate:after{height:60px}
.consult-head .eyebrow{padding-right:32px}
.consult-body{scroll-padding-bottom:24px}
.consult-input-row{min-height:56px}
.consult-head .consult-spark{margin-top:2px}
.mobile-booking{transition:transform .7s var(--ease)}
@media(max-width:600px){
 .consult-input-row input{padding-inline:8px}
 .map-recovery{padding-inline:12px}
 .footer-wordmark{font-size:11.8vw;letter-spacing:-.045em}
 .hero-visible .consult-launch{bottom:calc(96px + env(safe-area-inset-bottom))}
}

.map-fallback{position:absolute;inset:0 0 56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;background:radial-gradient(ellipse at center,#292f33,#181d21);text-align:center;color:var(--muted)}
.map-fallback svg{height:72px;color:#b3b9bd}
.map-fallback strong{font-size:18px;font-weight:500;color:var(--ink)}
.map-fallback p{font-size:14px}
.map-fallback[aria-hidden=true]{visibility:hidden}
.map-status{position:absolute;top:16px;left:16px;right:16px;z-index:2;background:#14191eee;border:1px solid var(--line);padding:10px 14px;font-size:13px;pointer-events:none}

/* Long content and short landscape viewports keep their controls reachable. */
.address-card h3,.consult-service,.consult-message,.booking-label{overflow-wrap:anywhere}
.service-detail-copy,.consult-body,.address-card{min-width:0}
.button.small,.motion-toggle{min-height:44px}
.gallery-dialog{max-height:calc(100dvh - 24px)}
.gallery-controls{min-width:0}.gallery-controls p{overflow-wrap:anywhere;min-width:0}
@media(max-height:500px){
 .gallery-dialog>img{max-height:calc(100dvh - 140px)}
 .consult-body{max-height:calc(100dvh - 28px)}
}

@media(max-width:600px){.header .button{min-height:44px}}

@media(max-width:600px){
 .header{height:108px;display:grid;grid-template-columns:minmax(0,1fr) auto 36px;grid-template-rows:64px auto;column-gap:12px;row-gap:0;align-items:center;background:#0b0d0e}
 .header .brand{grid-column:1;grid-row:1}
 .header-actions{display:contents}
 .header-actions .button{grid-column:2;grid-row:1;margin:0}
 .header .menu-toggle{grid-column:3;grid-row:1}
 .header-hours{grid-column:1/-1;grid-row:2;justify-self:end;text-align:right;padding:0 48px 12px 0;max-width:100%;font-size:12px}
 .mobile-menu{top:108px}
 .hero-content{padding-top:138px}
}

/* Readable supporting copy and controls at every breakpoint. */
.small-note,.signature,.hero-foot,.hero-foot a,.scroll-cue,.hero-bottom>p,
.eyebrow,.hero-top .eyebrow,.consult-head .eyebrow,.booking-state,
.card-category,.photo-credit,.map-recovery{font-size:12px}

/* Installation entry uses the existing button style and wraps on small screens. */
.app-entry{display:flex;flex-wrap:wrap;gap:12px;padding-bottom:24px}.app-entry .button{max-width:100%;white-space:normal;text-wrap:balance}
