/* Screen approximations inspired by RAL 9005 / 9016, not physical color matches. */
@font-face{font-family:Manrope;src:url('fonts/manrope-cyrillic.woff2') format('woff2');font-style:normal;font-weight:400 800;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}

@font-face{font-family:Manrope;src:url('fonts/manrope-latin.woff2') format('woff2');font-style:normal;font-weight:400 800;font-display:swap;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}

@font-face{font-family:Manrope;src:url('fonts/manrope-latin-ext.woff2') format('woff2');font-style:normal;font-weight:400 800;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{color-scheme:dark;--ink:#0c0d0f;--paper:#f1f2ef;--text:#f0f1ef;--muted:#a5a8ae;--line:#ffffff16;--surface:#15171b;--ease:cubic-bezier(.22,1,.36,1)}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px;scrollbar-gutter:stable}
body{margin:0;background:var(--ink);color:var(--text);font:16px/1.65 Manrope,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
::selection{background:#f0f1ef;color:#101112}
a{color:inherit;text-underline-offset:5px}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{touch-action:manipulation}
button,a{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid #e7e9ed;outline-offset:5px}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{line-height:1.12;letter-spacing:-.055em;text-wrap:balance}
h1{font-size:clamp(48px,6.3vw,92px);font-weight:600;margin-bottom:26px}
h2{font-size:clamp(32px,3.7vw,52px);font-weight:550;margin-bottom:24px}
h3{font-size:23px;font-weight:600}
.wrap{width:min(1240px,calc(100% - 96px));margin-inline:auto}
main,footer,.header{position:relative}
main{z-index:1}
.skip{position:fixed;left:16px;top:-90px;background:#fff;color:#111;padding:14px 20px;border-radius:8px;z-index:100}
.skip:focus{top:12px}
[hidden]{display:none!important}

/* Slow light fields use only compositor transforms. No canvas or video. */
.page-atmosphere{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0;contain:strict}
.page-atmosphere>i{position:absolute;width:min(100vw,1100px);height:min(90vw,1000px);top:-30%;left:20%;background:radial-gradient(ellipse,#70798622 0,#41464e0c 40%,transparent 70%);border-radius:50%;animation:ambient-drift 24s ease-in-out infinite alternate}
.page-atmosphere>i:nth-child(2){width:800px;height:800px;left:-480px;top:45%;background:radial-gradient(ellipse,#8d929817,transparent 68%);animation-duration:32s;animation-delay:-12s}
.atmosphere-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff02 1px,transparent 1px),linear-gradient(90deg,#ffffff02 1px,transparent 1px);background-size:96px 96px;mask-image:linear-gradient(#0008,transparent 80%)}

.header{z-index:40;position:sticky;top:0;background:#0c0d0fe8;border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}
.home-page .header{position:fixed;top:0;left:0;width:100%;transform:translateY(calc(-100% - 1px));opacity:0;pointer-events:none;transition:transform .45s var(--ease),opacity .3s ease}
.home-page.home-header-visible .header{transform:translateY(0);opacity:1;pointer-events:auto}
.home-page .header:has(:focus-visible){transform:translateY(0);opacity:1;pointer-events:auto}
.nav{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:84px}
.identity{display:flex;align-items:center;text-decoration:none;gap:12px}
.identity img{object-fit:contain;flex:none;width:49px;height:48px}
.identity>span{font-weight:800;font-size:22px;letter-spacing:-.05em}
.nav nav{display:flex;align-items:center;gap:32px}
.nav nav>a{font-size:14px;text-decoration:none;font-weight:500;color:#b9bdc4;transition:color .2s}
.nav nav>a:not(.button):hover,.nav nav>a:not(.button)[aria-current]{color:#fff}
.nav nav>.button,.nav nav>.button:hover,.nav nav>.button:focus-visible,.nav nav>.button:active{color:var(--ink)}
.button{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:space-between;gap:32px;padding:17px 24px;min-height:56px;background:#eff1ee;color:var(--ink);font-size:15px;font-weight:700;text-decoration:none;border:1px solid #ffffffb3;border-radius:10px;line-height:1.4;transition:transform .3s var(--ease),box-shadow .3s,background .3s}
.button:after{content:"";position:absolute;inset:-100% auto -100% -100%;width:50%;background:linear-gradient(90deg,transparent,#fff8,transparent);transform:skewX(-25deg);transition:left .7s;pointer-events:none;z-index:-1}
.button>span{font-size:20px;transition:transform .3s var(--ease)}
.button.small{font-size:13px;min-height:44px;padding:11px 16px;gap:25px}
.button.small>span{font-size:17px}
.button.outline{background:#ffffff06;border-color:#ffffff38;color:var(--text)}
.button:not(.outline):hover,.button:not(.outline):focus-visible,.button:not(.outline):active{color:var(--ink)}
.button.outline:hover:not(:disabled),.button.outline:focus-visible,.button.outline:active{background:#ffffff10;color:var(--text)}
.button:disabled{opacity:.45;cursor:default}
.button-appointment{overflow:visible}
.button-appointment:before{content:"";position:absolute;inset:-1px;z-index:-1;border-radius:inherit;pointer-events:none;box-shadow:0 0 26px 7px #d0e2f333;opacity:0;animation:appointment-halo 4.4s ease-in-out infinite}
.button-appointment:after{inset:0;width:auto;transform:none;border-radius:inherit;background:linear-gradient(112deg,transparent 37%,#fff9 49%,transparent 62%);background-size:300% 100%;background-position:100% 50%;transition:background-position .7s}
.button-appointment:hover:before,.button-appointment:focus-visible:before,.button-appointment:active:before{animation-play-state:paused;opacity:0!important}
@keyframes appointment-halo{0%,100%{opacity:.08}50%{opacity:.42}}
body:not(.motion-ready) .button-appointment:before,.motion-paused .button-appointment:before,.fx-sleep .button-appointment:before,.hero-out .hero .button-appointment:before{animation-play-state:paused!important;opacity:0!important}
.text-link{display:inline-flex;align-items:center;gap:16px;font-size:14px;font-weight:600;text-decoration:none;min-height:44px;transition:color .2s,transform .3s var(--ease)}
.text-link>span{display:inline-block}
.booking-home-link,.map-caption>a{transition:color .2s,transform .3s var(--ease)}
.text-link,.booking-home-link,.map-caption>a{position:relative;isolation:isolate}
.text-link:before,.booking-home-link:before,.map-caption>a:before{content:"";position:absolute;inset:-3px -9px;z-index:-1;border-radius:9px;background:var(--link-glow-bg,#c3d2e018);box-shadow:0 0 22px var(--link-glow-shadow,#a5bdd41a);opacity:0;pointer-events:none;transition:opacity .28s var(--ease)}
.text-link:focus-visible:before,.text-link:active:before,.booking-home-link:focus-visible:before,.booking-home-link:active:before,.map-caption>a:focus-visible:before,.map-caption>a:active:before{opacity:1}
.text-link:focus-visible,.booking-home-link:focus-visible,.map-caption>a:focus-visible{transform:translate(3px,-2px)}
.eyebrow{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:500;letter-spacing:.1em;color:var(--muted);margin-bottom:24px}
.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#e0e4e9;box-shadow:0 0 12px #e2e7ef80;flex:none}
.soft-text{background:linear-gradient(100deg,#e2e4e7 0%,#8b9098 82%);background-clip:text;-webkit-background-clip:text;color:transparent}
.lead{font-size:18px;color:var(--muted);line-height:1.7;max-width:540px}
.heading-dot{color:#777f8c}
.caption,.section-note{font-size:13px;color:var(--muted)}
.muted{color:var(--muted)}

.hero{position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;align-items:center;min-height:650px;padding-block:68px 52px}
.hero-copy{position:relative;z-index:2}
.hero h1{font-size:clamp(54px,6.7vw,100px);line-height:1.04;letter-spacing:-.065em;white-space:nowrap}
.hero .eyebrow{margin-bottom:30px}
.hero .lead{font-size:19px;max-width:410px}
.hero-actions{display:flex;align-items:center;gap:28px;margin-top:34px}
.hero-location{display:inline-flex;gap:9px;align-items:center;margin-top:34px;color:#9298a1;font-size:12px;text-decoration:none;min-height:28px}
.hero-location svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;flex:none}
.hero-art{position:relative;isolation:isolate;display:grid;place-items:center;aspect-ratio:1;min-width:0}
.emblem-plane{position:relative;z-index:2;width:74%;height:auto;object-fit:contain;filter:drop-shadow(0 6px 24px #0008);animation:emblem-arrive 1.4s var(--ease) both}
.orbit-glow{position:absolute;inset:8%;border-radius:50%;background:radial-gradient(ellipse,#bbc3ce0c,transparent 70%);box-shadow:inset 0 0 100px #aab7ce06,0 0 100px #aab7ce04}
.orbit-lines{position:absolute;inset:0;width:100%;height:100%;stroke:#b9c3d11f;stroke-width:.8;animation:orbit 75s linear infinite}
.orbit-highlight{stroke:#d3dae28c;stroke-width:1;stroke-dasharray:80 400;stroke-linecap:round}
.orbit-highlight.second{stroke:#aab4c14d;stroke-dasharray:120 600}
.hero-bottom{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding-block:21px 26px;gap:20px;color:#949aa4;font-size:12px}
.hero-bottom i{font-style:normal;margin-inline:14px;color:#555c67}
.hero-bottom>a{display:grid;place-items:center;border:1px solid #ffffff26;border-radius:50%;width:36px;height:36px;text-decoration:none;font-size:18px;color:#ccc;flex:none;transition:background .2s}

.section{padding-block:100px}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:40px}
.section-heading .eyebrow{margin-bottom:14px}
.section-heading h2{margin-bottom:0}
.section-heading>.text-link{flex:none}
.services-section{background:var(--paper);color:#191b1f;border-radius:28px 28px 0 0;position:relative;overflow:hidden;--muted:#656a72;--link-glow-bg:#273c5210;--link-glow-shadow:#344f6a12}
.services-section .eyebrow{color:#656a72}
.services-section :focus-visible{outline-color:#191b1f}
.service-list{border-top:1px solid #171b2026}
.service-row{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr) auto 44px;gap:24px;align-items:center;padding:25px 0;border-bottom:1px solid #171b201e;text-decoration:none;transition:padding .4s var(--ease),background .4s}
.service-row strong{display:block;font-size:clamp(19px,2vw,27px);line-height:1.35;font-weight:550;letter-spacing:-.035em}
.service-row small{display:block;margin-top:5px;color:#6b7179;font-size:12px}
.index{font-size:12px;color:#81858c;font-variant-numeric:tabular-nums}
.price{font-size:15px;font-weight:600;white-space:nowrap}
.price-muted{font-size:13px;font-weight:400;color:#686e76}
.row-arrow{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid #1c23211c;font-size:22px;transition:background .3s,color .3s,transform .4s var(--ease)}
.section-note{margin:24px 0 0;color:#656a72}
.process-section{border-bottom:1px solid var(--line)}
.process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.process-card{padding:30px 28px;background:linear-gradient(150deg,#ffffff06,transparent);border:1px solid var(--line);border-radius:16px;position:relative;overflow:hidden}
.process-number{display:inline-grid;place-items:center;width:38px;height:38px;border:1px solid #ffffff26;border-radius:50%;font-size:12px;color:#d8dde4;margin-bottom:42px}
.process-card h3{font-size:21px;margin-bottom:14px}
.process-card p{color:var(--muted);font-size:14px;margin-bottom:0;max-width:275px}
.glow-card{--glow-x:50%;--glow-y:0%;position:relative;isolation:isolate}
.glow-card:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;background:radial-gradient(300px circle at var(--glow-x) var(--glow-y),#b8c7df16,transparent 75%);opacity:0;transition:opacity .4s}
.location-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:64px}
.location-copy>.eyebrow{margin-bottom:16px}
.location-address{font-size:20px;line-height:1.6;max-width:350px;margin-bottom:20px;color:#ced1d6}
.location-hours{color:var(--muted);font-size:14px;margin-top:14px}
.phone{display:block;font-size:clamp(22px,2.5vw,32px);font-weight:600;text-decoration:none;letter-spacing:-.04em}
.location-actions{display:flex;align-items:flex-start;flex-direction:column;gap:10px;margin-top:28px}
.location-actions>.button{font-size:14px}
.about-details{border-top:1px solid var(--line);margin-top:26px;color:var(--muted);font-size:14px}
.about-details summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;min-height:56px;color:#bdc2ca}
.about-details summary::-webkit-details-marker{display:none}
.about-details summary span{font-size:22px;transition:transform .3s}
.about-details[open] summary span{transform:rotate(45deg)}
.about-details p{line-height:1.8}
.service-map{min-width:0;align-self:start;height:fit-content;overflow:hidden;border:1px solid #ffffff26;border-radius:18px;background:#17191d}
.service-map iframe{display:block;width:100%;height:370px;border:0;filter:saturate(.6)}
.map-caption{display:flex;align-items:center;gap:8px;padding:14px 18px;font-size:12px;color:#d3d7dc}
.map-caption>span:last-child{margin-left:auto;color:#969da8;font-size:11px}
.page-intro{padding-top:80px;padding-bottom:10px}
.page-intro .eyebrow{margin-bottom:20px}
.page-intro h1{font-size:clamp(44px,5.5vw,76px);margin-bottom:20px}
.service-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding-top:36px}
.service-cards article{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:18px;padding:32px;background:#ffffff03;overflow:hidden}
.service-cards h2{font-size:29px;line-height:1.2}
.service-cards .eyebrow{font-size:12px;margin-bottom:30px}
.service-cards p:not(.eyebrow){font-size:15px;color:var(--muted)}
.service-cards article>div{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:22px;margin-top:auto}
.service-cards strong{font-size:14px;font-weight:500}
.contact-page-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:72px;padding-top:36px}
.contact-item{padding:22px 0;border-top:1px solid var(--line)}
.contact-item h2{font-size:13px;letter-spacing:0;color:var(--muted);margin-bottom:12px;font-weight:400}
.contact-item p{font-size:20px;margin-bottom:0}
.contact-info>.button{margin-top:20px}
.route-link{display:flex;margin-top:12px}
.social-links{display:flex;gap:24px}
.prose{max-width:860px;padding-bottom:100px;overflow-wrap:anywhere}
.prose p{line-height:1.9;color:#bbc0c8;margin-bottom:26px}
.notice,.error-summary{padding:20px 24px;border:1px solid #ffffff40;border-radius:12px;background:#ffffff07;font-size:14px}
.message-page{padding-top:100px;padding-bottom:130px;max-width:950px}
.message-page .button{margin-top:24px}
.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.errorlist{font-size:14px}
.footer-grid{display:flex;align-items:flex-start;justify-content:space-between;gap:40px;padding-block:45px 36px;border-top:1px solid var(--line)}
.footer-brand{font-size:25px;font-weight:700;letter-spacing:-.05em;text-decoration:none}
.footer-brand>span{display:block;color:#8f96a1;font-size:12px;font-weight:400;letter-spacing:0;margin-top:5px}
.footer-links{display:flex;flex-wrap:wrap;gap:26px;padding-top:8px}
.footer-links a{font-size:12px;text-decoration:none;color:#a0a7b2;transition:color .2s}
.footer-links a:hover{color:#fff}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-block:18px 24px;color:#858e9b;font-size:12px}
.motion-toggle{display:flex;align-items:center;gap:8px;padding:8px 0 8px 16px;background:none;border:0;color:#a0a7b1;font-size:12px;min-height:40px}
.motion-symbol{font-size:14px;width:16px}

/* Reveal keeps the document readable if JS, motion or observers are unavailable. */
.reveal{transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.is-pending{opacity:0;transform:translateY(24px)}
.reveal:focus-within{opacity:1;transform:none}
.hero-copy{animation:copy-arrive .9s var(--ease) both}
.motion-paused *, .fx-sleep .page-atmosphere *, .fx-sleep .orbit-lines,.hero-out .orbit-lines{animation-play-state:paused!important}

@media(hover:hover) and (pointer:fine){.button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 32px #d5dce11a,0 0 0 4px #ffffff04;background:#fff}
.button:hover:after{left:150%}
.button.button-appointment:hover:after{left:0;background-position:0% 50%}
.button:hover>span{transform:translate(2px,-2px)}
.text-link:hover,.booking-home-link:hover,.map-caption>a:hover{transform:translate(3px,-2px)}
.text-link:hover:before,.booking-home-link:hover:before,.map-caption>a:hover:before{opacity:1}
.service-row:hover{padding-inline:14px;background:#d9ddd65c}
.service-row:hover .row-arrow{background:#1a1c20;color:#fff;transform:rotate(5deg)}
.glow-card:hover:before{opacity:1}
.hero-bottom>a:hover{background:#ffffff14}
}

@keyframes ambient-drift{0%{transform:translate3d(-6%,0,0) scale(1);opacity:.55}
100%{transform:translate3d(12%,12%,0) scale(1.2);opacity:1}
}
@keyframes orbit{to{transform:rotate(360deg)}
}
@keyframes copy-arrive{from{opacity:0;transform:translateY(18px)}
to{opacity:1;transform:none}
}
@keyframes emblem-arrive{from{opacity:0;transform:scale(.96)}
to{opacity:1;transform:scale(1)}
}

@media(min-width:1600px){.hero-grid{min-height:740px}
}

@media(max-width:1100px){.wrap{width:calc(100% - 64px)}
.hero h1{font-size:clamp(48px,6.7vw,80px)}
.hero-grid{min-height:570px;gap:0}
.hero .lead{font-size:17px}
.hero-actions{gap:22px}
.hero-actions .button{padding-inline:20px;gap:20px}
.location-grid{gap:40px}
.process-card{padding:26px 22px}
.process-card h3{font-size:19px}
.nav nav{gap:24px}
}

@media(max-width:800px){.wrap{width:calc(100% - 40px)}
.nav{min-height:74px}
.identity{gap:8px}
.identity>span{font-size:21px}
.identity img{width:42px;height:42px}
.nav nav{gap:20px}
.nav nav>a{font-size:13px}
.hero-grid{min-height:540px;padding-block:40px}
.hero h1{font-size:clamp(44px,6.4vw,58px)}
.hero .lead{font-size:16px;max-width:300px}
.hero-actions{align-items:flex-start;flex-direction:column;gap:8px;margin-top:26px}
.hero-location{max-width:300px;font-size:12px;margin-top:22px}
.emblem-plane{width:78%}
.hero .eyebrow{font-size:11px}
.section{padding-block:72px}
.section-heading h2{font-size:36px}
.service-row{gap:16px;grid-template-columns:28px minmax(0,1fr) auto 38px;padding-block:23px}
.service-row strong{font-size:22px}
.row-arrow{width:36px;height:36px;font-size:20px}
.price{font-size:13px}
.price-muted{font-size:12px}
.process-grid{gap:12px}
.process-card{padding:24px 18px}
.process-card h3{font-size:18px}
.process-card p{font-size:13px}
.process-number{margin-bottom:30px}
.location-grid{grid-template-columns:1fr;gap:32px}
.location-copy{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.location-copy>.eyebrow,.location-copy>h2,.location-copy>.location-address,.location-copy>.phone,.location-copy>.location-hours{grid-column:1}
.location-actions{grid-column:2;grid-row:2/6;margin-top:0;align-self:center}
.about-details{grid-column:1/-1}
.service-map iframe{height:340px}
.footer-links{gap:18px}
.contact-page-grid{gap:36px;grid-template-columns:1fr 1fr}
.service-cards article{padding:26px}
.service-cards article>div{flex-direction:column;align-items:flex-start;gap:8px}
}

@media(max-width:650px){html{scroll-padding-top:86px}
.wrap{width:calc(100% - 40px)}
.nav{min-height:72px;gap:12px}
.nav nav{gap:18px}
.identity>span{font-size:19px}
.identity img{width:38px;height:38px}
.desktop-label{display:none}
.nav nav .button{display:none}
.hero-grid{grid-template-columns:1fr;padding-top:45px;padding-bottom:0;gap:0;min-height:0}
.hero h1{font-size:clamp(44px,10.5vw,66px);line-height:1.08;margin-bottom:22px;white-space:normal}
.hero .eyebrow{font-size:11px;letter-spacing:.04em;margin-bottom:22px}
.hero .lead{font-size:16px;max-width:320px;margin-bottom:0}
.hero-actions{flex-direction:row;align-items:center;gap:20px;margin-top:26px}
.hero-actions>.button{padding:16px 18px;gap:20px;font-size:14px}
.hero-actions>.text-link{font-size:12px;gap:8px}
.hero-location{margin-top:20px;max-width:none;font-size:11px}
.hero-art{width:260px;margin:-2px auto 0;max-width:85vw}
.emblem-plane{width:68%}
.hero-bottom{font-size:11px;padding-block:18px;gap:10px}
.hero-bottom>span{max-width:280px}
.hero-bottom i{margin-inline:6px}
.hero-bottom>a{width:30px;height:30px}
.section{padding-block:56px}
.services-section{border-radius:22px 22px 0 0}
.section-heading{gap:20px;margin-bottom:28px;align-items:flex-start;flex-direction:column}
.section-heading h2{font-size:clamp(30px,7vw,40px);letter-spacing:-.055em}
.section-heading .eyebrow{font-size:11px;margin-bottom:12px}
.section-heading>.text-link{font-size:13px;min-height:28px}
.service-row{grid-template-columns:22px minmax(0,1fr) 32px;gap:12px;padding-block:20px}
.service-row strong{font-size:19px;line-height:1.4}
.service-row small{display:none}
.service-row .price{grid-column:2;grid-row:2;font-size:12px;margin-top:-5px}
.service-row .row-arrow{grid-column:3;grid-row:1/3;width:32px;height:32px;font-size:18px}
.service-row .index{grid-row:1/3;align-self:start;padding-top:5px;font-size:10px}
.section-note{font-size:12px;margin-top:20px}
.process-grid{grid-template-columns:1fr;gap:10px}
.process-card{padding:22px;display:grid;grid-template-columns:38px 1fr;gap:0 18px;border-radius:14px}
.process-number{grid-row:1/3;margin:0;width:34px;height:34px}
.process-card h3{font-size:18px;line-height:1.4;margin-bottom:6px}
.process-card p{font-size:13px;max-width:none}
.location-copy{display:block}
.location-copy h2{font-size:34px}
.location-address{font-size:19px;max-width:none}
.location-actions{margin-top:24px;gap:8px}
.location-actions>.button{width:100%;font-size:14px}
.location-actions>.text-link{align-self:flex-start}
.service-map{border-radius:14px}
.service-map iframe{height:280px}
.map-caption{font-size:12px;padding:12px 14px}
.location-grid{gap:24px}
.about-details{margin-top:20px}
.page-intro{padding-top:46px}
.page-intro h1{font-size:42px}
.page-intro .lead{font-size:16px}
.service-cards{grid-template-columns:1fr;gap:14px;padding-top:24px}
.service-cards article{padding:24px;border-radius:14px}
.service-cards h2{font-size:27px}
.service-cards .eyebrow{margin-bottom:22px}
.service-cards article>div{flex-direction:row;align-items:center;gap:18px}
.service-cards strong{font-size:12px}
.service-cards .text-link{font-size:12px;gap:8px}
.contact-page-grid{grid-template-columns:1fr;gap:30px;padding-top:20px}
.contact-item p{font-size:18px}
.contact-item .phone{font-size:28px}
.contact-info>.button{width:100%}
.footer-grid{flex-direction:column;gap:24px;padding-block:34px 28px}
.footer-brand{font-size:25px}
.footer-links{gap:12px 22px}
.footer-links a{font-size:12px}
.footer-links a:last-child{flex-basis:100%}
.footer-bottom{font-size:11px;padding-block:12px 20px;gap:12px}
.motion-toggle{font-size:10px}
.booking-page footer{padding-bottom:0}
.message-page{padding-top:60px;padding-bottom:80px}
.message-page h1{font-size:40px}
.prose{font-size:15px;padding-bottom:60px}
.prose .notice{padding:16px;font-size:13px}
.atmosphere-grid{background-size:64px 64px}
.page-atmosphere>i{width:700px;height:700px;top:-180px;left:-100px}
.page-atmosphere>i:nth-child(2){display:none}
}

@media(max-width:360px){.wrap{width:calc(100% - 32px)}
.identity>span{font-size:17px}
.identity img{width:32px;height:32px}
.nav nav{gap:12px}
.nav nav>a{font-size:12px}
.hero h1{font-size:43px}
.hero-actions{gap:14px}
.hero-actions>.button{font-size:13px;padding-inline:14px;gap:16px}
.hero-actions>.text-link{font-size:11px}
.hero-location{font-size:10px}
.service-row strong{font-size:17px}
.service-cards article>div{flex-direction:column;align-items:flex-start;gap:4px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.reveal.is-pending{opacity:1;transform:none}
}

body:not(.motion-ready) .page-atmosphere *,body:not(.motion-ready) .orbit-lines{animation:none}

/* V7 — larger light field and a single primary emblem. */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.header-service-info{display:flex;align-items:center;gap:12px;min-width:0;max-width:280px;text-decoration:none}
.header-service-info>svg{width:28px;height:28px;fill:none;stroke:#b7c1ce;stroke-width:1.25;flex:none}
.header-service-info>span{display:flex;flex-direction:column;min-width:0}
.header-service-info small{color:#8e99a8;font-size:10px;letter-spacing:.04em;line-height:1.5}
.header-service-info strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#edf1f5;font-size:15px;letter-spacing:-.02em;line-height:1.5;font-weight:550}
.home-page .hero{isolation:isolate;--pointer-x:0;--pointer-y:0}
.hero-scene{position:absolute;inset:-8%;z-index:0;overflow:hidden;pointer-events:none;transform:perspective(1000px) translate3d(calc(var(--pointer-x,0)*10px),calc(var(--pointer-y,0)*7px),0) rotateX(calc(var(--pointer-y,0)*-.6deg)) rotateY(calc(var(--pointer-x,0)*.8deg))}
.scene-halo{position:absolute;right:-4%;top:-24%;width:92%;height:130%;background:radial-gradient(ellipse,#b7c8de27,transparent 66%);animation:halo-breathe 12s ease-in-out infinite alternate}
.scene-beam{position:absolute;inset:-45% -30%;background:linear-gradient(116deg,transparent 35%,#d5e2ef04 42%,#d5e2ef16 48%,#eff6fc0a 52%,transparent 61%);animation:beam-travel 17s ease-in-out infinite alternate;transform-origin:65% 50%}
.light-field{position:absolute;inset:0;width:100%;height:100%;stroke-width:1;opacity:.9;mask-image:linear-gradient(90deg,transparent,#0008 35%,#000 65%)}
.scene-traces{stroke:#e5eef8;stroke-width:1.3;stroke-linecap:round}
.scene-traces path{stroke-dasharray:100 1200;stroke-dashoffset:1300;opacity:.5;animation:trace-run 18s linear infinite}
.scene-traces path:nth-child(2){animation-duration:22s;animation-delay:-8s;opacity:.32}
.scene-traces path:nth-child(3){animation-duration:26s;animation-delay:-17s;opacity:.25}
.hero:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(90deg,#0c0d0f36,transparent 70%)}
.hero-copy,.hero-bottom{position:relative;z-index:2}
.hero .eyebrow{max-width:480px;letter-spacing:.035em;line-height:1.7;align-items:center}
.hero-art{z-index:1;overflow:visible}
.emblem-plane{width:92%;position:relative;z-index:2;filter:drop-shadow(0 10px 30px #0007);transform:perspective(900px) translate3d(calc(var(--pointer-x,0)*-10px),calc(var(--pointer-y,0)*-8px),0) rotateX(calc(var(--pointer-y,0)*-2deg)) rotateY(calc(var(--pointer-x,0)*3deg));transition:transform 1.1s var(--ease);animation:emblem-entry 1.4s var(--ease) both}
.emblem-plane img{display:block;width:100%;height:auto;object-fit:contain}
.orbit-plane{position:absolute;inset:-9%;transform:perspective(1000px) rotateX(25deg) rotateY(-16deg) rotateZ(-17deg);pointer-events:none}
.orbit-lines{stroke:#b9c9df3b;stroke-width:.8;animation:orbit 30s linear infinite}
.orbit-highlight{stroke:#e8f2ffb3;stroke-width:1.5;stroke-dasharray:130 400}
.orbit-highlight.second{stroke:#c6d6e480;stroke-width:1;stroke-dasharray:90 600}
.orbit-point{fill:#d7e8f8;stroke:none;opacity:.8}
.orbit-glow{inset:-6%;background:radial-gradient(ellipse,#b8c9df16,transparent 67%);box-shadow:none;animation:halo-breathe 10s ease-in-out infinite alternate}
.hero-motion-control{position:absolute;bottom:115px;right:max(24px,calc((100vw - 1240px)/2));z-index:4}
.motion-icon{padding:0;width:40px;height:40px;min-height:40px;justify-content:center;border:1px solid #ffffff26;border-radius:50%;background:#ffffff04;color:#b9c5d4;transition:background .3s,border-color .3s}
.motion-icon:hover{background:#ffffff10;border-color:#ffffff50}
.footer-bottom .motion-toggle{width:40px;height:40px;min-height:40px;padding:0;border:0;border-radius:8px;background:transparent;color:#8b929d;opacity:.65}
.footer-bottom .motion-toggle:hover,.footer-bottom .motion-toggle:focus-visible{opacity:1;background:#ffffff05;color:#e7e9eb}
.footer-bottom .motion-toggle .motion-symbol{font-size:12px}
.motion-icon .motion-symbol{width:auto;font-size:14px;line-height:1}
.footer-brand>span{font-size:10px;letter-spacing:.07em;line-height:1.7;max-width:300px}
.hours-card{display:flex;align-items:center;gap:20px;padding:22px 24px;margin-block:24px;border:1px solid #ffffff2e;background:linear-gradient(125deg,#ffffff0c,#ffffff03);border-radius:14px;box-shadow:inset 0 1px 0 #ffffff04;min-width:0}
.hours-card>svg{width:32px;height:32px;fill:none;stroke:#c7d1de;stroke-width:1.2;flex:none}
.hours-card>div{min-width:0}
.hours-card span{display:block;font-size:12px;color:#9da9ba;margin-bottom:4px}
.hours-card strong{display:block;font-size:24px;font-weight:550;line-height:1.5;letter-spacing:-.025em;color:#f2f4f7;overflow-wrap:anywhere}
.location-copy>.hours-card{max-width:390px}
.contact-info>.hours-card{margin-bottom:26px}
.map-caption>a{margin-left:auto;color:#969da8;font-size:11px;text-decoration:none;min-height:28px;display:flex;align-items:center}
.fx-sleep .hero-scene *,.fx-sleep .orbit-glow,.hero-out .hero-scene *,.hero-out .orbit-glow{animation-play-state:paused!important}
.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important}
.motion-paused .emblem-plane,.motion-paused .hero-scene{transform:none}
body:not(.motion-ready) .hero-scene *,body:not(.motion-ready) .orbit-glow{animation:none}
@keyframes halo-breathe{from{transform:translate3d(-2%,1%,0) scale(.92);opacity:.5}to{transform:translate3d(4%,-2%,0) scale(1.12);opacity:1}}
@keyframes beam-travel{from{transform:translate3d(-14%,3%,0) rotate(-7deg);opacity:.35}to{transform:translate3d(18%,-5%,0) rotate(5deg);opacity:.9}}
@keyframes trace-run{to{stroke-dashoffset:0}}
@keyframes emblem-entry{from{opacity:0}to{opacity:1}}
@media(max-width:1100px){.emblem-plane{width:94%}.header-service-info{max-width:230px}.hero-motion-control{right:28px}}
@media(max-width:800px){.header-service-info{max-width:210px;gap:10px}.header-service-info strong{font-size:14px}.hero .eyebrow{font-size:11px;max-width:350px}.location-copy{display:block}.location-copy>.hours-card{max-width:none}.location-actions{flex-direction:row;align-items:center;flex-wrap:wrap;gap:18px;margin-top:26px}.hero-motion-control{right:20px}.orbit-plane{inset:-4%}}
@media(max-width:650px){.header-service-info{max-width:190px;gap:9px}.header-service-info>svg{width:24px;height:24px}.header-service-info small{font-size:9px}.header-service-info strong{font-size:13px}.hero .eyebrow{font-size:11px;line-height:1.7;max-width:330px;letter-spacing:0}.hero-art{width:330px;max-width:100%;margin:0 auto 4px}.emblem-plane{width:90%}.orbit-plane{inset:0;transform:perspective(1000px) rotateX(20deg) rotateY(-12deg) rotateZ(-17deg)}.light-field{opacity:.6}.scene-traces path:nth-child(3){display:none}.scene-halo{top:7%;right:-42%;width:150%;height:100%}.scene-beam{inset:-25% -60%;opacity:.6;animation-duration:22s}.hero-motion-control{right:20px;bottom:94px}.motion-icon{width:36px;height:36px;min-height:36px}.hero-motion-control .motion-icon{width:40px;height:40px}.hours-card{padding:20px;gap:18px;margin-block:24px}.hours-card strong{font-size:25px}.hours-card>svg{width:30px;height:30px}.location-actions{flex-direction:column;align-items:flex-start;gap:8px}.footer-brand>span{font-size:9px;max-width:290px}.contact-info>.hours-card{margin-top:12px}.hero-bottom{gap:14px}}
@media(max-width:360px){.header-service-info{max-width:155px;gap:7px}.header-service-info>svg{width:21px;height:21px}.header-service-info strong{font-size:12px}.header-service-info small{font-size:9px}.hero .eyebrow{font-size:10px}.hero-art{width:290px}.emblem-plane{width:92%}.hours-card strong{font-size:23px}}
@media(prefers-reduced-motion:reduce){.emblem-plane,.hero-scene{transform:none!important}.orbit-plane{transform:rotate(-10deg)}}

.motion-paused .emblem-plane,.motion-paused .hero-copy{animation:none;opacity:1;transform:none}

.hero.has-entered .hero-copy,.hero.has-entered .emblem-plane{animation:none;opacity:1}

/* V8 — the original emblem, cleaned and lit as one continuous surface. */
.emblem-plane{perspective:950px;transform:translate3d(calc(var(--pointer-x,0)*-12px),calc(var(--pointer-y,0)*-10px),0) rotateX(calc(var(--pointer-y,0)*-6deg)) rotateY(calc(var(--pointer-x,0)*9deg));transform-style:preserve-3d;transition:transform .85s var(--ease)}
.emblem-surface{position:relative;transform-style:preserve-3d;animation:emblem-perspective 14s ease-in-out infinite;backface-visibility:hidden}
.emblem-surface img{opacity:.86}
.emblem-specular{position:absolute;inset:0;pointer-events:none;mask:url('logo.svg?v=8') center/contain no-repeat;-webkit-mask:url('logo.svg?v=8') center/contain no-repeat;background:radial-gradient(ellipse at calc(50% + var(--pointer-x,0)*38%) calc(43% + var(--pointer-y,0)*30%),#fff9,transparent 50%);mix-blend-mode:screen}
.emblem-specular:after{content:"";position:absolute;inset:0;background:linear-gradient(112deg,transparent 37%,#fff4 44%,#fffe 49%,#fff5 54%,transparent 62%);background-size:300% 100%;animation:emblem-glint 11s ease-in-out infinite}
.fx-sleep .emblem-surface,.fx-sleep .emblem-specular:after,.hero-out .emblem-surface,.hero-out .emblem-specular:after{animation-play-state:paused!important}
@keyframes emblem-perspective{0%,100%{transform:rotateX(7deg) rotateY(-12deg) rotateZ(-1deg) translateZ(0)}50%{transform:rotateX(-6deg) rotateY(11deg) rotateZ(1deg) translateZ(14px)}}
@keyframes emblem-glint{0%,12%{background-position:100% 50%;opacity:0}22%{opacity:1}62%{background-position:0% 50%;opacity:.85}74%,100%{background-position:0% 50%;opacity:0}}
.motion-paused .emblem-surface{transform:none;animation:none}
.motion-paused .emblem-specular{background:none}
.motion-paused .emblem-specular:after{opacity:0;animation:none}
@media(max-width:650px){.emblem-plane{transform:none}.emblem-surface{animation-duration:18s}@keyframes emblem-perspective{0%,100%{transform:rotateX(5deg) rotateY(-8deg) rotateZ(-.5deg)}50%{transform:rotateX(-4deg) rotateY(7deg) rotateZ(.5deg)}}}
@media(prefers-reduced-motion:reduce){.emblem-plane,.emblem-surface{transform:none!important;animation:none!important}.emblem-specular{display:none}}

/* Contact channels share the same quiet, monochrome treatment. */
.social-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.social-card{display:flex;align-items:center;gap:12px;min-height:56px;padding:14px 16px;border:1px solid #ffffff26;border-radius:12px;background:#ffffff04;color:#e2e6eb;text-decoration:none;transition:background .3s,border-color .3s,transform .3s}
.social-card>svg{width:23px;height:23px;flex:none}
.social-card:hover{background:#ffffff0d;border-color:#ffffff50;transform:translateY(-2px)}
.social-card:focus-visible{outline:2px solid #f5f5f1;outline-offset:4px}
.social-arrow{font-size:16px;margin-left:8px;color:#96a1b0}
@media(max-width:650px){.social-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.social-card{padding:14px 12px;gap:9px;font-size:13px;min-width:0}.social-arrow{margin-left:auto}.social-card>svg{width:21px;height:21px}}

/* V15 — one full first screen, with the next panel rounded over the same light field. */
:root{--header-height:85px;--section-overlap:28px}
.icon{display:inline-block;width:1.25em;height:1.25em;vertical-align:middle;flex:none;pointer-events:none}
.identity img{width:52px;height:52px}
.identity,.hero-art{-webkit-user-select:none;user-select:none}
.identity img,.hero-art img{-webkit-user-drag:none;pointer-events:none}
html{scroll-padding-top:calc(var(--header-height) + 18px)}
.home-page .hero{display:flex;flex-direction:column;min-height:calc(100vh + var(--section-overlap));min-height:calc(100svh + var(--section-overlap));padding-bottom:var(--section-overlap);background:var(--ink)}
.home-page .hero-grid{flex:1;min-height:0;padding-block:clamp(24px,5vh,60px) 30px;gap:20px}
.home-page .hero h1{font-size:clamp(46px,min(6.7vw,10svh),100px);margin-bottom:22px}
.home-page .hero .eyebrow{margin-bottom:22px}
.home-page .hero-actions{margin-top:26px}
.home-page .hero-location{margin-top:22px}
.home-page .hero-art{width:100%;max-width:min(100%,calc(100svh - var(--header-height) - 150px));justify-self:end}
.home-page .services-section{margin-top:calc(-1 * var(--section-overlap));z-index:3}
.hero-bottom{flex:none;min-height:80px;padding-block:18px 22px}
.hero-brands{display:flex;align-items:center;flex-wrap:wrap;gap:7px 18px;min-width:0}
.hero-brands-label{color:#c9cdd3;margin-right:4px}
.hero-controls{display:flex;align-items:center;gap:12px;flex:none}
.hero-motion-control{position:static}
.hero-scroll{display:grid;place-items:center;width:40px;height:40px;border:1px solid #ffffff26;border-radius:50%;color:#cbd3de;text-decoration:none;transition:background .3s,border-color .3s}
.hero-scroll .icon{width:24px;height:24px}
.motion-symbol{display:inline-grid;place-items:center;line-height:1}
.motion-symbol .icon{width:16px;height:16px}
.button .icon,.text-link .icon{width:20px;height:20px}
.row-arrow .icon{width:23px;height:23px}
.about-details summary .icon{transition:transform .3s}
/* Animate a stationary surface instead of shifting every column during hover. */
.service-row{isolation:isolate;transition:opacity .7s var(--ease),transform .7s var(--ease),border-color .4s,box-shadow .4s}
.service-row:before{content:"";position:absolute;inset:5px -14px;border-radius:12px;z-index:-1;background:#d9ddd65c;opacity:0;transform:scaleX(.985);transition:opacity .45s var(--ease),transform .55s var(--ease)}
.service-row .service-title{transition:transform .5s var(--ease)}
.service-row:focus-visible{outline-color:#191b1f;outline-offset:5px}
@media(hover:hover) and (pointer:fine){.service-row:hover{padding-inline:0;background:transparent}.service-row:hover:before,.service-row:focus-visible:before{opacity:1;transform:scaleX(1)}.service-row:hover .service-title{transform:translateX(6px)}.service-row:hover .row-arrow{transform:translate(2px,-2px)}.hero-scroll:hover{background:#ffffff12;border-color:#ffffff50}}
@media(max-width:800px){:root{--header-height:75px}.home-page .hero-grid{gap:8px}.home-page .hero-art{max-width:100%}}
@media(max-width:650px){:root{--header-height:73px;--section-overlap:22px}.identity img{width:42px;height:42px}.home-page .hero-grid{padding-block:22px 10px;gap:8px}.home-page .hero h1{font-size:clamp(40px,10.5vw,58px);line-height:1.04;margin-bottom:16px}.home-page .hero .eyebrow{margin-bottom:12px}.home-page .hero .lead{font-size:15px}.home-page .hero-actions{margin-top:18px;gap:16px}.home-page .hero-location{margin-top:12px}.home-page .hero-art{width:clamp(140px,24svh,230px);max-width:100%;margin:0 auto;justify-self:center}.hero-bottom{padding-block:12px 18px;gap:14px;min-height:68px}.hero-brands{gap:5px 12px;font-size:11px}.hero-brands-label{flex-basis:100%}.hero-controls{gap:8px}.hero-scroll,.hero-motion-control .motion-icon{width:36px;height:36px;min-height:36px}.hero-scroll .icon{width:22px;height:22px}}
@media(max-width:360px){.identity img{width:36px;height:36px}.hero-brands{gap:4px 9px}.hero-controls{gap:6px}.hero-scroll,.hero-motion-control .motion-icon{width:32px;height:32px;min-height:32px}.home-page .hero-actions{gap:12px}}
@media(prefers-reduced-motion:reduce){.service-row:before,.service-row .service-title,.hero-scroll{transition:none!important}.service-row:hover .service-title,.service-row:hover .row-arrow{transform:none}.text-link,.booking-home-link,.map-caption>a{transform:none!important}.button-appointment:before{animation:none!important;opacity:0}}
@media(forced-colors:active){.soft-text{color:CanvasText;background:none}.button,.hero-scroll,.motion-icon,.service-row .row-arrow{border:1px solid ButtonText}.hero-art .emblem-specular{display:none}.button-appointment:before,.text-link:before,.booking-home-link:before,.map-caption>a:before{display:none}}

.booking-home-link,.wizard-back{display:inline-flex;align-items:center;gap:8px}.social-arrow .icon{width:18px;height:18px}
@media(max-width:650px){.home-page .hero-actions>.button{flex:none;white-space:nowrap;gap:12px}.home-page .hero-actions>.text-link{min-width:0}}

.identity{min-height:48px}.identity>span{font-size:24px;letter-spacing:-.055em;font-weight:800;line-height:1}@media(max-width:650px){.identity>span{font-size:21px}}@media(max-width:360px){.identity>span{font-size:19px}}

.identity{gap:10px}.identity img{width:68px;height:54px}@media(max-width:650px){.identity{gap:6px}.identity img{width:54px;height:46px}.identity>span{font-size:19px}}@media(max-width:360px){.identity img{width:45px;height:40px}.identity>span{font-size:17px}}
