:root{--navy-950:#0A121A;--navy-900:#0E1720;--navy:#16222E;--navy-700:#223447;--navy-500:#3D5468;--gold-300:#E3D2B2;--gold:#BA9D6F;--gold-600:#A2854F;--gold-800:#7C6134;--cream-50:#FBF8F1;--cream-100:#F7F3E9;--cream-200:#F0EADC;--taupe-300:#DDD3C1;--taupe-400:#C9BCA4;--ink:#1E1D18;--ink-600:#5A564C;--white:#fff;--ok:#2E7D5B;--err:#B3402E;--sans:var(--font-body);--disp:var(--font-display);--eyebrow-f:var(--font-body);--r-sm:6px;--r:12px;--r-lg:20px;--r-xl:28px;--sh-1:0 1px 2px rgba(22,34,46,.05),0 2px 8px rgba(22,34,46,.05);--sh-2:0 4px 12px rgba(22,34,46,.07),0 12px 32px rgba(22,34,46,.07);--sh-3:0 8px 24px rgba(22,34,46,.10),0 24px 64px rgba(22,34,46,.12);--sh-gold:0 10px 30px rgba(162,133,79,.28);--ease:cubic-bezier(.22,1,.36,1);--ease-io:cubic-bezier(.65,0,.35,1);--pad:clamp(20px,5vw,40px);--maxw:1240px;--narrow:940px;--sec-y:clamp(64px,9vw,124px);--hdr-h:82px}*,*::before,*::after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}html.has-smooth{scroll-behavior:auto}body{font-family:var(--sans);font-size:17px;line-height:1.68;color:var(--ink);background:var(--cream-100);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis-weight:none}img,picture,svg,video{display:block;max-width:100%}img{height:auto}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:0;cursor:pointer}a{color:inherit;text-decoration:none}ul,ol{list-style:none}h1,h2,h3,h4{font-family:var(--disp);font-weight:600;line-height:1.1;letter-spacing:-.015em;color:var(--navy)}h1{font-size:clamp(2.5rem,6.2vw,4.6rem);letter-spacing:-.028em}h2{font-size:clamp(2rem,4.3vw,3.35rem);letter-spacing:-.022em}h3{font-size:clamp(1.25rem,2vw,1.6rem)}h4{font-size:1.06rem;font-family:var(--sans);font-weight:650;letter-spacing:-.005em}p{text-wrap:pretty}.ital{font-style:italic;color:var(--gold-800)}.dark .ital,.hero .ital{color:var(--gold)}::selection{background:var(--gold);color:var(--navy)}:focus-visible{outline:3px solid var(--gold-600);outline-offset:3px;border-radius:3px}.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip{position:fixed;top:-100px;left:16px;z-index:999;background:var(--gold);color:var(--navy);padding:12px 20px;border-radius:0 0 var(--r) var(--r);font-weight:650;transition:top .2s}.skip:focus{top:0}.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}.wrap-n{width:100%;max-width:var(--narrow);margin-inline:auto;padding-inline:var(--pad)}section{position:relative}.sec{padding-block:var(--sec-y)}.sec-sm{padding-block:clamp(44px,6vw,76px)}.bg-cream{background:var(--cream-100)}.bg-cream2{background:var(--cream-200)}.bg-off{background:var(--cream-50)}.dark{background:var(--navy);color:var(--cream-100);--ink:var(--cream-100);--ink-600:var(--color-text-subtle-dark)}.dark h1,.dark h2,.dark h3,.dark h4{color:var(--cream-50)}.dark::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 78% at 78% 0%,rgba(186,157,111,.10),transparent 62%),linear-gradient(180deg,rgba(255,255,255,.022),transparent 30%,rgba(0,0,0,.16))}.dark>*{position:relative;z-index:1}.deep{background:var(--navy-900)}.grain::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;z-index:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.045'/%3E%3C/svg%3E")}.eyebrow{font-family:var(--eyebrow-f);font-size:.75rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-800);display:flex;align-items:center;gap:12px;margin-bottom:18px}.eyebrow::before{content:"";width:30px;height:1.5px;background:var(--gold);flex:none}.dark .eyebrow{color:var(--gold-300)}.eyebrow.center{justify-content:center}.lead{font-size:clamp(1.02rem,1.5vw,1.16rem);color:var(--ink-600);max-width:62ch;line-height:1.72}.dark .lead{color:var(--color-text-muted-dark)}.sec-head{max-width:none;margin-bottom:clamp(34px,4.5vw,58px)}.sec-head.center{text-align:center;max-width:760px;margin-inline:auto}.sec-head.center .eyebrow{justify-content:center}.sec-head.center .lead{margin-inline:auto}.sec-head h2+.lead{margin-top:18px}.sec-head.split{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end}@media(max-width:820px){.sec-head.split{grid-template-columns:1fr;align-items:start}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 28px;border-radius:100px;font-weight:640;font-size:.955rem;letter-spacing:.005em;line-height:1;position:relative;overflow:hidden;transition:transform .45s var(--ease),box-shadow .45s var(--ease),background-color .3s,color .3s,border-color .3s;will-change:transform;border:1.5px solid transparent;text-align:center}.btn svg{flex:none;transition:transform .45s var(--ease)}.btn:hover svg{transform:translateX(4px)}.btn-gold{background:linear-gradient(135deg,var(--gold) 0%,var(--gold-600) 100%);color:var(--navy);box-shadow:var(--sh-gold)}.btn-gold:hover{box-shadow:0 14px 38px rgba(162,133,79,.42);transform:translateY(-2px)}.btn-navy{background:var(--navy);color:var(--cream-50);box-shadow:var(--sh-2)}.btn-navy:hover{background:var(--navy-900);transform:translateY(-2px);box-shadow:var(--sh-3)}.btn-ghost{border-color:rgba(186,157,111,.55);color:var(--gold-800)}.btn-ghost:hover{background:var(--gold);border-color:var(--gold);color:var(--navy)}.dark .btn-ghost,.hero .btn-ghost{border-color:rgba(227,210,178,.42);color:var(--cream-50)}.dark .btn-ghost:hover,.hero .btn-ghost:hover{background:var(--cream-50);border-color:var(--cream-50);color:var(--navy)}.btn-lg{padding:18px 34px;font-size:1rem}.btn-block{width:100%}.btns{display:flex;flex-wrap:wrap;gap:14px}.lnk{display:inline-flex;align-items:center;gap:8px;font-weight:640;font-size:.94rem;color:var(--gold-800);border-bottom:1.5px solid rgba(186,157,111,.4);padding-bottom:3px;transition:gap .35s var(--ease),border-color .3s,color .3s}.lnk:hover{gap:14px;border-color:var(--gold);color:var(--navy)}.dark .lnk{color:var(--gold-300);border-color:rgba(227,210,178,.35)}.dark .lnk:hover{color:var(--gold);border-color:var(--gold)}.hdr{position:fixed;top:0;left:0;right:0;z-index:100;transition:background-color .4s var(--ease),box-shadow .4s var(--ease),backdrop-filter .4s,padding .4s var(--ease);padding-block:16px}.hdr::after{content:"";position:absolute;inset:0;background:rgba(14,23,32,.86);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid rgba(186,157,111,.16);opacity:0;transition:opacity .4s var(--ease);pointer-events:none}.hdr.stuck{padding-block:9px}.hdr.stuck::after{opacity:1}.hdr>.wrap{position:relative;z-index:2;display:flex;align-items:center;gap:26px}.brand{display:flex;align-items:center;gap:11px;flex:none;margin-right:auto}.brand svg{width:38px;height:38px;flex:none;transition:transform .5s var(--ease)}.brand:hover svg{transform:rotate(-6deg) scale(1.06)}.brand b{font-family:var(--disp);font-weight:600;font-size:1.16rem;color:var(--cream-50);letter-spacing:-.01em;line-height:1.05;display:block}.brand s,.brand i{display:block;font-style:normal;text-decoration:none;font-family:var(--eyebrow-f);font-size:.575rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-top:3px}.nav{display:flex;align-items:center;gap:3px}.nav a{font-size:.885rem;font-weight:520;color:rgba(247,243,233,.86);padding:9px 13px;border-radius:8px;position:relative;transition:color .25s}.nav a::after{content:"";position:absolute;left:13px;right:13px;bottom:4px;height:1.5px;background:var(--gold);transform:scaleX(0);transform-origin:0 50%;transition:transform .4s var(--ease)}.nav a:hover{color:#fff}.nav a:hover::after,.nav a[aria-current=page]::after{transform:scaleX(1)}.nav a[aria-current=page]{color:var(--gold-300)}.hdr-cta{display:flex;align-items:center;gap:12px;flex:none}.hdr-tel{display:flex;align-items:center;gap:8px;font-weight:640;font-size:.9rem;color:var(--cream-50);white-space:nowrap;transition:color .25s}.hdr-tel svg{width:16px;height:16px;color:var(--gold)}.hdr-tel:hover{color:var(--gold-300)}.burger{display:none;width:44px;height:44px;border-radius:10px;border:1px solid rgba(227,210,178,.28);place-items:center;flex:none}.burger i{display:block;width:19px;height:1.7px;background:var(--cream-50);border-radius:2px;transition:transform .4s var(--ease),opacity .25s}.burger i+i{margin-top:5px}.burger[aria-expanded=true] i:first-child{transform:translateY(6.7px) rotate(45deg)}.burger[aria-expanded=true] i:nth-child(2){opacity:0}.burger[aria-expanded=true] i:last-child{transform:translateY(-6.7px) rotate(-45deg)}@media(max-width:1120px){.nav,.hdr-tel{display:none}.burger{display:grid}}.drawer{position:fixed;inset:0;z-index:99;background:var(--navy-900);padding:calc(var(--hdr-h) + 24px) var(--pad) 40px;display:flex;flex-direction:column;gap:6px;transform:translateY(-100%);visibility:hidden;transition:transform .6s var(--ease),visibility .6s;overflow-y:auto}.drawer.open{transform:translateY(0);visibility:visible}.drawer a.dl{font-family:var(--disp);font-size:1.85rem;color:var(--cream-50);padding:11px 0;border-bottom:1px solid rgba(186,157,111,.16);opacity:0;transform:translateY(22px);transition:opacity .5s var(--ease),transform .5s var(--ease),color .25s}.drawer.open a.dl{opacity:1;transform:none}.drawer a.dl:hover{color:var(--gold)}.drawer .dfoot{margin-top:auto;padding-top:28px;display:grid;gap:12px}.drawer .dfoot .btn{width:100%}.ftr{background:var(--navy-950);color:#9FAAB6;padding-block:clamp(56px,7vw,84px) 0;position:relative;overflow:hidden}.ftr::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(186,157,111,.5),transparent)}.ftr-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.25fr;gap:clamp(28px,4vw,56px)}@media(max-width:940px){.ftr-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.ftr-grid{grid-template-columns:1fr;gap:32px}}.ftr a{transition:color .25s}.ftr a:hover{color:var(--gold-300)}.ftr li+li{margin-top:11px}.ftr li a{font-size:.925rem}.ftr .brand b{font-size:1.24rem}.ftr-con{display:grid;gap:14px;margin-top:2px}.ftr-con a,.ftr-con span{display:flex;gap:11px;align-items:flex-start;font-size:.925rem;line-height:1.5}.ftr-con svg{width:16px;height:16px;color:var(--gold);flex:none;margin-top:3px}.ftr-con strong{color:var(--cream-50);font-weight:640;font-size:1.02rem}.ftr-bot{margin-top:clamp(40px,5vw,60px);border-top:1px solid rgba(255,255,255,.08);padding-block:24px;display:flex;flex-wrap:wrap;gap:14px 26px;justify-content:space-between;align-items:center;font-size:.83rem}.ftr-bot p{color:var(--color-text-legal-dark)}.ftr-tag{font-family:var(--disp);font-style:italic;color:var(--gold);font-size:1rem}.soc{display:flex;gap:10px}.soc a{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.14);display:grid;place-items:center;transition:background-color .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease),transform .3s var(--ease)}.soc a:hover{background:var(--gold);border-color:var(--gold);color:var(--navy);transform:translateY(-3px)}.soc svg{width:16px;height:16px}.brand{min-width:0}.btxt{min-width:0;overflow:hidden}@media(max-width:640px){.hdr-cta{display:none}.hdr>.wrap{gap:14px}}@media(max-width:400px){.brand b{font-size:1.04rem}.brand svg{width:34px;height:34px}}.rv{opacity:0;transform:translateY(30px);filter:blur(4px);transition:opacity .85s var(--ease),transform .85s var(--ease),filter .85s var(--ease)}.rv.in{opacity:1;transform:none;filter:none}.rv-l{opacity:0;transform:translateX(-30px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.rv-r{opacity:0;transform:translateX(30px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.rv-l.in,.rv-r.in{opacity:1;transform:none}.rv-s{opacity:0;transform:scale(.94);transition:opacity .9s var(--ease),transform 1s var(--ease)}.rv-s.in{opacity:1;transform:none}.stg>*{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.stg.in>*{opacity:1;transform:none}.stg.in>*:nth-child(1){transition-delay:.02s}.stg.in>*:nth-child(2){transition-delay:.1s}.stg.in>*:nth-child(3){transition-delay:.18s}.stg.in>*:nth-child(4){transition-delay:.26s}.stg.in>*:nth-child(5){transition-delay:.34s}.stg.in>*:nth-child(6){transition-delay:.42s}.stg.in>*:nth-child(7){transition-delay:.5s}.stg.in>*:nth-child(8){transition-delay:.58s}.stg.in>*:nth-child(n+9){transition-delay:.64s}.wipe{clip-path:inset(0 0 100% 0);transition:clip-path 1.15s var(--ease)}.wipe.in{clip-path:inset(0 0 0 0)}.ln{position:relative;overflow:hidden;display:block}.ln>span{display:block;transform:translateY(105%);transition:transform 1s var(--ease)}.ln.in>span{transform:none}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.rv,.rv-l,.rv-r,.rv-s,.stg>*{opacity:1!important;transform:none!important;filter:none!important}.wipe{clip-path:none!important}.ln>span{transform:none!important}}.hero{position:relative;min-height:min(100svh,940px);display:flex;align-items:center;padding-block:calc(var(--hdr-h) + 56px) clamp(72px,9vw,112px);background:var(--navy-900);overflow:hidden;isolation:isolate}.hero-bg{position:absolute;inset:-6% 0 -6%;z-index:-2;will-change:transform}.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 46%}.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(96deg,rgba(10,18,26,.95) 0%,rgba(14,23,32,.88) 38%,rgba(14,23,32,.55) 68%,rgba(14,23,32,.42) 100%)}.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(80% 60% at 82% 78%,rgba(186,157,111,.18),transparent 60%),linear-gradient(180deg,rgba(10,18,26,.55),transparent 26%,rgba(10,18,26,.72))}.hero-in{position:relative;z-index:2;width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}.hero-c{max-width:830px}.pill{display:inline-flex;align-items:center;gap:11px;padding:9px 18px 9px 11px;border-radius:100px;background:rgba(251,248,241,.09);border:1px solid rgba(227,210,178,.26);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:.82rem;font-weight:520;color:var(--cream-50);margin-bottom:26px}.pill b{background:var(--gold);color:var(--navy);font-weight:700;padding:4px 11px;border-radius:100px;font-size:.775rem;letter-spacing:.02em}.hero h1{color:var(--cream-50);font-size:clamp(2.7rem,6.6vw,5.05rem);line-height:1.04;letter-spacing:-.032em}.hero h1 .ital{color:var(--gold)}.hero .lead{color:var(--color-text-strong-dark);font-size:clamp(1.06rem,1.7vw,1.24rem);margin-top:26px;max-width:57ch}.hero .btns{margin-top:38px}.hero-chips{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:44px;padding-top:30px;border-top:1px solid rgba(227,210,178,.2)}.hero-chips li{display:flex;align-items:center;gap:9px;font-size:.87rem;font-weight:520;color:var(--color-text-chip-dark)}.hero-chips svg{width:17px;height:17px;color:var(--gold);flex:none}@media(max-width:1120px){}@media(max-width:520px){}.scroll-cue{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:3;display:grid;justify-items:center;gap:8px;font-family:var(--eyebrow-f);font-size:.63rem;letter-spacing:.26em;text-transform:uppercase;color:rgba(227,210,178,.7)}.scroll-cue i{display:block;width:1px;height:38px;background:linear-gradient(180deg,var(--gold),transparent);animation:cue 2.2s var(--ease-io) infinite}@keyframes cue{0%{transform:scaleY(0);transform-origin:0 0}45%{transform:scaleY(1);transform-origin:0 0}55%{transform:scaleY(1);transform-origin:0 100%}100%{transform:scaleY(0);transform-origin:0 100%}}@media(max-width:900px){.scroll-cue{display:none}}.phero{position:relative;padding-block:calc(var(--hdr-h) + clamp(56px,7vw,86px)) clamp(52px,7vw,86px);background:var(--navy);overflow:hidden;isolation:isolate;text-align:center}.phero::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 100% at 50% 0%,rgba(186,157,111,.16),transparent 62%),linear-gradient(180deg,rgba(255,255,255,.03),transparent 40%,rgba(0,0,0,.2))}.phero>*{position:relative;z-index:1}.phero h1{color:var(--cream-50);font-size:clamp(2.25rem,5vw,3.85rem)}.phero .lead{color:var(--color-text-muted-dark);margin:20px auto 0;text-align:center}.phero .eyebrow{justify-content:center;color:var(--gold-300)}.crumb{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin-top:26px;font-size:.8rem;color:var(--color-text-faint-dark)}.crumb a{transition:color .25s}.crumb a:hover{color:var(--gold-300)}.crumb span[aria-current]{color:var(--gold-300)}.marq{background:linear-gradient(90deg,var(--gold-600),var(--gold) 48%,var(--gold-600));padding-block:15px;overflow:hidden;position:relative;border-block:1px solid rgba(22,34,46,.12)}.marq-t{display:flex;width:max-content;animation:marq 42s linear infinite}.marq:hover .marq-t{animation-play-state:paused}.marq-t span{display:flex;align-items:center;gap:clamp(20px,3vw,42px);padding-right:clamp(20px,3vw,42px);font-family:var(--eyebrow-f);font-weight:600;font-size:.82rem;letter-spacing:.22em;text-transform:uppercase;color:var(--navy);white-space:nowrap}.marq-t i{display:block;width:5px;height:5px;border-radius:50%;background:var(--navy);opacity:.5;flex:none}@keyframes marq{to{transform:translateX(-50%)}}.fr{position:relative;overflow:hidden;border-radius:var(--r-lg);background:var(--cream-200)}.fr img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}.fr::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(22,34,46,.07);border-radius:inherit;pointer-events:none}.svc{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.6vw,22px)}@media(max-width:1040px){.svc{grid-template-columns:1fr 1fr}}@media(max-width:560px){.svc{grid-template-columns:1fr}}.scard{position:relative;display:flex;flex-direction:column;background:var(--cream-50);border:1px solid var(--taupe-300);border-radius:var(--r-lg);overflow:hidden;transition:transform .55s var(--ease),box-shadow .55s var(--ease),border-color .4s}.scard:hover{transform:translateY(-7px);box-shadow:var(--sh-3);border-color:var(--gold)}.scard .fr{border-radius:0;aspect-ratio:4/3}.scard:hover .fr img{transform:scale(1.07)}.scard-b{padding:24px 24px 26px;display:flex;flex-direction:column;flex:1;gap:11px}.scard-n{position:absolute;top:14px;left:14px;z-index:2;width:34px;height:34px;border-radius:50%;background:rgba(14,23,32,.7);backdrop-filter:blur(8px);display:grid;place-items:center;font-family:var(--eyebrow-f);font-size:.72rem;font-weight:600;color:var(--gold-300);letter-spacing:.06em}.scard h3{font-size:1.28rem}.scard p{font-size:.91rem;color:var(--ink-600);line-height:1.62}.scard .rate{display:inline-flex;align-items:baseline;gap:5px;font-family:var(--disp);font-size:1.35rem;color:var(--gold-800);font-weight:600}.scard .rate em{font-style:normal;font-family:var(--sans);font-size:.78rem;font-weight:600;color:var(--ink-600);letter-spacing:.02em}.scard .lnk{margin-top:auto;align-self:flex-start;padding-top:6px}.prc{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,26px);align-items:stretch}@media(max-width:980px){.prc{grid-template-columns:1fr;max-width:520px;margin-inline:auto}}.pc{position:relative;display:flex;flex-direction:column;padding:clamp(28px,3.2vw,40px) clamp(24px,2.6vw,34px) clamp(28px,3vw,36px);background:rgba(251,248,241,.045);border:1px solid rgba(227,210,178,.2);border-radius:var(--r-xl);transition:transform .55s var(--ease),box-shadow .55s var(--ease),border-color .4s,background-color .4s;overflow:hidden}.pc::before{content:"";position:absolute;inset:0;border-radius:inherit;opacity:0;transition:opacity .5s;background:radial-gradient(90% 70% at 50% 0%,rgba(186,157,111,.13),transparent 62%);pointer-events:none}.pc:hover{transform:translateY(-8px);border-color:rgba(186,157,111,.55);box-shadow:0 24px 60px rgba(0,0,0,.3)}.pc:hover::before{opacity:1}.pc.fea{background:linear-gradient(170deg,rgba(186,157,111,.16),rgba(186,157,111,.05) 55%,transparent);border-color:var(--gold);box-shadow:0 20px 60px rgba(0,0,0,.34)}.pc.fea::after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold-600),var(--gold-300),var(--gold-600))}.pc-tag{position:absolute;top:18px;right:18px;background:var(--gold);color:var(--navy);font-family:var(--eyebrow-f);font-size:.63rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;padding:6px 13px;border-radius:100px}.pc h3{font-size:1.34rem;color:var(--cream-50)}.pc>p{font-size:.9rem;color:var(--color-text-subtle-dark);margin-top:9px;line-height:1.6;min-height:2.9em}.pc-amt{display:flex;align-items:flex-start;gap:4px;margin:22px 0 4px;font-family:var(--disp);line-height:.88;color:var(--gold)}.pc-amt .cur{font-size:1.55rem;margin-top:.42em}.pc-amt .num{font-size:clamp(3.5rem,6vw,4.5rem);font-weight:600;letter-spacing:-.03em}.pc-amt .unit{font-family:var(--sans);font-size:.88rem;font-weight:600;color:var(--color-text-muted-dark);align-self:flex-end;margin-bottom:.85em;margin-left:5px;letter-spacing:.01em}.honesty{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 22px;margin-top:26px;font-family:var(--eyebrow-f);font-size:.73rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-300);font-weight:500;text-align:center}.honesty i{width:4px;height:4px;border-radius:50%;background:var(--gold);opacity:.55;display:block}.mincharge{text-align:center;font-size:.8rem;color:var(--color-text-faint-dark);margin-top:14px;font-style:italic}.rtbl{width:100%;border-collapse:collapse;background:var(--cream-50);border:1px solid var(--taupe-300);border-radius:var(--r-lg);overflow:hidden}.rtbl th,.rtbl td{padding:17px 20px;text-align:left;font-size:.92rem;border-bottom:1px solid var(--taupe-300);vertical-align:top}.rtbl th{background:var(--navy);color:var(--cream-50);font-family:var(--eyebrow-f);font-size:.71rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600}.rtbl tr:last-child td{border-bottom:0}.rtbl tbody tr{transition:background-color .3s}.rtbl tbody tr:hover{background:var(--cream-200)}.rtbl td b{color:var(--gold-800);font-family:var(--disp);font-size:1.15rem;font-weight:600}.rtbl-w{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--r-lg)}.calc{display:grid;grid-template-columns:1.25fr .95fr;gap:clamp(20px,2.6vw,34px);align-items:start}@media(max-width:940px){.calc{grid-template-columns:1fr}}.calc-p{background:var(--cream-50);border:1px solid var(--taupe-300);border-radius:var(--r-xl);padding:clamp(24px,3vw,38px);box-shadow:var(--sh-1)}.calc-lb{display:block;font-family:var(--eyebrow-f);font-size:.71rem;letter-spacing:.17em;text-transform:uppercase;color:var(--ink-600);font-weight:600;margin-bottom:13px}.sqbox{display:flex;align-items:baseline;gap:6px;background:var(--cream-100);border:1.5px solid var(--taupe-300);border-radius:var(--r);padding:9px 14px;transition:border-color .3s}.sqbox:focus-within{border-color:var(--gold)}.sqbox input{width:5.2ch;border:0;background:none;font-family:var(--disp);font-size:1.72rem;font-weight:600;color:var(--navy);text-align:right;-moz-appearance:textfield}.sqbox input::-webkit-outer-spin-button,.sqbox input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.sqbox input:focus{outline:none}.sqbox span{font-size:.82rem;color:var(--ink-600);font-weight:600}.rng{-webkit-appearance:none;appearance:none;width:100%;height:5px;border-radius:100px;background:var(--taupe-300);outline:none;margin:18px 0 6px}.rng::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;cursor:grab;background:linear-gradient(135deg,var(--gold),var(--gold-600));border:3px solid var(--cream-50);box-shadow:0 3px 12px rgba(162,133,79,.5);transition:transform .2s}.rng::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.15)}.rng::-moz-range-thumb{width:20px;height:20px;border-radius:50%;cursor:grab;background:var(--gold);border:3px solid var(--cream-50);box-shadow:0 3px 12px rgba(162,133,79,.5)}.rng-lab{display:flex;justify-content:space-between;font-size:.76rem;color:var(--ink-600);margin-bottom:28px}.calc-r{background:var(--navy);color:var(--cream-50);border-radius:var(--r-xl);padding:clamp(26px,3vw,38px);position:relative;overflow:hidden;box-shadow:var(--sh-3)}.calc-r::before{content:"";position:absolute;inset:0;background:radial-gradient(90% 70% at 80% 0%,rgba(186,157,111,.16),transparent 62%);pointer-events:none}.calc-r>*{position:relative;z-index:1}.calc-r .calc-lb{color:var(--gold-300)}.tot{font-family:var(--disp);font-size:clamp(3rem,6.5vw,4.3rem);font-weight:600;line-height:1;color:var(--gold);letter-spacing:-.03em;display:flex;align-items:baseline;gap:3px}.tot .cur{font-size:.5em}.tot-sub{font-size:.84rem;color:var(--color-text-subtle-dark);margin-top:12px}.brk{margin:24px 0;padding-top:20px;border-top:1px solid rgba(227,210,178,.18);display:grid;gap:11px}.brk div{display:flex;justify-content:space-between;gap:14px;font-size:.885rem;color:var(--color-text-soft-dark)}.brk div span:last-child{font-weight:640;color:var(--cream-50);font-variant-numeric:tabular-nums}.brk div.empty{color:var(--color-text-legal-dark);font-style:italic;justify-content:flex-start}.calc-r .btn{width:100%}.calc-dis{font-size:.775rem;color:var(--color-text-faint-dark);line-height:1.55;margin-top:16px;text-align:center}.pil{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--taupe-300);border:1px solid var(--taupe-300);border-radius:var(--r-lg);overflow:hidden}@media(max-width:1040px){.pil{grid-template-columns:1fr 1fr}}@media(max-width:560px){.pil{grid-template-columns:1fr}}.pil li{background:var(--cream-50);padding:clamp(24px,2.8vw,34px);transition:background-color .4s}.pil li:hover{background:var(--cream-200)}.pil .ic{width:48px;height:48px;border-radius:14px;background:var(--navy);display:grid;place-items:center;margin-bottom:20px;transition:transform .5s var(--ease),background-color .4s}.pil li:hover .ic{transform:translateY(-4px) rotate(-5deg);background:var(--gold)}.pil .ic svg{width:22px;height:22px;color:var(--gold);transition:color .4s}.pil li:hover .ic svg{color:var(--navy)}.pil h3{font-size:1.08rem;font-family:var(--sans);font-weight:650;letter-spacing:-.005em}.pil p{font-size:.885rem;color:var(--ink-600);margin-top:9px;line-height:1.62}.proc{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,32px)}@media(max-width:900px){.proc{grid-template-columns:1fr 1fr}}@media(max-width:520px){.proc{grid-template-columns:1fr}}.proc-line{position:absolute;top:31px;left:8%;right:8%;height:1.5px;background:rgba(227,210,178,.2);overflow:hidden}.proc-line i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--gold-600),var(--gold));transform:scaleX(0);transform-origin:0 50%;transition:transform 1.6s var(--ease)}.proc-line.in i{transform:scaleX(1)}@media(max-width:900px){.proc-line{display:none}}.pstep{position:relative;z-index:1}.pnum{width:62px;height:62px;border-radius:50%;background:var(--navy);border:1.5px solid rgba(186,157,111,.4);display:grid;place-items:center;font-family:var(--disp);font-size:1.5rem;color:var(--gold);margin-bottom:22px;transition:transform .55s var(--ease),background-color .45s,color .45s;box-shadow:0 0 0 8px var(--navy)}.deep .pnum{box-shadow:0 0 0 8px var(--navy-900)}.pstep:hover .pnum{transform:translateY(-5px) scale(1.06);background:var(--gold);color:var(--navy)}.pstep h3{font-size:1.14rem;font-family:var(--sans);font-weight:650}.pstep p{font-size:.895rem;color:var(--color-text-subtle-dark);margin-top:10px;line-height:1.65}.ba-wrap{display:grid;gap:clamp(22px,3vw,40px)}.ba{position:relative;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-3);background:var(--navy);touch-action:pan-x pan-y;cursor:ew-resize;user-select:none;-webkit-user-select:none;aspect-ratio:4/3;max-height:640px}.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.ba .aft{clip-path:inset(0 0 0 var(--pos,50%))}.ba-hdl{position:absolute;top:0;bottom:0;left:var(--pos,50%);width:3px;background:var(--cream-50);box-shadow:0 0 0 1px rgba(22,34,46,.2),0 0 26px rgba(0,0,0,.45);pointer-events:auto;touch-action:none;z-index:3}.ba-knob{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;background:var(--cream-50);display:grid;place-items:center;box-shadow:0 6px 22px rgba(0,0,0,.4);transition:transform .3s var(--ease);pointer-events:auto;touch-action:none}.ba:hover .ba-knob{transform:translate(-50%,-50%) scale(1.08)}.ba-knob svg{width:26px;height:26px;color:var(--navy)}.ba-tag{position:absolute;top:18px;z-index:2;font-family:var(--eyebrow-f);font-size:.68rem;font-weight:600;letter-spacing:.19em;text-transform:uppercase;padding:8px 15px;border-radius:100px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.ba-tag.b{left:18px;background:rgba(14,23,32,.76);color:var(--cream-50);border:1px solid rgba(255,255,255,.18)}.ba-tag.a{right:18px;background:var(--gold);color:var(--navy)}.ba-cap{margin-top:16px;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline;justify-content:space-between}.ba-cap h3{font-size:1.22rem}.ba-cap span{font-size:.84rem;color:var(--ink-600)}.dark .ba-cap span{color:var(--color-text-subtle-dark)}.ba-hint{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:3;background:rgba(14,23,32,.76);backdrop-filter:blur(10px);color:var(--cream-50);font-size:.76rem;padding:8px 16px;border-radius:100px;border:1px solid rgba(255,255,255,.16);display:flex;align-items:center;gap:8px;transition:opacity .5s;pointer-events:none}.ba.touched .ba-hint{opacity:0}.ba-hint svg{width:14px;height:14px;color:var(--gold)}.fil{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:clamp(24px,3vw,36px)}.fil button{padding:10px 19px;border-radius:100px;border:1.5px solid var(--taupe-300);background:var(--cream-50);font-size:.86rem;font-weight:560;color:var(--ink-600);transition:background-color .35s var(--ease),border-color .35s var(--ease),color .35s var(--ease);display:flex;align-items:center;gap:8px}.fil button i{font-style:normal;font-size:.72rem;opacity:.6;font-variant-numeric:tabular-nums}.fil button:hover{border-color:var(--gold);color:var(--navy)}.fil button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:var(--cream-50)}.fil button[aria-pressed=true] i{opacity:.75}.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.4vw,18px)}@media(max-width:1040px){.gal{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.gal{grid-template-columns:1fr 1fr}}.gt{position:relative;overflow:hidden;border-radius:var(--r);background:var(--cream-200);aspect-ratio:3/4;transition:transform .6s var(--ease),box-shadow .6s var(--ease),opacity .4s;cursor:zoom-in;display:block;width:100%;padding:0;border:0}.gt.w2{grid-column:span 2;aspect-ratio:4/3}@media(max-width:760px){.gt.w2{grid-column:span 2}}.gt img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}.gt:hover{box-shadow:var(--sh-3);transform:translateY(-4px)}.gt:hover img{transform:scale(1.07)}.gt-ov{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:18px;background:linear-gradient(180deg,transparent 42%,rgba(10,18,26,.85));opacity:0;transition:opacity .45s var(--ease);text-align:left}.gt:hover .gt-ov,.gt:focus-visible .gt-ov{opacity:1}.gt-ov b{display:block;color:var(--cream-50);font-size:.95rem;font-weight:640;transform:translateY(8px);transition:transform .5s var(--ease)}.gt-ov span{display:block;font-family:var(--eyebrow-f);font-size:.67rem;letter-spacing:.17em;text-transform:uppercase;color:var(--gold-300);margin-top:5px;transform:translateY(8px);transition:transform .5s var(--ease) .05s}.gt:hover .gt-ov b,.gt:hover .gt-ov span{transform:none}.gt-zoom{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;background:rgba(251,248,241,.94);display:grid;place-items:center;opacity:0;transform:scale(.7);transition:opacity .45s var(--ease),transform .45s var(--ease)}.gt:hover .gt-zoom{opacity:1;transform:none}.gt-zoom svg{width:15px;height:15px;color:var(--navy)}.gt.hide{display:none}.lb{position:fixed;inset:0;z-index:200;background:rgba(8,14,20,.96);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;place-items:center;padding:clamp(16px,4vw,52px);opacity:0;visibility:hidden;transition:opacity .4s var(--ease),visibility .4s}.lb.open{opacity:1;visibility:visible}.lb figure{max-width:min(1100px,100%);max-height:100%;display:flex;flex-direction:column;gap:14px;transform:scale(.94);transition:transform .5s var(--ease)}.lb.open figure{transform:none}.lb img{max-height:78vh;width:auto;max-width:100%;border-radius:var(--r);object-fit:contain;margin-inline:auto;box-shadow:0 30px 90px rgba(0,0,0,.6)}.lb figcaption{text-align:center;color:var(--cream-100);font-size:.94rem}.lb figcaption span{display:block;font-family:var(--eyebrow-f);font-size:.68rem;letter-spacing:.19em;text-transform:uppercase;color:var(--gold);margin-top:6px}.lb-btn{position:absolute;width:50px;height:50px;border-radius:50%;background:rgba(251,248,241,.1);border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;color:var(--cream-50);transition:background-color .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease);backdrop-filter:blur(8px)}.lb-btn:hover{background:var(--gold);border-color:var(--gold);color:var(--navy)}.lb-btn svg{width:20px;height:20px}.lb-x{top:clamp(14px,3vw,30px);right:clamp(14px,3vw,30px)}.lb-p{left:clamp(10px,2.4vw,26px);top:50%;transform:translateY(-50%)}.lb-n{right:clamp(10px,2.4vw,26px);top:50%;transform:translateY(-50%)}.lb-cnt{position:absolute;bottom:clamp(14px,3vw,26px);left:50%;transform:translateX(-50%);color:var(--color-text-faint-dark);font-size:.8rem;font-variant-numeric:tabular-nums}@media(max-width:600px){.lb-p,.lb-n{top:auto;bottom:16px;transform:none}.lb-p{left:22%}.lb-n{right:22%}.lb-cnt{bottom:32px}}.revs{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,24px)}@media(max-width:940px){.revs{grid-template-columns:1fr}}.rev{background:rgba(251,248,241,.05);border:1px solid rgba(227,210,178,.18);border-radius:var(--r-xl);padding:clamp(24px,2.8vw,34px);display:flex;flex-direction:column;gap:18px;transition:transform .5s var(--ease),border-color .4s}.rev:hover{transform:translateY(-5px);border-color:rgba(186,157,111,.45)}.rev .qm{font-family:var(--disp);font-size:3.4rem;line-height:.6;color:var(--gold);opacity:.35}.rev p{font-size:.98rem;line-height:1.72;color:var(--color-text-soft-dark);flex:1}.rev footer{display:flex;align-items:center;gap:13px;padding-top:16px;border-top:1px solid rgba(227,210,178,.14)}.rev .av{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-600));display:grid;place-items:center;font-weight:700;color:var(--navy);font-size:.98rem;flex:none}.rev b{display:block;color:var(--cream-50);font-size:.94rem;font-weight:640}.rev span{display:block;font-size:.79rem;color:var(--color-text-faint-dark);margin-top:2px}.stars{display:flex;gap:3px}.stars svg{width:15px;height:15px;color:var(--gold)}.faq{display:grid;gap:10px;max-width:900px;margin-inline:auto}.fq{border:1px solid var(--taupe-300);border-radius:var(--r-lg);background:var(--cream-50);overflow:hidden;transition:border-color .4s,box-shadow .4s}.fq[data-open]{border-color:var(--gold);box-shadow:var(--sh-2)}.fq h3{margin:0}.fq button{width:100%;display:flex;align-items:flex-start;gap:18px;padding:20px clamp(18px,2.4vw,28px);text-align:left;font-family:var(--sans);font-size:1.02rem;font-weight:620;color:var(--navy);line-height:1.5}.fq .fi{width:26px;height:26px;flex:none;border-radius:50%;border:1.5px solid var(--taupe-400);display:grid;place-items:center;margin-left:auto;transition:background-color .45s var(--ease),border-color .45s var(--ease),transform .45s var(--ease);position:relative}.fq .fi::before,.fq .fi::after{content:"";position:absolute;background:var(--navy);border-radius:2px;transition:background-color .45s var(--ease),transform .45s var(--ease)}.fq .fi::before{width:11px;height:1.7px}.fq .fi::after{width:1.7px;height:11px}.fq[data-open] .fi{background:var(--gold);border-color:var(--gold);transform:rotate(180deg)}.fq[data-open] .fi::after{transform:scaleY(0)}.fq .fa{height:0;overflow:hidden;transition:height .48s var(--ease)}.fq .fa>div{padding:0 clamp(18px,2.4vw,28px) 22px;font-size:.945rem;color:var(--ink-600);line-height:1.75;max-width:76ch}.fq .fa p+p{margin-top:12px}.dark .fq{background:rgba(251,248,241,.045);border-color:rgba(227,210,178,.18)}.dark .fq button{color:var(--cream-50)}.dark .fq .fi{border-color:rgba(227,210,178,.35)}.dark .fq .fi::before,.dark .fq .fi::after{background:var(--cream-50)}.dark .fq[data-open] .fi::before{background:var(--navy)}.dark .fq .fa>div{color:var(--color-text-muted-dark)}.cta-grid{display:grid;grid-template-columns:1.05fr .85fr;gap:clamp(26px,3.4vw,54px);align-items:start}@media(max-width:940px){.cta-grid{grid-template-columns:1fr}}.form{display:grid;gap:15px}.f2{display:grid;grid-template-columns:1fr 1fr;gap:15px}@media(max-width:560px){.f2{grid-template-columns:1fr}}.fld{position:relative}.fld input,.fld select,.fld textarea{width:100%;padding:22px 17px 9px;border-radius:var(--r);border:1.5px solid rgba(227,210,178,.28);background:rgba(251,248,241,.06);color:var(--cream-50);font-size:.96rem;transition:border-color .3s,background-color .3s}.fld textarea{min-height:124px;resize:vertical;padding-top:26px}.fld select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23BA9D6F' stroke-width='1.8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 17px center;padding-right:42px;cursor:pointer}.fld select option{background:var(--navy);color:var(--cream-50)}.fld label{position:absolute;left:18px;top:17px;font-size:.95rem;color:var(--color-text-faint-dark);pointer-events:none;transform-origin:0 0;transition:transform .28s var(--ease),color .28s}.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--gold);background:rgba(251,248,241,.09)}.fld input:focus~label,.fld input:not(:placeholder-shown)~label,.fld textarea:focus~label,.fld textarea:not(:placeholder-shown)~label,.fld select:focus~label,.fld select.has~label{transform:translateY(-9px) scale(.76);color:var(--gold-300)}.fld.bad input,.fld.bad select,.fld.bad textarea{border-color:var(--color-error-border)}.fld .er{display:block;font-size:.775rem;color:var(--color-error-soft);margin-top:5px;min-height:0;opacity:0;transition:opacity .25s}.fld.bad .er{opacity:1}.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}.fmsg{border-radius:var(--r);padding:15px 18px;font-size:.92rem;display:none;gap:11px;align-items:flex-start;line-height:1.55}.fmsg svg{width:18px;height:18px;flex:none;margin-top:2px}.fmsg.show{display:flex}.fmsg.ok{background:rgba(46,125,91,.16);border:1px solid rgba(90,200,150,.4);color:var(--color-success-soft)}.fmsg.err{background:rgba(179,64,46,.16);border:1px solid rgba(224,124,104,.4);color:var(--color-error-soft)}.form .btn[data-busy]{pointer-events:none;opacity:.72}.spin{width:16px;height:16px;border:2px solid rgba(22,34,46,.28);border-top-color:var(--navy);border-radius:50%;animation:spin .7s linear infinite;display:none}.btn[data-busy] .spin{display:block}.btn[data-busy] .bt{display:none}@keyframes spin{to{transform:rotate(360deg)}}.cinfo{display:grid;gap:20px}.cinfo-i{display:flex;gap:15px;align-items:flex-start}.cinfo-i .ic{width:44px;height:44px;border-radius:13px;background:rgba(186,157,111,.14);border:1px solid rgba(186,157,111,.28);display:grid;place-items:center;flex:none;transition:background-color .4s var(--ease),border-color .4s var(--ease)}.cinfo-i:hover .ic{background:var(--gold);border-color:var(--gold)}.cinfo-i .ic svg{width:19px;height:19px;color:var(--gold);transition:color .4s}.cinfo-i:hover .ic svg{color:var(--navy)}.cinfo-i span{display:block;font-family:var(--eyebrow-f);font-size:.68rem;letter-spacing:.19em;text-transform:uppercase;color:var(--gold-300);margin-bottom:5px;font-weight:500}.cinfo-i b{display:block;font-size:1.1rem;color:var(--cream-50);font-weight:640;line-height:1.4;word-break:break-word}.cinfo-i p{font-size:.875rem;color:var(--color-text-subtle-dark);margin-top:3px;line-height:1.55}.callbar{position:fixed;left:0;right:0;bottom:0;z-index:95;display:none;gap:1px;background:rgba(186,157,111,.3);box-shadow:0 -6px 26px rgba(10,18,26,.28);transition:transform .45s var(--ease)}.callbar.down{transform:translateY(102%)}.callbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:9px;padding:15px 10px;font-weight:650;font-size:.93rem}.callbar svg{width:17px;height:17px;flex:none}.callbar .c1{background:var(--navy-900);color:var(--cream-50)}.callbar .c2{background:linear-gradient(135deg,var(--gold),var(--gold-600));color:var(--navy)}@media(max-width:860px){.callbar{display:flex}body{padding-bottom:54px}}.split-2{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(28px,4vw,68px);align-items:center}@media(max-width:940px){.split-2{grid-template-columns:1fr;gap:32px}}.split-2.flip .sp-media{order:2}@media(max-width:940px){.split-2.flip .sp-media{order:0}}.sp-media{position:relative}.fr-tall{aspect-ratio:4/5;max-height:620px}@media(max-width:940px){.fr-tall{aspect-ratio:4/3;max-height:none}}.badge-float{position:absolute;right:-14px;bottom:-14px;background:var(--navy);color:var(--cream-50);border-radius:var(--r-lg);padding:20px 24px;box-shadow:var(--sh-3);border:1px solid rgba(186,157,111,.3);display:flex;align-items:center;gap:14px}@media(max-width:520px){.badge-float{right:8px;bottom:-10px;padding:15px 18px}}.badge-float b{font-family:var(--disp);font-size:2.5rem;line-height:1;color:var(--gold);font-weight:600}.badge-float span{font-size:.79rem;line-height:1.4;color:var(--color-text-muted-dark)}.sp-body h2{margin-top:6px}.sp-body>p{margin-top:16px}.sp-body .btns{margin-top:28px}.tick{display:grid;gap:12px;margin-top:24px}.tick li{display:flex;gap:12px;align-items:flex-start;font-size:.95rem;color:var(--ink-600);line-height:1.6}.tick svg{width:18px;height:18px;color:var(--gold-800);flex:none;margin-top:3px}.dark .tick li{color:var(--color-text-soft-dark)}.dark .tick svg{color:var(--gold)}.cta-band{position:relative;padding:clamp(72px,11vw,140px) 0;overflow:hidden;background:var(--navy-950);text-align:center;isolation:isolate}.cta-bg{position:absolute;inset:0;z-index:-1}.cta-bg picture,.cta-bg img{width:100%;height:100%;object-fit:cover}.cta-band::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,18,26,.9),rgba(10,18,26,.82)),radial-gradient(70% 90% at 50% 40%,rgba(186,157,111,.16),transparent 65%)}.cta-in{position:relative;z-index:1;max-width:760px}.cta-in .eyebrow{color:var(--gold-300)}.cta-in h2{color:var(--cream-50);margin-top:14px}.cta-in .lead{color:var(--color-text-muted-dark);margin:18px auto 0;max-width:52ch}.btns.center{justify-content:center}.cta-in .btns{margin-top:34px}.quick{margin-top:30px;background:rgba(251,248,241,.05);border:1px solid rgba(227,210,178,.18);border-radius:var(--r-xl);padding:clamp(22px,2.6vw,30px)}.quick h3{font-size:1.12rem;color:var(--cream-50);margin-bottom:18px;font-family:var(--sans);font-weight:650}.quick ol{display:grid;gap:15px}.quick li{display:flex;gap:14px;align-items:flex-start}.quick b{width:26px;height:26px;border-radius:50%;background:rgba(186,157,111,.18);border:1px solid rgba(186,157,111,.36);color:var(--gold);font-size:.78rem;font-weight:700;display:grid;place-items:center;flex:none;font-family:var(--eyebrow-f)}.quick span{font-size:.9rem;color:var(--color-text-muted-dark);line-height:1.6}.fnote{font-size:.79rem;color:var(--color-text-faint-dark);text-align:center;margin-top:4px}.ba-item{display:block}.ba-desc{font-size:.94rem;color:var(--color-text-subtle-dark);margin-top:10px;line-height:1.7;max-width:72ch}.ba.kb{outline:3px solid var(--gold);outline-offset:4px}@media(min-width:900px){.ba-wrap{grid-template-columns:1fr 1fr}}.prose{max-width:74ch}.prose h3{margin-top:34px;font-size:1.35rem}.prose h3:first-child{margin-top:0}.prose p{margin-top:14px;color:var(--ink-600);line-height:1.78}.dark .prose p{color:var(--color-text-muted-dark)}.prose ul{margin-top:16px;display:grid;gap:11px}.prose ul li{display:flex;gap:12px;color:var(--ink-600);line-height:1.65}.dark .prose ul li{color:var(--color-text-muted-dark)}.prose ul svg{width:17px;height:17px;color:var(--gold-800);flex:none;margin-top:4px}.dark .prose ul svg{color:var(--gold)}.tiles-3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,26px)}@media(max-width:860px){.tiles-3{grid-template-columns:1fr}}.tile{background:var(--cream-50);border:1px solid var(--taupe-300);border-radius:var(--r-lg);padding:clamp(24px,2.8vw,34px);transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .4s}.tile:hover{transform:translateY(-5px);box-shadow:var(--sh-2);border-color:var(--gold)}.tile .ic{width:46px;height:46px;border-radius:13px;background:var(--navy);display:grid;place-items:center;margin-bottom:18px}.tile .ic svg{width:21px;height:21px;color:var(--gold)}.tile h3{font-size:1.14rem;font-family:var(--sans);font-weight:650}.tile p{font-size:.9rem;color:var(--ink-600);margin-top:10px;line-height:1.65}.dark .tile{background:rgba(251,248,241,.05);border-color:rgba(227,210,178,.18)}.dark .tile h3{color:var(--cream-50)}.dark .tile p{color:var(--color-text-muted-dark)}.dark .tile .ic{background:rgba(186,157,111,.16);border:1px solid rgba(186,157,111,.3)}.mini{min-height:72vh;display:grid;place-items:center;text-align:center;padding:clamp(90px,14vh,160px) 0 clamp(60px,9vh,110px)}.mini .big{font-family:var(--disp);font-size:clamp(4.5rem,15vw,10rem);line-height:.9;color:var(--gold);opacity:.28;letter-spacing:-.04em}.mini h1{margin-top:-.18em}.mini p{margin:18px auto 30px;max-width:52ch;color:var(--color-text-muted-dark)}.mini .ok-ic{width:78px;height:78px;border-radius:50%;background:rgba(46,125,91,.16);border:1px solid rgba(90,200,150,.4);display:grid;place-items:center;margin:0 auto 26px}.mini .ok-ic svg{width:34px;height:34px;color:var(--color-success-icon)}.sec-sm{padding-block:clamp(44px,6vw,80px)}.center-narrow{max-width:760px;margin-inline:auto;text-align:center}.legal p{margin-top:14px;color:var(--ink-600);line-height:1.78}.legal h2{font-size:1.5rem;margin-top:38px}.legal h2:first-child{margin-top:0}.legal ul{margin-top:14px;padding-left:20px;list-style:disc}.legal li{margin-top:8px;color:var(--ink-600);line-height:1.7}.phero{position:relative;background:var(--navy);color:var(--cream-50);padding:calc(var(--hdr-h) + clamp(58px,8vw,100px)) 0 clamp(48px,7vw,86px);overflow:hidden;isolation:isolate}.phero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(75% 100% at 78% 0%,rgba(186,157,111,.16),transparent 62%),linear-gradient(180deg,var(--navy-900),var(--navy))}.phero h1{font-size:clamp(2.45rem,5.4vw,4.2rem);line-height:1.03;letter-spacing:-.028em;margin-top:14px;color:var(--cream-50)}.phero .eyebrow{color:var(--gold-300)}.phero .lead{color:var(--color-text-muted-dark);margin-top:20px;max-width:62ch}.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.79rem;color:var(--color-text-faint-dark);margin-bottom:22px;font-family:var(--eyebrow-f);letter-spacing:.05em}.crumb a{color:var(--color-text-subtle-dark);transition:color .3s}.crumb a:hover{color:var(--gold)}.crumb i{font-style:normal;opacity:.4}.crumb span{color:var(--gold-300)}.phero-stats{display:flex;flex-wrap:wrap;gap:14px 40px;margin-top:34px;padding-top:28px;border-top:1px solid rgba(227,210,178,.16)}.phero-stats div b{display:block;font-family:var(--disp);font-size:2rem;color:var(--gold);line-height:1;font-weight:600}.phero-stats div span{display:block;font-size:.78rem;color:var(--color-text-faint-dark);margin-top:7px;font-family:var(--eyebrow-f);letter-spacing:.13em;text-transform:uppercase}.phero .btns{margin-top:32px}.osvc{display:flex;flex-direction:column;gap:12px;background:var(--cream-50);border:1px solid var(--taupe-300);border-radius:var(--r-lg);padding:clamp(20px,2.4vw,28px)}.osvc h3{font-family:var(--eyebrow-f);font-size:.73rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-600);font-weight:600}.osvc a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border-radius:var(--r);background:var(--cream-100);border:1px solid var(--taupe-300);font-weight:600;font-size:.94rem;color:var(--navy);transition:background-color .4s var(--ease),border-color .4s var(--ease),color .4s var(--ease),transform .4s var(--ease)}.osvc a:hover{background:var(--navy);border-color:var(--navy);color:var(--cream-50);transform:translateX(4px)}.osvc a svg{width:16px;height:16px;flex:none;opacity:.6}.rail{position:sticky;top:calc(var(--hdr-h) + 18px);display:grid;gap:18px}@media(max-width:940px){.rail{position:static}}.rail-card{background:var(--navy);color:var(--cream-50);border-radius:var(--r-xl);padding:clamp(24px,2.8vw,32px);box-shadow:var(--sh-3);position:relative;overflow:hidden;border:1px solid rgba(186,157,111,.24)}.rail-card::before{content:"";position:absolute;inset:0;background:radial-gradient(85% 70% at 75% 0%,rgba(186,157,111,.17),transparent 62%);pointer-events:none}.rail-card>*{position:relative;z-index:1}.rail-card h3{font-size:1.32rem;color:var(--cream-50)}.rail-card p{font-size:.9rem;color:var(--color-text-subtle-dark);margin-top:11px;line-height:1.62}.rail-card .btn{margin-top:20px;width:100%}.rail-card .rl-tel{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:12px;font-size:1.02rem;font-weight:650;color:var(--gold);transition:color .3s}.rail-card .rl-tel:hover{color:var(--gold-300)}.rail-card .rl-tel svg{width:17px;height:17px}.rail-list{background:var(--cream-50);border:1px solid var(--taupe-300);border-radius:var(--r-lg);padding:clamp(20px,2.4vw,26px)}.rail-list h3{font-family:var(--eyebrow-f);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-600);margin-bottom:16px;font-weight:600}.rail-list ul{display:grid;gap:11px}.rail-list li{display:flex;gap:11px;font-size:.9rem;color:var(--ink-600);line-height:1.55}.rail-list svg{width:16px;height:16px;color:var(--gold-800);flex:none;margin-top:3px}.with-rail{display:grid;grid-template-columns:1fr 350px;gap:clamp(28px,3.6vw,58px);align-items:start}@media(max-width:1040px){.with-rail{grid-template-columns:1fr 300px}}@media(max-width:940px){.with-rail{grid-template-columns:1fr}}.btn{font-family:var(--eyebrow-f);text-transform:uppercase;letter-spacing:.11em;font-size:.8rem;font-weight:600}.btn-lg{font-size:.85rem}.hdr::after{opacity:1}.hdr:not(.stuck)::after{border-bottom-color:transparent}.hero h1{font-size:clamp(2.6rem,5.4vw,4.25rem)}.pill{font-family:var(--eyebrow-f);text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:500}.pill span{opacity:.92}.pill b{font-weight:700}.phero-bg{position:absolute;inset:0;z-index:-1}.phero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 42%}.phero.hasbg::before{background:linear-gradient(94deg,rgba(10,18,26,.94) 0%,rgba(14,23,32,.86) 42%,rgba(14,23,32,.62) 100%)}.ptop{padding-top:calc(var(--hdr-h) + clamp(56px,8vw,96px))}.ptop h1{color:var(--cream-50);font-size:clamp(2.45rem,5.4vw,4.2rem);letter-spacing:-.028em}.prc{grid-template-columns:repeat(2,1fr);max-width:980px;margin-inline:auto}@media(max-width:820px){.prc{grid-template-columns:1fr}}.pc{padding:clamp(30px,3.4vw,44px)}.pc .pc-tag{position:static;align-self:flex-start;margin-bottom:22px}.pc.fea{background:linear-gradient(165deg,var(--gold-300),var(--gold) 52%,var(--gold-600));border-color:var(--gold-600)}.pc.fea h3{color:var(--navy)}.pc.fea>p{color:#3B3524}.pc.fea .pc-amt{color:var(--navy)}.pc.fea .pc-amt .unit{color:#4A4232}.pc.fea::after{display:none}.pc:not(.fea) .pc-amt{color:var(--gold)}.pc h3{margin-top:4px}.pc>p{min-height:0}.honesty span{display:inline-flex;align-items:center;gap:9px}.honesty span::before{content:"";width:15px;height:15px;flex:none;border-radius:50%;background:var(--gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316222E' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 13 4 4 10-11'/%3E%3C/svg%3E") center/9px no-repeat}.calc-lbrow{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px;flex-wrap:wrap}.calc-lbrow .calc-lb{margin-bottom:0}.seg{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;max-width:440px;margin:0 auto 18px}@media(max-width:520px){.seg{grid-template-columns:1fr}}.seg button{padding:13px 10px;border-radius:var(--r);border:1.5px solid var(--taupe-300);background:var(--cream-100);font-family:var(--eyebrow-f);font-size:.74rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-600);transition:background-color .35s var(--ease),border-color .35s var(--ease),color .35s var(--ease)}.seg button:hover{border-color:var(--gold);color:var(--navy)}.seg button.on{background:var(--navy);border-color:var(--navy);color:var(--cream-50)}.seg button:focus-visible{outline:3px solid var(--gold-600);outline-offset:2px}.calc-note{font-size:.82rem;color:var(--ink-600);line-height:1.6;margin-top:4px}.pil li{position:relative}.pil .pn{display:block;font-family:var(--disp);font-size:1.65rem;font-weight:600;color:var(--gold-800);opacity:.5;line-height:1;margin-bottom:16px}.gt-ov{opacity:1;background:linear-gradient(180deg,transparent 52%,rgba(10,18,26,.66));padding:14px}.gt-ov b{transform:none;align-self:flex-start;font-family:var(--eyebrow-f);font-size:.66rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--cream-50);background:rgba(14,23,32,.68);border:1px solid rgba(255,255,255,.16);padding:7px 13px;border-radius:100px;backdrop-filter:blur(8px)}.gt-ov span{display:none}.gt-zoom{opacity:1;transform:none}.rev em{font-style:italic}.rev .stars svg{width:16px;height:16px}.rev-soon{display:flex;align-items:center;justify-content:center;gap:11px;max-width:max-content;margin:30px auto 0;background:var(--cream-50);color:var(--navy);border-radius:100px;padding:13px 26px;font-family:var(--eyebrow-f);font-size:.72rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;box-shadow:var(--sh-2)}.rev-soon svg{width:15px;height:15px;color:var(--gold-600);flex:none}.achips{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(8px,1.2vw,16px);max-width:1080px;margin-inline:auto}@media(max-width:760px){.achips{grid-template-columns:1fr}}.achip{background:var(--cream-50);border:1px solid var(--taupe-300);border-radius:var(--r);padding:18px 22px;text-align:center;transition:background-color .4s var(--ease),border-color .4s var(--ease),transform .4s var(--ease),box-shadow .4s var(--ease)}.achip:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:var(--sh-2)}.achip b{display:block;font-family:var(--sans);font-weight:650;font-size:.98rem;color:var(--navy)}.achip span{display:block;font-family:var(--eyebrow-f);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-600);margin-top:6px}.achip.hi{background:var(--navy);border-color:var(--navy)}.achip.hi b{color:var(--cream-50)}.achip.hi span{color:var(--gold-300)}.svc-rows{display:grid;gap:clamp(34px,5vw,64px)}.svrow{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3.4vw,52px);align-items:center}@media(max-width:940px){.svrow{grid-template-columns:1fr}}.svrow.flip .svrow-m{order:2}@media(max-width:940px){.svrow.flip .svrow-m{order:0}}.svrow-m{aspect-ratio:4/3;border-radius:var(--r-lg)}.svn{display:block;font-family:var(--eyebrow-f);font-size:.78rem;font-weight:600;letter-spacing:.22em;color:var(--gold-800);margin-bottom:14px}.svrow h3{font-size:clamp(1.6rem,2.6vw,2.1rem)}.svrow-t>p{margin-top:13px;color:var(--ink-600);font-size:.97rem;line-height:1.7;max-width:52ch}.svrow .tick{margin-top:20px;display:grid;grid-template-columns:1fr 1fr;gap:11px 20px}@media(max-width:520px){.svrow .tick{grid-template-columns:1fr}}.svline{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--taupe-300)}.svrate b{font-family:var(--disp);font-size:1.3rem;font-weight:600;color:var(--gold-800)}.svrate em{font-style:normal;font-family:var(--sans);font-size:.8rem;font-weight:600;color:var(--ink-600)}.svline>i{font-style:normal;color:var(--taupe-400)}.aside-h{font-size:clamp(1.5rem,2.4vw,1.9rem);color:var(--cream-50);margin-bottom:24px;line-height:1.2}.aside-h .ital{color:var(--gold)}.fnote a{color:var(--gold-300);text-decoration:underline;text-underline-offset:3px}.scard .lnk,.svline .lnk{font-family:var(--eyebrow-f);text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:600;color:var(--gold-800);border-bottom-color:rgba(186,157,111,.45)}.scard .lnk:hover,.svline .lnk:hover{color:var(--navy)}.scard .lnk svg,.svline .lnk svg{width:14px;height:14px}.marq-t{align-items:center}.marq-g{display:flex;align-items:center;flex:none}.marq{padding-block:14px}.hero::before{background:linear-gradient(96deg,rgba(10,18,26,.93) 0%,rgba(14,23,32,.82) 38%,rgba(14,23,32,.46) 68%,rgba(14,23,32,.34) 100%)}.ftr{padding-block:clamp(48px,6vw,76px) 26px;background:var(--navy-950)}.ftr::before{display:none}.ftr-card{background:linear-gradient(180deg,var(--navy-900),var(--color-bg-dark-card));border:1px solid rgba(186,157,111,.18);border-radius:var(--r-xl);padding:clamp(26px,3.4vw,48px) clamp(20px,3vw,44px) 0;box-shadow:0 30px 80px rgba(0,0,0,.35)}.ftr-top{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(26px,3.6vw,56px);align-items:center}.ftr-tl .ftr-tag{margin-top:16px}.ftr-desc{font-size:.93rem;color:var(--color-text-description-dark);line-height:1.72;margin-top:12px;max-width:46ch}.ftr-tl .soc{margin-top:18px}.ftr-est{background:rgba(251,248,241,.045);border:1px solid rgba(227,210,178,.18);border-radius:var(--r-lg);padding:clamp(20px,2.6vw,30px)}.ftr-est .eyebrow{margin-bottom:10px}.ftr-est h3{font-family:var(--disp);font-size:clamp(1.45rem,2.4vw,1.85rem);color:var(--cream-50);font-weight:600;letter-spacing:-.01em;line-height:1.15}.ftr-est .ital{color:var(--gold)}.ftr-est p{font-size:.9rem;color:var(--color-text-subtle-dark);margin-top:10px;line-height:1.6}.ftr-est-b{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:20px}.ftr-tel{display:inline-flex;align-items:center;gap:9px;font-weight:640;color:var(--gold-300);font-size:1.02rem;transition:color .25s;min-height:44px}.ftr-tel:hover{color:var(--gold)}.ftr-tel svg{width:16px;height:16px;flex:none}.ftr-hr{height:1px;background:linear-gradient(90deg,transparent,rgba(186,157,111,.3),transparent);margin-block:clamp(24px,3vw,36px) 0}.ftr-card .ftr-grid{grid-template-columns:1fr 1fr 1.3fr;gap:clamp(28px,4vw,56px);padding-block:clamp(24px,3vw,38px)}.ftr h3{font-family:var(--eyebrow-f);font-size:.73rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-300);margin-bottom:18px;font-weight:600;line-height:1.3}.ftr li a,.ftr-con span{color:var(--color-text-link-dark)}.ftr li a:hover{color:var(--gold-300)}.ftr-bot p{color:var(--color-text-legal-dark)}@media(max-width:860px){.ftr-top{grid-template-columns:1fr}}@media(max-width:940px){.ftr-card .ftr-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.ftr-card .ftr-grid{grid-template-columns:1fr;gap:26px}}.phero.hasbg::before{background:linear-gradient(180deg,rgba(8,14,20,.84) 0%,rgba(10,18,26,.76) 50%,rgba(8,14,20,.86) 100%),linear-gradient(94deg,rgba(8,14,20,.55) 0%,rgba(10,18,26,.35) 55%,rgba(10,18,26,.5) 100%)}.phero.hasbg .ital{color:var(--gold-300)}.phero.hasbg .eyebrow{color:var(--gold-300)}.phero.hasbg .crumb a{color:var(--color-text-strong-dark)}.phero.hasbg::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(64% 78% at 34% 56%,rgba(8,14,20,.38),transparent 72%);backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px)}.phero h1,.phero .lead,.phero .eyebrow,.phero .crumb a,.phero .crumb span,.phero-stats b,.phero-stats span{text-shadow:0 2px 22px rgba(6,10,15,.55)}.cta-band::after{background:linear-gradient(180deg,rgba(8,14,20,.93),rgba(8,14,20,.86)),radial-gradient(70% 90% at 50% 40%,rgba(186,157,111,.16),transparent 65%)}.cta-in h2,.cta-in .lead{text-shadow:0 2px 20px rgba(6,10,15,.5)}.gt-ov b{box-shadow:0 4px 14px rgba(0,0,0,.3)}.cinfo-i b{overflow-wrap:anywhere}.fld label{will-change:transform}.fil button:focus-visible,.seg button:focus-visible,.gt:focus-visible{outline:3px solid var(--gold-600);outline-offset:2px}.btn .bi{display:inline-flex;align-items:center;width:16px;height:16px}.btn svg{width:16px;height:16px}.btn-lg svg,.btn-lg .bi{width:17px;height:17px}.dl-c svg{width:18px;height:18px;flex:none}.drawer .dfoot .dl-c{display:flex;align-items:center;gap:10px}

:root{
 --font-display:'DM Serif Display',Georgia,'Times New Roman',serif;
 --font-body:'Manrope','Segoe UI',Arial,sans-serif;
 --disp:var(--font-display);--sans:var(--font-body);--eyebrow-f:var(--font-body);
 --color-bg-dark:var(--navy);--color-bg-dark-raised:var(--navy-900);--color-bg-dark-deep:var(--navy-950);--color-bg-dark-card:#0C1520;
 --color-bg-light:var(--cream-100);--color-bg-light-soft:var(--cream-50);--color-bg-light-muted:var(--cream-200);
 --color-gold:var(--gold);--color-gold-hover:var(--gold-300);
 --color-text-on-dark:var(--cream-50);--color-text-on-light:var(--ink);--color-text-muted-light:var(--ink-600);
 --color-text-muted-dark:#B7C2CD;--color-text-subtle-dark:#A9B4BF;--color-text-faint-dark:#8E9BA8;--color-text-soft-dark:#C3CDD7;
 --color-text-strong-dark:#C6D0DA;--color-text-chip-dark:#CBD5DF;--color-text-link-dark:#B9C3CD;--color-text-legal-dark:#93A0AC;--color-text-description-dark:#AEB8C1;
 --color-border-dark:rgba(227,210,178,.18);--color-border-light:var(--taupe-300);
 --color-success:var(--ok);--color-success-soft:#A8E6C8;--color-success-icon:#6FD3A4;
 --color-error:var(--err);--color-error-soft:#F0A292;--color-error-border:#E07C68;
}
body{font-family:var(--font-body);font-variant-ligatures:common-ligatures;font-feature-settings:'kern' 1,'liga' 1,'dlig' 0}
h1,h2,h3,.ftr-tag,.pc-amt,.tot,.pnum,.badge-float b,.phero-stats b,.mini .big{font-family:var(--font-display);font-weight:400}
h1,h2,h3{font-synthesis:none}
.hero h1{line-height:1.045;letter-spacing:-.015em;text-wrap:balance}
.hero h1 .ital{display:inline-block;letter-spacing:-.008em;padding-inline-end:.09em;margin-inline-end:-.09em}
.ln{padding:.08em .18em .16em .02em;margin:-.08em -.18em -.16em -.02em}
.ln.in{overflow:visible}
.deep{color:var(--color-text-on-dark)}
.deep h1,.deep h2,.deep h3,.deep h4{color:var(--color-text-on-dark)}
.deep .lead{color:var(--color-text-muted-dark)}
.deep .ital{color:var(--color-gold)}
.deep .eyebrow{color:var(--gold-300)}
.marq{padding-block:14px;contain:layout paint}
.marq-t{display:flex;align-items:center;width:max-content;animation:marq 44s linear infinite;will-change:transform}
.marq-g{display:flex;align-items:center;flex:none;gap:clamp(24px,3vw,42px);padding-right:clamp(24px,3vw,42px)}
.marq-g span{padding:0!important;gap:0!important;font-family:var(--font-body);font-size:.71rem;line-height:1.25;letter-spacing:.17em}
.marq-g i{display:block;width:5px;height:5px;flex:0 0 5px;background:var(--navy);border-radius:1px;opacity:.58;transform:rotate(45deg);font-size:0;overflow:hidden}
.rv{filter:none;transform:translateY(18px);transition:opacity .65s var(--ease),transform .65s var(--ease)}
.rv-l{transform:translateX(-18px);transition-duration:.7s}.rv-r{transform:translateX(18px);transition-duration:.7s}
.rv-s{transform:scale(.975);transition-duration:.68s}.stg>*{transform:translateY(16px);transition-duration:.62s}
.stg.in>*:nth-child(1){transition-delay:.02s}.stg.in>*:nth-child(2){transition-delay:.07s}.stg.in>*:nth-child(3){transition-delay:.12s}.stg.in>*:nth-child(4){transition-delay:.17s}.stg.in>*:nth-child(5){transition-delay:.22s}.stg.in>*:nth-child(6){transition-delay:.27s}
.wipe{transition-duration:.72s}.ln>span{transition-duration:.72s}
.service-area-home .achips{transform:translateZ(0)}
.brand-logo{display:block;width:58px;height:58px;flex:none}
.brand-logo img{width:100%;height:100%;object-fit:contain;transition:transform .3s var(--ease),filter .3s var(--ease)}
.brand:hover .brand-logo img{transform:translateY(-1px);filter:brightness(1.04)}
.ftr .brand-logo{width:112px;height:112px}.ftr .brand{align-items:flex-start}
.lb{padding:clamp(54px,5vw,72px) clamp(70px,7vw,100px) 76px}
.lb figure{width:min(1040px,100%);max-height:calc(100dvh - 128px);gap:16px;align-items:center}
.lb img{max-height:calc(100dvh - 220px);max-width:100%;width:auto;height:auto}
.lb figcaption{min-width:min(100%,520px);padding:12px 20px 13px;border:1px solid var(--color-border-dark);border-radius:var(--r);background:rgba(14,23,32,.78);backdrop-filter:blur(10px);line-height:1.35}
.lb figcaption b{display:block;font-family:var(--font-display);font-size:1.08rem;font-weight:400;color:var(--color-text-on-dark);letter-spacing:.005em}
.lb figcaption span{display:block;margin-top:7px;font-family:var(--font-body);font-size:.64rem;font-weight:600;letter-spacing:.18em;color:var(--gold-300)}
.lb-cnt{bottom:22px;color:var(--color-text-subtle-dark)}
.ftr-hr{transform:scaleX(0);transform-origin:center;transition:transform .75s var(--ease)}
.ftr-card.in .ftr-hr{transform:scaleX(1)}
.ftr-est{transition:border-color .28s var(--ease),background-color .28s var(--ease),transform .28s var(--ease)}
.ftr-est:hover{border-color:rgba(186,157,111,.42);background:rgba(251,248,241,.06);transform:translateY(-2px)}
.ftr-est .btn::after{content:'→';font-size:1rem;transition:transform .22s var(--ease)}.ftr-est .btn:hover::after{transform:translateX(4px)}
.ftr-col a,.ftr-con a{position:relative}.ftr-col a::after,.ftr-con a::after{content:'';position:absolute;left:0;right:0;bottom:-3px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .22s var(--ease)}.ftr-col a:hover::after,.ftr-con a:hover::after{transform:scaleX(1)}
.fld input,.fld select,.fld textarea{color:var(--color-text-on-dark)}
.fld label{color:var(--color-text-faint-dark)}
.fld .er{color:var(--color-error-soft)}
.form .btn[aria-busy=true]{cursor:progress}
@media(max-width:600px){
 .brand-logo{width:52px;height:52px}.ftr .brand-logo{width:98px;height:98px}
 .hero h1{line-height:1.06;letter-spacing:-.01em}
 .lb{padding:58px 14px 92px}.lb figure{max-height:calc(100dvh - 150px);gap:12px}.lb img{max-height:calc(100dvh - 242px)}
 .lb figcaption{padding:10px 14px 11px}.lb figcaption b{font-size:1rem}.lb figcaption span{margin-top:5px}
 .lb-p,.lb-n{bottom:18px}.lb-cnt{bottom:35px}
}
@media(prefers-reduced-motion:reduce){
 .marq{overflow:hidden}.marq-t{animation:none!important;transform:none!important;width:100%}.marq-g{width:100%;justify-content:center;flex-wrap:wrap;padding:8px 18px}.marq-g:nth-child(2){display:none}
 .ln.in{overflow:visible}.ftr-hr{transform:none}
}


/* Keep the approved tablet hero content in normal document flow below 1120px. */
@media(max-width:1120px){
 .hero{display:block;min-height:auto;padding-top:calc(var(--hdr-h) + 68px);padding-bottom:60px}
 .hero-in{min-height:0}
}
/* Visibility opens immediately for focus; closing visibility waits for the opacity fade. */
.lb{transition:opacity .35s var(--ease),visibility 0s linear .35s}
.lb.open{transition:opacity .35s var(--ease),visibility 0s linear 0s}


/* Final-delivery root-cause fixes. */
html{scroll-padding-top:calc(var(--hdr-h) + 18px)}
section[id],main[id]{scroll-margin-top:calc(var(--hdr-h) + 18px)}
html:not(.motion-ready) .rv,html:not(.motion-ready) .rv-l,html:not(.motion-ready) .rv-r,html:not(.motion-ready) .rv-s,html:not(.motion-ready) .stg>*,html:not(.motion-ready) .proc-line{opacity:1!important;transform:none!important;filter:none!important}
html:not(.motion-ready) .wipe{clip-path:none!important}
html:not(.motion-ready) .ln>span{transform:none!important}
.hero h1{font-variant-ligatures:none;font-feature-settings:'kern' 1,'liga' 0,'dlig' 0}
.hero h1 .ital{letter-spacing:0;margin-inline-end:0;padding-inline-end:.12em}
.brand-logo{display:block;width:auto;height:58px;flex:none}
.brand-logo picture,.brand-logo img{display:block;width:auto;height:100%;max-width:none;object-fit:contain}
.ftr .brand-logo{width:auto;height:112px}
.rtbl thead th{background:var(--color-bg-dark);color:var(--color-text-on-dark)}
.rtbl tbody th{background:var(--color-bg-dark);color:var(--color-text-on-dark);font-family:var(--font-body);font-size:.82rem;font-weight:650;letter-spacing:.075em;line-height:1.35;text-transform:none}
.rtbl tbody td{color:var(--color-text-on-light)}
.rtbl td b{font-variant-numeric:lining-nums tabular-nums}
@media(max-width:900px){
 .marq{padding:12px 14px;overflow:visible}
 .marq-t{width:100%;animation:none!important;transform:none!important;will-change:auto}
 .marq-g{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:0}
 .marq-g:nth-child(2){display:none}
 .marq-g i{display:none}
 .marq-g span{white-space:normal;justify-content:center;text-align:center;padding:8px 10px!important;border-bottom:1px solid rgba(22,34,46,.12);font-size:.64rem;line-height:1.35;letter-spacing:.12em}
 .marq-g span:nth-of-type(odd){border-right:1px solid rgba(22,34,46,.12)}
 .marq-g span:nth-last-of-type(-n+2){border-bottom:0}
}
@media(max-width:640px){
 .brand-logo{height:52px}.ftr .brand-logo{height:98px}
 .rtbl-w{overflow:visible;border-radius:0}
 .rtbl,.rtbl tbody,.rtbl tr,.rtbl th,.rtbl td{display:block;width:100%}
 .rtbl thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
 .rtbl{border:0;background:transparent}
 .rtbl tbody{display:grid;gap:14px}
 .rtbl tbody tr{border:1px solid var(--color-border-light);border-radius:var(--r-lg);overflow:hidden;background:var(--color-bg-light-soft);box-shadow:var(--sh-1)}
 .rtbl tbody th{padding:14px 16px;border:0}
 .rtbl tbody td{border:0;padding:12px 16px;display:grid;grid-template-columns:84px minmax(0,1fr);gap:12px;font-size:.88rem}
 .rtbl tbody td+td{border-top:1px solid var(--color-border-light)}
 .rtbl tbody td:nth-child(2)::before{content:'Rate'}
 .rtbl tbody td:nth-child(3)::before{content:'Included'}
 .rtbl tbody td::before{font-family:var(--font-body);font-size:.64rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--color-text-muted-light)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marq{overflow:visible}}

/* v3.1 final-polish fixes: mobile drawer, burger icon, sticky CTA, header entrance. */
/* Root cause: .drawer a.dl had no display, so <a> stayed inline and ran on together. */
.drawer nav{display:flex;flex-direction:column}
.drawer a.dl{display:block;width:100%}
.drawer .dfoot .dl-c{display:flex;width:auto}

/* Burger mark: bars sized/spaced for a crisper, bolder icon (3rd bar added in markup). */
.burger i{width:20px;height:2px}
.burger[aria-expanded=true] i:first-child{transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded=true] i:last-child{transform:translateY(-7px) rotate(-45deg)}
.burger{transition:transform .2s var(--ease),border-color .25s var(--ease)}
.burger:active{transform:scale(.92)}
.burger:hover{border-color:rgba(227,210,178,.5)}

/* Sticky mobile Call Now / Free Estimate bar: respect iOS home-indicator safe area
   so the bar and the page content behind it never sit under/behind it. */
@media(max-width:860px){
 .callbar{padding-bottom:env(safe-area-inset-bottom)}
 .callbar a{white-space:nowrap;transition:filter .2s var(--ease),transform .15s var(--ease)}
 .callbar a:active{transform:scale(.96);filter:brightness(.96)}
 body{padding-bottom:calc(54px + env(safe-area-inset-bottom))}
}
@media(max-width:340px){.callbar a{padding:15px 6px;font-size:.85rem;gap:6px}.callbar svg{width:15px;height:15px}}

/* Header entrance: a single tasteful reveal on load, decoupled from the scroll-reveal
   system (header is always in view at load, so it doesn't need IntersectionObserver)
   and independent of JS, so it can never leave nav invisible if a script fails to run. */
@keyframes hdrIn{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}
@keyframes hdrItemIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.hdr{animation:hdrIn .7s var(--ease) both}
.hdr .brand{animation:hdrItemIn .7s var(--ease) .06s both}
.hdr .burger{animation:hdrItemIn .7s var(--ease) .06s both}
.hdr .nav a{animation:hdrItemIn .55s var(--ease) both}
.hdr .nav a:nth-child(1){animation-delay:.12s}
.hdr .nav a:nth-child(2){animation-delay:.16s}
.hdr .nav a:nth-child(3){animation-delay:.2s}
.hdr .nav a:nth-child(4){animation-delay:.24s}
.hdr .nav a:nth-child(5){animation-delay:.28s}
.hdr .nav a:nth-child(6){animation-delay:.32s}
.hdr .nav a:nth-child(7){animation-delay:.36s}
.hdr .hdr-cta{animation:hdrItemIn .55s var(--ease) .4s both}
@media(prefers-reduced-motion:reduce){
 .hdr,.hdr .brand,.hdr .burger,.hdr .nav a,.hdr .hdr-cta{animation:none}
}

/* Root cause: .wipe.in clips to the exact heading box (clip-path:inset(0 0 0 0)),
   but italic display-serif descenders/swashes render past a tight line-height:1.1
   box and were being sliced off after the reveal finished, on every .wipe heading
   site-wide. Give the settled state breathing room on all sides. */
.wipe.in{clip-path:inset(-10px -8px -22px -8px)}

/* Root cause: .btn-ghost and .ital only get their light (dark-bg) colour inside
   .dark/.hero/.hasbg. Every page-hero (.phero) and every CTA band (.cta-band) is
   also a dark-navy section but was never added to that scope, so the "Call ..."
   outline button and every italic accent word rendered in the LIGHT-background
   colours (--gold-800, a dark muted brown-gold) on a dark navy section - close to
   invisible. Extend the existing dark-context rules to these two containers. */
.phero .btn-ghost,.cta-band .btn-ghost{border-color:rgba(227,210,178,.42);color:var(--cream-50)}
.phero .btn-ghost:hover,.cta-band .btn-ghost:hover{background:var(--cream-50);border-color:var(--cream-50);color:var(--navy)}
.phero .ital,.cta-band .ital{color:var(--gold)}

/* .phero.hasbg (about/gallery/services heroes with a photo background) already
   darkens the photo, but the brightest crops still washed out the heading/lead -
   add a flat wash under the existing gradients and a tight, high-contrast text
   shadow so the heading reads regardless of what is directly behind it. */
.phero.hasbg::before{background:linear-gradient(rgba(6,10,15,.3),rgba(6,10,15,.3)),linear-gradient(180deg,rgba(8,14,20,.84) 0%,rgba(10,18,26,.76) 50%,rgba(8,14,20,.86) 100%),linear-gradient(94deg,rgba(8,14,20,.55) 0%,rgba(10,18,26,.35) 55%,rgba(10,18,26,.5) 100%)}
.phero.hasbg h1,.phero.hasbg .lead{text-shadow:0 1px 3px rgba(4,7,10,.9),0 2px 22px rgba(6,10,15,.55)}

/* Root cause: the "Why Choose Us" list has 7 items in a 4-column grid, so the
   8th cell renders as a bare taupe rectangle (the grid's own background showing
   through) - read as an empty "blank card". Flexbox instead of grid lets a
   ragged last row (3 items, or 1 at the 2-col breakpoint) centre itself with no
   dangling cell, at every breakpoint the old grid-template-columns handled. */
.pil{display:flex;flex-wrap:wrap;justify-content:center}
.pil>li{flex:1 1 calc(25% - .75px)}
@media(max-width:1040px){.pil>li{flex-basis:calc(50% - .5px)}}
@media(max-width:560px){.pil>li{flex-basis:100%}}

/* Root cause: .hdr's background/blur layer sits at opacity:0 until .stuck, so at
   the very top of the page the header is 100% see-through with no blur at all -
   any decorative radial-gradient glow in the hero behind it shows through sharp
   and unblurred, reading as a glitching shape while scrolling near the top.
   Keep it mostly transparent (unchanged look) but never fully un-blurred. */
.hdr::after{opacity:.55}
.hdr.stuck::after{opacity:1}

/* Footer: accumulated section padding/margins added up to a very tall footer.
   Tighten the scale a notch without changing the grid/columns/colours. */
.ftr{padding-block:clamp(40px,5vw,64px) 22px}
.ftr-card{padding:clamp(22px,2.8vw,38px) clamp(18px,2.6vw,36px) 0}
.ftr-hr{margin-block:clamp(18px,2.4vw,28px) 0}
.ftr-grid{padding-block:clamp(18px,2.4vw,28px)}
.ftr-bot{margin-top:clamp(30px,4vw,46px);padding-block:18px}

/* Root cause: <picture> defaults to display:inline, and CSS width/height are
   defined by spec to NOT apply to non-replaced inline elements. So every
   "width:100%;height:100%;object-fit:cover" rule written for hero/phero/cta-band
   background images never reached the <img> - percentage height can only resolve
   through a parent that has an explicit height, and an inline <picture> has none.
   The <img> fell back to auto height (its own aspect ratio at 100% width),
   rendering as a small patch pinned to the top of a much taller section - most
   visible on mobile where the section is far taller than the photo's ratio.
   Forcing the whole chain to block/absolute fixes hero, every inner-page photo
   hero (about/gallery/services) and the CTA band backgrounds in one place. */
.hero-img{position:absolute;inset:0}
.hero-bg picture,.phero-bg picture,.cta-bg picture{display:block;width:100%;height:100%}

/* Logo: reverted to the client's original, unmodified artwork (navy + gold) per
   request - no recolouring. Visibility on the dark header/footer/drawer is
   solved with a light backing plate behind the mark instead of touching the
   logo's own pixels, so the shipped file is byte-identical to what was supplied. */
.brand-logo{position:relative}



/* Burger icon: closer to a plain, confident 3-bar mark - subtle filled chip
   (was border-only) so it reads as a real button, tighter bar spacing. */
.burger{background:rgba(227,210,178,.08)}
.burger i+i{margin-top:4px}

/* ==================================================================
   v3.4 refinements
   Additive only. No palette value, font, or layout dimension from the
   approved design is altered here.
   ================================================================== */

/* --- Anchor scrolling clears the sticky header ------------------- */
html{scroll-padding-top:calc(var(--hdr-h) + 18px)}

/* --- Menu icon --------------------------------------------------
   The bars used to be laid out with margin-top, but the open state
   applied a fixed translateY. The two never agreed, so the "X" came
   out lopsided and read as a ">". Centring every bar on the exact
   same point means both strokes rotate about one shared origin and
   the X is always symmetrical. */
.burger{position:relative;overflow:hidden}
.burger i{position:absolute;left:50%;top:50%;margin:0;width:20px;height:2px;
  transition:transform .42s cubic-bezier(.55,.06,.24,1),opacity .2s linear,width .42s cubic-bezier(.55,.06,.24,1)}
/* The earlier rules space the bars using `i+i{margin-top}`, which outranks a
   plain `.burger i{margin:0}`. Match that specificity so the absolute
   positioning above actually governs - otherwise bars two and three sit 4px
   low and the close icon reads as a lopsided arrow instead of a true X. */
.burger i+i{margin:0}
.burger i:first-child{transform:translate(-50%,-50%) translateY(-6px)}
.burger i:nth-child(2){transform:translate(-50%,-50%)}
.burger i:last-child{transform:translate(-50%,-50%) translateY(6px);width:14px}
.burger:hover i:last-child{width:20px}
.burger[aria-expanded=true] i:first-child{transform:translate(-50%,-50%) rotate(45deg)}
.burger[aria-expanded=true] i:nth-child(2){opacity:0;transform:translate(-50%,-50%) scaleX(.3)}
.burger[aria-expanded=true] i:last-child{transform:translate(-50%,-50%) rotate(-45deg);width:20px}
.burger[aria-expanded=true]{border-color:rgba(186,157,111,.55);background:rgba(186,157,111,.14)}

/* --- Mobile menu panel ------------------------------------------
   Same navy tokens as before, just given depth with a gradient and a
   soft gold aura, plus a proper staggered entrance. */
.drawer{
  background:
    radial-gradient(120% 78% at 100% 0%,rgba(186,157,111,.11),transparent 62%),
    radial-gradient(90% 60% at 0% 100%,rgba(186,157,111,.06),transparent 58%),
    linear-gradient(180deg,var(--navy-900) 0%,var(--navy) 100%);
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  transition:transform .58s cubic-bezier(.22,.61,.36,1),visibility .58s}
.drawer.open{box-shadow:inset 0 -1px 0 rgba(186,157,111,.12)}

.drawer a.dl{
  position:relative;
  border-bottom-color:rgba(186,157,111,.14);
  overflow-wrap:anywhere;
  transition:opacity .52s var(--ease),transform .52s var(--ease),color .25s var(--ease),padding-left .3s var(--ease)}
.drawer a.dl::after{
  content:"";position:absolute;left:0;bottom:-1px;width:100%;height:1px;
  background:linear-gradient(90deg,var(--gold),rgba(186,157,111,0));
  transform:scaleX(0);transform-origin:0 50%;
  transition:transform .45s var(--ease)}
.drawer a.dl:hover,.drawer a.dl:focus-visible{padding-left:6px}
.drawer a.dl:hover::after,.drawer a.dl:focus-visible::after{transform:scaleX(1)}
.drawer .dfoot{opacity:0;transform:translateY(16px);
  transition:opacity .5s var(--ease) .34s,transform .5s var(--ease) .34s}
.drawer.open .dfoot{opacity:1;transform:none}
.drawer .dl-c{overflow-wrap:anywhere}

/* Background must not scroll behind the open panel. */
html.drawer-open,body.drawer-open{overflow:hidden}
body.drawer-open{overscroll-behavior:none}

/* --- Loading screen ---------------------------------------------
   Replaces the removed white disc with a gold aura that belongs to
   the brand palette. */

/* --- Long strings never force a horizontal scrollbar ------------- */
.cinfo-i b,.cinfo-i b a,.ftr a[href^="mailto:"],.ftr a[href^="tel:"]{overflow-wrap:anywhere}

/* --- Elementor ---------------------------------------------------
   Only applies when the builder is installed and in use. */
.rsp-elementor-content{width:100%;max-width:none}
.rsp-full-width{overflow-x:clip}
/* Neutralize only the Elementor shells created by the exact migration.
   The approved section inside each shell keeps every original CSS value. */
.rsp-elementor-content .rsp-elementor-section,
.rsp-elementor-content .rsp-elementor-section>.e-con-inner{
  --container-max-width:none;width:100%;max-width:none;min-width:0;
  margin:0;padding:0;gap:0}
.rsp-elementor-content .rsp-elementor-section>.elementor-element,
.rsp-elementor-content .rsp-elementor-section>.e-con-inner>.elementor-element,
.rsp-elementor-content .rsp-elementor-section .elementor-widget-container{
  width:100%;max-width:none;margin:0;padding:0}
.rsp-elementor-content .rsp-elementor-section.elementor-element{--widgets-spacing:0px 0px}
/* Preserve the existing direct-child last-section breathing-room rule through
   Elementor's generated container/widget shells. */
main.rsp-elementor-content .rsp-elementor-section:last-child .elementor-widget-container>.sec{
  padding-bottom:clamp(42px,5.8vw,80px)}
main.rsp-elementor-content .rsp-elementor-section:last-child .elementor-widget-container>.cta-band{
  padding-bottom:clamp(50px,7vw,92px)}
@media(max-width:640px){
  main.rsp-elementor-content .rsp-elementor-section:last-child .elementor-widget-container>.sec{padding-bottom:42px}
  main.rsp-elementor-content .rsp-elementor-section:last-child .elementor-widget-container>.cta-band{padding-bottom:54px}
}
/* Global header/footer Elementor shells (Free-tier Theme Builder equivalent).
   Same neutralization as .rsp-elementor-section above: the wrapper Elementor
   generates must not add width/spacing the approved header/footer never had. */
.rsp-elementor-header,.rsp-elementor-footer{width:100%;max-width:none}
.rsp-elementor-header .e-con-inner,.rsp-elementor-footer .e-con-inner{
  --container-max-width:none;width:100%;max-width:none;min-width:0;margin:0;padding:0;gap:0}
.rsp-elementor-header>.elementor-element,.rsp-elementor-header .e-con-inner>.elementor-element,
.rsp-elementor-header .elementor-widget-container,
.rsp-elementor-footer>.elementor-element,.rsp-elementor-footer .e-con-inner>.elementor-element,
.rsp-elementor-footer .elementor-widget-container{width:100%;max-width:none;margin:0;padding:0}
.rsp-elementor-header.elementor-element,.rsp-elementor-footer.elementor-element{--widgets-spacing:0px 0px}
body.elementor-editor-active .rv,
body.elementor-editor-active .rv-s,
body.elementor-editor-active .rv-l,
body.elementor-editor-active .rv-r,
body.elementor-editor-active .stg>*{
  opacity:1!important;transform:none!important;clip-path:none!important}

/* --- Respect reduced motion for everything added above ----------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-padding-top:calc(var(--hdr-h) + 18px)}
  .burger i,.drawer,.drawer a.dl,.drawer a.dl::after,.drawer .dfoot{transition-duration:.01ms}
}


/* ==========================================================================
   v3.5 fixes
   Reported: the loader logo read as weak, the header always highlighted Home,
   photos appeared late, and the mobile menu needed more presence.
   ========================================================================== */

/* --- Current page marker -------------------------------------------------
   aria-current is now emitted on the page actually being viewed rather than
   hard-coded onto Home, so these selectors finally mean something.
   `.is-current` is the matching hook for WordPress-managed menus. */
.nav a.is-current,
.nav a[aria-current="page"]{color:var(--cream-50)}
.nav a.is-current::after,
.nav a[aria-current="page"]::after{transform:scaleX(1)}
.drawer nav .dl.is-current,
.drawer nav .dl[aria-current="page"]{color:var(--gold-300)}
.drawer nav .dl.is-current::after,
.drawer nav .dl[aria-current="page"]::after{transform:scaleX(1)}

/* --- Loader mark ---------------------------------------------------------
   The mark is the wordmark (320x258, ratio 1.24) but it was being forced into
   a 104px square with object-fit:contain, so it actually painted at 104x84:
   small, light, and floating oddly inside its 116px box. Give it its natural
   ratio and real presence instead. */

/* --- Mobile drawer -------------------------------------------------------
   Seven links plus the contact block must stay comfortable on a 390x844
   screen and never clip, so the panel scrolls when it has to and the type
   scales with the viewport. */
.drawer{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.drawer nav{display:flex;flex-direction:column}
.drawer nav .dl{font-size:clamp(1.35rem,6.2vw,1.95rem);padding-block:clamp(9px,1.9vh,15px);line-height:1.15}
.drawer nav .dl + .dl{border-top:1px solid rgba(227,210,178,.12)}
.drawer .dfoot{padding-top:clamp(14px,3vh,24px)}
.drawer .dl-c span{font-size:.95rem;overflow-wrap:anywhere}
@media (max-height:700px){
  .drawer nav .dl{font-size:clamp(1.1rem,4.8vw,1.45rem);padding-block:8px}
}

/* --- Image arrival -------------------------------------------------------
   A quiet placeholder tone behind photos instead of a white flash while they
   decode. Dimensions are already on every img, so nothing reflows. */
.fr,.gt{background:var(--cream-200)}
.fr img,.gt img{display:block}
/* v3.7.0 final production components */
.phero .service-hero-actions,.cta-in .btns{justify-content:center}
.phero .service-hero-actions{margin-inline:auto}
.cta-in{margin-inline:auto;text-align:center}
.cta-in .eyebrow{justify-content:center}
.cta-in .lead{margin-inline:auto}
.gal{grid-auto-flow:row dense;align-items:stretch}
.gal .gt picture{display:block;width:100%;height:100%}
@media (min-width:761px){.gal{grid-auto-rows:clamp(320px,29vw,430px)}.gt,.gt.w2{aspect-ratio:auto;height:100%;min-height:0}}
@media (min-width:761px) and (max-width:1040px){.gal{grid-auto-rows:clamp(330px,41vw,430px)}}
.admin-bar .hdr{top:32px}
.admin-bar .drawer{top:32px}
@media (max-width:782px){.admin-bar .hdr{top:46px}.admin-bar .drawer{top:46px}}
@media (max-width:1120px){:root{--hdr-h:84px}.phero,.ptop{padding-top:calc(var(--hdr-h) + clamp(48px,8vw,64px))}}
@media (max-width:820px){.hero{min-height:0;padding-top:calc(var(--hdr-h) + 32px);padding-bottom:clamp(44px,8vw,60px)}.hero-bg{inset:0}.hero-bg img{object-position:62% 48%}.hero-c{max-width:700px}.hero .lead{margin-top:22px;max-width:48ch;line-height:1.62}.hero .btns{margin-top:28px}.hero-chips{margin-top:30px;padding-top:22px;gap:10px 20px}}
@media (max-width:600px){.hdr{padding-block:12px}.hdr.stuck{padding-block:8px}.hero{padding-top:calc(var(--hdr-h) + 24px);padding-bottom:42px}.pill{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;width:min(100%,410px);padding:5px 14px 5px 5px;gap:12px;margin-bottom:22px;line-height:1.42}.pill b{display:flex;align-items:center;min-height:42px;padding:7px 12px}.hero h1{font-size:clamp(2.35rem,10.8vw,3.15rem)}.hero .lead{font-size:1rem;line-height:1.62;margin-top:20px}.hero .btns,.phero .service-hero-actions,.cta-in .btns{display:grid;grid-template-columns:1fr;width:min(100%,430px);margin-inline:auto}.hero .btn,.phero .service-hero-actions .btn,.cta-in .btn{width:100%}.hero-chips{display:grid;grid-template-columns:1fr;gap:10px;margin-top:26px;padding-top:20px}}
@media (max-width:480px){.phero h1,.ptop h1{font-size:clamp(2.2rem,11vw,2.85rem)}.phero .lead{line-height:1.62}.cta-band{padding-block:72px}}
.drawer .dfoot .dl-c{min-width:0;font-family:var(--sans);font-size:.95rem;line-height:1.35;letter-spacing:0;text-transform:none;overflow-wrap:anywhere}
.drawer .dfoot .dl-c span{min-width:0;overflow-wrap:anywhere;word-break:break-word}
@media (max-width:940px){.ftr-con{grid-column:1/-1}}
@media (max-width:640px){.ftr{padding-block:32px 16px}.ftr-card{padding:18px 16px 0;border-radius:var(--r-lg)}.ftr-top{gap:16px}.ftr .brand-logo{height:72px}.ftr-tl .ftr-tag{margin-top:8px}.ftr-desc{display:none}.ftr-est{padding:18px}.ftr-est h3{font-size:1.4rem}.ftr-est>p:not(.eyebrow){display:none}.ftr-est-b{margin-top:14px;gap:8px 12px}.ftr-hr{margin-block:16px 0}.ftr-card .ftr-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding-block:14px 16px}.ftr h3{margin-bottom:6px;font-size:.68rem}.ftr li+li{margin-top:0}.ftr-col a{display:flex;align-items:center;min-height:42px;padding-block:2px;font-size:.84rem;line-height:1.35}.ftr-con{grid-column:1/-1;gap:6px}.ftr-con li:nth-child(4){display:none}.ftr-con a,.ftr-con span{min-width:0;min-height:42px;align-items:center;font-size:.84rem;line-height:1.42;overflow-wrap:anywhere}.ftr-bot{margin-top:12px;padding-block:12px;gap:6px 12px;font-size:.74rem;line-height:1.4}}
@media (max-width:340px){.ftr-card .ftr-grid{column-gap:12px}.ftr-col a{font-size:.8rem}}
/* ========================================================================== 
   v3.8 final production fixes
   Root-cause fixes only: shared end spacing, text-sized contact underlines,
   scoped hero alignment/readability, stable root/header/mobile CTA layers,
   restrained reveals, and one deterministic loader handoff.
   ========================================================================== */

/* The mobile clearance after the footer is part of body padding. Keep the
   document/root canvas the footer navy so rubber-band or dynamic-viewport
   exposure can never reveal the old cream body background. */
html,
body {
  min-height: 100%;
  background-color: var(--navy-950);
}
@supports (min-height: 100dvh) {
  body {
    min-height: 100dvh;
  }
}

/* The apparent pre-footer gap was the final section's full global section
   padding plus the footer's own top padding. Reduce only the final section's
   bottom breathing room; keep its top rhythm and the footer card untouched. */
main > .sec:last-child {
  padding-bottom: clamp(42px, 5.8vw, 80px);
}
main > .cta-band:last-child {
  padding-bottom: clamp(50px, 7vw, 92px);
}
@media (max-width: 640px) {
  main > .sec:last-child {
    padding-bottom: 42px;
  }
  main > .cta-band:last-child {
    padding-bottom: 54px;
  }
}

/* Contact links stretched because the pseudo-element belonged to a flex anchor
   occupying the whole row. Move the animated rule to the text node itself. */
.ftr-con a[href^="tel:"]::after,
.ftr-con a[href^="mailto:"]::after {
  content: none;
}
.ftr-con a[href^="tel:"],
.ftr-con a[href^="mailto:"] {
  align-self: flex-start;
  width: fit-content;
  max-width: 100%;
}
.ftr-con a[href^="tel:"] > span,
.ftr-con a[href^="mailto:"] > span,
.ftr-tel > span,
.cinfo-i b a {
  position: relative;
  display: inline-block;
  width: fit-content;
  max-width: 100%;
}
.ftr-con a[href^="tel:"] > span::after,
.ftr-con a[href^="mailto:"] > span::after,
.ftr-tel > span::after,
.cinfo-i b a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -3px;
  width: 100%;
  height: 1px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.24s var(--ease);
  pointer-events: none;
}
.ftr-con a[href^="tel:"]:hover > span::after,
.ftr-con a[href^="mailto:"]:hover > span::after,
.ftr-con a[href^="tel:"]:focus-visible > span::after,
.ftr-con a[href^="mailto:"]:focus-visible > span::after,
.ftr-tel:hover > span::after,
.ftr-tel:focus-visible > span::after,
.cinfo-i b a:hover::after,
.cinfo-i b a:focus-visible::after {
  transform: scaleX(1);
}

/* Page-specific alignment hooks avoid changing unrelated global button groups. */
.phero .service-area-hero-actions {
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
}
.contact-hero-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(128px, 190px));
  justify-content: center;
  gap: 18px 24px;
  max-width: 900px;
  margin-inline: auto;
}
.contact-hero-stats > div {
  min-width: 0;
  text-align: center;
}
.contact-hero-stats div span {
  line-height: 1.42;
  text-wrap: balance;
}
@media (max-width: 820px) {
  .contact-hero-stats {
    grid-template-columns: repeat(2, minmax(120px, 180px));
    max-width: 430px;
    gap: 20px 18px;
  }
}
@media (max-width: 600px) {
  .phero .service-area-hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: min(100%, 430px);
  }
  .phero .service-area-hero-actions .btn {
    width: 100%;
  }
  .contact-hero-stats {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 12px;
    margin-top: 28px;
    padding-top: 22px;
  }
  .contact-hero-stats div b {
    font-size: clamp(1.55rem, 7vw, 1.9rem);
  }
  .contact-hero-stats div span {
    font-size: clamp(0.61rem, 2.7vw, 0.72rem);
    letter-spacing: 0.1em;
  }
}

/* A fixed, semi-transparent paint layer is more reliable than a transformed
   backdrop-filter surface. This keeps the approved transparent header while
   eliminating browser-dependent ghost patches and logo/header scale flicker. */
.hdr,
.hdr .brand,
.hdr .burger,
.hdr .nav a,
.hdr .hdr-cta {
  animation: none;
}
.hdr {
  transform: none;
  isolation: isolate;
  backface-visibility: hidden;
  transition: padding 0.28s var(--ease);
}
.hdr::after {
  opacity: 1;
  background: rgba(14, 23, 32, 0.32);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
  transform: none;
  transition:
    background-color 0.28s var(--ease),
    border-color 0.28s var(--ease),
    box-shadow 0.28s var(--ease);
}
.hdr.stuck::after {
  background: rgba(14, 23, 32, 0.97);
  box-shadow: 0 8px 28px rgba(6, 10, 15, 0.18);
}
.hero-bg,
.btn {
  will-change: auto;
}
.brand-logo img,
.brand:hover .brand-logo img {
  transform: none;
  filter: none;
}

/* Keep reveal movement small and quick. IntersectionObserver still runs each
   element once; no fixed layer participates and no blur is animated. */
.rv {
  transform: translateY(14px);
  filter: none;
  transition:
    opacity 0.56s var(--ease),
    transform 0.56s var(--ease);
}
.rv-l {
  transform: translateX(-14px);
  transition:
    opacity 0.58s var(--ease),
    transform 0.58s var(--ease);
}
.rv-r {
  transform: translateX(14px);
  transition:
    opacity 0.58s var(--ease),
    transform 0.58s var(--ease);
}
.rv-s {
  transform: translateY(10px) scale(0.985);
  transition:
    opacity 0.56s var(--ease),
    transform 0.56s var(--ease);
}
.stg > * {
  transform: translateY(12px);
  transition:
    opacity 0.52s var(--ease),
    transform 0.52s var(--ease);
}
.stg.in > *:nth-child(1) { transition-delay: 0.01s; }
.stg.in > *:nth-child(2) { transition-delay: 0.055s; }
.stg.in > *:nth-child(3) { transition-delay: 0.1s; }
.stg.in > *:nth-child(4) { transition-delay: 0.145s; }
.stg.in > *:nth-child(5) { transition-delay: 0.19s; }
.stg.in > *:nth-child(6) { transition-delay: 0.235s; }
.stg.in > *:nth-child(n + 7) { transition-delay: 0.27s; }
.wipe { transition-duration: 0.72s; }
.ln > span { transition-duration: 0.68s; }

/* The fixed CTA never translates during scroll/bounce. Its safe-area fill and
   the document clearance are both dark, removing seams and exposed light rows. */
@media (max-width: 860px) {
  .callbar,
  .callbar.down {
    gap: 0;
    transform: translate3d(0, 0, 0);
    background: var(--navy-950);
    backface-visibility: hidden;
    isolation: isolate;
  }
  .callbar .c2 {
    border-left: 1px solid rgba(227, 210, 178, 0.28);
  }
  body {
    padding-bottom: calc(54px + env(safe-area-inset-bottom));
  }
}

/* Approved Royal loader: deterministic intro -> settle -> crossfade -> cleanup. */
.ptrans {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: grid;
  place-items: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  overflow: hidden;
  background:
    radial-gradient(70% 60% at 50% 42%, rgba(186, 157, 111, 0.12), transparent 62%),
    linear-gradient(180deg, var(--navy-900), var(--navy-950));
  contain: layout paint style;
  transform: translateZ(0);
  transition: opacity 320ms cubic-bezier(0.22, 0.8, 0.28, 1);
  will-change: opacity;
}
.pt-mark {
  width: min(232px, 58vw);
  height: auto;
  display: block;
  position: relative;
  isolation: isolate;
  transform: translateZ(0);
}
.pt-mark img {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  opacity: 0;
  transform: translateZ(0);
  filter: none !important;
  transition: opacity 160ms ease;
  backface-visibility: hidden;
}
.pt-mark img.is-ready { opacity: 1; }
.pt-mark::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: -24%;
  border-radius: 50%;
  pointer-events: none;
  opacity: 0.82;
  transform: translateZ(0);
  background: radial-gradient(circle, rgba(186, 157, 111, 0.27), rgba(186, 157, 111, 0.11) 40%, rgba(186, 157, 111, 0.035) 62%, transparent 76%);
  filter: blur(11px);
}
.pt-mark::after {
  content: "";
  position: absolute;
  z-index: 3;
  left: 6%;
  right: 6%;
  bottom: -16px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  transform: scaleX(1);
  transform-origin: center;
}
html.rsp-loader-entry .ptrans {
  visibility: visible;
  opacity: 1;
}
html.rsp-loader-entry .pt-mark {
  animation: rspLoaderMarkEnter 900ms cubic-bezier(0.2, 0.75, 0.25, 1) both;
}
html.rsp-loader-entry .pt-mark::before {
  animation: rspLoaderShapeEnter 900ms cubic-bezier(0.2, 0.75, 0.25, 1) both;
}
html.rsp-loader-entry .pt-mark::after {
  animation: rspLoaderLineEnter 700ms var(--ease) both;
}
/* Repeated inner-page visits retain the premium Royal mark in a compact
   ~0.8 second cycle; the approved Home loader timing stays unchanged. */
html.rsp-loader-inner .ptrans { transition-duration: 260ms; }
html.rsp-loader-inner.rsp-loader-entry .pt-mark,
html.rsp-loader-inner.rsp-loader-entry .pt-mark::before {
  animation-duration: 500ms;
}
html.rsp-loader-inner.rsp-loader-entry .pt-mark::after {
  animation-duration: 400ms;
}
html.rsp-loader-inner.rsp-loader-reveal #main {
  animation-duration: 300ms;
}
html .ptrans.is-exiting,
.ptrans[data-rsp-state="exiting"] {
  visibility: visible;
  opacity: 0 !important;
  pointer-events: none !important;
}
html.rsp-loader-reveal #main {
  animation: rspLoaderPageReveal 340ms cubic-bezier(0.22, 1, 0.36, 1) both;
}
.ptrans.is-covering {
  visibility: visible;
  opacity: 1;
  animation: rspLoaderCover 200ms cubic-bezier(0.65, 0, 0.35, 1) both;
}
.ptrans.is-covering .pt-mark {
  animation: rspLoaderMarkCover 180ms var(--ease) both;
}
html.rsp-loader-finished .ptrans,
html .ptrans.is-finished,
.ptrans[data-rsp-state="finished"] {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  animation: none !important;
  transition: none !important;
}
html.rsp-loader-finished .pt-mark,
html.rsp-loader-finished .pt-mark::before,
html.rsp-loader-finished .pt-mark::after,
html .ptrans.is-finished .pt-mark,
html .ptrans.is-finished .pt-mark::before,
html .ptrans.is-finished .pt-mark::after {
  animation-play-state: paused !important;
}
/* The reveal must not leave a permanent stacking context around page modals. */
html.rsp-loader-finished:not(.rsp-page-reveal-only) #main {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}
html.rsp-page-reveal-only .ptrans { display: none !important; }
html.rsp-page-reveal-only #main {
  animation: rspInnerPageReveal 800ms cubic-bezier(.16,.72,.22,1);
}
@keyframes rspLoaderMarkEnter {
  0% { opacity: 0; transform: translateY(6px) scale(0.985); }
  28% { opacity: 1; }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes rspLoaderShapeEnter {
  0% { opacity: 0; transform: scale(0.94); }
  42% { opacity: 0.82; }
  100% { opacity: 0.82; transform: scale(1); }
}
@keyframes rspLoaderLineEnter {
  0%, 18% { opacity: 0; transform: scaleX(0); }
  100% { opacity: 1; transform: scaleX(1); }
}
@keyframes rspInnerPageReveal {
  from { opacity: 0.84; transform: translate3d(0, 10px, 0); }
  to { opacity: 1; transform: none; }
}
@keyframes rspLoaderCover {
  from { opacity: 0; visibility: visible; }
  to { opacity: 1; visibility: visible; }
}
@keyframes rspLoaderMarkCover {
  from { opacity: 0; transform: translateY(3px) scale(0.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes rspLoaderPageReveal {
  from { opacity: 0.985; transform: translateY(2px); }
  to { opacity: 1; transform: translateY(0); }
}
body.elementor-editor-active .ptrans { display: none !important; }
@media (prefers-reduced-motion: reduce) {
  html.rsp-loader-entry .pt-mark,
  html.rsp-loader-entry .pt-mark::before,
  html.rsp-loader-entry .pt-mark::after,
  .ptrans.is-covering .pt-mark {
    animation: none !important;
    transform: none !important;
  }
  .ptrans.is-exiting {
    transition-duration: 120ms !important;
  }
  .ptrans.is-covering {
    animation: rspLoaderCover 100ms ease-out both !important;
  }
  html.rsp-loader-reveal #main {
    animation: rspLoaderPageReveal 120ms ease-out both !important;
  }
  html.rsp-page-reveal-only #main { animation: none !important; }
}
/* Royal Surface Painting 4.2 - authoritative production layer */
:root {
  --ease: cubic-bezier(.16,.72,.22,1);
  --ease-io: cubic-bezier(.42,0,.2,1);
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--hdr-h) + 18px);
  background: #07101b;
  overflow-x: clip;
}
body {
  background: #07101b;
  overflow-x: clip;
  touch-action: pan-y;
  overscroll-behavior-x: none;
  -webkit-overflow-scrolling: touch;
}
img,
picture,
svg,
video { max-width: 100%; }

/* Preserve the approved sharp mark in the footer. */
.ftr .brand-logo-footer,
.ftr .brand-logo {
  width: auto;
  height: 86px;
  opacity: 1;
  filter: none;
}
.ftr .brand-logo-footer img,
.ftr .brand-logo img {
  width: auto;
  height: 100%;
  opacity: 1;
  filter: none !important;
  transform: none !important;
  object-fit: contain;
}

/* Blur only the photograph. Overscan prevents exposed edges after filtering. */
.phero.hasbg.phero--services,
.phero.hasbg.phero--gallery,
.phero.hasbg.phero--about {
  isolation: isolate;
  overflow: hidden;
}
.phero.hasbg.phero--services .phero-bg,
.phero.hasbg.phero--gallery .phero-bg,
.phero.hasbg.phero--about .phero-bg {
  inset: -28px;
  z-index: -2;
}
.phero.hasbg.phero--services .phero-bg picture,
.phero.hasbg.phero--gallery .phero-bg picture,
.phero.hasbg.phero--about .phero-bg picture,
.phero.hasbg.phero--services .phero-bg img,
.phero.hasbg.phero--gallery .phero-bg img,
.phero.hasbg.phero--about .phero-bg img {
  width: 100%;
  height: 100%;
}
.phero.hasbg.phero--services .phero-bg img,
.phero.hasbg.phero--gallery .phero-bg img,
.phero.hasbg.phero--about .phero-bg img {
  filter: blur(6.9px);
  transform: scale(1.065);
  transform-origin: 50% 50%;
}
.phero.hasbg.phero--services::before {
  background:
    linear-gradient(180deg, rgba(5,10,17,.72), rgba(6,13,22,.64) 48%, rgba(5,10,17,.78)),
    linear-gradient(95deg, rgba(5,11,18,.32), rgba(5,11,18,.10) 52%, rgba(5,11,18,.30));
}
.phero.hasbg.phero--gallery::before {
  background:
    linear-gradient(180deg, rgba(5,10,17,.68), rgba(6,13,22,.58) 48%, rgba(5,10,17,.74)),
    linear-gradient(95deg, rgba(5,11,18,.26), rgba(5,11,18,.07) 52%, rgba(5,11,18,.24));
}
.phero.hasbg.phero--about::before {
  background:
    linear-gradient(180deg, rgba(5,10,17,.72), rgba(6,13,22,.65) 48%, rgba(5,10,17,.78)),
    linear-gradient(95deg, rgba(5,11,18,.34), rgba(5,11,18,.12) 52%, rgba(5,11,18,.32));
}
.phero.hasbg.phero--services::after,
.phero.hasbg.phero--gallery::after,
.phero.hasbg.phero--about::after {
  background: radial-gradient(circle at 50% 38%, rgba(255,255,255,.035), transparent 56%);
  backdrop-filter: none;
}
.phero.hasbg.phero--services h1,
.phero.hasbg.phero--services .lead,
.phero.hasbg.phero--services .eyebrow,
.phero.hasbg.phero--services .crumb,
.phero.hasbg.phero--gallery h1,
.phero.hasbg.phero--gallery .lead,
.phero.hasbg.phero--gallery .eyebrow,
.phero.hasbg.phero--gallery .crumb,
.phero.hasbg.phero--gallery .phero-stats,
.phero.hasbg.phero--about h1,
.phero.hasbg.phero--about .lead,
.phero.hasbg.phero--about .eyebrow,
.phero.hasbg.phero--about .crumb,
.phero.hasbg.phero--about .phero-stats { text-shadow: none !important; }
.phero.hasbg.phero--services .lead,
.phero.hasbg.phero--gallery .lead,
.phero.hasbg.phero--about .lead { color: #fff; }
.phero.hasbg.phero--services h1 .ital,
.phero.hasbg.phero--gallery h1 .ital,
.phero.hasbg.phero--about h1 .ital,
.phero.hasbg.phero--services .eyebrow,
.phero.hasbg.phero--gallery .eyebrow,
.phero.hasbg.phero--about .eyebrow,
.phero.hasbg.phero--services .crumb span,
.phero.hasbg.phero--gallery .crumb span,
.phero.hasbg.phero--about .crumb span,
.phero.hasbg.phero--gallery .phero-stats b,
.phero.hasbg.phero--about .phero-stats b { color: var(--gold) !important; }
.phero.hasbg.phero--services .eyebrow::before,
.phero.hasbg.phero--gallery .eyebrow::before,
.phero.hasbg.phero--about .eyebrow::before { background: var(--gold); }
.phero.hasbg.phero--gallery .phero-stats span,
.phero.hasbg.phero--about .phero-stats span { color: #fff; }

/* Equal, centered desktop columns; deterministic 2 × 2 mobile grid below. */
.phero.hasbg.phero--gallery .phero-stats,
.phero.hasbg.phero--about .phero-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  width: min(100%, 920px);
  margin-inline: auto;
  gap: clamp(14px, 2vw, 28px);
  align-items: stretch;
}
.phero.hasbg.phero--gallery .phero-stats > div,
.phero.hasbg.phero--about .phero-stats > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}
.phero.hasbg.phero--gallery .phero-stats b,
.phero.hasbg.phero--gallery .phero-stats span,
.phero.hasbg.phero--about .phero-stats b,
.phero.hasbg.phero--about .phero-stats span { text-align: center; }

.rv,
.rv-l,
.rv-r,
.rv-s {
  transition-duration: 680ms;
  transition-timing-function: cubic-bezier(.16,.72,.22,1);
  will-change: auto;
}
.rv {
  filter: none;
  transform: translate3d(0, 14px, 0);
}
.rv-l { transform: translate3d(-14px, 0, 0); }
.rv-r { transform: translate3d(14px, 0, 0); }
.rv-s { transform: scale(.985); }
.rv.in,
.rv-l.in,
.rv-r.in,
.rv-s.in { transform: none; }
.btn {
  transition-duration: 580ms, 580ms, 420ms, 420ms, 420ms;
  transition-timing-function: var(--ease);
}
.btn svg,
.btn .bi { transition-duration: 480ms; }
.tile,
.pc,
.achip,
.gt,
.scard,
.soc a {
  transition-duration: 620ms;
  transition-timing-function: var(--ease);
}
.fil button,
.seg button,
.nav a {
  transition-duration: 420ms;
  transition-timing-function: var(--ease);
}
.lnk {
  transition-duration: 480ms;
  transition-timing-function: var(--ease);
}
.drawer {
  transform: none;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 420ms cubic-bezier(.16,.72,.22,1), visibility 420ms;
}
.drawer.open {
  transform: none;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.drawer a.dl {
  transform: none;
  transition: opacity 380ms cubic-bezier(.16,.72,.22,1), color 250ms ease;
}

@media (max-width: 820px) {
  .hero {
    min-height: auto;
    padding-top: calc(var(--hdr-h) + 52px);
    padding-bottom: 64px;
    background:
      radial-gradient(ellipse 80% 54% at 82% 18%, rgba(188,151,86,.15), transparent 68%),
      radial-gradient(ellipse 74% 60% at 8% 80%, rgba(29,57,84,.28), transparent 70%),
      linear-gradient(145deg, #050a12, #091523 48%, #050911);
    isolation: isolate;
  }
  .hero-bg,
  .hero .hero-bg,
  .hero-bg picture,
  .hero-bg img {
    display: none !important;
    visibility: hidden !important;
  }
  .hero::before {
    background:
      radial-gradient(circle at 76% 26%, rgba(215,178,110,.1), transparent 25%),
      linear-gradient(115deg, rgba(255,255,255,.025), transparent 42%);
    opacity: 1;
  }
  .hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: .22;
    background-image:
      linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.014) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(to bottom, transparent, #000 22%, #000 78%, transparent);
  }
  .hero-in {
    position: relative;
    z-index: 2;
    padding-inline: clamp(20px, 6vw, 40px);
  }
  .hero-c {
    width: min(100%, 680px);
    max-width: 680px;
    margin-inline: auto;
  }
  .hero .pill {
    display: grid;
    grid-auto-flow: row;
    grid-template-columns: max-content;
    width: max-content;
    max-width: 100%;
    gap: 9px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  .hero .pill b,
  .hero .pill span {
    display: inline-flex;
    width: max-content;
    max-width: 100%;
    min-height: 34px;
    align-items: center;
    justify-content: center;
    padding: 8px 15px;
    border-radius: 999px;
    line-height: 1.15;
    letter-spacing: .09em;
  }
  .hero .pill b {
    color: #0a111b;
    background: var(--gold);
    box-shadow: 0 8px 24px rgba(190,153,87,.16);
  }
  .hero .pill span {
    color: rgba(255,255,255,.9);
    border: 1px solid rgba(255,255,255,.2);
    background: rgba(255,255,255,.045);
    backdrop-filter: blur(8px);
  }
  .hero h1 {
    max-width: 11.5ch;
    margin-top: 24px;
    font-size: clamp(2.7rem, 10.8vw, 4.8rem);
    line-height: .98;
    letter-spacing: -.025em;
    text-wrap: balance;
  }
  .hero h1 .ln { display: block; }
  .hero .lead {
    max-width: 38rem;
    margin-top: 22px;
    color: rgba(255,255,255,.84);
    font-size: clamp(1rem, 2.6vw, 1.12rem);
    line-height: 1.68;
  }
  .hero .btns {
    display: grid;
    grid-template-columns: 1fr;
    width: min(100%, 540px);
    gap: 12px;
    margin-top: 28px;
  }
  .hero .btns .btn {
    width: 100%;
    min-height: 54px;
    justify-content: center;
    padding-inline: 18px;
    border-radius: 16px;
    text-align: center;
  }
  .hero .btns .btn-ghost { background: rgba(255,255,255,.035); }
  .hero-chips { margin-top: 30px; }

  .phero.hasbg.phero--services .phero-bg,
  .phero.hasbg.phero--gallery .phero-bg,
  .phero.hasbg.phero--about .phero-bg { inset: -34px; }
  .phero.hasbg.phero--services .phero-bg img,
  .phero.hasbg.phero--gallery .phero-bg img,
  .phero.hasbg.phero--about .phero-bg img {
    filter: blur(8.8px);
    transform: scale(1.075);
  }
  .phero.hasbg.phero--gallery .phero-stats,
  .phero.hasbg.phero--about .phero-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: min(100%, 560px);
    gap: 0;
    margin-top: 30px;
  }
  .phero.hasbg.phero--gallery .phero-stats > div,
  .phero.hasbg.phero--about .phero-stats > div {
    min-height: 92px;
    padding: 14px 10px;
  }
}

@media (max-width: 560px) {
  :root { --pad: 20px; }
  .hero {
    padding-top: calc(var(--hdr-h) + 40px);
    padding-bottom: 70px;
  }
  .hero-in { padding-inline: 20px; }
  .hero h1 {
    max-width: 9.2ch;
    font-size: clamp(2.45rem, 12.2vw, 3.15rem);
  }
  .hero h1 .ln,
  .hero h1 .ln > span { white-space: normal; }
  .hero .lead { margin-top: 19px; }
  .hero .pill b,
  .hero .pill span {
    font-size: .70rem;
    white-space: nowrap;
  }
  .hero-chips { display: none; }

  .phero {
    padding-top: calc(var(--hdr-h) + 38px);
    padding-bottom: 54px;
  }
  .phero h1 { font-size: clamp(2.25rem, 11.2vw, 3.25rem); }
  .phero .lead {
    font-size: 1rem;
    line-height: 1.65;
  }
  .phero.hasbg.phero--gallery .phero-stats,
  .phero.hasbg.phero--about .phero-stats { margin-top: 24px; }
  .phero.hasbg.phero--gallery .phero-stats > div,
  .phero.hasbg.phero--about .phero-stats > div {
    min-height: 84px;
    padding: 12px 8px;
  }
  .phero.hasbg.phero--gallery .phero-stats span,
  .phero.hasbg.phero--about .phero-stats span {
    max-width: 15ch;
    line-height: 1.35;
  }
  .sec { padding-block: clamp(56px, 16vw, 78px); }
  .btn { white-space: normal; }
  .form .f2 { grid-template-columns: 1fr; }
  .ftr .brand-logo-footer,
  .ftr .brand-logo { height: 76px; }
  .ftr-grid { gap: 30px; }
}

@media (max-width: 360px) {
  :root { --pad: 18px; }
  .hero-in { padding-inline: 18px; }
  .hero h1 {
    max-width: 9.3ch;
    font-size: clamp(2.3rem, 12vw, 2.75rem);
  }
  .hero .pill b,
  .hero .pill span {
    padding-inline: 12px;
    font-size: .65rem;
    letter-spacing: .075em;
  }
  .hero .btns .btn { font-size: .72rem; }
  .phero.hasbg.phero--gallery .phero-stats span,
  .phero.hasbg.phero--about .phero-stats span { font-size: .68rem; }
}

/* Production typography, contrast and interaction polish. Fonts are bundled
   with the theme so rendering is fast and no visitor font request leaves the
   WordPress site. */
@font-face {
  font-family: 'Manrope';
  src: url('../fonts/manrope-latin.woff2') format('woff2');
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}
@font-face {
  font-family: 'DM Serif Display';
  src: url('../fonts/dm-serif-display-normal-latin.woff2') format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'DM Serif Display';
  src: url('../fonts/dm-serif-display-italic-latin.woff2') format('woff2');
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}

/* Page-intro supporting copy must carry the same clear white contrast on
   Contact, Service Areas, Pricing and all other dark page heroes. */
.phero .lead,
.phero.hasbg .lead,
.ptop > .wrap > .sec-head .lead { color: #fff; }

/* One interaction rhythm across the system. Pricing plates get a slightly
   longer premium settle; control feedback remains immediate and accessible. */
.btn {
  transition-duration: 640ms, 640ms, 500ms, 500ms, 500ms;
  transition-timing-function: var(--ease);
}
.btn svg,
.btn .bi { transition-duration: 520ms; transition-timing-function: var(--ease); }
.pc {
  transition-duration: 720ms, 720ms, 520ms, 520ms;
  transition-timing-function: var(--ease);
}
.tile,.achip,.gt,.scard,.soc a {
  transition-duration: 660ms;
  transition-timing-function: var(--ease);
}
.fil button,.seg button,.nav a,.nav a::after {
  transition-duration: 500ms;
  transition-timing-function: var(--ease);
}
.lnk { transition-duration: 520ms; transition-timing-function: var(--ease); }

/* Service Areas: intentionally static and privacy-safe. No map, address
   lookup, API, database or location-permission dependency is used. */
.service-area-static { overflow: hidden; }
.service-area-static::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(48% 72% at 50% 100%, rgba(186,157,111,.11), transparent 72%),
    linear-gradient(rgba(22,34,46,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(22,34,46,.025) 1px, transparent 1px);
  background-size: auto, 56px 56px, 56px 56px;
}
.service-area-static .wrap { position: relative; z-index: 1; }
.service-area-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(16px, 2.4vw, 28px);
  width: min(100%, 980px);
  margin-inline: auto;
}
.service-area-card {
  position: relative;
  min-height: 290px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  padding: clamp(28px, 4vw, 46px);
  overflow: hidden;
  color: var(--cream-50);
  background:
    radial-gradient(90% 82% at 88% 2%, rgba(186,157,111,.16), transparent 64%),
    radial-gradient(68% 78% at 5% 100%, rgba(61,84,104,.2), transparent 72%),
    linear-gradient(145deg, rgba(24,53,78,.98), rgba(14,38,57,.98) 58%, rgba(11,29,44,.98));
  border: 1px solid rgba(186,157,111,.3);
  border-radius: var(--r-xl);
  box-shadow: 0 22px 58px rgba(14,38,57,.18);
  backdrop-filter: blur(14px) saturate(118%);
  -webkit-backdrop-filter: blur(14px) saturate(118%);
  transition: transform 660ms var(--ease), border-color 660ms var(--ease), box-shadow 660ms var(--ease);
}
.service-area-card::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .5;
  background-image:
    linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
  background-size: 42px 42px;
}
.service-area-card:hover {
  transform: translateY(-5px);
  border-color: rgba(227,210,178,.62);
  box-shadow: 0 28px 68px rgba(14,38,57,.29);
}
.service-area-card > * { position: relative; z-index: 1; }
.service-area-card--primary { border-color: rgba(186,157,111,.52); }
.service-area-icon {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  margin-bottom: clamp(30px, 3.6vw, 42px);
  color: var(--gold);
  background: rgba(186,157,111,.12);
  border: 1px solid rgba(186,157,111,.46);
  border-radius: 50%;
}
.service-area-icon svg { width: 22px; height: 22px; }
.service-area-card p {
  margin-top: 0;
  color: var(--gold);
  font-family: var(--font-body);
  font-size: .7rem;
  font-weight: 650;
  letter-spacing: .19em;
  text-transform: uppercase;
}
.service-area-card h3 {
  margin-top: 9px;
  color: var(--cream-50);
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 3vw, 2.25rem);
  font-weight: 400;
  line-height: 1.12;
}
.service-area-card > span:last-child {
  margin-top: 12px;
  color: var(--color-text-muted-dark);
  font-size: .92rem;
  line-height: 1.65;
}
@media (max-width: 720px) {
  .service-area-cards { grid-template-columns: 1fr; }
  .service-area-card { min-height: 250px; }
  .service-area-icon { margin-bottom: 28px; }
}

/* Pricing plates now share the Service Area cards' slow lift, soft glow and
   eased highlight expansion instead of snapping between states. */
.pc {
  isolation: isolate;
  will-change: transform;
}
.pc > * { position: relative; z-index: 1; }
.pc::before {
  transform: scale(.92);
  transition: opacity 720ms var(--ease), transform 900ms var(--ease);
}
.pc:hover {
  transform: translateY(-5px) scale(1.005);
  border-color: rgba(227,210,178,.58);
  box-shadow: 0 28px 68px rgba(4,11,18,.34);
}

/* ==========================================================================
   Header social links (Instagram + Facebook) — desktop header + mobile drawer
   ========================================================================== */
.hdr-social {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-inline: 4px;
  flex: none;
}
/* Gold icon + soft chip so the pair reads as a deliberate control group and
   matches the gold phone icon beside it. Bare cream outlines were technically
   rendering but visually disappeared against the header. */
.hdr-soc {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(227,210,178,.28);
  background: rgba(227,210,178,.08);
  color: var(--gold);
  transition: color .25s var(--ease), transform .25s var(--ease),
    background-color .25s var(--ease), border-color .25s var(--ease);
}
.hdr-soc svg { width: 17px; height: 17px; }
.hdr-soc:hover,
.hdr-soc:focus-visible {
  color: var(--navy);
  background: var(--gold);
  border-color: var(--gold);
  transform: translateY(-1px);
}
@media (max-width: 1250px) {
  .hdr-social { gap: 6px; margin-inline: 2px; }
  .hdr-soc { width: 32px; height: 32px; }
}

/* Footer social reuses the header's exact mark, colour and chip so the two
   read as one system rather than two different icon treatments. */
.ftr .soc a {
  border-color: rgba(227,210,178,.28);
  background: rgba(227,210,178,.08);
  color: var(--gold);
}
.ftr .soc svg { width: 17px; height: 17px; }
.ftr .soc a:hover,
.ftr .soc a:focus-visible {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--navy);
}
@media (prefers-reduced-motion: reduce) {
  .hdr-soc { transition-duration: .01ms; }
  .hdr-soc:hover, .hdr-soc:focus-visible { transform: none; }
}

/* ==========================================================================
   Testimonials — reuses the existing .tiles-3 / .tile card system
   ========================================================================== */
.testi-q {
  font-style: italic;
  font-family: var(--disp);
  font-size: 1.02rem;
  line-height: 1.55;
  color: var(--cream-50);
}
.testi-f {
  display: flex;
  align-items: baseline;
  gap: 9px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid rgba(227,210,178,.18);
}
.testi-f b {
  font-family: var(--sans);
  font-size: .92rem;
  font-weight: 650;
  color: var(--cream-50);
}
.testi-f span {
  font-size: .8rem;
  color: var(--color-text-muted-dark);
}
.pc:hover::before { opacity: 1; transform: scale(1.08); }

/* ==========================================================================
   Homepage mini gallery — compact teaser for the full Gallery page
   Scoped to .gal-mini so the Gallery page mosaic is untouched. The class is
   repeated (.gal.gal-mini) to outrank the base .gal breakpoint rules rather
   than resorting to !important.
   ========================================================================== */
.gal.gal-mini { grid-template-columns: repeat(4, 1fr); }
.gal.gal-mini .gt,
.gal.gal-mini .gt.w2 { grid-column: span 1; aspect-ratio: 1/1; }
@media (max-width: 760px) {
  .gal.gal-mini { grid-template-columns: 1fr 1fr; }
  .gal.gal-mini .gt.w2 { grid-column: span 1; }
}

/* ==========================================================================
   Before & After Transformations — reuses the existing .ba slider component
   Desktop lays the three cards on one row; below 900px the row becomes a
   snap rail so the homepage stays short on phones.
   ========================================================================== */
.ba-rail {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(18px, 2.2vw, 30px);
}
.ba-rail .ba { aspect-ratio: 4/3; }
/* The photos ship as <picture> for webp/jpg. Give the wrapper the same box
   the bare <img> had so it never adds an inline line-box of its own. */
.ba picture { position: absolute; inset: 0; display: block; }
@media (max-width: 900px) {
  .ba-rail {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    gap: 14px;
    /* Bleed to the viewport edges so a card can sit centred on screen. */
    margin-inline: calc(var(--pad) * -1);
    padding: 2px var(--pad) 4px;
    scrollbar-width: none;
  }
  .ba-rail::-webkit-scrollbar { display: none; }
  .ba-rail > .ba-item { flex: 0 0 86%; scroll-snap-align: center; }
}

/* Pager dots. Hidden on desktop, where all three cards are already visible. */
.ba-dots { display: none; }
@media (max-width: 900px) {
  .ba-dots {
    display: flex;
    justify-content: center;
    gap: 9px;
    margin-top: 20px;
  }
  .ba-dots button {
    width: 9px;
    height: 9px;
    padding: 0;
    border-radius: 50%;
    border: 1.5px solid var(--taupe-400);
    background: transparent;
    cursor: pointer;
    transition: background-color .35s var(--ease), border-color .35s var(--ease), transform .35s var(--ease);
  }
  .ba-dots button[aria-current="true"] {
    background: var(--gold);
    border-color: var(--gold);
    transform: scale(1.3);
  }
}
.ba-dots + .btns { margin-top: clamp(26px, 3.4vw, 40px); }

/* Desktop only: trim the top inset ~18% so the section reads as a
   continuation of Selected Work above it. Bottom spacing is left alone so
   the rhythm into Testimonials stays exactly as designed. */
@media (min-width: 901px) {
  #before-after { padding-top: calc(var(--sec-y) * .82); }
}

/* On the mobile rail the peeking neighbour should read as image only — its
   caption would otherwise be sliced by the viewport edge. Opacity keeps the
   row height reserved so nothing shifts as cards change. Scoped to
   .ba-rail--js so captions stay visible if the script never runs. */
@media (max-width: 900px) {
  .ba-rail--js > .ba-item .ba-cap { transition: opacity .32s var(--ease); }
  .ba-rail--js > .ba-item:not(.is-active) .ba-cap { opacity: 0; }
}

/* ==========================================================================
   Before & After — premium refinement (final polish pass)
   Appended overrides; base component rules above are untouched. Equal
   specificity, later cascade position, so these win cleanly. Motion is
   limited to hover/active feedback — no layout movement, reduced-motion
   safe (nothing here translates content or animates on scroll).
   ========================================================================== */

/* Card: crisp hairline border + layered depth; deepens slightly on hover. */
.ba {
  border: 1px solid rgba(22, 34, 46, .09);
  box-shadow:
    0 1px 2px rgba(22, 34, 46, .05),
    0 10px 28px rgba(22, 34, 46, .09),
    0 28px 64px rgba(22, 34, 46, .10);
  transition: box-shadow .45s var(--ease);
}
.ba:hover {
  box-shadow:
    0 2px 4px rgba(22, 34, 46, .06),
    0 16px 40px rgba(22, 34, 46, .12),
    0 40px 88px rgba(22, 34, 46, .13);
}
.ba:active { cursor: grabbing; }

/* Divider: slimmer line, softer halo so it reads as precision, not glare. */
.ba-hdl {
  width: 2px;
  box-shadow: 0 0 0 1px rgba(22, 34, 46, .14), 0 0 16px rgba(0, 0, 0, .30);
}

/* Handle: slightly smaller, hairline ring in the site gold, quieter shadow,
   clear hover/press feedback. */
.ba-knob {
  width: 50px;
  height: 50px;
  border: 1px solid rgba(22, 34, 46, .08);
  box-shadow:
    0 0 0 1.5px rgba(186, 157, 111, .55),
    0 4px 12px rgba(22, 34, 46, .22),
    0 10px 28px rgba(22, 34, 46, .18);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.ba:hover .ba-knob { transform: translate(-50%, -50%) scale(1.06); }
.ba:active .ba-knob {
  transform: translate(-50%, -50%) scale(.96);
  box-shadow:
    0 0 0 2px rgba(186, 157, 111, .8),
    0 3px 8px rgba(22, 34, 46, .24),
    0 8px 20px rgba(22, 34, 46, .18);
}
.ba-knob svg { width: 23px; height: 23px; color: var(--navy-700); }

/* Before/After pills: tighter tracking, gentle elevation, refined contrast. */
.ba-tag {
  font-size: .66rem;
  font-weight: 650;
  letter-spacing: .21em;
  padding: 7px 14px;
  box-shadow: 0 2px 10px rgba(22, 34, 46, .16);
}
.ba-tag.b { background: rgba(14, 23, 32, .70); }
.ba-tag.a { border: 1px solid rgba(124, 97, 52, .35); }

/* Hint pill: calmer footprint to match the refined tags. */
.ba-hint { padding: 7px 15px; font-size: .74rem; }

/* Caption: clearer hierarchy — title stays editorial, the category becomes
   a quiet gold eyebrow consistent with section eyebrows elsewhere. */
.ba-cap { margin-top: 18px; padding-inline: 2px; }
.ba-cap h3 { letter-spacing: -.012em; }
.ba-cap span {
  font-size: .72rem;
  font-weight: 650;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--gold-800);
}
.dark .ba-cap span { color: var(--gold); }
