:root{
  --ink:#0a1424; --ink-2:#101d34; --ivory:#f5f2ec; --ivory-2:#e8e5de;
  --gold:#b9c8e0; --gold-2:#e3eaf5; --muted:#a9b4c6; --text-dark:#0f1a2e;
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Jost',system-ui,sans-serif;
  --pad:clamp(20px,5vw,72px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--ink);color:var(--ivory);font-family:var(--sans);font-weight:300;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit}
em{font-style:italic;color:var(--gold-2)}
.light em{color:#3a5a8c}
.wrap{width:min(1200px,100% - 2*var(--pad));margin-inline:auto}
.wrap.narrow{width:min(820px,100% - 2*var(--pad))}
.center{text-align:center}
.skip{position:absolute;left:-999px;top:0;background:var(--gold);color:var(--ink);padding:10px 16px;z-index:100}
.skip:focus{left:8px;top:8px}

h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.08;letter-spacing:-.01em}
h2{font-size:clamp(34px,5vw,64px)}
h3{font-size:clamp(26px,3vw,38px)}

.btn{display:inline-block;padding:15px 30px;font:500 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;border:1px solid var(--gold);transition:.35s;cursor:pointer;position:relative;overflow:hidden}
.btn-gold{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
.btn-gold:hover{background:#fff;border-color:#fff;transform:translateY(-2px);box-shadow:0 10px 30px -10px rgba(185,200,224,.7)}
.btn-ghost{color:var(--ivory);border-color:rgba(244,239,230,.4)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-2)}
.btn-dark{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.btn-dark:hover{background:#1a2c4d}
.link{display:inline-block;margin-top:18px;font-size:13px;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:#3a5a8c;border-bottom:1px solid currentColor;padding-bottom:4px}
.link:hover{color:var(--ink)}
.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}

/* header */
.site-header{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px var(--pad);transition:.4s}
.site-header.solid{background:rgba(10,20,36,.88);backdrop-filter:blur(14px);padding-block:14px;border-bottom:1px solid rgba(185,200,224,.15)}
.brand{flex:none}
.brand img{width:160px;height:auto;max-width:none}
.nav{display:flex;gap:30px}
.nav a{white-space:nowrap;font-size:12px;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;opacity:.85;position:relative}
.nav a::after{content:"";position:absolute;left:0;bottom:-6px;height:1px;width:0;background:var(--gold);transition:.3s}
.nav a:hover{opacity:1}.nav a:hover::after{width:100%}
.header-cta{white-space:nowrap;font-size:13px;letter-spacing:.12em;text-decoration:none;display:flex;align-items:center;gap:10px;border:1px solid rgba(185,200,224,.5);padding:10px 18px}
.header-cta .dot{width:7px;height:7px;border-radius:50%;background:#7fd18b;box-shadow:0 0 0 0 rgba(127,209,139,.7);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(127,209,139,0)}100%{box-shadow:0 0 0 0 rgba(127,209,139,0)}}
.menu-btn{display:none;background:none;border:0;width:36px;height:36px;position:relative}
.menu-btn span{position:absolute;left:6px;right:6px;height:1px;background:var(--ivory);transition:.3s}
.menu-btn span:first-child{top:14px}.menu-btn span:last-child{top:21px}
.menu-btn[aria-expanded=true] span:first-child{top:18px;transform:rotate(45deg)}
.menu-btn[aria-expanded=true] span:last-child{top:18px;transform:rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;z-index:45;background:var(--ink);display:flex;flex-direction:column;justify-content:center;gap:22px;padding:var(--pad);font-family:var(--serif);font-size:36px}
.mobile-menu[hidden]{display:none}
.mobile-menu a{text-decoration:none}
.mobile-menu .btn{font-family:var(--sans);font-size:12px;text-align:center}

/* trust */
.trust{background:var(--ink-2);border-block:1px solid rgba(185,200,224,.18);padding:26px 0}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.trust strong{display:block;font-family:var(--serif);font-weight:500;font-size:clamp(28px,3.4vw,44px);color:var(--gold-2);line-height:1.1}
.trust span{font-size:15px;letter-spacing:.01em;color:var(--muted)}

/* light sections */
.light{background:var(--ivory);color:var(--text-dark)}
.light.alt{background:var(--ivory-2)}
.intro{padding:clamp(44px,6vw,84px) 0}
.intro h2{margin-bottom:18px}
.intro p:last-child{font-size:18px;color:#3b4659}
.services{padding:clamp(14px,2.5vw,36px) 0 clamp(44px,6vw,84px);background:linear-gradient(var(--ivory),var(--ivory-2))}
.svc{position:relative;display:grid;grid-template-columns:repeat(12,1fr);align-items:end;padding:clamp(24px,3.5vw,50px) 0 clamp(40px,5vw,70px)}

/* image: offset outline frame, wipe-in reveal, slow parallax, light sweep on hover */
.svc figure{grid-column:1/9;grid-row:1;position:relative;aspect-ratio:16/11}
.svc figure::before{content:"";position:absolute;inset:0;transform:translate(24px,24px);border:1px solid rgba(58,90,140,.5);transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.svc:hover figure::before{transform:translate(14px,14px)}
.pic{position:absolute;inset:0;overflow:hidden;background:#d6dce6;clip-path:inset(0 100% 0 0);transition:clip-path 1.5s cubic-bezier(.7,0,.2,1) .1s}
.svc.in .pic{clip-path:inset(0 0 0 0)}
.pic img{position:absolute;left:0;top:-9%;width:100%;height:118%;object-fit:cover;translate:0 var(--py,0px);scale:1.14;transition:scale 2s cubic-bezier(.2,.7,.2,1) .1s}
.svc.in .pic img{scale:1}
.svc.in:hover .pic img{scale:1.05;transition-duration:1.4s}
.pic::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(160deg,rgba(10,20,36,0) 35%,rgba(10,20,36,.38));pointer-events:none}
.pic::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.2) 50%,transparent 58%);transform:translateX(-130%);transition:transform 1.3s cubic-bezier(.3,.6,.2,1);pointer-events:none}
.svc:hover .pic::after{transform:translateX(130%)}

/* text: navy card that overlaps the photo */
.svc-body{grid-column:7/13;grid-row:1;position:relative;z-index:2;align-self:end;margin-bottom:calc(clamp(40px,5vw,70px) * -.55);background:var(--ink);color:var(--ivory);padding:clamp(30px,3.6vw,56px);box-shadow:0 50px 90px -40px rgba(10,20,40,.7);opacity:0;transform:translateY(40px);transition:opacity 1s .7s,transform 1.2s cubic-bezier(.2,.7,.2,1) .7s}
.svc.in .svc-body{opacity:1;transform:none}
.svc-body::before{content:"";position:absolute;left:0;top:0;width:3px;height:56px;background:var(--gold)}
.svc-body h3{margin-bottom:18px}
.svc-body p{color:var(--muted)}
.svc-body .link{color:var(--gold-2)}
.svc-body .link:hover{color:#fff}

/* second feature mirrors and uses an arched window */
.svc.flip figure{grid-column:5/13}
.svc.flip figure::before{transform:translate(-24px,24px);border-radius:999px 999px 0 0}
.svc.flip:hover figure::before{transform:translate(-14px,14px)}
.svc.flip .pic{border-radius:999px 999px 0 0;clip-path:inset(0 0 0 100%)}
.svc.flip.in .pic{clip-path:inset(0 0 0 0)}
.svc.flip .svc-body{grid-column:1/7}

.ticks{list-style:none;margin:6px 0 0}
.ticks li{padding:10px 0 10px 28px;border-bottom:1px solid rgba(185,200,224,.2);position:relative}
.ticks li::before{content:"";position:absolute;left:4px;top:19px;width:8px;height:8px;background:var(--gold);transform:rotate(45deg)}
.ticks a{text-decoration:none;border-bottom:1px solid var(--gold)}
.chips{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0 14px}
.chips button{font:400 12px var(--sans);letter-spacing:.16em;text-transform:uppercase;padding:10px 18px;background:transparent;border:1px solid rgba(185,200,224,.35);cursor:pointer;color:var(--ivory);transition:.3s}
.chips button.on,.chips button:hover{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
.chip-text{min-height:56px;margin-bottom:12px}

/* process */
.process{padding:clamp(44px,6vw,84px) 0;background:radial-gradient(1200px 600px at 85% 0%,#16274a,transparent 60%),var(--ink)}
.process-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(30px,7vw,110px);align-items:start}
.process-intro{position:sticky;top:120px}
.process-intro h2{margin-bottom:22px}
.process-intro p{color:var(--muted);max-width:420px}
.steps{list-style:none;counter-reset:s}
.steps li{padding:24px 0 24px 90px;border-top:1px solid rgba(185,200,224,.25);position:relative}
.steps li:last-child{border-bottom:1px solid rgba(185,200,224,.25)}
.steps li span{position:absolute;left:0;top:20px;font-family:var(--serif);font-size:54px;color:var(--gold);line-height:1;opacity:.85}
.steps h3{margin-bottom:8px}
.steps p{color:var(--muted);max-width:440px}

/* reviews */
.reviews{padding:clamp(44px,6vw,80px) 0}
.reviews h2{margin-bottom:34px}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
blockquote{background:#fff;padding:26px 26px;border-top:2px solid var(--gold);box-shadow:0 20px 50px -30px rgba(10,20,40,.35)}
blockquote p{font-family:var(--serif);font-size:23px;line-height:1.35;margin-bottom:22px}
cite{font-style:normal;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#3a5a8c}
.note{margin-top:26px;font-size:12px;opacity:.55}
.faq{padding:clamp(40px,5vw,68px) 0}
.faq h2{margin-bottom:22px}
details{border-bottom:1px solid rgba(15,26,46,.18)}
summary{cursor:pointer;list-style:none;padding:16px 40px 16px 0;font-family:var(--serif);font-size:25px;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:0;top:10px;font-size:34px;color:#3a5a8c;transition:.3s}
details[open] summary::after{transform:rotate(45deg)}
details p{padding:0 0 18px;max-width:640px;color:#3b4659}

/* visit */
.visit{padding:clamp(44px,6vw,80px) 0 34px;background:var(--ink)}
.visit-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(30px,6vw,90px)}
.visit h2{margin-bottom:28px}
address{font-style:normal;font-size:19px;line-height:1.8;margin-bottom:24px}
address a{text-decoration:none;color:var(--gold-2)}
.hours{display:grid;gap:8px;max-width:340px;margin-bottom:6px}
.hours div{display:flex;justify-content:space-between;border-bottom:1px solid rgba(185,200,224,.2);padding-bottom:8px;color:var(--muted)}
.hours dd{color:var(--ivory)}
.book{background:var(--ink-2);padding:clamp(24px,4vw,44px);border:1px solid rgba(185,200,224,.25);display:grid;gap:18px;align-content:start}
.book h3{margin-bottom:4px}
.book label{display:grid;gap:8px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.book input,.book select{background:transparent;border:0;border-bottom:1px solid rgba(244,239,230,.3);color:var(--ivory);padding:10px 0;font:300 17px var(--sans);outline:none}
.book input:focus,.book select:focus{border-color:var(--gold)}
.book select option{color:#000}
.areas{margin-top:44px;padding-top:24px;border-top:1px solid rgba(185,200,224,.2);color:var(--muted);text-align:center}
.areas strong{color:var(--gold-2);font-weight:400}
.footer{background:#060d19;padding:50px 0 90px}
.foot-grid{display:grid;gap:14px;justify-items:center;text-align:center;color:var(--muted);font-size:14px}
.foot-grid .small{font-size:12px;opacity:.6}
.mobile-bar{display:none}

/* reveal */
.reveal{opacity:0;transform:translateY(34px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

@media (max-width:1360px){.site-header{gap:16px}.nav{gap:16px}.nav a{letter-spacing:.08em;font-size:11px}.header-cta{padding-inline:14px;letter-spacing:.1em}}
@media (max-width:1180px){.nav,.header-cta{display:none}.menu-btn{display:block}}
@media (max-width:900px){
  .nav,.header-cta{display:none}
  .menu-btn{display:block}
  .trust-grid{grid-template-columns:repeat(2,1fr);gap:28px}
  .svc,.svc.flip,.process-grid,.visit-grid,.review-grid{grid-template-columns:1fr}
  .svc.flip figure{order:0}
  .process-intro{position:static}
  .steps li{padding-left:64px}.steps li span{font-size:42px}
  .mobile-bar{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;bottom:0;left:0;right:0;z-index:40;background:rgba(10,20,36,.95);border-top:1px solid rgba(185,200,224,.3)}
  .mobile-bar a{text-align:center;padding:16px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--gold-2)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .scroll-cue i,.header-cta .dot{animation:none}
}
.rating{margin:-30px 0 44px;font-size:15px;color:#3b4659}
.rating .stars{color:#3a5a8c;letter-spacing:.12em;margin-right:6px}

@media (max-width:900px){
  .svc,.svc.flip{display:block;padding:36px 0 70px}
  .svc figure,.svc.flip figure{aspect-ratio:4/3;margin-right:18px}
  .svc.flip figure{margin:0 0 0 18px}
  .svc figure::before{transform:translate(14px,14px)}
  .svc.flip figure::before{transform:translate(-14px,14px)}
  .svc-body,.svc.flip .svc-body{margin:-44px 14px -40px;padding:28px 24px}
}
@media (prefers-reduced-motion:reduce){
  .pic,.svc.flip .pic{clip-path:none;transition:none}
  .pic img{scale:1;transition:none}
  .svc-body{opacity:1;transform:none;transition:none}
}

/* ================= inner pages ================= */
.inner .site-header{background:rgba(10,20,36,.92);backdrop-filter:blur(14px);padding-block:14px;border-bottom:1px solid rgba(185,200,224,.15)}
.nav a.on{opacity:1}.nav a.on::after{width:100%}
.mobile-menu a.on{color:var(--gold-2)}

.p-hero{padding:clamp(104px,11vw,136px) 0 clamp(34px,4.5vw,60px);background:radial-gradient(900px 480px at 88% 0%,#1a2f58,transparent 62%),var(--ink)}
.p-hero-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(30px,6vw,90px);align-items:start}
.p-hero h1{font-size:clamp(38px,5.2vw,70px);margin-bottom:22px}
.p-hero .lede{max-width:560px;margin-top:0}
.p-hero .sub{font-family:var(--serif);font-style:italic;font-size:clamp(20px,2vw,26px);color:var(--gold-2);margin-bottom:16px}
.p-hero .checks{list-style:none;margin-top:28px;display:grid;gap:10px}
.p-hero .checks li{position:relative;padding-left:28px;color:var(--ivory)}
.p-hero .checks li::before{content:"";position:absolute;left:3px;top:.62em;width:8px;height:8px;background:var(--gold);transform:rotate(45deg)}
.rating-line{margin-top:26px;font-size:15px;color:var(--muted)}
.rating-line .stars{color:var(--gold-2);letter-spacing:.12em;margin-right:8px}
.rating-line strong{color:var(--ivory);font-weight:400}
.p-hero .book{margin:0}
.book .sub-note{font-size:14px;color:var(--muted);margin-top:-8px}
.book .or{font-size:14px;color:var(--muted);text-align:center}
.book .or a{color:var(--gold-2)}
.book textarea{background:transparent;border:0;border-bottom:1px solid rgba(244,239,230,.3);color:var(--ivory);padding:10px 0;font:300 17px var(--sans);outline:none;resize:vertical;min-height:70px}
.book textarea:focus{border-color:var(--gold)}

.sec{padding:clamp(40px,5.5vw,72px) 0}
.sec.dark{background:var(--ink)}
.sec.dark2{background:var(--ink-2)}
.sec-head{max-width:720px;margin-bottom:clamp(20px,2.6vw,34px)}
.sec-head.center{margin-inline:auto;text-align:center}
.sec-head h2{margin-bottom:14px}
.sec-head p{color:#3b4659;font-size:18px}
.dark .sec-head p,.dark2 .sec-head p{color:var(--muted)}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.cards.two{grid-template-columns:repeat(2,1fr)}
.card{position:relative;background:#fff;padding:26px 26px 24px;border-top:2px solid var(--gold);box-shadow:0 20px 50px -34px rgba(10,20,40,.4)}
.card h3{font-size:clamp(24px,2.2vw,30px);margin-bottom:12px}
.card p{color:#3b4659;font-size:16.5px}
.card .num{display:block;font-family:var(--serif);font-size:34px;color:#3a5a8c;line-height:1;margin-bottom:14px}
.dark .card,.dark2 .card{background:var(--ink-2);box-shadow:none;border:1px solid rgba(185,200,224,.2);border-top:2px solid var(--gold)}
.dark2 .card{background:var(--ink)}
.dark .card p,.dark2 .card p{color:var(--muted)}
.dark .card .num,.dark2 .card .num{color:var(--gold)}

.stats{background:var(--ink-2);border-block:1px solid rgba(185,200,224,.18);padding:24px 0}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.stats strong{display:block;font-family:var(--serif);font-weight:500;font-size:clamp(28px,3.2vw,42px);color:var(--gold-2);line-height:1.1}
.stats span{font-size:15px;color:var(--muted)}

.ba-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.ba{background:#fff;box-shadow:0 20px 50px -34px rgba(10,20,40,.4)}
.ba-pair{display:grid;grid-template-columns:1fr 1fr}
.ba-pair figure{position:relative;aspect-ratio:1/1.1;overflow:hidden;background:#d6dce6}
.ba-pair img{width:100%;height:100%;object-fit:cover}
.ba-pair figcaption{position:absolute;left:10px;bottom:10px;background:rgba(10,20,36,.85);color:var(--ivory);font-size:10px;letter-spacing:.2em;text-transform:uppercase;padding:6px 10px}
.ba-body{padding:22px 24px 26px}
.ba-body h3{font-size:26px;margin-bottom:8px}
.ba-body p{color:#3b4659;font-size:16px}

.split-feature{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(30px,6vw,90px);align-items:center}
.split-feature figure{position:relative}
.split-feature figure::before{content:"";position:absolute;inset:0;border:1px solid rgba(185,200,224,.4);transform:translate(18px,18px);z-index:0}
.split-feature figure img{position:relative;z-index:1;width:100%;height:auto;max-height:640px;object-fit:cover}
.split-feature h2{font-size:clamp(32px,4vw,54px);margin-bottom:22px}
.tick-grid{list-style:none;display:grid;gap:0}
.tick-grid li{position:relative;padding:13px 0 13px 30px;border-bottom:1px solid rgba(185,200,224,.2);color:var(--ivory)}
.tick-grid li::before{content:"";position:absolute;left:4px;top:23px;width:8px;height:8px;background:var(--gold);transform:rotate(45deg)}
.pull{margin-top:28px;padding-left:22px;border-left:2px solid var(--gold);font-family:var(--serif);font-style:italic;font-size:clamp(22px,2.3vw,30px);line-height:1.3;color:var(--gold-2)}

.area-chips{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 26px}
.area-chips span{font-size:12px;letter-spacing:.16em;text-transform:uppercase;padding:10px 16px;border:1px solid rgba(185,200,224,.35);color:var(--ivory)}
.light .area-chips span{border-color:rgba(15,26,46,.25);color:var(--text-dark)}
.area-copy{max-width:760px;color:var(--muted);font-size:17px}
.area-copy strong{color:var(--gold-2);font-weight:400}

.p-faq{max-width:820px;margin-inline:auto}
.p-faq h2{margin-bottom:34px}

.cta-band{padding:clamp(34px,4.5vw,56px) 0;background:linear-gradient(120deg,#16274a,var(--ink-2));text-align:center;border-block:1px solid rgba(185,200,224,.2)}
.cta-band h2{font-size:clamp(30px,4vw,52px);margin-bottom:14px}
.cta-band p{color:var(--muted);max-width:560px;margin:0 auto}
.cta-band .actions{justify-content:center}

.banner{background:var(--ivory);color:var(--text-dark);text-align:center;padding:12px var(--pad);font-size:15px}
.banner strong{font-weight:500}

/* gold price */
.spot-card{background:var(--ink-2);border:1px solid rgba(185,200,224,.25);padding:clamp(24px,3.4vw,40px);display:grid;gap:6px}
.spot-card .live{display:inline-flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.spot-card .live i{width:7px;height:7px;border-radius:50%;background:#7fd18b;animation:pulse 2s infinite}
.spot-card .big{font-family:var(--serif);font-size:clamp(46px,6vw,76px);line-height:1;color:var(--gold-2)}
.spot-card .cap{color:var(--muted);font-size:15px}
.price-table{width:100%;border-collapse:collapse;margin-top:6px}
.price-table th,.price-table td{text-align:left;padding:16px 14px;border-bottom:1px solid rgba(185,200,224,.2)}
.price-table th{font:400 11px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.price-table td:first-child{font-family:var(--serif);font-size:24px;color:var(--gold-2)}
.price-note{margin-top:16px;font-size:14px;color:var(--muted)}
.hl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:22px}
.hl-grid div{border-top:1px solid rgba(185,200,224,.35);padding-top:16px}
.hl-grid strong{display:block;font-family:var(--serif);font-weight:500;font-size:clamp(26px,3vw,38px);color:var(--gold-2);line-height:1.1}
.hl-grid span{font-size:15px;color:var(--muted)}
.priv{margin-top:22px;padding:22px 26px;border:1px solid rgba(185,200,224,.25);background:var(--ink-2);color:var(--muted);max-width:760px}

/* prose pages (about, care) */
.prose{max-width:780px}
.prose h2{font-size:clamp(30px,3.6vw,46px);margin:30px 0 12px}
.prose h2:first-child{margin-top:0}
.prose p{margin-bottom:16px;font-size:18px;color:#3b4659}
.dark .prose p{color:var(--muted)}
.info-card{background:var(--ink-2);border:1px solid rgba(185,200,224,.25);padding:clamp(26px,3.4vw,44px);display:grid;gap:18px;align-content:start}
.info-card dl{display:grid;gap:4px}
.info-card dt{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.info-card{color:var(--ivory)}
.info-card dd{font-size:19px}
.info-card a{color:var(--gold-2);text-decoration:none}
.info-card a.btn-gold{color:var(--ink)}
.info-card a.btn-gold:hover{color:var(--ink)}
.two-col{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(30px,6vw,90px);align-items:start}
.map-frame{width:100%;aspect-ratio:4/3;border:0;filter:grayscale(.3) contrast(1.05)}
.faq-group{margin-bottom:34px}
.faq-group h2{font-size:clamp(28px,3.4vw,42px);margin-bottom:10px}

@media (max-width:900px){
  .p-hero-grid,.split-feature,.two-col{grid-template-columns:1fr}
  .cards,.cards.two,.ba-grid{grid-template-columns:1fr}
  .stats .wrap,.hl-grid{grid-template-columns:repeat(2,1fr)}
  .split-feature figure::before{transform:translate(10px,10px)}
  .split-feature figure{margin-right:10px}
  .price-table th,.price-table td{padding:12px 8px}
  .price-table td:first-child{font-size:20px}
}
.banner{margin-top:68px;position:relative;z-index:1}
.banner+.p-hero{padding-top:clamp(50px,6vw,80px)}

/* video hero on inner pages */
.p-hero.vid{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;min-height:min(76svh,700px);background:var(--ink)}
.p-hero.vid>.wrap{position:relative;z-index:1;width:min(1200px,100% - 2*var(--pad))}
.hero-bg{position:absolute;inset:0;z-index:-2}
.hero-bg video{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 2.4s cubic-bezier(.2,.7,.2,1)}
.p-hero.vid.in .hero-bg video{transform:scale(1)}
.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,20,36,.93) 0%,rgba(10,20,36,.76) 50%,rgba(10,20,36,.4) 100%),linear-gradient(0deg,rgba(10,20,36,.85),transparent 30%);pointer-events:none}
.p-hero.vid h1,.p-hero.vid .lede{text-shadow:0 2px 30px rgba(0,0,0,.45)}
.p-hero.vid .book{background:rgba(14,26,48,.84);backdrop-filter:blur(10px)}
.p-hero.vid .wrap>*{opacity:0;transform:translateY(24px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
.p-hero.vid.in .wrap>*{opacity:1;transform:none}
.p-hero.vid .wrap>*:nth-child(2){transition-delay:.15s}
.area-chips a{font-size:12px;letter-spacing:.16em;text-transform:uppercase;padding:10px 16px;border:1px solid rgba(185,200,224,.35);color:var(--ivory);text-decoration:none;transition:.3s}
.area-chips a:hover{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
.foot-areas{max-width:880px;line-height:1.9}
.foot-areas strong{font-weight:400;color:var(--gold-2)}
.foot-grid a{text-decoration:none;border-bottom:1px solid rgba(185,200,224,.25)}
.light .price-table th{color:#3a5a8c}
.light .price-table td{color:var(--text-dark);border-bottom-color:rgba(15,26,46,.15)}
.light .price-table td:first-child{color:var(--text-dark)}
@media (max-width:900px){
  .p-hero.vid{min-height:0;align-items:flex-end;padding-top:120px}
  .hero-shade{background:linear-gradient(0deg,rgba(10,20,36,.95) 0%,rgba(10,20,36,.7) 55%,rgba(10,20,36,.4) 100%)}
}
@media (prefers-reduced-motion:reduce){.p-hero.vid .wrap>*{opacity:1;transform:none;transition:none}.hero-bg video{transform:none;transition:none}}

.areas-home{padding:clamp(40px,5.5vw,72px) 0;background:var(--ink-2);border-top:1px solid rgba(185,200,224,.18)}
.areas-home h2{font-size:clamp(30px,4vw,52px);margin-bottom:16px;max-width:760px}
.areas-home p{color:var(--muted);max-width:640px;margin-bottom:26px}
.areas-home .link{color:var(--gold-2)}

/* column footer */
.footer{padding:clamp(36px,4.5vw,56px) 0 90px;text-align:left}
.foot-cols{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.4fr;gap:clamp(24px,3vw,48px);align-items:start;justify-items:stretch;text-align:left;color:var(--muted);font-size:15px}
.foot-brand p{margin-top:16px;line-height:1.65;max-width:320px}
.foot-social{display:flex;flex-wrap:wrap;gap:6px 18px}
.foot-col h4{font:400 11px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gold-2);margin-bottom:18px}
.foot-col ul{list-style:none;display:grid;gap:9px}
.foot-split{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.foot-split ul+ul{margin:0}
.foot-grid a,.foot-cols a,.foot-bar a{text-decoration:none;border-bottom:0;color:var(--muted);transition:color .25s}
.foot-cols a:hover,.foot-bar a:hover{color:var(--ivory)}
.foot-col li a strong{font-weight:400;color:var(--gold-2)}
.foot-visit address{font-style:normal;font-size:15px;line-height:1.65;margin-bottom:12px;color:var(--ivory)}
.foot-visit p{line-height:1.8;margin-bottom:14px}
.foot-hours{display:grid;gap:6px;margin-bottom:16px}
.foot-hours div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid rgba(185,200,224,.15);padding-bottom:6px;font-size:14px}
.foot-hours dd{color:var(--ivory)}
.foot-dir{display:inline-block;color:var(--gold-2)!important;border-bottom:1px solid var(--gold)!important;padding-bottom:3px;font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.foot-bar{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:clamp(26px,3.5vw,40px);padding-top:18px;border-top:1px solid rgba(185,200,224,.18);font-size:13px;color:var(--muted);opacity:.85}
@media (max-width:1100px){.foot-cols{grid-template-columns:repeat(3,1fr)}.foot-brand{grid-column:1/-1}.foot-brand p{max-width:560px}}
@media (max-width:700px){.foot-cols{grid-template-columns:1fr 1fr}.foot-visit{grid-column:1/-1}.foot-bar{flex-direction:column}}
.foot-col ul.cols2{display:block;columns:2;column-gap:24px}
.foot-col ul.cols2 li{break-inside:avoid;margin-bottom:9px}

/* ================= hero story: one scroll gesture = next video ================= */
.story{position:relative;height:650vh;height:calc(6.5*100svh)}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:var(--ink)}
.scenes,.scene{position:absolute;inset:0}
.scene{opacity:0;will-change:opacity,transform}
.scene video{width:100%;height:100%;object-fit:cover;object-position:70% 50%}
.scrub{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 50%;background:var(--ink)}
.story-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,20,36,.88) 0%,rgba(10,20,36,.55) 38%,rgba(10,20,36,0) 70%),linear-gradient(0deg,rgba(10,20,36,.75),transparent 28%);pointer-events:none}
.story-copy{position:absolute;inset:0;padding:0 var(--pad)}
.chapter{position:absolute;left:var(--pad);top:50%;width:min(620px,86vw);opacity:0;transform:translateY(calc(-50% + 30px));pointer-events:none;will-change:opacity,transform}
.chapter.on,.chapter.live{pointer-events:auto}
.chapter h1,.chapter h2{font-size:clamp(36px,5vw,72px);text-shadow:0 2px 40px rgba(0,0,0,.5)}
.chapter.first{width:min(760px,88vw)}
.chapter .sub{margin-top:18px;font-family:var(--serif);font-style:italic;font-size:clamp(20px,2.3vw,32px);color:var(--gold-2)}
.chapter.first .lede{margin-top:16px}
.lede{margin-top:24px;max-width:480px;font-size:clamp(16px,1.5vw,19px);color:#e3dccd}
.rail{position:absolute;right:calc(var(--pad)*.6);top:50%;transform:translateY(-50%);list-style:none;display:flex;flex-direction:column;gap:20px;z-index:3}
.rail button{background:none;border:0;color:var(--ivory);display:flex;align-items:center;gap:12px;flex-direction:row-reverse;cursor:pointer;font:400 10px var(--sans);letter-spacing:.22em;text-transform:uppercase;opacity:.5;transition:.3s}
.rail i{width:9px;height:9px;border:1px solid var(--gold);transform:rotate(45deg);transition:.3s}
.rail span{opacity:0;transform:translateX(8px);transition:.3s}
.rail button.on,.rail button:hover{opacity:1}
.rail button.on i{background:var(--gold);box-shadow:0 0 14px var(--gold)}
.rail button.on span,.rail button:hover span{opacity:1;transform:none}
.scroll-cue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--muted);transition:.5s}
.scroll-cue i{width:1px;height:42px;background:linear-gradient(var(--gold),transparent);animation:drip 1.8s infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.scroll-cue.gone{opacity:0}
html.story-on{scroll-behavior:auto}
@media (max-width:900px){
  .scenes{bottom:40%}
  .story-shade{background:linear-gradient(0deg,var(--ink) 0%,var(--ink) 44%,rgba(10,20,36,.6) 52%,rgba(10,20,36,0) 66%)}
  .chapter{top:auto;bottom:96px;transform:translateY(30px);width:calc(100% - 2*var(--pad))}
  .chapter.on{transform:none}
  .chapter h1,.chapter h2{font-size:clamp(28px,8.4vw,44px)}
  .chapter .lede{margin-top:14px;font-size:15px}
  .chapter .actions{margin-top:20px}
  .chapter .btn{padding:13px 22px}
  .rail{right:12px;gap:16px}.rail span{display:none}
  .scroll-cue{display:none}
}
@media (prefers-reduced-motion:reduce){.scroll-cue i{animation:none}}

/* feature sections: each service is its own clean section, photo beside copy, nothing overlapping */
.feature{padding:clamp(44px,6vw,84px) 0}
.feature.dark{background:var(--ink-2);color:var(--ivory);border-block:1px solid rgba(185,200,224,.14)}
.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,76px);align-items:center}
.feature.flip .feature-img{order:2}
.feature-img{margin:0}
.feature-img img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;box-shadow:0 34px 60px -38px rgba(10,20,40,.6)}
.feature-copy h2{font-size:clamp(28px,3.3vw,44px);margin-bottom:16px}
.feature-copy p{font-size:clamp(16px,1.3vw,18px);line-height:1.7;color:#3b4659}
.feature.dark .feature-copy p{color:var(--muted)}
.feature-copy .actions{margin-top:24px}
.feature .ticks{margin:2px 0 4px}
.feature .ticks li{border-bottom-color:rgba(185,200,224,.2)}
.feature .chips{margin:20px 0 10px}
.feature .chip-text{min-height:0;margin-bottom:0}
.light .chips button{color:var(--text-dark);border-color:rgba(15,26,46,.3)}
.light .chips button.on,.light .chips button:hover{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.btn-line{color:var(--text-dark);border-color:rgba(15,26,46,.4)}
.btn-line:hover{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
@media (max-width:900px){
  .feature-grid{grid-template-columns:1fr}
  .feature.flip .feature-img{order:0}
}

.hero-proof{position:absolute;left:var(--pad);bottom:clamp(22px,4vh,40px);z-index:3;display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px 8px;font-size:15px;color:var(--ivory);text-decoration:none;border-bottom:0;text-shadow:0 1px 18px rgba(0,0,0,.55)}
.hero-proof .stars{letter-spacing:2px;color:#f4c95d}
.hero-proof strong{font-weight:600}
.hero-proof:hover{opacity:.85}
@media (max-width:900px){.hero-proof{bottom:64px;font-size:13px}.chapter{bottom:104px}}
.legal h2{font-size:clamp(26px,3vw,36px);margin:38px 0 12px}
.legal h3{font-size:clamp(20px,2.2vw,26px);margin:26px 0 10px}
.legal h4{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#3a5a8c;margin:22px 0 8px;font-family:var(--sans);font-weight:500}
.legal ul{margin:0 0 18px 20px;display:grid;gap:6px;color:#3b4659;font-size:17px}
.legal a{color:#1d3a6b;text-decoration:underline}

/* reviews page */
.rv-sum{margin-top:22px;font-size:17px}
.rv-sum .stars{color:#f4c95d;letter-spacing:2px;margin-right:6px}
.rv-cta{margin-top:26px;display:flex;flex-wrap:wrap;gap:12px}
.rv-grid{columns:3 300px;column-gap:22px}
.rv-card{break-inside:avoid;background:#fff;border:1px solid rgba(15,26,46,.12);padding:24px;margin:0 0 22px;color:var(--text-dark)}
.rv-top{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.rv-top h3{font:500 17px/1.2 var(--sans);letter-spacing:0}
.rv-date{font-size:13px;color:#5b6678}
.rv-av{flex:none;width:42px;height:42px;border-radius:50%;background:var(--ink);color:var(--ivory);display:grid;place-items:center;font:500 15px/1 var(--sans)}
.rv-stars{color:#d9a21b;letter-spacing:2px;font-size:17px;margin-bottom:10px}
.rv-text{font-size:16px;line-height:1.6;color:var(--text-dark);white-space:pre-line}
.rv-reply{margin-top:16px;padding:14px 16px;background:var(--ivory);border-left:3px solid #3a5a8c;font-size:14.5px;color:var(--text-dark)}
.rv-reply strong{display:block;font-weight:500;margin-bottom:4px}
.rv-foot{margin-top:18px;font-size:13px;color:#5b6678}

/* links page: mobile-first link-in-bio */
body.lb{background:radial-gradient(900px 520px at 85% -5%,#1a2f58,transparent 60%),var(--ink);min-height:100svh}
.lb-wrap{width:min(480px,100%);margin-inline:auto;padding:calc(28px + env(safe-area-inset-top)) 18px calc(34px + env(safe-area-inset-bottom))}
.lb-head{text-align:center;margin-bottom:22px}
.lb-head img{margin:0 auto 14px}
.lb-tag{color:var(--muted);font-size:15px;line-height:1.45;max-width:320px;margin:0 auto 12px}
.lb-rate{font-size:15px}
.lb-rate span{color:#f4c95d;letter-spacing:2px}
.lb-open{margin-top:8px;font-size:14px;color:var(--gold-2);display:inline-flex;align-items:center;gap:8px}
.lb-open b{width:9px;height:9px;border-radius:50%;background:#7b8799;display:inline-block}
.lb-open b.on{background:#4fd18b;box-shadow:0 0 0 4px rgba(79,209,139,.22)}
.lb-main{display:grid;gap:12px;margin-bottom:26px}
.lb-big{display:flex;align-items:center;gap:16px;min-height:72px;padding:14px 20px;background:var(--ivory);color:var(--ink);text-decoration:none;border-radius:14px;transition:transform .2s,background .2s;-webkit-tap-highlight-color:transparent}
.lb-big:active{transform:scale(.98);background:#fff}
.lb-big svg{flex:none;width:26px;height:26px;fill:var(--ink)}
.lb-big strong{display:block;font:500 19px/1.2 var(--sans)}
.lb-big small{display:block;font-size:14px;color:#41506a;margin-top:2px}
.lb-sec{margin-bottom:26px}
.lb-sec h2{font:500 13px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 12px 4px}
.lb-sec address{font-style:normal;color:var(--ivory);margin:0 0 12px 4px;font-size:16px}
.lb-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:12px 18px;margin-bottom:10px;border:1px solid rgba(185,200,224,.28);border-radius:12px;color:var(--ivory);text-decoration:none;font-size:16.5px;-webkit-tap-highlight-color:transparent;transition:background .2s}
.lb-row:active,.lb-row:hover{background:rgba(185,200,224,.12)}
.lb-row i{font-style:normal;font-size:24px;color:var(--gold);line-height:1}
.lb-map{width:100%;aspect-ratio:4/3;border:0;border-radius:12px;margin-bottom:12px;filter:saturate(.9)}
.lb-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.lb-two .lb-row{margin-bottom:0}
.lb-hours{margin-top:16px;display:grid;gap:8px;padding:0 4px}
.lb-hours div{display:flex;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px solid rgba(185,200,224,.18);font-size:15.5px}
.lb-hours dt{color:var(--muted)}
.lb-three{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.lb-soc{display:grid;place-items:center;min-height:54px;border:1px solid rgba(185,200,224,.28);border-radius:12px;color:var(--ivory);text-decoration:none;font-size:15px;-webkit-tap-highlight-color:transparent}
.lb-soc:active,.lb-soc:hover{background:rgba(185,200,224,.12)}
.lb-foot{text-align:center;font-size:13px;color:var(--muted)}
.lb-foot a{color:var(--muted);text-decoration:none}
@media (min-width:600px){.lb-wrap{padding-top:56px}}

/* form states (live submit) */
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0}
.form-err{color:#ffb4a8;font-size:14px;text-align:center}
.light .form-err{color:#b3261e}
.book-fields{display:grid;gap:18px;align-content:start}
.book-thanks h3{margin-bottom:10px}
.book-thanks p{margin-top:10px;color:var(--muted)}
.book-thanks a{color:var(--ivory)}
.book button[disabled]{opacity:.6;cursor:progress}

.book label .opt{font-weight:400;opacity:.65;font-size:.85em}

#book{scroll-margin-top:110px}

/* review carousel */
.rv-car .review-grid{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 0 34px;margin-bottom:-34px;-webkit-overflow-scrolling:touch}
.rv-car .review-grid::-webkit-scrollbar{display:none}
.rv-car .review-grid:focus-visible{outline:2px solid #3a5a8c;outline-offset:4px}
.rv-car blockquote{flex:0 0 calc((100% - 40px)/3);scroll-snap-align:start;margin:0;opacity:1;transform:none}
.rv-ctrl{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:30px}
.rv-ctrl button{width:42px;height:42px;border:1px solid rgba(15,26,46,.3);background:transparent;color:inherit;font-size:24px;line-height:1;cursor:pointer;border-radius:50%;transition:.2s}
.rv-ctrl button:hover{background:#0a1424;color:#fff;border-color:#0a1424}
.rv-dots{display:flex;gap:10px}
.rv-dots button{width:10px;height:10px;padding:0;border-radius:50%;border:0;background:rgba(15,26,46,.25)}
.rv-dots button:hover{background:rgba(15,26,46,.5);color:inherit}
.rv-dots button[aria-selected="true"]{background:#3a5a8c;transform:scale(1.2)}
@media (max-width:1000px){.rv-car blockquote{flex-basis:calc((100% - 20px)/2)}}
@media (max-width:640px){.rv-car blockquote{flex-basis:100%}}

/* mobile menu social links, pinned to the bottom */
.mobile-menu{justify-content:flex-start;padding-top:96px;padding-bottom:calc(24px + env(safe-area-inset-bottom));overflow-y:auto;gap:18px}
.mobile-menu .mm-social{margin-top:auto;display:flex;justify-content:center;gap:28px;padding-top:22px;border-top:1px solid rgba(185,200,224,.2)}
.mobile-menu .mm-social a{font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;opacity:.8}
.mobile-menu .mm-social a:hover{opacity:1}
@media (max-height:700px){.mobile-menu{font-size:30px;gap:12px;padding-top:84px}}
