:root{
--ink:#1F1F20;
--navy:#68696A;
--navy-2:#5D5E5F;
--peri:#848486;
--sky:#77D8F8;
--sky-2:#C6E6F1;
--wash:#F3F4F8; --peri-text:#6B6B6D;
--paper:#FFFFFF;
--line:#E2E3E6;
--body:#505152;
--shadow:0 30px 70px -30px rgba(31,31,32,.35);
--shadow-sm:0 14px 34px -18px rgba(31,31,32,.30);
--r:4px;
--r-sm:4px;
--sec:clamp(88px, 9vw, 148px);
--gut:clamp(20px, 4vw, 56px);
--max:1280px;
--hdr:78px;
--ease:cubic-bezier(.16,.8,.24,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--hdr) + 14px)}
body{
margin:0; background:var(--paper); color:var(--body);
font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
font-size:17px; line-height:1.72; -webkit-font-smoothing:antialiased;
overflow-x:hidden;
}
img{max-width:100%; display:block; height:auto}
a{color:inherit; text-decoration:none}
button{font:inherit; color:inherit}
h1,h2,h3,h4{
margin:0; color:var(--ink); font-weight:400; line-height:1.06; letter-spacing:-.015em;
text-wrap:balance;
}
.lead,.d1-facts,.d2-panel p,.d4-hero-lead{text-wrap:pretty}
p{margin:0 0 1.15em}
p:last-child{margin-bottom:0}
ul{margin:0; padding:0; list-style:none}
:focus-visible{outline:2px solid var(--navy); outline-offset:3px; border-radius:2px}
.wrap{max-width:var(--max); margin:0 auto; padding:0 var(--gut)}
.wrap-wide{max-width:1560px; margin:0 auto; padding:0 var(--gut)}
.sec{padding:var(--sec) 0}
.sec-sm{padding:calc(var(--sec) * .62) 0}
.eyebrow{
display:inline-flex; align-items:center; gap:12px;
font-size:11.5px; font-weight:600; letter-spacing:.22em; text-transform:uppercase;
color:#05668E; margin:0 0 22px;
}
.eyebrow::before{content:""; width:34px; height:1px; background:currentColor; opacity:.55; flex:none}
.eyebrow.center::before{display:none}
.on-dark .eyebrow, .eyebrow.light{color:var(--sky)}.fs-cta-vn .eyebrow.light{color:#05668E}.d3-due-out .eyebrow.light{color:#05668E}.jw-boiler-tabs .eyebrow.light{color:#05668E}.jw-rd-out .eyebrow.light{color:#05668E}
.lead{font-size:clamp(17px,1.28vw,19.5px); line-height:1.66; color:var(--body)}
.on-dark, .on-dark p{color:rgba(255,255,255,.80)}
.on-dark h1,.on-dark h2,.on-dark h3,.on-dark h4{color:#FFFFFF}
.btn{
display:inline-flex; align-items:center; justify-content:center; gap:10px;
min-height:54px; padding:0 30px; border-radius:var(--r-sm); border:1px solid transparent;
font-size:13px; font-weight:600; letter-spacing:.11em; text-transform:uppercase;
cursor:pointer; transition:background .3s var(--ease), color .3s var(--ease),
border-color .3s var(--ease), transform .3s var(--ease);
}
.btn svg{flex:none; transition:transform .35s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn-primary{background:#0679A8; color:#FFFFFF}
.btn-primary:hover{background:#055F86}
.btn-ghost{border-color:rgba(255,255,255,.42); color:#FFFFFF}.fs-cta-vn .btn-ghost{border-color:rgba(42,43,45,.42); color:#262727}
.btn-ghost:hover{background:#FFFFFF; color:var(--ink); border-color:#FFFFFF}.fs-cta-vn .btn-ghost:hover{background:#FFFFFF; color:var(--ink); border-color:rgb(42,43,45)}
.btn-outline{border-color:var(--line); color:var(--ink); background:#FFFFFF}
.btn-outline:hover{border-color:var(--navy); color:var(--navy)}
.btn-light{background:#FFFFFF; color:var(--ink)}
.btn-light:hover{background:var(--sky-2)}
.btn-sm{min-height:46px; padding:0 22px; font-size:12px}
.hdr{
position:fixed; inset:0 0 auto; z-index:60; height:var(--hdr);
display:flex; align-items:center;
transition:background .4s var(--ease), box-shadow .4s var(--ease), height .4s var(--ease);
}
.hdr .wrap-wide{display:flex; align-items:center; gap:clamp(16px,3vw,46px); width:100%}
.hdr.solid{background:rgba(255,255,255,.96); backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--line); height:68px}
.lockup{display:flex; align-items:center; gap:12px; flex:none}
.lockup img{width:auto; height:46px; transition:height .4s var(--ease)}
.hdr.solid .lockup img{height:40px}
.lockup .wm{display:flex; flex-direction:column; line-height:1}
.lockup .wm b{
font-size:13.5px; font-weight:700; letter-spacing:.055em; color:#FFFFFF; white-space:nowrap;
text-shadow:0 1px 12px rgba(31,31,32,.55);
}
.lockup .wm span{
font-size:9.5px; font-weight:600; letter-spacing:.30em; color:#FFFFFF; opacity:.82; margin-top:5px;
text-shadow:0 1px 12px rgba(31,31,32,.55);
}
.hdr.solid .lockup .wm b,.hdr.solid .lockup .wm span,
.hdr-light .lockup .wm b,.hdr-light .lockup .wm span{text-shadow:none; opacity:1}
.hdr.solid .lockup .wm span,.hdr-light .lockup .wm span{color:var(--navy)}
.hdr.solid .lockup .wm b{color:var(--ink)}
.hdr.solid .lockup .wm span{color:var(--navy)}
.hdr-light .lockup .wm b{color:var(--ink)}
.hdr-light .lockup .wm span{color:var(--navy)}
.nav{display:flex; align-items:center; gap:clamp(12px,1.7vw,28px); margin-left:auto}
.nav a{
font-size:12.5px; font-weight:500; letter-spacing:.085em; text-transform:uppercase;
color:rgba(255,255,255,.86); position:relative; padding:8px 0; white-space:nowrap;
}
.nav a::after{
content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
background:currentColor; transform:scaleX(0); transform-origin:left;
transition:transform .38s var(--ease);
}
.nav a:hover::after,.nav a.on::after{transform:scaleX(1)}
.hdr.solid .nav a,.hdr-light .nav a{color:var(--ink)}
.hdr-cta{margin-left:clamp(10px,1.6vw,22px); flex:none}
.hdr .btn-hdr{
min-height:44px; padding:0 20px; border-radius:var(--r-sm); font-size:11.5px;
font-weight:600; letter-spacing:.12em; text-transform:uppercase;
background:#0679A8; color:#FFFFFF; display:inline-flex; align-items:center; gap:8px;
transition:background .3s var(--ease);
}
.hdr .btn-hdr:hover{background:#055F86}
.burger{
display:none; width:46px; height:46px; align-items:center; justify-content:center;
background:none; border:1px solid rgba(255,255,255,.35); border-radius:var(--r-sm);
cursor:pointer; margin-left:auto; flex:none; color:#FFFFFF;
}
.hdr.solid .burger,.hdr-light .burger{border-color:var(--line); color:var(--ink)}
.burger span{display:block; width:19px; height:1.5px; background:currentColor; position:relative}
.burger span::before,.burger span::after{content:""; position:absolute; left:0; width:19px; height:1.5px; background:currentColor}
.burger span::before{top:-6px} .burger span::after{top:6px}
.drawer{
position:fixed; inset:0; z-index:70; background:#F5F6F7; color:#262727;
transform:translateY(-100%); transition:transform .55s var(--ease);
display:flex; flex-direction:column; padding:26px var(--gut) 40px; overflow-y:auto;
}
.drawer.open{transform:none}
.drawer-top{display:flex; align-items:center; justify-content:space-between; margin-bottom:38px}
.drawer-close{width:46px; height:46px; border:1px solid rgba(42,43,45,.3); background:none;
border-radius:var(--r-sm); cursor:pointer; color:#262727; font-size:22px; line-height:1}
.drawer nav{display:flex; flex-direction:column; gap:2px}
.drawer nav a{
font-size:clamp(24px,6.4vw,34px); padding:11px 0; border-bottom:1px solid rgba(42,43,45,.12);
color:#262727; letter-spacing:-.01em;
}
.drawer-foot{margin-top:34px; display:flex; flex-direction:column; gap:12px}
.drawer-foot a{font-size:15px; color:#05668E; display:flex; align-items:center; gap:10px}
.hero{position:relative; isolation:isolate; overflow:hidden}
.hero-bg{position:absolute; inset:0; z-index:-2}
.hero-bg img{width:100%; height:100%; object-fit:cover; animation:kb 26s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1)} to{transform:scale(1.075)}}
@media (prefers-reduced-motion:reduce){.hero-bg img{animation:none}}
.scroll-cue{
display:inline-flex; align-items:center; gap:11px;
font-size:10.5px; font-weight:600; letter-spacing:.3em; text-transform:uppercase;
color:rgba(255,255,255,.66);
}
.scroll-cue i{display:block; width:1px; height:34px; background:linear-gradient(rgba(255,255,255,.66),transparent); animation:cue 2.1s ease-in-out infinite}
@keyframes cue{0%,100%{opacity:.25; transform:scaleY(.55); transform-origin:top} 50%{opacity:1; transform:scaleY(1)}}
.chips{display:flex; flex-wrap:wrap; gap:9px}
.chip{
display:inline-flex; align-items:center; gap:8px;
padding:8px 15px; border-radius:4px; border:1px solid rgba(255,255,255,.28);
font-size:11.5px; font-weight:500; letter-spacing:.055em; color:rgba(255,255,255,.9);
background:rgba(255,255,255,.07); backdrop-filter:blur(5px);
}
.chip svg{color:var(--sky); flex:none}
.chip.dark{border-color:var(--line); color:var(--navy-2); background:#FFFFFF}
.chip.dark svg{color:var(--navy)}
.ticker{background:#E6E7E9; color:#262727; overflow:hidden; border-top:1px solid rgba(42,43,45,.09)}
.ticker-track{display:flex; width:max-content; animation:tick 46s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes tick{from{transform:none} to{transform:translateX(-50%)}}
.ticker-set{display:flex; flex:none}
.ticker-set span{
display:inline-flex; align-items:center; gap:11px; padding:15px 0; margin-right:52px;
font-size:11.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
color:#3D3E3F; white-space:nowrap;
}
.ticker-set span svg{color:#05668E; flex:none}
@media (prefers-reduced-motion:reduce){.ticker-track{animation:none}}
.stat b{
display:block; font-size:clamp(38px,4.1vw,58px); line-height:1; color:var(--navy);
letter-spacing:-.03em; font-variant-numeric:lining-nums;
}
.stat span{
display:block; margin-top:11px; font-size:11px; font-weight:600; letter-spacing:.17em;
text-transform:uppercase; color:var(--peri);
}
.on-dark .stat b{color:var(--sky)}
.on-dark .stat span{color:rgba(255,255,255,.55)}
.rating{display:inline-flex; align-items:center; gap:11px}
.marks{display:inline-flex; gap:3px; position:relative}
.marks svg{width:15px; height:15px; color:var(--line)}
.marks .fill{position:absolute; inset:0; display:inline-flex; gap:3px; overflow:hidden; white-space:nowrap}
.marks .fill svg{color:#03B3EF}
.rating b{font-size:14px; font-weight:600; color:var(--ink); font-variant-numeric:lining-nums}
.rating span{font-size:12.5px; color:var(--peri)}
.on-dark .rating b{color:#FFFFFF} .on-dark .rating span{color:rgba(255,255,255,.6)}
.on-dark .marks svg{color:rgba(255,255,255,.22)}
.on-dark .marks .fill svg{color:#03B3EF}
.quote-solo{max-width:900px}
.quote-mark{font-size:74px; line-height:.5; color:var(--peri); opacity:.4; display:block; margin-bottom:26px}
.quote-body{font-size:clamp(21px,2.4vw,32px); line-height:1.42; letter-spacing:-.015em; color:var(--ink)}
.on-dark .quote-body{color:#FFFFFF}
.quote-meta{margin-top:26px; font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--peri)}
.quote-meta i{font-style:normal; color:var(--navy)}
.on-dark .quote-meta i{color:var(--sky)}
.quote-ctrl{display:flex; align-items:center; gap:18px; margin-top:38px}
.dots{display:flex; gap:7px}
.dots button{
width:26px; height:44px; background:none; border:0; cursor:pointer; padding:0;
display:flex; align-items:center;
}
.dots button i{display:block; width:100%; height:2px; background:var(--line); transition:background .3s var(--ease)}
.dots button[aria-current="true"] i{background:var(--navy)}
.on-dark .dots button i{background:rgba(255,255,255,.24)}
.on-dark .dots button[aria-current="true"] i{background:var(--sky)}
.count{font-size:12px; font-weight:600; letter-spacing:.12em; color:var(--peri); font-variant-numeric:lining-nums}
.q-fade{animation:qf .55s var(--ease)}
@keyframes qf{from{opacity:0; transform:translateY(9px)} to{opacity:1; transform:none}}
.field{display:block; margin-bottom:16px}
.field span{
display:block; font-size:10.5px; font-weight:600; letter-spacing:.17em; text-transform:uppercase;
margin-bottom:8px; color:#6B6B6D;
}
.field input,.field textarea{
width:100%; padding:14px 16px; font:inherit; font-size:15.5px; color:var(--ink);
background:#FFFFFF; border:1px solid var(--line); border-radius:var(--r-sm);
transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.field textarea{min-height:112px; resize:vertical}
.field input:focus,.field textarea:focus{
outline:none; border-color:var(--navy); box-shadow:0 0 0 3px rgba(104,105,106,.12);
}
.on-dark .field span{color:var(--sky)}
.on-dark .field input,.on-dark .field textarea{
background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.2); color:#FFFFFF;
}
.on-dark .field input:focus,.on-dark .field textarea:focus{
border-color:var(--sky); box-shadow:0 0 0 3px rgba(119,216,248,.18);
}
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.hp input{color:var(--ink); border:0; background:none}
.form-note{font-size:12.5px; line-height:1.6; margin-top:14px; color:var(--peri-text)}
.form-ok{
margin-top:16px; padding:14px 16px; border-radius:var(--r-sm);
background:rgba(104,105,106,.07); border:1px solid rgba(104,105,106,.2);
font-size:14.5px; color:var(--navy); display:none;
}
.form-ok.show{display:block}
.on-dark .form-ok{background:rgba(119,216,248,.14); border-color:rgba(119,216,248,.35); color:#FFFFFF}
.form-err{
margin-top:16px; padding:14px 16px; border-radius:var(--r-sm);
background:rgba(176,52,52,.07); border:1px solid rgba(176,52,52,.3);
font-size:14.5px; color:#8A2A2A; display:none;
}
.form-err a{color:inherit; text-decoration:underline}
.form-err.show{display:block}
.on-dark .form-err{background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.3); color:#FFFFFF}
form.enq.busy button[type="submit"]{opacity:.6; pointer-events:none}
.ftr{background:var(--ink); color:rgba(255,255,255,.62); padding:clamp(58px,6vw,86px) 0 0}
.ftr-grid{
display:grid; gap:clamp(26px,3.4vw,52px);
grid-template-columns:1.55fr 1fr 1fr 1.2fr;
padding-bottom:clamp(34px,4vw,52px); border-bottom:1px solid rgba(255,255,255,.11);
}
.ftr h4{
font-family:Inter,sans-serif; font-size:10px; font-weight:600; letter-spacing:.2em;
text-transform:uppercase; color:var(--sky); margin:0 0 16px; line-height:1;
}
.ftr ul{display:flex; flex-direction:column; gap:9px}
.ftr li{margin:0; font-size:13.5px; line-height:1.45}
.ftr a{transition:color .25s var(--ease)}
.ftr a:hover{color:#FFFFFF}
.ftr-about .lockup img{height:44px}
.ftr-about .lockup .wm b{font-size:12.5px}
.ftr-about .lockup .wm span{font-size:8.5px; color:var(--sky); opacity:1}
.ftr-about p{font-size:13.5px; line-height:1.62; margin:18px 0 0; max-width:34ch}
.ftr-badges{
margin:18px 0 0; display:grid; gap:0; border-top:1px solid rgba(255,255,255,.12);
}
.ftr-badges li{
padding:8px 0; border-bottom:1px solid rgba(255,255,255,.12);
font-size:11px; font-weight:500; letter-spacing:.06em; line-height:1.4;
color:rgba(255,255,255,.66); text-transform:none;
}
.ftr-social{display:flex; gap:12px; margin-top:20px}
.ftr-social a{
display:flex; align-items:center; justify-content:center; width:44px; height:44px;
border-radius:50%; border:1px solid rgba(255,255,255,.18); color:rgba(255,255,255,.78);
transition:color .3s var(--ease), transform .3s var(--ease), border-color .3s var(--ease);
}
.ftr-social a:hover{border-color:#FFFFFF}
.ftr-social a:hover{color:#FFFFFF; transform:translateY(-2px)}
.ftr-bot{
padding:20px 0 26px; display:flex; flex-wrap:wrap; gap:8px 26px;
justify-content:space-between; font-size:11.5px; line-height:1.5; color:rgba(255,255,255,.62);
}
.ftr-bot p{margin:0}
.ftr-h{
font-family:"Cormorant Garamond",Georgia,serif; font-weight:500; font-size:21px; line-height:1.15;
color:var(--ink); margin:0 0 14px; padding-bottom:10px; border-bottom:1px solid var(--line);
}
.ftr .ftr-h{color:#FFFFFF; border-bottom-color:rgba(255,255,255,.16)}
.ftr-legal{
display:flex; justify-content:space-between; align-items:center; gap:20px;
padding:8px 0 22px; border-top:1px solid rgba(255,255,255,.11); font-size:12.5px;
}
.ftr-legal a{color:rgba(255,255,255,.78); min-height:36px; display:inline-flex; align-items:center}
.ftr-legal a:hover{color:#FFFFFF}
.rail{
position:fixed; right:16px; top:50%; transform:translateY(-50%); z-index:55;
display:flex; flex-direction:column; gap:8px;
padding:9px; border-radius:100px;
background:rgba(31,31,32,.80); backdrop-filter:blur(10px);
border:1px solid rgba(255,255,255,.14); box-shadow:var(--shadow-sm);
}
.rail a,.rail button{
width:44px; height:44px; border-radius:50%; border:0; background:rgba(255,255,255,.10);
display:flex; align-items:center; justify-content:center; color:#FFFFFF; cursor:pointer;
transition:background .3s var(--ease), transform .3s var(--ease);
}
.rail a:hover,.rail button:hover{background:var(--navy); transform:scale(1.07)}
.rail .wa:hover{background:#25D366; color:#1F1F20}
.rail #toTop{opacity:0; pointer-events:none; transition:opacity .35s var(--ease), background .3s var(--ease)}
.rail #toTop.on{opacity:1; pointer-events:auto}
.rail-bubbles{
background:none; border:0; box-shadow:none; padding:0; gap:12px; right:22px;
backdrop-filter:none; -webkit-backdrop-filter:none;
}
.rail-bubbles .rail-b{
position:relative; display:flex; align-items:center; justify-content:center;
width:52px; height:52px; padding:0; border:0; background:none; cursor:pointer;
border-radius:50%; overflow:visible;
}
.rail-bubbles .rail-i{
width:52px; height:52px; border-radius:50%; display:flex; align-items:center;
justify-content:center; background:#FFFFFF; color:var(--navy);
border:1px solid rgba(104,105,106,.22); box-shadow:0 10px 24px -12px rgba(31,31,32,.55);
transition:background .3s var(--ease), color .3s var(--ease),
border-color .3s var(--ease), transform .3s var(--ease);
}
.rail-bubbles .rail-b:hover .rail-i,.rail-bubbles .rail-b:focus-visible .rail-i{
background:var(--navy); color:#FFFFFF; border-color:var(--navy); transform:scale(1.07);
}
.rail-bubbles.on-dark .rail-i{
background:rgba(255,255,255,.16); color:#FFFFFF; border-color:rgba(255,255,255,.55);
backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
box-shadow:0 10px 24px -12px rgba(0,0,0,.5);
}
.rail-bubbles.on-dark .rail-b:hover .rail-i,.rail-bubbles.on-dark .rail-b:focus-visible .rail-i{
background:#FFFFFF; color:var(--navy); border-color:#FFFFFF;
}
.rail-bubbles .rail-l{
position:absolute; right:calc(100% + 13px); top:50%;
transform:translateY(-50%) translateX(8px);
padding:8px 14px; border-radius:8px; white-space:nowrap; pointer-events:none;
background:var(--ink); color:#FFFFFF; font-size:11px; font-weight:600;
letter-spacing:.12em; text-transform:uppercase;
opacity:0; transition:opacity .26s var(--ease), transform .3s var(--ease);
box-shadow:0 12px 26px -12px rgba(31,31,32,.6);
}
.rail-bubbles .rail-l::after{
content:""; position:absolute; left:100%; top:50%; transform:translateY(-50%);
border:6px solid transparent; border-left-color:var(--ink);
}
.rail-bubbles .rail-b:hover .rail-l,.rail-bubbles .rail-b:focus-visible .rail-l{
opacity:1; transform:translateY(-50%);
}
@media (hover:none),(max-width:760px){
.rail-bubbles .rail-l{display:none}
.rail-bubbles .rail-b{width:48px; height:48px}
.rail-bubbles .rail-i{width:48px; height:48px}
}
.rail-bubbles .rail-top{display:none}
.rail-bubbles .rail-top.on{display:flex; animation:bubbleIn .4s var(--ease) both}
@keyframes bubbleIn{from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none}}
.rail-bubbles .rail-top.on{opacity:1; pointer-events:auto}
.switcher{
position:fixed; left:50%; bottom:16px; transform:translateX(-50%); z-index:80;
display:flex; align-items:center; gap:4px; padding:6px 8px; border-radius:4px;
background:rgba(31,31,32,.86); backdrop-filter:blur(12px);
border:1px solid rgba(255,255,255,.16); box-shadow:0 18px 40px -18px rgba(0,0,0,.6);
}
.switcher a{
display:inline-flex; align-items:center; min-height:40px;
padding:0 15px; border-radius:4px; font-size:11.5px; font-weight:600;
letter-spacing:.07em; color:rgba(255,255,255,.68); transition:color .25s var(--ease), background .25s var(--ease);
white-space:nowrap;
}
.switcher a:hover{color:#FFFFFF}
.switcher a.cur{background:#FFFFFF; color:var(--ink)}
.switcher i{width:1px; height:16px; background:rgba(255,255,255,.2)}
.js [data-reveal]{opacity:0; transform:translateY(14px)}
.js [data-reveal].in{opacity:1; transform:none; transition:opacity .7s var(--ease), transform .7s var(--ease)}
.js.no-reveal [data-reveal]{opacity:1 !important; transform:none !important}
@media (prefers-reduced-motion:reduce){
.js [data-reveal]{opacity:1 !important; transform:none !important}
}
@media (max-width:1740px){
.nav{gap:clamp(11px,1.2vw,20px)}
}
@media (max-width:1560px){
.nav{gap:14px}
.nav a{font-size:11.5px; letter-spacing:.05em}
.hdr .btn-hdr{padding:0 15px; font-size:11px}
}
@media (max-width:1400px){
.nav{gap:11px}
.nav a{font-size:11px; letter-spacing:.04em}
}
@media (max-width:1340px){
.hdr .btn-hdr.hdr-cta{display:none}
}
@media (max-width:1080px){
.hdr .nav{display:none}
.burger{display:flex}
.ftr .ftr-grid,.ftr-compact .ftr-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:400px){
.lockup img{height:40px}
.lockup .wm b{font-size:12px}
.lockup .wm span{font-size:8.5px; letter-spacing:.26em}
}
@media (max-width:760px){
body{font-size:16.5px}
:root{--hdr:68px}
.ftr .ftr-grid,.ftr-compact .ftr-grid{grid-template-columns:1fr}
.switcher{gap:2px; padding:5px 6px}
.switcher a{padding:0 9px; font-size:10.5px; min-height:36px}
.switcher i{display:none}
.btn{width:100%; max-width:340px}
.btn.auto{width:auto}
}
.lockup .mark-on-light{display:none}
.hdr.solid .lockup .mark-on-dark,
.hdr-light .lockup .mark-on-dark{display:none}
.hdr.solid .lockup .mark-on-light,
.hdr-light .lockup .mark-on-light{display:block}
.kicker{
font-size:11.5px; font-weight:600; letter-spacing:.24em; text-transform:uppercase;
color:#FFFFFF; margin:0 0 26px; text-shadow:0 1px 14px rgba(31,31,32,.6);
}
.center{text-align:center}
p.lead.center{margin-left:auto; margin-right:auto; max-width:62ch}
.stats{
display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(20px,3vw,44px);
}
.stats .stat{padding-left:22px; border-left:1px solid var(--line)}
.enq-row{display:grid; grid-template-columns:1fr 1fr; gap:0 16px}
.enq .btn{margin-top:6px}
.hero-cta{display:flex; flex-wrap:wrap; gap:12px; margin:34px 0 26px}
.d1-accred,.d2-accred,.d3-accred{margin-top:34px; display:grid; gap:1px; background:var(--line)}
.d1-accred li,.d2-accred li,.d3-accred li{
background:#FFFFFF; padding:16px 18px; display:flex; flex-direction:column; gap:3px;
}
.d1-accred li b,.d2-accred li b,.d3-accred li b{
font-size:12px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:var(--navy);
}
.d1-accred li span,.d2-accred li span,.d3-accred li span{font-size:13.5px; color:var(--body)}
.on-dark .d1-accred{background:transparent; gap:0}
.on-dark .d1-accred li{
background:transparent; padding:15px 0; border-top:1px solid rgba(255,255,255,.15);
}
.on-dark .d1-accred li b{color:var(--sky)}
.on-dark .d1-accred li span{color:rgba(255,255,255,.66)}
.ftr-contact li{line-height:1.5}
.ftr-hours li{display:flex; justify-content:space-between; gap:14px; line-height:1.5}
.ftr-hours li b{font-weight:500; color:var(--ink); font-variant-numeric:lining-nums}
.ftr .ftr-hours li b,.on-dark .ftr-hours li b{color:rgba(255,255,255,.90)}
.ftr-hours li span{color:inherit}
.ftr .ftr-hours li span{color:rgba(255,255,255,.66)}
.ftr h4.ftr-h4-2{margin-top:26px}
.ftr-areas{display:grid !important; grid-template-columns:1fr 1fr; gap:9px 14px}
.also-rail,.area-rail{overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000000 6%,#000000 94%,transparent);
mask-image:linear-gradient(90deg,transparent,#000000 6%,#000000 94%,transparent)}
.also-track,.area-track{display:flex; width:max-content; animation:slide 52s linear infinite}
.area-track{animation-duration:64s}
.also-rail:hover .also-track,.area-rail:hover .area-track{animation-play-state:paused}
.also-set,.area-set{display:flex; flex:none}
@keyframes slide{from{transform:none} to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.also-track,.area-track{animation:none}}
@media (max-width:760px){
.stats{grid-template-columns:1fr 1fr; gap:26px 18px}
.enq-row{grid-template-columns:1fr}
}
@media (hover:hover) and (pointer:fine){
.cur-d1{cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2234%22%20height%3D%2234%22%20viewBox%3D%220%200%2034%2034%22%3E%3Cg%20transform%3D%22translate%282%2C2%29%22%3E%3Cpath%20d%3D%22M4%201.8%20L4%2018.9%20L8.3%2014.8%20L11.1%2020.9%20L14.1%2019.5%20L11.3%2013.5%20L17.8%2013.1%20Z%22%20fill%3D%22%23037196%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%221.7%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 6 4, default}
.cur-d1 a,.cur-d1 button,.cur-d1 [role="button"],.cur-d1 label,.cur-d1 summary{cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2234%22%20height%3D%2234%22%20viewBox%3D%220%200%2034%2034%22%3E%3Cg%20transform%3D%22translate%282%2C2%29%22%3E%3Cpath%20d%3D%22M4%201.8%20L4%2018.9%20L8.3%2014.8%20L11.1%2020.9%20L14.1%2019.5%20L11.3%2013.5%20L17.8%2013.1%20Z%22%20fill%3D%22%23FFFFFF%22%20stroke%3D%22%23037196%22%20stroke-width%3D%221.7%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 6 4, pointer}
.cur-d1 input,.cur-d1 textarea{cursor:text}
.cur-d2{cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%220%200%2040%2040%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2213%22%20r%3D%2213%22%20fill%3D%22%2377D8F8%22%20opacity%3D%22.16%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2213%22%20r%3D%229%22%20fill%3D%22%2377D8F8%22%20opacity%3D%22.22%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2213%22%20r%3D%225.5%22%20fill%3D%22%23C6E6F1%22%20opacity%3D%22.30%22%2F%3E%3Cg%20transform%3D%22translate%284%2C4%29%22%3E%3Cpath%20d%3D%22M4%201.8%20L4%2018.9%20L8.3%2014.8%20L11.1%2020.9%20L14.1%2019.5%20L11.3%2013.5%20L17.8%2013.1%20Z%22%20fill%3D%22%23037196%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%221.7%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 8 6, default}
.cur-d2 a,.cur-d2 button,.cur-d2 [role="button"],.cur-d2 label,.cur-d2 summary{cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%220%200%2040%2040%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2213%22%20r%3D%2213%22%20fill%3D%22%23FFFFFF%22%20opacity%3D%22.22%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2213%22%20r%3D%229%22%20fill%3D%22%23FFFFFF%22%20opacity%3D%22.30%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2213%22%20r%3D%225.5%22%20fill%3D%22%23FFFFFF%22%20opacity%3D%22.42%22%2F%3E%3Cg%20transform%3D%22translate%284%2C4%29%22%3E%3Cpath%20d%3D%22M4%201.8%20L4%2018.9%20L8.3%2014.8%20L11.1%2020.9%20L14.1%2019.5%20L11.3%2013.5%20L17.8%2013.1%20Z%22%20fill%3D%22%23FFFFFF%22%20stroke%3D%22%23037196%22%20stroke-width%3D%221.7%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 8 6, pointer}
.cur-d2 input,.cur-d2 textarea{cursor:text}
.cur-d3{cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2236%22%20height%3D%2236%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cg%20transform%3D%22translate%282%2C2%29%22%3E%3Cpath%20d%3D%22M4%201.8%20L4%2018.9%20L8.3%2014.8%20L11.1%2020.9%20L14.1%2019.5%20L11.3%2013.5%20L17.8%2013.1%20Z%22%20fill%3D%22%23037196%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%221.7%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3Ccircle%20cx%3D%2225%22%20cy%3D%2225.5%22%20r%3D%225%22%20fill%3D%22none%22%20stroke%3D%22%23037196%22%20stroke-width%3D%221.7%22%2F%3E%3Ccircle%20cx%3D%2225%22%20cy%3D%2225.5%22%20r%3D%225%22%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%220.7%22%2F%3E%3C%2Fsvg%3E") 6 4, default}
.cur-d3 a,.cur-d3 button,.cur-d3 [role="button"],.cur-d3 label,.cur-d3 summary{cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2236%22%20height%3D%2236%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cg%20transform%3D%22translate%282%2C2%29%22%3E%3Cpath%20d%3D%22M4%201.8%20L4%2018.9%20L8.3%2014.8%20L11.1%2020.9%20L14.1%2019.5%20L11.3%2013.5%20L17.8%2013.1%20Z%22%20fill%3D%22%23FFFFFF%22%20stroke%3D%22%23037196%22%20stroke-width%3D%221.7%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3Ccircle%20cx%3D%2225%22%20cy%3D%2225.5%22%20r%3D%225%22%20fill%3D%22%23037196%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%221.2%22%2F%3E%3C%2Fsvg%3E") 6 4, pointer}
.cur-d3 input,.cur-d3 textarea{cursor:text}
}
@media (prefers-reduced-motion:reduce),(forced-colors:active){
.cur-d1,.cur-d2,.cur-d3,.cur-d1 a,.cur-d2 a,.cur-d3 a,.cur-d1 button,.cur-d2 button,.cur-d3 button{cursor:auto}
}
.js [data-reveal="left"]{opacity:0; transform:translateX(-26px)}
.js [data-reveal="right"]{opacity:0; transform:translateX(26px)}
.js [data-reveal="scale"]{opacity:0; transform:scale(.955)}
.js [data-reveal="mask"]{clip-path:inset(0 0 100% 0); opacity:1; transform:none}
.js [data-reveal="split"]{opacity:1; transform:none}
.js [data-reveal="mask"].in{clip-path:inset(0 0 0 0); transition:clip-path 1.05s var(--ease)}
.js [data-reveal="left"].in,.js [data-reveal="right"].in,.js [data-reveal="scale"].in{
opacity:1; transform:none; transition:opacity .8s var(--ease), transform .9s var(--ease);
}
.js.no-reveal [data-reveal]{clip-path:none !important}
.js .w{
display:inline-block; overflow:hidden; vertical-align:top;
padding:.08em .04em .20em; margin:-.08em -.04em -.20em;
}
.js .w > i{
display:inline-block; font-style:inherit; transform:translateY(105%);
transition:transform .95s var(--ease);
}
.js [data-split].in .w > i{transform:none}
.js.no-reveal .w > i{transform:none !important}
.js [data-parallax]{will-change:transform}
.prog{
position:fixed; inset:0 auto auto 0; height:2px; width:100%; z-index:90;
background:linear-gradient(90deg, var(--navy), var(--peri));
transform:scaleX(0); transform-origin:0 50%; will-change:transform; pointer-events:none;
}
.lift{transition:transform .5s var(--ease), box-shadow .5s var(--ease)}
.lift:hover{transform:translateY(-6px)}
.js .draw{transform:scaleX(0); transform-origin:left; transition:transform 1s var(--ease)}
.js .draw.in{transform:scaleX(1)}
@media (prefers-reduced-motion:reduce){
.js [data-reveal]{clip-path:none !important}
.js .w > i{transform:none !important}
.prog{display:none}
}
.ftr-compact{padding:clamp(46px,4.6vw,68px) 0 0; font-size:13px}
.ftr-compact .ftr-grid{
grid-template-columns:1.4fr .85fr .85fr 1.1fr;
gap:clamp(22px,2.8vw,44px); padding-bottom:clamp(28px,3.2vw,42px);
}
.ftr-compact h4{font-size:9.5px; margin-bottom:13px}
.ftr-compact ul{gap:7px}
.ftr-compact li{font-size:12.5px}
.ftr-compact .ftr-about p{font-size:12.5px; line-height:1.58; margin-top:14px; max-width:32ch}
.ftr-compact .ftr-about .lockup img{height:50px}
.ftr-compact .ftr-about .lockup{gap:12px}
.ftr-compact .ftr-about .lockup .wm b{font-size:14px}
.ftr-compact .ftr-about .lockup .wm span{font-size:9.5px}
.ftr-compact .ftr-badges{margin-top:14px; gap:5px}
.ftr-compact .ftr-badges span{font-size:9px; padding:5px 9px}
.ftr-compact .ftr-social{margin-top:16px}
.ftr-compact .ftr-social a{width:42px; height:42px}
.ftr-compact .ftr-bot{padding:16px 0 6px; font-size:11px; border-bottom:0}
.ftr-compact .ftr-hours li{font-size:12.5px}
@media (max-width:1080px){
.ftr .ftr-grid,.ftr-compact .ftr-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
.ftr .ftr-grid,.ftr-compact .ftr-grid{grid-template-columns:1fr}
.ftr-areas{grid-template-columns:1fr 1fr}
}
@media (hover:hover) and (pointer:fine){
.cur-d4{cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2234%22%20height%3D%2234%22%20viewBox%3D%220%200%2034%2034%22%3E%3Cg%20transform%3D%22translate%282%2C2%29%22%3E%3Cpath%20d%3D%22M4%201.8%20L4%2018.9%20L8.3%2014.8%20L11.1%2020.9%20L14.1%2019.5%20L11.3%2013.5%20L17.8%2013.1%20Z%22%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%222.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%282%2C2%29%22%3E%3Cpath%20d%3D%22M4%201.8%20L4%2018.9%20L8.3%2014.8%20L11.1%2020.9%20L14.1%2019.5%20L11.3%2013.5%20L17.8%2013.1%20Z%22%20fill%3D%22none%22%20stroke%3D%22%23037196%22%20stroke-width%3D%221.3%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 6 4, default}
.cur-d4 a,.cur-d4 button,.cur-d4 [role="button"],.cur-d4 label,.cur-d4 summary{cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2234%22%20height%3D%2234%22%20viewBox%3D%220%200%2034%2034%22%3E%3Cg%20transform%3D%22translate%282%2C2%29%22%3E%3Cpath%20d%3D%22M4%201.8%20L4%2018.9%20L8.3%2014.8%20L11.1%2020.9%20L14.1%2019.5%20L11.3%2013.5%20L17.8%2013.1%20Z%22%20fill%3D%22%23037196%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%221.7%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 6 4, pointer}
.cur-d4 input,.cur-d4 textarea{cursor:text}
}
@media (prefers-reduced-motion:reduce),(forced-colors:active){
.cur-d4,.cur-d4 a,.cur-d4 button{cursor:auto}
}
.js [data-reveal="up"]{opacity:0; transform:translateY(20px)}
.js [data-reveal="up"].in{opacity:1; transform:none; transition:opacity .75s var(--ease), transform .85s var(--ease)}
img.px{will-change:transform}
.js .eyebrow::before,.js .sc-eyebrow::before{transform:scaleX(0); transform-origin:left; transition:transform .8s var(--ease) .1s}
.js [data-reveal].in .eyebrow::before,.js .eyebrow.in::before,
.js [data-reveal].in.eyebrow::before,.js .in .eyebrow::before{transform:scaleX(1)}
.js.no-reveal .eyebrow::before{transform:scaleX(1) !important}
.svc,.tile,.d3-back,.d4-tile,.d1-gal figure,.d2-gal figure,.area-c,.also-c{
transition:transform .5s var(--ease), box-shadow .5s var(--ease), background .4s var(--ease);
}
.d3-back:hover,.d1-gal figure:hover,.d2-gal figure:hover{transform:translateY(-4px)}
.rail-solid{
background:none; border:0; box-shadow:none; padding:0; gap:14px; right:22px;
backdrop-filter:none; -webkit-backdrop-filter:none;
}
.rail-solid .rail-b{
position:relative; width:54px; height:54px; padding:0; cursor:pointer;
border-radius:50%; background:#FFFFFF; color:var(--navy);
border:1.5px solid var(--navy);
display:flex; align-items:center; justify-content:center;
box-shadow:0 14px 28px -14px rgba(31,31,32,.45);
transition:background .3s var(--ease), color .3s var(--ease), transform .3s var(--ease);
}
.rail-solid .rail-i{display:flex; align-items:center; justify-content:center}
.rail-solid .rail-l{
position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%);
}
.rail-solid .rail-b:hover{background:var(--navy); color:#FFFFFF; transform:scale(1.08)}
.rail-solid .wa:hover{background:var(--peri); color:#FFFFFF; border-color:var(--peri)}
.rail-solid .rail-top{display:none; background:var(--navy); color:#FFFFFF}
.rail-solid .rail-top.on{display:flex; animation:bubbleIn .4s var(--ease) both}
.rail-solid .rail-top:hover{background:var(--ink); color:#FFFFFF}
.rail-small{
background:none; border:0; box-shadow:none; padding:0; gap:10px; right:18px;
backdrop-filter:none; -webkit-backdrop-filter:none;
}
.rail-small .rail-b{
position:relative; width:40px; height:40px; padding:0; cursor:pointer;
border-radius:50%; background:#FFFFFF; border:1px solid var(--line); color:var(--navy);
display:flex; align-items:center; justify-content:center;
box-shadow:0 10px 22px -14px rgba(31,31,32,.55);
transition:background .3s var(--ease), color .3s var(--ease), transform .3s var(--ease);
}
.rail-small .rail-i{display:flex; align-items:center; justify-content:center}
.rail-small .rail-i svg{width:15px; height:15px}
.rail-small .rail-l{position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%)}
.rail-small .rail-b:hover{background:var(--navy); color:#FFFFFF; border-color:var(--navy); transform:scale(1.1)}
.rail-small .rail-top{display:none}
.rail-small .rail-top.on{display:flex; animation:bubbleIn .4s var(--ease) both}
.rail-group{
right:20px; gap:0; padding:6px; border-radius:100px;
background:#FFFFFF; border:1px solid var(--line); box-shadow:var(--shadow-sm);
backdrop-filter:none; -webkit-backdrop-filter:none;
}
.rail-group .rail-b{
position:relative; width:46px; height:46px; padding:0; border:0; cursor:pointer;
border-radius:0; background:none; color:var(--navy);
display:flex; align-items:center; justify-content:center;
transition:background .3s var(--ease), color .3s var(--ease);
}
.rail-group .rail-b:first-child{border-radius:100px 100px 0 0}
.rail-group .rail-b:last-child{border-radius:0 0 100px 100px}
.rail-group .rail-i{display:flex; align-items:center; justify-content:center}
.rail-group .rail-l{position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%)}
.rail-group .rail-b + .rail-b{border-top:1px solid var(--line)}
.rail-group .rail-b:hover{background:var(--navy); color:#FFFFFF}
.rail-group .rail-top{display:none}
.rail-group .rail-top.on{display:flex; animation:bubbleIn .4s var(--ease) both}
@media (max-width:760px){
.rail-solid,.rail-small,.rail-group{
right:auto; left:50%; top:auto; bottom:74px; transform:translateX(-50%); flex-direction:row;
}
.rail-group{padding:5px}
.rail-small .rail-b{width:46px; height:46px}
.rail-small .rail-i svg{width:17px; height:17px}
.rail-group .rail-b + .rail-b{border-top:0; border-left:1px solid var(--line)}
.rail-group .rail-b:first-child{border-radius:100px 0 0 100px}
.rail-group .rail-b:last-child{border-radius:0 100px 100px 0}
.rail-solid .rail-b{width:48px; height:48px}
}
[data-spotlight]{--sx:50%; --sy:50%}
[data-spotlight]::after{
content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
opacity:0; transition:opacity .6s var(--ease);
background:radial-gradient(38% 46% at var(--sx) var(--sy),
rgba(255,255,255,.20) 0%, rgba(255,255,255,.07) 45%, transparent 72%);
}
[data-spotlight].lit::after{opacity:1}
.d3-mq-track,.also-track,.area-track{
transform-origin:center; will-change:transform;
}.ticker-track{
transform-origin:center; will-change:transform;
}
.d3-mq-set,.also-set,.area-set{transform:var(--lean, none); transition:transform .12s linear}.ticker-set{transform:var(--lean, none); transition:transform .12s linear}
.js [data-split] .w > i{letter-spacing:.04em; transition:transform .95s var(--ease), letter-spacing 1.1s var(--ease)}
.js [data-split].in .w > i{letter-spacing:inherit}
.js .sweep{position:relative; overflow:hidden}
.js .sweep::after{
content:""; position:absolute; left:0; right:0; top:0; height:1px;
background:linear-gradient(90deg, transparent, var(--peri), transparent);
transform:translateX(-100%); opacity:.7;
}
.js .sweep.in::after{animation:sweepAcross 1.6s var(--ease) .2s both}
@keyframes sweepAcross{to{transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){
[data-spotlight]::after{display:none}
.d3-mq-set,.also-set,.area-set{transform:none !important}.ticker-set{transform:none !important}
.js [data-split] .w > i{letter-spacing:inherit; transition:none}
.js .sweep.in::after{animation:none}
}
@media (max-width:980px){
.js [data-reveal="left"],.js [data-reveal="right"]{transform:translateY(20px)}
.js [data-reveal="left"].in,.js [data-reveal="right"].in{transform:none}
}
.switcher a{min-height:44px}
.d3-hero-dots button{width:44px; height:44px}
@media (max-width:760px){
.switcher a{min-height:42px; padding:0 10px}
}
.rev-wrap{display:grid; gap:clamp(12px,1.3vw,20px)}
.rev-rail{
overflow:hidden;
-webkit-mask-image:linear-gradient(90deg,transparent,#000000 5%,#000000 95%,transparent);
mask-image:linear-gradient(90deg,transparent,#000000 5%,#000000 95%,transparent);
}
.rev-track{display:flex; width:max-content; animation:revRoll 90s linear infinite}
.rev-rail-rev .rev-track{animation-direction:reverse; animation-duration:104s}
.rev-rail:hover .rev-track{animation-play-state:paused}
.rev-set{display:flex; flex:none}
@keyframes revRoll{from{transform:none} to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.rev-track{animation:none}}
.rev-c{
margin:0 clamp(12px,1.3vw,20px) 0 0; flex:none;
width:clamp(280px,26vw,380px); padding:clamp(22px,2vw,30px);
border-radius:var(--r); background:#FFFFFF; border:1px solid var(--line);
display:flex; flex-direction:column; justify-content:space-between;
box-shadow:none;
}
.rev-c blockquote{
margin:0 0 18px; font-size:14.5px; line-height:1.66; color:var(--ink);
font-family:Inter,sans-serif;
}
.rev-c blockquote::before{content:"“"}
.rev-c blockquote::after{content:"”"}
.rev-c figcaption{display:flex; flex-direction:column; gap:3px; padding-top:14px; border-top:1px solid var(--line)}
.rev-c figcaption b{
font-size:10.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--navy);
}
.rev-c figcaption span{font-size:12px; color:var(--peri)}
@media (max-width:760px){
.rev-c{width:78vw}
}
.rev-wrap{padding:0 var(--gut)}
.rev-flick{display:grid}
.rev-f{
grid-area:1 / 1; margin:0; display:flex; flex-direction:column;
opacity:0; pointer-events:none;
}
.rev-flick:not(.flick-on) .rev-f{opacity:1}
.rev-flick:not(.flick-on) .rev-f ~ .rev-f{display:none}
.rev-f.is-on{opacity:1; pointer-events:auto}
.rev-f blockquote{margin:0}
.rev-f blockquote::before{content:"“"}
.rev-f blockquote::after{content:"”"}
.rev-f figcaption{display:flex; flex-direction:column; gap:4px; margin-top:auto; padding-top:18px}
.rev-f figcaption b{
font-family:Inter,sans-serif; font-size:10.5px; font-weight:600;
letter-spacing:.16em; text-transform:uppercase; color:var(--navy);
}
.rev-f figcaption span{font-family:Inter,sans-serif; font-size:12.5px; color:var(--peri)}
@media (max-width:900px){
.ftr-hours li{justify-content:flex-start; gap:0}
.ftr-hours li span{flex:none; min-width:10.5em}
.ftr-hours li b{white-space:nowrap}
}
.ftr-bot,.ftr-compact .ftr-bot{padding-bottom:6px}
@media (max-width:1024px){
.rail{
right:auto; left:50%; top:auto; bottom:calc(12px + env(safe-area-inset-bottom, 0px));
transform:translateX(-50%); flex-direction:row;
transition:transform .5s var(--ease), opacity .5s var(--ease);
}
.rail.rail-late,.rail.rail-hold{transform:translate(-50%, 90px); opacity:0; pointer-events:none}
.ftr-legal{padding-bottom:calc(22px + 72px + env(safe-area-inset-bottom, 0px))}
}
@media (max-width:420px){
.switcher{gap:2px; padding:5px 6px; max-width:calc(100vw - 20px)}
.switcher a{padding:0 10px; font-size:10.5px}
}
@media (max-width:360px){
.switcher a{padding:0 8px; font-size:10px; letter-spacing:.04em}
}
@media (max-width:360px){
.hdr .lockup img,.hdr.solid .lockup img{height:52px}
.hdr .lockup .wm b{font-size:12.5px}
.hdr .lockup .wm span{font-size:8.5px; letter-spacing:.24em}
.d4-hdr .d4-mark img,.d4-hdr.solid .d4-mark img{height:56px}
}
@media (max-width:760px){
.ftr-grid li a,.ftr-contact a,.ftr-bot a{min-height:36px; display:flex; align-items:center}
.ftr-contact a{gap:10px}
.ftr-social{gap:12px}
.ftr-social a{width:44px; height:44px; display:flex; align-items:center; justify-content:center}
}
.rating span,.quote-meta,.count{color:var(--peri-text)}
.on-dark .rating span,.on-dark .quote-meta,.on-dark .count,
.d1-rev .rev-c figcaption span,.on-dark .rev-f figcaption span{color:var(--sky)}
h1,h2,h3,.quote-body{
font-family:"Cormorant Garamond",Georgia,serif;
font-variant-numeric:lining-nums;
}
h1 em,h2 em,h3 em{font-style:italic; color:#0679A8; display:block}
.on-dark h1 em,.on-dark h2 em,.on-dark h3 em{color:var(--sky)}
h1{font-size:clamp(46px,7vw,104px); font-weight:300; line-height:1.02; letter-spacing:-.02em}
h2{font-size:clamp(34px,4.6vw,68px); font-weight:300; line-height:1.06}
h3{font-size:clamp(23px,2vw,29px); font-weight:400}
:root{--hdr:130px; --topbar-h:0px}
.lockup img{height:98px}
.hdr.solid .lockup img{height:78px}
.hdr.solid{
background:rgba(243,244,248,.58);
backdrop-filter:blur(22px) saturate(1.6); -webkit-backdrop-filter:blur(22px) saturate(1.6);
box-shadow:inset 0 -1px 0 rgba(255,255,255,.55), 0 1px 0 rgba(104,105,106,.10), 0 18px 40px -30px rgba(31,31,32,.45);
}
.nav{gap:clamp(18px,2.2vw,36px)}
.nav a{font-size:12px; font-weight:600; letter-spacing:.16em; padding:10px 0}
.nav a::after{height:1.5px; background:var(--sky); bottom:2px}
.hdr.solid .nav a::after,.hdr-light .nav a::after{background:var(--navy)}
.nav a[aria-current="page"]{color:#FFFFFF}
.nav a[aria-current="page"]::after{transform:scaleX(1)}
.hdr.solid .nav a[aria-current="page"]{color:var(--navy)}
.hdr .btn-hdr{border-radius:4px; padding:0 24px; letter-spacing:.14em; box-shadow:0 10px 24px -14px rgba(104,105,106,.7)}
.hdr.solid .btn-hdr{box-shadow:0 10px 24px -14px rgba(104,105,106,.5)}
@media (max-width:1560px){.nav{gap:16px} .nav a{font-size:11.5px; letter-spacing:.12em}}
@media (max-width:1400px){.nav{gap:13px} .nav a{font-size:11px; letter-spacing:.1em}}
.lockup{gap:17px}
.lockup .wm b{font-size:19px}
.lockup .wm span{font-size:12.5px; letter-spacing:.34em}
.hdr.solid{height:102px}
.topbar{
position:fixed; inset:0 0 auto; z-index:65; height:var(--topbar-h);
background:var(--navy); color:rgba(255,255,255,.82);
}
.topbar .wrap-wide{
display:flex; align-items:center; justify-content:flex-end; gap:clamp(16px,2.4vw,34px);
height:100%;
}
.topbar a{
display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:500;
letter-spacing:.03em; color:rgba(255,255,255,.88); transition:color .3s var(--ease);
}
.topbar a:hover{color:#FFFFFF}
.topbar svg{color:#FFFFFF; flex:none; opacity:.85}
.topbar .tb-phones{display:inline-flex; align-items:center; gap:clamp(14px,2vw,28px)}
.topbar .tb-phones a{font-size:14px; font-weight:600; color:#FFFFFF; letter-spacing:.02em}
.hdr{top:var(--topbar-h)}
html{scroll-padding-top:calc(var(--topbar-h) + var(--hdr) + 14px)}
@media (max-width:760px){
.topbar .tb-email{display:none}
.topbar .wrap-wide{justify-content:center}
}
.d1-hero{
min-height:100svh; display:flex; flex-direction:column; align-items:center;
justify-content:center; text-align:center;
padding:calc(var(--topbar-h) + var(--hdr) + 56px) 0 clamp(74px,9vh,116px);
}
.hero-scrim{
position:absolute; inset:0; z-index:-1;
background:
linear-gradient(180deg, rgba(0,0,0,.32) 0%, rgba(0,0,0,.08) 22%, rgba(0,0,0,.16) 46%,
rgba(0,0,0,.36) 74%, rgba(0,0,0,.58) 100%);
}
img[src*="/assets/jt/img/work/"]{filter:saturate(1.1) contrast(1.03)}
.hero-slides img{
position:absolute; inset:0; filter:saturate(1.22) contrast(1.06); transform-origin:50% 55%;
will-change:transform, opacity; opacity:0;
animation:heroSlide 21s cubic-bezier(.3,.05,.2,1) infinite both;
}
.hero-slides img:nth-child(1){opacity:1; animation-name:heroSlideFirst}
.hero-slides img:nth-child(2){animation-delay:7s}
.hero-slides img:nth-child(3){animation-delay:14s}
@keyframes heroSlide{
0%{opacity:0; transform:scale(1.28)} 6.7%{opacity:1}
33.3%{opacity:1; transform:scale(1.04)} 40%{opacity:0; transform:scale(1.0)}
100%{opacity:0; transform:scale(1.28)}
}
@keyframes heroSlideFirst{
0%{opacity:1; transform:scale(1.28)}
33.3%{opacity:1; transform:scale(1.04)} 40%{opacity:0; transform:scale(1.0)}
99.9%{opacity:0; transform:scale(1.28)} 100%{opacity:1; transform:scale(1.28)}
}
@media (prefers-reduced-motion:reduce){
.hero-slides img{animation:none; transform:none}
.hero-slides img:nth-child(n+2){display:none}
}
.d1-hero-in{position:relative; display:flex; flex-direction:column; align-items:center; max-width:1000px}
.d1-hero .kicker{text-shadow:0 2px 16px rgba(0,0,0,.7)}
.d1-hero h1{color:#FFFFFF; margin-bottom:26px; text-shadow:0 2px 6px rgba(0,0,0,.32), 0 6px 34px rgba(0,0,0,.55)}
@keyframes emShine{0%{background-position:100% 0} 55%{background-position:0% 0} 100%{background-position:0% 0}}
.d1-hero .lead{
color:#FFFFFF; max-width:62ch; font-size:clamp(17px,1.35vw,20px);
text-shadow:0 2px 18px rgba(0,0,0,.62);
}
.d1-hero .hero-cta{justify-content:center; margin:36px 0 30px}
.d1-facts{
display:flex; flex-wrap:wrap; justify-content:center; align-items:center;
row-gap:10px; padding-top:20px; border-top:1px solid rgba(255,255,255,.28);
}
.d1-facts li{
padding:2px clamp(12px,1.5vw,22px); line-height:1.5;
font-size:11px; font-weight:500; letter-spacing:.14em; text-transform:uppercase;
color:rgba(255,255,255,.94); text-shadow:0 2px 14px rgba(0,0,0,.6);
border-left:1px solid rgba(255,255,255,.28);
}
.d1-facts li:first-child{border-left:0}
.d1-cue{
position:static; margin-top:clamp(28px,4.4vh,54px);
flex-direction:column-reverse; gap:10px;
color:rgba(255,255,255,.86); text-shadow:0 2px 14px rgba(0,0,0,.6);
}
.d1-cue i{height:40px; background:linear-gradient(rgba(255,255,255,.9),transparent)}
.d1-intro-head{margin-bottom:clamp(34px,4vw,58px)}
.d1-intro-head h2{max-width:26ch}
.d1-intro-head h2 em{display:inline}
.d1-intro-in{display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(34px,6vw,86px); align-items:start}
.d1-intro-copy p{max-width:56ch}
.d1-pull{
margin:30px 0 34px; padding:20px 0 20px 24px; border-left:2px solid var(--navy);
font-family:"Cormorant Garamond",Georgia,serif; font-style:italic;
font-size:clamp(19px,1.7vw,24px); line-height:1.45; color:var(--ink);
}
.d1-intro-art{position:relative}
.d1-intro-art figure{margin:0; position:relative; border-radius:var(--r); overflow:hidden; box-shadow:none}
.d1-intro-art img{width:100%; aspect-ratio:4/3.1; object-fit:cover}
.d1-intro-art figcaption{
position:absolute; left:0; right:0; bottom:0; padding:16px 20px;
background:linear-gradient(transparent, rgba(0,0,0,.62));
color:#FFFFFF; font-size:11.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
}
.d1-badge{
position:absolute; left:-26px; top:26px; background:#FFFFFF; border-radius:var(--r);
padding:14px 18px; box-shadow:none; border:1px solid var(--line);
}
.d1-badge .rating{flex-wrap:wrap; gap:6px 10px; max-width:220px}
.d1-stats-band{padding:0 0 var(--sec)}
.d1-stats-band .stats{border-top:1px solid var(--line); padding-top:clamp(34px,4vw,54px)}
.d1-svc{background:var(--wash); padding-bottom:0}
.d1-svc-head{max-width:820px; margin:0 auto clamp(48px,5vw,80px); text-align:center}
.d1-svc-head h2{margin-bottom:22px}
.d1-svc-head .eyebrow{justify-content:center}
.d1-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(12px,1.3vw,18px)}
.svc{
position:relative; display:block; overflow:hidden; border-radius:var(--r);
aspect-ratio:4/3.6; background:var(--ink); isolation:isolate;
}
.svc img{
position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
transition:transform 1s var(--ease); z-index:-2;
}
.svc-veil{
position:absolute; inset:0; z-index:-1;
background:linear-gradient(transparent 36%, rgba(0,0,0,.74) 92%);
transition:background .5s var(--ease);
}
.svc-body{
position:absolute; inset:auto 0 0 0; display:block;
padding:clamp(22px,2.2vw,30px); color:#FFFFFF;
}
.svc-n{
display:block; font-size:10.5px; font-weight:600; letter-spacing:.22em;
color:#C6E6F1; margin-bottom:10px; font-variant-numeric:lining-nums;
}
.svc-t{
display:block; font-family:"Cormorant Garamond",Georgia,serif; font-weight:400;
font-size:clamp(24px,2vw,31px); line-height:1.1; letter-spacing:-.015em;
}
.svc-p,.svc-go{
display:block; opacity:0; transform:translateY(12px);
transition:opacity .45s var(--ease), transform .5s var(--ease),
max-height .5s var(--ease), margin-top .5s var(--ease);
max-height:0; overflow:hidden;
}
.svc-p{
font-size:14.5px; line-height:1.6; color:rgba(255,255,255,.9);
font-family:Inter,sans-serif;
}
.svc-go{
font-family:Inter,sans-serif; font-size:11px; font-weight:600; letter-spacing:.15em;
text-transform:uppercase; color:#C6E6F1;
}
.svc-go svg{display:inline-block; vertical-align:-2px; margin-left:6px}
.svc:hover img,.svc:focus-visible img{transform:scale(1.06)}
.svc:hover .svc-veil,.svc:focus-visible .svc-veil{
background:linear-gradient(rgba(0,0,0,.30) 0%, rgba(0,0,0,.80) 62%);
}
.svc:hover .svc-p,.svc:focus-visible .svc-p{opacity:1; transform:none; max-height:9em; margin-top:12px}
.svc:hover .svc-go,.svc:focus-visible .svc-go{opacity:1; transform:none; max-height:3em; margin-top:16px}
@media (hover:none){
.svc-veil{background:linear-gradient(transparent 18%, rgba(0,0,0,.78) 74%)}
.svc-p{opacity:1; transform:none; max-height:9em; margin-top:12px}
.svc-go{opacity:1; transform:none; max-height:3em; margin-top:14px}
.svc{aspect-ratio:4/4.1}
}
.also{padding:clamp(50px,5.2vw,78px) 0 clamp(56px,5.6vw,90px); position:relative}
.also-head{margin-bottom:26px; position:relative; z-index:2}
.also-head span{
display:inline-block; font-family:"Cormorant Garamond",Georgia,serif; font-style:italic;
font-size:clamp(21px,2vw,27px); color:var(--navy);
}
.also-c{
display:inline-flex; align-items:center; gap:10px; flex:none;
margin-right:12px; padding:14px 22px; border-radius:4px;
background:#FFFFFF; border:1px solid var(--line); color:var(--ink);
font-size:14px; white-space:nowrap; box-shadow:none;
}
.also-c svg{color:var(--navy); flex:none}
.d1-mat{
position:relative; isolation:isolate; overflow:hidden;
min-height:clamp(520px,58vw,700px); display:flex; align-items:center;
padding:clamp(60px,6vw,100px) 0;
}.d1-mat.jw-boiler-tabs{
position:relative; isolation:isolate; overflow:hidden;
min-height:clamp(520px,58vw,700px); display:flex; align-items:center;
padding:clamp(60px,6vw,100px) 0;
}
.d1-mat-bg{position:absolute; inset:0; z-index:-2; background:var(--ink)}
.d1-mat-shot{position:absolute; inset:0; margin:0; opacity:0; transition:opacity .8s var(--ease)}
.d1-mat-shot.on{opacity:1}
.d1-mat-shot img{
width:100%; height:100%; object-fit:cover;
transform:scale(1.05); transition:transform 7s var(--ease);
}
.d1-mat-shot.on img{transform:scale(1)}
.d1-mat-veil{
position:absolute; inset:0; z-index:-1;
background:
linear-gradient(92deg, rgba(0,0,0,.74) 0%, rgba(0,0,0,.56) 44%, rgba(0,0,0,.14) 78%, rgba(0,0,0,.26) 100%),
linear-gradient(0deg, rgba(0,0,0,.42), transparent 55%);
}
.d1-mat-in{position:relative; max-width:1180px}.jw-boiler-tabs .d1-mat-in{position:relative; max-width:1180px}
.d1-mat-in h2{color:#FFFFFF; max-width:19ch; margin-bottom:34px}.jw-boiler-tabs .d1-mat-in h2{color:#262727; max-width:19ch; margin-bottom:34px}
.d1-mat-in h2 em{color:#C6E6F1; display:inline}.jw-boiler-tabs .d1-mat-in h2 em{color:#05668E; display:inline}
.d1-mat-tabs{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:26px}
.d1-mat-tab{
min-height:46px; padding:0 22px; border-radius:4px; cursor:pointer;
background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.30); color:#FFFFFF;
font-family:Inter,sans-serif; font-size:12px; font-weight:600; letter-spacing:.12em;
text-transform:uppercase; backdrop-filter:blur(6px);
transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.d1-mat-tab:hover{background:rgba(255,255,255,.18)}
.d1-mat-tab.on{background:#FFFFFF; color:var(--ink); border-color:#FFFFFF}
.d1-mat-desc{position:relative; min-height:5.6em; max-width:56ch; padding-top:16px;
border-top:1px solid rgba(255,255,255,.22); margin-top:22px}
.d1-mat-d{
position:absolute; inset:16px 0 0 0; opacity:0; transform:translateY(8px);
font-family:"Cormorant Garamond",Georgia,serif; font-style:italic; font-weight:400;
color:#FFFFFF; font-size:clamp(21px,1.7vw,26px); line-height:1.35;
transition:opacity .45s var(--ease), transform .45s var(--ease);
}
.d1-mat-d b{
display:block; font-family:Inter,sans-serif; font-style:normal; font-weight:600; font-size:11px;
letter-spacing:.2em; text-transform:uppercase; color:var(--sky); margin-bottom:8px;
}
.d1-mat-d.on{opacity:1; transform:none}
.d1-gr-in{display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(34px,6vw,90px); align-items:center}
.d1-gr-art{margin:0; border-radius:var(--r); overflow:hidden; box-shadow:none}
.d1-gr-art img{width:100%; aspect-ratio:4/3; object-fit:cover}
.d1-gr-copy h2{margin-bottom:26px; max-width:14ch}
.d1-gr-list{margin:26px 0 32px; display:grid; grid-template-columns:1fr 1fr; gap:11px 20px}
.d1-gr-list li{display:flex; align-items:center; gap:10px; font-size:14.5px}
.d1-gr-list svg{color:var(--navy); flex:none}
.d1-proc{background:var(--wash)}
.d1-proc .wrap{max-width:1440px}
.d1-steps{
display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line);
border:1px solid var(--line);
}
.step{background:var(--wash); padding:clamp(28px,2.6vw,40px); display:flex; flex-direction:column}
.step-n{
display:block; font-family:"Cormorant Garamond",Georgia,serif; font-size:52px; line-height:1;
color:var(--peri); margin-bottom:20px; font-variant-numeric:lining-nums;
}
.step h3{margin-bottom:12px; min-height:2.2em}
.step p{font-size:15px; line-height:1.68}
.d1-work-head{
display:grid; grid-template-columns:1.2fr 1fr; gap:clamp(20px,4vw,60px);
align-items:end; margin-bottom:clamp(38px,4vw,62px);
}
.d1-gal{
display:grid; grid-template-columns:repeat(3,1fr);
grid-auto-rows:clamp(190px,17vw,260px); gap:clamp(12px,1.4vw,20px);
}
.d1-gal figure{margin:0; border-radius:var(--r); overflow:hidden; background:var(--wash)}
.d1-gal img{width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease)}
.d1-gal figure:hover img{transform:scale(1.045)}
.d1-gal .g1{grid-column:span 2; grid-row:span 2}
.d1-rev{background:#FFFFFF; position:relative; overflow:hidden; padding:clamp(72px,7vw,120px) 0}
.d1-rev .wrap{position:relative; z-index:1}
.d1-rev-head{max-width:640px; margin:0 auto clamp(30px,3vw,44px); text-align:center}
.d1-rev-head h2{font-size:clamp(28px,3.3vw,46px); margin-bottom:20px}
.d1-rev-head h2 em{display:inline}
.d1-rev-head .eyebrow{justify-content:center}
.d1-rev-rate{display:flex; justify-content:center}
.d1-rev-rate .rating{
padding:9px 18px; border-radius:4px; border:1px solid var(--line); background:var(--wash);
}
.rq{position:relative; max-width:860px; margin:0 auto; text-align:center; padding-top:34px}
.rq-mark{
position:absolute; left:50%; top:-10px; transform:translateX(-50%);
font-family:"Cormorant Garamond",Georgia,serif; font-size:140px; line-height:1; color:var(--sky);
opacity:.55; pointer-events:none;
}
.rq-stage{position:relative; min-height:11em}
.rq-item{
position:absolute; inset:0; margin:0; opacity:0; transform:translateY(14px); pointer-events:none;
transition:opacity .9s var(--ease), transform .9s var(--ease);
}
.rq-item.on{opacity:1; transform:none; pointer-events:auto; position:relative}
.rq-item.out{opacity:0; transform:translateY(-10px)}
.rq-item blockquote{
margin:0; font-family:"Cormorant Garamond",Georgia,serif; font-style:italic; font-weight:400;
font-size:clamp(22px,2.3vw,32px); line-height:1.45; color:var(--ink); text-wrap:balance;
}
.rq-item figcaption{margin-top:22px; display:flex; flex-direction:column; align-items:center; gap:4px}
.rq-item figcaption b{font-size:11.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--navy)}
.rq-item figcaption span{font-size:13px; color:var(--peri-text)}
.rq-ctrl{display:flex; align-items:center; justify-content:center; gap:22px; margin-top:34px}
.rq-arrow{
width:44px; height:44px; border-radius:50%; border:1px solid var(--line); background:#FFFFFF; color:var(--navy);
display:inline-flex; align-items:center; justify-content:center; cursor:pointer;
transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
}
.rq-arrow[data-rq="prev"] svg{transform:rotate(180deg)}
.rq-arrow:hover{background:var(--navy); color:#FFFFFF; border-color:var(--navy)}
.rq-dots{display:none}
.rq-dot{width:6px; height:6px; padding:0; border:0; border-radius:50%; background:var(--line); cursor:pointer; transition:background .3s var(--ease), transform .3s var(--ease)}
.rq-dot.on{background:var(--navy); transform:scale(1.4)}
@media (max-width:640px){.rq-stage{min-height:15em} .rq-mark{font-size:100px} .rq-dots{display:none}}
@media (prefers-reduced-motion:reduce){.rq-item{transition:none}}
.d1-rev-card{
max-width:840px; margin:0 auto; text-align:center;
padding:clamp(30px,3.4vw,52px) clamp(24px,3vw,54px);
border:1px solid rgba(255,255,255,.14); border-radius:var(--r);
background:linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.015));
}
.d1-rev-card .quote-solo{max-width:none}
.d1-rev-card .quote-mark{margin:0 0 14px; font-size:56px; color:var(--sky); opacity:.5}
.d1-rev-card .quote-body{font-size:clamp(18px,1.75vw,25px); line-height:1.5}
.d1-rev-card .quote-meta{margin-top:22px; font-size:11px}
.d1-rev-card .quote-ctrl{margin-top:26px; justify-content:center}
.d1-accred{
display:grid; grid-template-columns:repeat(4,1fr); gap:0;
max-width:1040px; margin:clamp(34px,3.6vw,52px) auto 0;
background:transparent; border-top:1px solid rgba(255,255,255,.14);
}
.d1-rev .d1-accred li{
background:transparent; padding:22px clamp(12px,1.4vw,22px); text-align:center;
border-left:1px solid rgba(255,255,255,.14); align-items:center; gap:5px;
}
.d1-rev .d1-accred li:first-child{border-left:0}
.d1-rev .d1-accred li b{color:var(--sky); font-size:11px; letter-spacing:.15em}
.d1-rev .d1-accred li span{color:rgba(255,255,255,.6); font-size:12.5px; line-height:1.45}
.d1-areas-head{
display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(20px,4vw,60px);
align-items:end; margin-bottom:clamp(30px,3.4vw,48px);
}
.d1-areas-head h2{max-width:17ch}
.area-c{
display:inline-flex; align-items:baseline; gap:11px; flex:none;
margin-right:12px; padding:18px 26px; border-radius:var(--r);
background:#FFFFFF; border:1px solid var(--line); white-space:nowrap;
box-shadow:none;
transition:border-color .3s var(--ease), transform .3s var(--ease);
}
.area-c:hover{border-color:var(--navy); transform:translateY(-2px)}
.area-c b{
font-family:"Cormorant Garamond",Georgia,serif; font-weight:400;
font-size:clamp(20px,1.6vw,24px); color:var(--ink); letter-spacing:-.01em;
}
.area-c i{
font-style:normal; font-size:10.5px; font-weight:600; letter-spacing:.14em;
color:var(--peri-text); font-variant-numeric:lining-nums;
}
.d1-contact{
position:relative; overflow:hidden; color:#FFFFFF; isolation:isolate;
background:#454547;
padding:clamp(72px,7vw,120px) 0;
}
.d1-contact-bg{position:absolute; inset:0; z-index:-2}
.d1-contact-bg img{width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.04)}
.d1-contact::before{
content:""; position:absolute; inset:0; z-index:-1;
background:linear-gradient(92deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.62) 48%, rgba(0,0,0,.38) 100%),
linear-gradient(0deg, rgba(0,0,0,.35), transparent 40%);
}
.d1-contact-grid{position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(36px,5vw,90px); align-items:start}
.d1-contact-copy .eyebrow{color:var(--sky)}
.d1-contact-copy h2{color:#FFFFFF; margin-bottom:22px; max-width:15ch}
.d1-contact-copy h2 em{color:var(--sky)}
.d1-contact .d1-contact-copy .lead{color:rgba(255,255,255,.82); margin-bottom:16px; max-width:52ch}
.d1-contact-points{margin:28px 0 0; padding:0; list-style:none; max-width:520px}
.d1-contact-points li{
display:flex; align-items:flex-start; gap:16px; padding:14px 0;
border-top:1px solid rgba(255,255,255,.14);
}
.d1-contact-points li:last-child{border-bottom:1px solid rgba(255,255,255,.14)}
.d1-contact-points i{
flex:none; width:38px; height:38px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
color:var(--sky); background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2);
box-shadow:none;
}
.d1-contact-points span{display:block; font-size:14px; line-height:1.5; color:rgba(255,255,255,.78)}
.d1-contact-points b{display:block; font-family:"Cormorant Garamond",Georgia,serif; font-weight:500; font-size:20px; line-height:1.2; color:#FFFFFF; margin-bottom:2px}
.d1-contact-direct{display:flex; flex-direction:column; gap:10px; margin-top:30px}
.d1-contact-phone{
display:inline-flex; align-items:center; gap:12px; font-family:"Cormorant Garamond",Georgia,serif;
font-size:clamp(30px,2.6vw,40px); line-height:1; color:#FFFFFF; font-variant-numeric:lining-nums;
}
.d1-contact-phone svg{color:var(--sky); width:22px; height:22px}
.d1-contact-phone:hover{color:var(--sky)}
.d1-contact-mail{display:inline-flex; align-items:center; gap:9px; font-size:14.5px; color:rgba(255,255,255,.82)}
.d1-contact-mail svg{color:var(--sky)} .d1-contact-mail:hover{color:#FFFFFF}
.d1-contact-card{
position:relative; color:#FFFFFF; border-radius:var(--r); padding:clamp(28px,2.8vw,44px);
background:linear-gradient(160deg, rgba(31,31,32,.58), rgba(31,31,32,.40));
backdrop-filter:blur(18px) saturate(1.3); -webkit-backdrop-filter:blur(18px) saturate(1.3);
border:1px solid rgba(255,255,255,.2);
box-shadow:none;
}.ip-contact .d1-contact-card{
position:relative; color:#262727; border-radius:var(--r); padding:clamp(28px,2.8vw,44px);
background:linear-gradient(160deg, rgba(241,242,246,.58), rgba(255,255,255,0.90));
backdrop-filter:blur(18px) saturate(1.3); -webkit-backdrop-filter:blur(18px) saturate(1.3);
border:1px solid rgba(42,43,45,.2);
box-shadow:none;
}
.d1-contact .d1-contact-card-h{font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(26px,2.2vw,32px); line-height:1.1; color:#FFFFFF; margin:0 0 8px}
.d1-contact .d1-contact-card-p{font-size:14.5px; line-height:1.55; color:rgba(255,255,255,.76); margin:0 0 26px}
.d1-contact-card .field{margin-bottom:22px}.ip-contact .d1-contact-card .field{margin-bottom:22px}
.d1-contact-card .field span{color:var(--sky); letter-spacing:.2em; margin-bottom:4px}.ip-contact .d1-contact-card .field span{color:#05668E; letter-spacing:.2em; margin-bottom:4px}
.d1-contact-card .field input,.d1-contact-card .field textarea{
background:transparent; border:0; border-bottom:1px solid rgba(255,255,255,.32); border-radius:0;
padding:10px 0 12px; color:#FFFFFF; font-size:16px; box-shadow:none;
}.ip-contact .d1-contact-card .field input,.ip-contact .d1-contact-card .field textarea{
background:transparent; border:0; border-bottom:1px solid rgba(42,43,45,.32); border-radius:0;
padding:10px 0 12px; color:#262727; font-size:16px; box-shadow:none;
}
.d1-contact-card .field textarea{min-height:96px}.ip-contact .d1-contact-card .field textarea{min-height:96px}
.d1-contact-card .field input:focus,.d1-contact-card .field textarea:focus{border-bottom-color:#FFFFFF; box-shadow:0 1px 0 #FFFFFF}.ip-contact .d1-contact-card .field input:focus,.ip-contact .d1-contact-card .field textarea:focus{border-bottom-color:rgb(42,43,45); box-shadow:0 1px 0 rgb(42,43,45)}
.d1-contact-card .field input:-webkit-autofill{-webkit-text-fill-color:#FFFFFF; -webkit-box-shadow:0 0 0 1000px rgba(31,31,32,.9) inset}.ip-contact .d1-contact-card .field input:-webkit-autofill{-webkit-text-fill-color:#262727; -webkit-box-shadow:0 0 0 1000px rgba(31,31,32,.9) inset}
.d1-contact-card .btn-primary{background:#FFFFFF; color:var(--ink); border-color:#FFFFFF; margin-top:4px}.ip-contact .d1-contact-card .btn-primary{background:#FFFFFF; color:var(--ink); border-color:rgb(42,43,45); margin-top:4px}
.d1-contact-card .btn-primary:hover{background:var(--sky); border-color:var(--sky); color:var(--ink)}.ip-contact .d1-contact-card .btn-primary:hover{background:var(--sky); border-color:#03B3EF; color:var(--ink)}
.d1-contact-card .form-note{color:rgba(255,255,255,.66)}.ip-contact .d1-contact-card .form-note{color:#4B4C4D}
.d1-contact-card .form-ok{color:#FFFFFF}.ip-contact .d1-contact-card .form-ok{color:#262727}
@media (max-width:900px){.d1-contact-grid{grid-template-columns:1fr}}
@media (max-width:1100px){
.d1-grid{grid-template-columns:repeat(2,1fr)}
.d1-steps{grid-template-columns:repeat(2,1fr)}
.d1-accred{grid-template-columns:1fr 1fr}
.d1-rev .d1-accred li:nth-child(3){border-left:0}
.d1-rev .d1-accred li:nth-child(n+3){border-top:1px solid rgba(255,255,255,.14)}
}
@media (max-width:900px){
.d1-intro-in,.d1-gr-in,.d1-areas-head,.d1-work-head,.d1-contact{grid-template-columns:1fr}
.d1-gr-art{order:-1}
.d1-badge{left:auto; right:16px; top:16px}
.d1-gal{grid-template-columns:repeat(2,1fr)}
.d1-gal .g1{grid-column:span 2; grid-row:span 1}
}
@media (max-width:640px){
:root{--hdr:98px; --topbar-h:0px}
.lockup img{height:68px}
.hdr.solid .lockup img{height:60px}
.lockup .wm b{font-size:15.5px}
.lockup .wm span{font-size:10.5px; letter-spacing:.26em}
.d1-grid{grid-template-columns:1fr}
.d1-steps{grid-template-columns:1fr}
.step h3{min-height:0}
.d1-gr-list{grid-template-columns:1fr}
.d1-gal{grid-template-columns:1fr; grid-auto-rows:230px}
.d1-gal .g1{grid-column:span 1; grid-row:span 1}
.d1-accred{grid-template-columns:1fr}
.d1-rev .d1-accred li{border-left:0; border-top:1px solid rgba(255,255,255,.14)}
.d1-hero{min-height:auto; padding:calc(var(--topbar-h) + var(--hdr) + 66px) 0 92px}
.d1-facts{border-top:0; gap:8px; padding-top:14px}
.d1-facts li{border-left:0; padding:0 8px; font-size:10.5px}
.d1-badge{position:static; margin-top:16px; box-shadow:none}
.d1-badge .rating{max-width:none}
.d1-mat-desc{min-height:7.5em}
.d1-mat-tabs{display:grid; grid-template-columns:1fr 1fr; gap:8px}
.d1-mat-tab{padding:0 8px; font-size:11px; letter-spacing:.07em; white-space:nowrap; min-height:44px}
}
@media (max-width:360px){
.d1-mat-tab{font-size:10.5px; letter-spacing:.05em}
}
.js [data-reveal]{opacity:0; transform:translateY(12px)}
.js [data-reveal].in{opacity:1; transform:none; transition:opacity .95s var(--ease), transform 1.05s var(--ease)}
.js [data-reveal="scale"]{opacity:0; transform:scale(.97)}
.js [data-reveal="scale"].in{opacity:1; transform:none}
.js [data-split]{opacity:0; transform:translateY(16px); filter:blur(6px)}
.js [data-split].in{
opacity:1; transform:none; filter:blur(0);
transition:opacity 1s var(--ease), transform 1.15s var(--ease), filter 1.15s var(--ease);
}
.js.no-reveal [data-split]{filter:none !important}
@media (prefers-reduced-motion:reduce){
.js [data-split]{filter:none !important; transition:none}
}
.js .svc{opacity:0; transform:scale(.97)}
.js .svc.in{opacity:1; transform:none; transition:opacity .9s var(--ease), transform 1s var(--ease)}
.d1-rev .rev-c{background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.16)}
.d1-rev .rev-c blockquote{color:rgba(255,255,255,.92)}
.d1-rev .rev-c figcaption{border-top-color:rgba(255,255,255,.16)}
.d1-rev .rev-c figcaption b{color:var(--sky)}
.d1-rev .rev-c figcaption span{color:rgba(255,255,255,.6)}
.d1-rev .rev-rail{-webkit-mask-image:linear-gradient(90deg,transparent,#000000 6%,#000000 94%,transparent)}
.d1-rev .rev-wrap{margin-top:clamp(30px,3.4vw,46px)}
@media (max-width:900px){
.d1-facts{display:grid; grid-template-columns:1fr 1fr; row-gap:10px; justify-items:center}
.d1-facts li{border-left:0}
.d1-facts li:nth-child(even){border-left:1px solid rgba(255,255,255,.28)}
}
@media (max-width:430px){
.d1-facts{grid-template-columns:1fr}
.d1-facts li:nth-child(even){border-left:0}
}
.d1-backs{
background:linear-gradient(170deg, #E8EAED 0%, #E6E7E9 55%, #EAECEF 100%);
color:#262727; position:relative; overflow:hidden;
}
.d1-backs .wrap{position:relative; z-index:1}
.d1-backs .d1-wm{background-image:url("/assets/jt/img/brand/mark-white.svg"); opacity:.06}
.d1-backs .eyebrow{color:#05668E}
.d1-backs h2,.d1-backs h2 em{color:#262727}
.d1-backs h2 em{color:#05668E}
.d1-backs{padding:clamp(52px,5.5vw,84px) 0 clamp(44px,4.6vw,72px)}
.d1-backs .d1-svc-head{margin-bottom:clamp(26px,3vw,44px)}
.d1-backs .d1-svc-head h2{font-size:clamp(30px,3.4vw,50px); margin-bottom:0}
.d1-backs + .sec{padding-top:clamp(56px,6.5vw,104px)}
.d1-backs-note{
margin:clamp(20px,2.4vw,32px) auto 0; text-align:center; font-size:14.5px; color:#474748;
max-width:62ch;
}
.d1-backs-grid{
display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(12px,1.4vw,18px);
margin-top:0; perspective:1200px;
}
.plq-wrap{perspective:1000px}
.plq{
display:block; width:100%; min-height:100%; padding:0; border:0; background:none; color:inherit;
font:inherit; text-align:center; cursor:pointer; -webkit-tap-highlight-color:transparent;
transform-style:preserve-3d;
transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateZ(0);
transition:transform .6s var(--ease);
}
.plq.tilting{transition:transform .12s linear}
.plq-front{width:100%; font:inherit; color:inherit; cursor:pointer; appearance:none; -webkit-appearance:none; text-align:center}
.plq-front:focus-visible{outline:2px solid var(--sky); outline-offset:6px}
.plq-in{
position:relative; display:block; min-height:clamp(196px,14.5vw,228px);
transform-style:preserve-3d; transition:transform .8s cubic-bezier(.2,.8,.2,1);
}
.plq.flip .plq-in{transform:rotateY(180deg)}
.plq-face{
position:absolute; inset:0; display:flex; flex-direction:column; align-items:center;
justify-content:center; gap:8px; padding:clamp(18px,1.9vw,28px) clamp(16px,1.6vw,24px);
border-radius:var(--r); backface-visibility:hidden; -webkit-backface-visibility:hidden;
background:linear-gradient(160deg, rgba(255,255,255,.11), rgba(255,255,255,.035) 60%, rgba(255,255,255,.06));
border:1px solid rgba(255,255,255,.16);
box-shadow:none;
transition:box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.plq:hover .plq-face,.plq:focus-visible .plq-face{
border-color:rgba(255,255,255,.3);
box-shadow:inset 0 1px 0 rgba(255,255,255,.3), inset 0 -1px 0 rgba(0,0,0,.25),
0 44px 70px -30px rgba(0,0,0,.85);
}
.plq-back{transform:rotateY(180deg)}
.plq-front{transition:background .45s var(--ease), border-color .45s var(--ease), box-shadow .45s var(--ease)}
.plq:hover .plq-front,.plq:focus-visible .plq-front,.plq-back{
background:linear-gradient(160deg, #FFFFFF, #F4F7F8 70%, #F3F4F8);
border-color:rgba(255,255,255,.9);
box-shadow:inset 0 1px 0 #FFFFFF, 0 44px 70px -30px rgba(0,0,0,.85), 0 0 0 1px rgba(255,255,255,.15);
}
.plq:hover .plq-front b,.plq:focus-visible .plq-front b,.plq-back b{color:var(--ink)}
.plq:hover .plq-front small,.plq:focus-visible .plq-front small{color:var(--body)}
.plq:hover .plq-hint,.plq:focus-visible .plq-hint{color:var(--navy); opacity:1}
.plq:hover .plq-logo img,.plq:focus-visible .plq-logo img,.plq-back .plq-logo img{
filter:brightness(1) invert(0) drop-shadow(0 1px 0 rgba(0,0,0,0)) drop-shadow(0 8px 14px rgba(31,31,32,.18));
}
.plq-back p{color:var(--body)}
.plq-back .plq-logo{height:34px; margin-bottom:2px}
.plq-logo{display:flex; align-items:center; justify-content:center; height:40px; max-width:190px; margin:0 auto 6px;
transform:translateZ(28px)}
.plq-logo img{
width:auto; max-width:100%; display:block;
filter:brightness(0) invert(1) drop-shadow(0 2px 0 rgba(0,0,0,.35)) drop-shadow(0 10px 18px rgba(0,0,0,.45));
transition:filter .45s var(--ease);
}
.plq-front b,.plq-back b{
display:block; font-family:"Cormorant Garamond",Georgia,serif; font-weight:400; font-size:clamp(19px,1.45vw,22px);
line-height:1.15; color:#FFFFFF; transform:translateZ(18px);
}
.plq-front small{display:block; font-size:13px; line-height:1.5; color:rgba(255,255,255,.72); max-width:26ch; transform:translateZ(12px)}
.plq-hint{
display:inline-flex; align-items:center; gap:6px; margin-top:6px; font-style:normal;
font-size:10.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--sky);
opacity:.75; transition:opacity .3s var(--ease); transform:translateZ(12px);
}
.plq:hover .plq-hint{opacity:1}
.plq-back p{margin:0; font-size:13.5px; line-height:1.55; color:var(--body); max-width:30ch}
.plq-link{
display:inline-flex; align-items:center; gap:7px; margin-top:4px; font-size:11px; font-weight:600;
letter-spacing:.12em; text-transform:uppercase; color:var(--navy); border-bottom:1px solid var(--navy); padding-bottom:3px;
}
.plq-link:hover{color:var(--ink); border-color:var(--ink)}
.plq-light{
position:absolute; inset:0; border-radius:var(--r); pointer-events:none; overflow:hidden;
background:radial-gradient(240px circle at var(--mx,50%) var(--my,40%), rgba(119,216,248,.28), rgba(119,216,248,0) 60%);
opacity:0; transition:opacity .4s var(--ease); transform:translateZ(1px);
}
.plq:hover .plq-light,.plq.tilting .plq-light{opacity:1}
.plq.flip .plq-light{opacity:0}
.plq-light::after{
content:""; position:absolute; top:-40%; bottom:-40%; left:-60%; width:45%;
background:linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.10) 50%, rgba(255,255,255,0) 100%);
transform:skewX(-18deg); opacity:0;
}
.plq-wrap.in .plq-light::after{animation:plqSheen 1.6s var(--ease) .35s 1 both}
@keyframes plqSheen{0%{left:-60%; opacity:0} 15%{opacity:1} 100%{left:130%; opacity:0}}
@media (hover:none){.plq{transform:none}}
@media (prefers-reduced-motion:reduce){
.plq,.plq-in{transition:none} .plq{transform:none} .plq-wrap.in .plq-light::after{animation:none}
}
@media (max-width:900px){.d1-backs-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.d1-backs-grid{grid-template-columns:1fr} .plq-in{min-height:200px}}
.d1-wm{
position:absolute; pointer-events:none; z-index:0; opacity:.075;
background:url("/assets/jt/img/brand/mark-ink.svg") no-repeat center / contain;
aspect-ratio:1; max-height:84%;
}
.d1-wm-a{width:min(40vw,520px); right:3vw; top:8%}
.d1-wm-b{width:min(34vw,440px); left:3vw; bottom:8%}
.d1-wm-c{width:min(38vw,480px); right:3vw; bottom:8%; opacity:.065}
.d1-wm-light{opacity:.085}
@media (max-width:760px){
.d1-wm{opacity:.07; max-height:60%}
.d1-wm-a{width:min(58vw,300px); right:4vw; top:4%}
.d1-wm-b{width:min(52vw,280px); left:4vw; bottom:4%}
.d1-wm-c{width:min(56vw,300px); right:4vw; bottom:4%}
}
@media (prefers-reduced-motion:no-preference){.d1-wm{will-change:auto}}
.d1-intro,.d1-areas{position:relative; overflow:hidden}
.d1-intro > .wrap,.d1-areas > .wrap,.d1-areas > .area-rail{position:relative; z-index:1}
.skip{
position:absolute; left:-9999px; top:0; z-index:200; padding:14px 22px;
background:var(--navy); color:#FFFFFF; font-size:13px; font-weight:600;
}
.skip:focus{left:0}
.pb{
position:relative; isolation:isolate; display:flex; align-items:flex-end;
min-height:clamp(420px,58vh,620px);
padding:calc(var(--topbar-h) + var(--hdr) + 60px) 0 clamp(52px,6vw,84px);
}
.pb{overflow:hidden}
.pb-img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2}
.pb-img{transform-origin:50% 60%; will-change:transform;
animation:pbZoom 16s cubic-bezier(.3,.05,.2,1) infinite alternate}
@keyframes pbZoom{from{transform:scale(1.24)} to{transform:scale(1.02)}}
@media (prefers-reduced-motion:reduce){.pb-img{animation:none}}
.pb .hero-scrim{z-index:-1}
.pb-in{position:relative; max-width:940px}
.pb h1{
font-size:clamp(40px,5.6vw,80px); font-weight:300; line-height:1.03; color:#FFFFFF;
margin-bottom:22px; text-shadow:0 3px 30px rgba(0,0,0,.55);
}
.pb h1 em{display:block; font-style:italic; color:#FFFFFF}
.pb .kicker{color:rgba(255,255,255,.92); text-shadow:0 2px 16px rgba(0,0,0,.7)}
.pb .lead{color:#FFFFFF; max-width:64ch; text-shadow:0 2px 18px rgba(0,0,0,.62)}
.pb .hero-cta{display:flex; flex-wrap:wrap; gap:14px; margin-top:34px}
.pb-ink{background:var(--ink); overflow:hidden; min-height:clamp(360px,46vh,520px)}
.pb-ink .pb-in{z-index:1}
.pb-ghost{
position:absolute; right:3vw; bottom:14px; z-index:0; pointer-events:none;
font-family:"Cormorant Garamond",Georgia,serif; font-weight:300;
font-size:min(26vw, calc(190vw / var(--gl, 8)), 380px); line-height:1; letter-spacing:-.03em;
color:rgba(119,216,248,.10); white-space:nowrap;
}
.pb-ink h1,.pb-ink h1 em,.pb-ink .lead,.pb-ink .kicker{text-shadow:none}
.d1-hero h1 em,.pb h1 em{
color:transparent; text-shadow:none;
background:linear-gradient(100deg, #03B3EF 0%, #03B3EF 40%, #EEF3F4 50%, #03B3EF 60%, #03B3EF 100%);
background-size:260% 100%; background-position:0% 0;
-webkit-background-clip:text; background-clip:text;
filter:drop-shadow(0 2px 6px rgba(0,0,0,.4)) drop-shadow(0 6px 30px rgba(0,0,0,.5));
}
.pb-ink h1 em{filter:none}
.d1-hero h1 em{background-position:100% 0; animation:emShine 6.5s cubic-bezier(.4,0,.2,1) 1.2s infinite}
@media (prefers-reduced-motion:reduce){
.d1-hero h1 em,.pb h1 em{animation:none; color:#03B3EF; background:none; -webkit-text-fill-color:currentColor; filter:none;
text-shadow:0 2px 6px rgba(0,0,0,.4), 0 6px 34px rgba(0,0,0,.55)}
.pb-ink h1 em{text-shadow:none}
}
.ip-intro{columns:2; column-gap:clamp(30px,4vw,64px); max-width:none}
.ip-intro p{break-inside:avoid; margin-bottom:16px; max-width:56ch}
.ip-intro p:last-child{margin-bottom:0}
@media (max-width:900px){.ip-intro{columns:1}}
.ip-splits .wrap{display:flex; flex-direction:column; gap:clamp(48px,7vw,104px)}
.sp{display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,76px); align-items:center}
.sp.flip .sp-art{order:2}
.sp-art figure{margin:0; border-radius:var(--r); overflow:hidden; box-shadow:none}
.sp-art img{width:100%; aspect-ratio:4/3.05; object-fit:cover; display:block}
.sp-copy p{max-width:56ch; margin-bottom:14px}
.sp-copy p:last-child{margin-bottom:0}
.sp-copy h2{margin-bottom:18px}
ul.tick{display:grid; gap:9px; margin-top:22px}
ul.tick li{display:flex; align-items:flex-start; gap:11px; font-size:15px; line-height:1.55}
ul.tick svg{color:var(--navy); flex:none; margin-top:4px}
@media (max-width:900px){
.sp{grid-template-columns:1fr}
.sp.flip .sp-art{order:0}
}
.ip-opts{background:var(--wash)}
.opt-grid{
display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
background:var(--line); border:1px solid var(--line);
margin-top:clamp(28px,3.2vw,46px);
}
.opt{background:#FFFFFF; padding:clamp(24px,2.4vw,36px)}
.opt-n{
display:block; font-family:"Cormorant Garamond",Georgia,serif; font-weight:300;
font-size:38px; line-height:1; color:var(--peri); margin-bottom:14px;
font-variant-numeric:lining-nums;
}
.opt h3{font-size:clamp(18px,1.45vw,22px); margin-bottom:9px}
.opt p{font-size:14.5px; line-height:1.62}
@media (max-width:1000px){.opt-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.opt-grid{grid-template-columns:1fr}}
.g-grid{
display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(12px,1.4vw,20px);
margin-top:clamp(28px,3.2vw,46px);
}
.g-tile{margin:0; position:relative; border-radius:var(--r); overflow:hidden; background:var(--wash)}
.g-tile img{width:100%; aspect-ratio:4/3.1; object-fit:cover; display:block;
transition:transform .9s var(--ease)}
.g-tile:hover img{transform:scale(1.05)}
.g-tile figcaption{
position:absolute; inset:auto 0 0 0; padding:34px 18px 15px;
background:linear-gradient(transparent, rgba(0,0,0,.66));
color:#FFFFFF; font-size:12px; line-height:1.45; opacity:0; transition:opacity .4s var(--ease);
}
.g-tile:hover figcaption{opacity:1}
.d1-faq{background:var(--wash)}
.faq-list{max-width:900px; margin:clamp(26px,3vw,42px) auto 0; border-top:1px solid var(--line)}
.faq{border-bottom:1px solid var(--line); background:transparent}
.faq summary{
display:flex; align-items:center; justify-content:space-between; gap:20px;
padding:22px 4px; cursor:pointer; list-style:none;
font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(19px,1.6vw,25px);
font-weight:400; color:var(--ink);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary svg{color:var(--peri); flex:none; transition:transform .35s var(--ease)}
.faq[open] summary svg{transform:rotate(180deg)}
.faq-a{padding:0 4px 24px}
.faq-a p{max-width:78ch; font-size:15.5px}
.rel-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(12px,1.4vw,18px);
margin-top:clamp(18px,2vw,26px)}
.rel-c{
display:flex; flex-direction:column; gap:7px; padding:clamp(22px,2.2vw,30px);
background:#FFFFFF; border:1px solid var(--line); border-radius:var(--r);
transition:border-color .3s var(--ease), transform .3s var(--ease);
}
.rel-c:hover{border-color:var(--navy); transform:translateY(-2px)}
.rel-c b{font-family:"Cormorant Garamond",Georgia,serif; font-weight:400; font-size:21px; color:var(--ink)}
.rel-c span{font-size:14px; line-height:1.55; color:var(--body)}
.rel-c svg{color:var(--navy); margin-top:6px}
@media (max-width:900px){.rel-grid{grid-template-columns:1fr}}
.town-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(12px,1.4vw,18px);
margin-top:clamp(28px,3.2vw,44px)}
.town-c{
position:relative; display:flex; flex-direction:column; gap:6px;
padding:clamp(22px,2.2vw,30px); background:#FFFFFF; border:1px solid var(--line);
border-radius:var(--r); transition:border-color .3s var(--ease), transform .3s var(--ease),
box-shadow .3s var(--ease);
}
.town-c:hover{border-color:var(--navy); transform:translateY(-3px); box-shadow:none}
.town-pc{font-size:10.5px; font-weight:600; letter-spacing:.18em; color:var(--peri-text)}
.town-c b{font-family:"Cormorant Garamond",Georgia,serif; font-weight:400;
font-size:clamp(23px,1.9vw,28px); line-height:1.1; color:var(--ink)}
.town-l{font-size:13.5px; line-height:1.55; color:var(--body)}
.town-nb{font-size:12px; color:var(--peri-text); margin-top:2px}
.town-c svg{color:var(--navy); margin-top:auto; padding-top:12px}
@media (max-width:1000px){.town-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.town-grid{grid-template-columns:1fr}}
.area-wall,.nb-wall{
display:flex; flex-wrap:wrap; justify-content:center; gap:9px;
margin-top:clamp(24px,2.8vw,38px);
}
.area-wall .area-c,.nb{
display:inline-flex; align-items:baseline; gap:10px; flex:none; margin:0;
padding:14px 22px; border-radius:var(--r); background:#FFFFFF; border:1px solid var(--line);
white-space:nowrap; transition:border-color .3s var(--ease), transform .3s var(--ease);
}
.area-wall .area-c:hover{border-color:var(--navy); transform:translateY(-2px)}
.nb b,.area-wall .area-c b{font-family:"Cormorant Garamond",Georgia,serif; font-weight:400;
font-size:19px; color:var(--ink)}
.nb i,.area-wall .area-c i{font-style:normal; font-size:10.5px; font-weight:600;
letter-spacing:.14em; color:var(--peri-text)}
.ip-nb{background:var(--wash)}
@media (max-width:640px){
.area-wall .area-c,.nb{white-space:normal; max-width:100%; flex-wrap:wrap; justify-content:center; text-align:center; padding:12px 16px}
}
.rv-grid{
display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(12px,1.4vw,20px);
margin-top:clamp(28px,3.2vw,46px); align-items:stretch;
}
.rv-c{
display:flex; flex-direction:column; margin:0;
padding:clamp(24px,2.4vw,34px); background:#FFFFFF; border:1px solid var(--line);
border-radius:var(--r);
}
.rv-c blockquote{
margin:0 0 18px; flex:1; font-family:"Cormorant Garamond",Georgia,serif; font-weight:400;
font-size:clamp(17px,1.35vw,20px); line-height:1.5; color:var(--ink);
}
.rv-c blockquote::before{content:"\201C"}
.rv-c blockquote::after{content:"\201D"}
.rv-c figcaption{display:flex; flex-direction:column; gap:4px; padding-top:16px;
border-top:1px solid var(--line)}
.rv-c figcaption b{font-size:11px; font-weight:600; letter-spacing:.15em;
text-transform:uppercase; color:var(--navy)}
.rv-c figcaption span{font-size:12.5px; color:var(--peri-text)}
@media (max-width:1000px){.rv-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.rv-grid{grid-template-columns:1fr}}
.ip-contact-in{display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(34px,5vw,80px);
align-items:start}
.ip-cd{margin-top:24px}
.ip-cd a{font-size:16px}
.ip-hours{margin-top:12px}
.ip-note{margin-top:26px; font-size:13.5px; color:#6B6B6D; max-width:44ch}
@media (max-width:900px){.ip-contact-in{grid-template-columns:1fr}}
.ip-legal-in{max-width:76ch}
.ip-legal-in h2{font-size:clamp(24px,2.2vw,32px); margin:34px 0 12px}
.ip-legal-in h2:first-child{margin-top:0}
.ip-legal-in p{margin-bottom:14px}
.d1-contact-band{background:var(--ink); color:rgba(255,255,255,.78); position:relative;
overflow:hidden}
.d1-contact-band .wrap{position:relative; z-index:1}
.d1-cta-in{display:grid; grid-template-columns:1fr 1fr; gap:clamp(34px,5vw,84px);
align-items:start}
.d1-contact-band h2,.d1-contact-band h2 em{color:#FFFFFF}
.d1-contact-band h2 em{color:var(--sky)}
.d1-contact-band .eyebrow{color:var(--sky)}
.d1-contact-band .lead{color:rgba(255,255,255,.8); max-width:52ch}
.d1-cta-list{display:grid; gap:11px; margin-top:28px}
.d1-cta-list li{display:flex; align-items:flex-start; gap:11px; font-size:15px;
color:rgba(255,255,255,.86)}
.d1-cta-list svg{color:var(--sky); flex:none; margin-top:3px}
.d1-contact-band .field span{color:rgba(255,255,255,.7)}
.d1-contact-band .field input,.d1-contact-band .field textarea{
background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.2); color:#FFFFFF;
}
.d1-contact-band .form-note{color:rgba(255,255,255,.6)}
@media (max-width:900px){.d1-cta-in{grid-template-columns:1fr}}
.nav-drop{position:relative; display:flex; align-items:center}
.nav-dropt{
display:inline-flex; align-items:center; gap:6px; background:none; border:0; padding:0;
cursor:pointer; font-family:inherit; font-size:12px; font-weight:600; letter-spacing:.16em;
text-transform:uppercase; color:rgba(255,255,255,.86); transition:color .3s var(--ease);
}
.nav-drop:hover .nav-dropt{color:#FFFFFF}
.hdr.solid .nav-dropt{color:var(--ink)}
@media (max-width:1560px){.nav-dropt{font-size:11.5px; letter-spacing:.12em}}
@media (max-width:1400px){.nav-dropt{font-size:11px; letter-spacing:.1em}}
.nav-dropt svg{transition:transform .3s var(--ease)}
.nav-drop:hover .nav-dropt svg,.nav-drop.open .nav-dropt svg{transform:rotate(180deg)}
.nav-dropt[aria-current="true"]{color:var(--sky)}
.hdr.solid .nav-dropt[aria-current="true"]{color:var(--navy)}
.nav-menu{
position:absolute; top:calc(100% + 16px); left:50%; transform:translateX(-50%) translateY(-8px);
min-width:250px; padding:10px; border-radius:var(--r); background:#FFFFFF;
border:1px solid var(--line); box-shadow:0 26px 60px -26px rgba(31,31,32,.5);
display:grid; gap:1px; opacity:0; visibility:hidden; pointer-events:none;
transition:opacity .26s var(--ease), transform .3s var(--ease), visibility .26s;
}
.nav-drop:hover .nav-menu,.nav-drop:focus-within .nav-menu,.nav-drop.open .nav-menu{
opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%);
}
.nav-drop::after{content:""; position:absolute; top:100%; left:0; right:0; height:20px}
.nav-menu a{
display:block; padding:11px 16px; border-radius:var(--r-sm); color:var(--ink);
font-family:Inter,sans-serif; font-size:13px; font-weight:500; letter-spacing:.02em;
text-transform:none; transition:background .22s var(--ease), color .22s var(--ease);
}
.nav-menu a::after{display:none}
.nav-menu a:hover,.nav-menu a[aria-current="page"]{background:var(--wash); color:var(--navy)}
.nav-acc summary{
display:flex; align-items:center; justify-content:space-between; gap:12px;
list-style:none; cursor:pointer; padding:11px 0;
font-size:clamp(24px,5vw,34px); font-family:"Cormorant Garamond",Georgia,serif;
font-weight:300; color:#262727;
}
.nav-acc summary::-webkit-details-marker{display:none}
.drawer nav > a{font-family:"Cormorant Garamond",Georgia,serif; font-weight:300; font-size:clamp(24px,5vw,34px); letter-spacing:0}
.nav-acc{border-bottom:1px solid rgba(42,43,45,.12)}
.nav-acc-in a{font-family:Inter,sans-serif; font-weight:500}
.nav-acc summary svg{color:#05668E; transition:transform .3s var(--ease)}
.nav-acc[open] summary svg{transform:rotate(180deg)}
.nav-acc-in{display:grid; gap:2px; padding:4px 0 14px 16px; border-left:1px solid rgba(42,43,45,.2)}
.nav-acc-in a{font-size:14px !important; letter-spacing:.03em; opacity:.85; padding:7px 0}
.ftr-contact{display:flex; flex-direction:column; gap:11px; align-items:flex-start; margin-top:4px}
.ftr-contact a{display:inline-flex; align-items:center; gap:9px; line-height:1.45}
.ftr-contact svg{flex:none; color:var(--sky)}
.ftr-phones{display:flex; flex-wrap:wrap; gap:6px clamp(14px,2vw,26px)}
.ftr-phones a{font-weight:600; color:rgba(255,255,255,.92)}
.ftr-addr{align-items:flex-start}
.ftr-addr svg{margin-top:3px}
.ftr-addr span{max-width:30ch}
.ip-cd{gap:14px}
.ip-cd a{font-size:16px}
.ip-cd svg{color:var(--navy)}
.ip-cd .ftr-phones a{color:var(--ink)}
.opt-grid{grid-template-columns:repeat(var(--cols,4),1fr)}
.opt-grid.cols-2{--cols:2}
.opt-grid.cols-3{--cols:3}
.opt-grid.cols-4{--cols:4}
@media (max-width:1000px){.opt-grid,.opt-grid.cols-3,.opt-grid.cols-4{--cols:2}}
@media (max-width:620px){.opt-grid,.opt-grid.cols-2,.opt-grid.cols-3,.opt-grid.cols-4{--cols:1}}
.opt{position:relative; overflow:hidden; transition:background .4s var(--ease)}
.opt::before{
content:""; position:absolute; left:0; top:0; height:2px; width:100%;
background:linear-gradient(90deg, var(--navy), var(--peri));
transform:scaleX(0); transform-origin:0 50%;
transition:transform 1s cubic-bezier(.22,.61,.36,1);
}
.opt.in::before{transform:scaleX(1)}
.opt:hover{background:var(--wash)}
.opt:hover .opt-n{color:var(--navy)}
.opt-n{transition:color .35s var(--ease)}
.sp-art figure{position:relative; overflow:hidden}
.sp-art figure{transition:box-shadow .5s var(--ease), transform .6s var(--ease)}
.sp:hover .sp-art figure{transform:translateY(-4px); box-shadow:none}
.sp-art figure{position:relative; aspect-ratio:4/3.05; overflow:hidden}
.sp-art img.px{
position:absolute; left:0; top:-6%; width:100%; height:112%;
object-fit:cover; will-change:transform;
}
.sp-copy .eyebrow::before{transform-origin:0 50%}
ul.tick li{transition:transform .35s var(--ease)}
ul.tick li:hover{transform:translateX(3px)}
.g-tile{transition:transform .5s var(--ease), box-shadow .5s var(--ease)}
.g-tile:hover{transform:translateY(-4px); box-shadow:none}
.rel-c{position:relative; overflow:hidden}
.rel-c::after{
content:""; position:absolute; left:0; bottom:0; height:2px; width:100%;
background:var(--navy); transform:scaleX(0); transform-origin:0 50%;
transition:transform .5s var(--ease);
}
.rel-c:hover::after{transform:scaleX(1)}
.area-wall .area-c{position:relative}
.faq summary{transition:color .3s var(--ease)}
.faq:hover summary{color:var(--navy)}
.d1-intro,.d1-areas,.d1-contact-band,.ip-contact,.ip-reviews,.ip-legal,section:has(> .d1-wm){position:relative; overflow:hidden}.d1-backs{position:relative; overflow:hidden}
.town-pc,.town-nb,.rv-c figcaption span,.area-c i,.nb i{color:var(--peri-text)}
.mod .mod-head{max-width:760px; margin-bottom:clamp(30px,3.6vw,52px)}
.mod .mod-head h2{margin:12px 0 16px}
.mod .lead{max-width:60ch}
.intro-rail{display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(34px,5vw,80px); align-items:start}
.ip-intro.one{columns:1}
.spec-rail{display:grid; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:8px}
.spec-rail li{display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:baseline;
padding:18px 22px; background:#FFFFFF}
.spec-rail b{font-family:"Cormorant Garamond",Georgia,serif; font-weight:300; font-size:clamp(34px,3vw,46px);
line-height:1; color:var(--navy); font-variant-numeric:lining-nums; white-space:nowrap}
.spec-rail b small{font-size:.42em; font-family:Inter,sans-serif; font-weight:600; letter-spacing:.06em;
color:var(--peri-text); margin-left:4px}
.spec-rail span{font-size:14px; line-height:1.5; color:var(--body)}
.spec-note{margin:14px 0 0; font-size:13px; line-height:1.55; color:var(--peri-text); font-style:italic; max-width:44ch}
@media (max-width:900px){.intro-rail{grid-template-columns:1fr}}
.intro-pull{display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(30px,5vw,70px); align-items:start}
.intro-pull .d1-pull{margin:6px 0 0; font-size:clamp(22px,2vw,29px)}
@media (max-width:900px){.intro-pull{grid-template-columns:1fr}}
.faq-cols{max-width:none; display:grid; grid-template-columns:1fr 1fr; gap:0 clamp(24px,4vw,60px); border-top:0}
.faq-cols .faq{border-top:1px solid var(--line)}
@media (max-width:900px){.faq-cols{grid-template-columns:1fr}}
.intro-index{display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(34px,5vw,80px); align-items:start}
.index-list{display:grid; gap:0; margin-top:8px; border-top:1px solid var(--line)}
.index-list li{display:grid; grid-template-columns:44px 1fr; gap:14px; align-items:baseline;
padding:15px 0; border-bottom:1px solid var(--line); font-size:15.5px; line-height:1.5}
.index-list span{font-family:"Cormorant Garamond",Georgia,serif; font-size:26px; font-weight:300;
color:var(--peri-text); font-variant-numeric:lining-nums}
@media (max-width:900px){.intro-index{grid-template-columns:1fr}}
.ft-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(12px,1.4vw,20px);
margin-top:clamp(28px,3.2vw,46px)}
.ft-grid figure{margin:0; position:relative; border-radius:var(--r); overflow:hidden; background:var(--wash)}
.ft-grid img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .9s var(--ease)}
.ft-grid figure:hover img{transform:scale(1.05)}
.ft-grid figcaption{position:absolute; inset:auto 0 0 0; padding:34px 18px 15px;
background:linear-gradient(transparent, rgba(0,0,0,.66)); color:#FFFFFF; font-size:12px;
line-height:1.45; opacity:0; transition:opacity .4s var(--ease)}
.ft-grid figure:hover figcaption{opacity:1}
.ft-big{grid-column:span 2; aspect-ratio:4/2.8}
.ft-sm{aspect-ratio:1}
.photo-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin:clamp(20px,3vw,40px) 0 0}
.photo-strip figure{margin:0; overflow:hidden; aspect-ratio:4/3}
.photo-strip img{width:100%; height:100%; object-fit:cover; display:block; transition:transform 1.2s var(--ease)}
.photo-strip figure:hover img{transform:scale(1.06)}
.ms-grid,.g-grid{
display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(12px,1.4vw,20px);
margin-top:clamp(28px,3.2vw,46px);
}
.ms-tile,.g-tile{margin:0; position:relative; border-radius:var(--r); overflow:hidden; background:var(--wash)}
.ms-tile img,.g-tile img{width:100%; aspect-ratio:4/3; height:auto; object-fit:cover; display:block;
transition:transform .9s var(--ease)}
.ms-tile:hover img,.g-tile:hover img{transform:scale(1.05)}
.ms-tile figcaption,.g-tile figcaption{position:absolute; inset:auto 0 0 0; padding:34px 18px 15px;
background:linear-gradient(transparent, rgba(0,0,0,.66)); color:#FFFFFF; font-size:12px;
line-height:1.45; opacity:0; transition:opacity .4s var(--ease)}
.ms-tile:hover figcaption,.g-tile:hover figcaption{opacity:1}
@media (max-width:900px){
.ms-grid,.g-grid,.ft-grid,.photo-strip{
display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory;
-webkit-overflow-scrolling:touch; scrollbar-width:none;
padding:0 var(--gut) 8px;
}
.wrap > .ms-grid,.wrap > .g-grid,.wrap > .ft-grid,.wrap > .photo-strip{
margin-left:calc(-1 * var(--gut)); margin-right:calc(-1 * var(--gut));
}
.ms-grid::-webkit-scrollbar,.g-grid::-webkit-scrollbar,.ft-grid::-webkit-scrollbar,.photo-strip::-webkit-scrollbar{display:none}
.ms-grid > *,.g-grid > *,.ft-grid > *,.photo-strip > *{flex:0 0 78vw; scroll-snap-align:start; aspect-ratio:4/3}
.ft-grid .ft-big,.ft-grid .ft-sm{aspect-ratio:4/3}
.ms-tile figcaption,.g-tile figcaption,.ft-grid figcaption{opacity:1}
}
.xs-tabs,.pt-tabs,.fm-tabs,.bd-tabs{display:grid; gap:6px}
.xs-tab,.pt-tab,.fm-tab,.bd-tab,.pk-tab{
display:flex; align-items:center; gap:14px; text-align:left; width:100%;
padding:14px 18px; border-radius:var(--r-sm); border:1px solid var(--line); background:#FFFFFF;
font-family:Inter,sans-serif; font-size:13px; font-weight:600; letter-spacing:.04em; color:var(--ink);
cursor:pointer; transition:background .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease),
transform .25s var(--ease);
}
.xs-tab:hover,.pt-tab:hover,.fm-tab:hover,.bd-tab:hover,.pk-tab:hover{border-color:var(--navy); transform:translateX(3px)}
.xs-tab.on,.pt-tab.on,.fm-tab.on,.bd-tab.on,.pk-tab.on{background:var(--navy); border-color:var(--navy); color:#FFFFFF}
.xs-n,.pk-n{font-family:"Cormorant Garamond",Georgia,serif; font-size:22px; font-weight:300; line-height:1;
color:var(--peri-text); font-variant-numeric:lining-nums; min-width:28px}
.xs-tab.on .xs-n,.pk-tab.on .pk-n{color:rgba(255,255,255,.92)}
.xs-desc,.pt-desc,.fm-desc,.bd-desc,.ws-desc{position:relative; min-height:9em; margin-top:18px}
.xs-d,.pt-d,.fm-d,.bd-d,.ws-d{
position:absolute; inset:0; margin:0; opacity:0; transform:translateY(8px); pointer-events:none;
font-size:15.5px; line-height:1.62; color:var(--body);
transition:opacity .4s var(--ease), transform .4s var(--ease);
}
.xs-d b,.pt-d b,.fm-d b,.bd-d b,.ws-d b{display:block; font-family:"Cormorant Garamond",Georgia,serif;
font-weight:400; font-size:24px; color:var(--ink); margin-bottom:8px}
.xs-d.on,.pt-d.on,.fm-d.on,.bd-d.on,.ws-d.on{opacity:1; transform:none; pointer-events:auto}
.xs{display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(30px,4vw,60px); align-items:start}
.xs-fig{background:#FFFFFF; border:1px solid var(--line); border-radius:var(--r); padding:clamp(18px,2.4vw,34px)}
.xs-svg{width:100%; height:auto; display:block}
.xs-band rect{transition:opacity .35s var(--ease), transform .45s var(--ease); transform-box:fill-box;
transform-origin:center; cursor:pointer}
.xs-svg.has-on .xs-band:not(.on) rect{opacity:.28}
.xs-band.on rect{transform:scaleY(1.06)}
.xs-lab{font-family:Inter,sans-serif; font-size:15px; font-weight:600; fill:#FFFFFF; letter-spacing:.04em;
pointer-events:none}
.xs-lab.dark{fill:var(--ink)}
.xs-svg.has-on .xs-band:not(.on) .xs-lab{fill:var(--ink)}
@media (max-width:640px){.xs-lab{display:none}}
.xs-car{transition:transform .8s var(--ease)}
.xs-svg.has-on.deep .xs-car{transform:translateY(-6px)}
@media (max-width:900px){.xs{grid-template-columns:1fr}}
.pt,.fm,.bd{display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(30px,4vw,60px); align-items:start}
.pt-fig,.fm-fig,.bd-fig{border-radius:var(--r); overflow:hidden; border:1px solid var(--line);
box-shadow:none; background:var(--wash)}
.pt-panel,.fm-panel,.bd-wall{width:100%; aspect-ratio:4/2.6; background-repeat:repeat;
transition:opacity .28s var(--ease), transform .8s var(--ease); background-size:auto}
.pt-panel.swap,.fm-panel.swap,.bd-wall.swap{opacity:0; transform:scale(1.02)}
.bd-wall{aspect-ratio:4/2.2; background-color:var(--wash)}
@media (max-width:900px){.pt,.fm,.bd{grid-template-columns:1fr}}
.rs{max-width:820px}
.rs-toggle{position:relative; display:inline-grid; grid-template-columns:1fr 1fr; padding:5px;
border-radius:100px; background:var(--wash); border:1px solid var(--line); margin-bottom:30px}
.rs-t{position:relative; z-index:1; padding:12px 26px; border:0; background:none; cursor:pointer;
font-family:Inter,sans-serif; font-size:12px; font-weight:600; letter-spacing:.1em;
text-transform:uppercase; color:var(--ink); transition:color .3s var(--ease); white-space:nowrap}
.rs-t.on{color:#FFFFFF}
.rs-pill{position:absolute; top:5px; bottom:5px; left:5px; width:calc(50% - 5px); border-radius:4px;
background:var(--navy); transition:transform .4s cubic-bezier(.22,.61,.36,1)}
.rs-toggle.bonded .rs-pill{transform:translateX(100%)}
.rs-bars{display:grid; gap:16px}
.rs-row{display:grid; grid-template-columns:minmax(150px,.9fr) 1.6fr; gap:22px; align-items:center}
.rs-l b{display:block; font-size:14px; font-weight:600; color:var(--ink)}
.rs-l span{font-size:12.5px; color:var(--peri-text)}
.rs-bar{height:10px; border-radius:100px; background:var(--wash); border:1px solid var(--line); overflow:hidden}
.rs-bar i{display:block; height:100%; border-radius:100px;
background:linear-gradient(90deg, var(--navy), var(--peri));
transition:width .9s cubic-bezier(.22,.61,.36,1)}
.rs-note{margin-top:26px; font-family:"Cormorant Garamond",Georgia,serif; font-size:21px; color:var(--ink);
min-height:1.4em; position:relative}
.rs-note b{position:absolute; left:0; top:0; font-weight:400; opacity:0; transition:opacity .35s var(--ease)}
.rs-note b.on{opacity:1}
@media (max-width:600px){.rs-row{grid-template-columns:1fr; gap:8px}}
.cf{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,4vw,60px); align-items:start}
.cf fieldset{border:0; padding:0; margin:0 0 22px}
.cf legend{font-size:11px; font-weight:600; letter-spacing:.17em; text-transform:uppercase;
color:var(--peri-text); margin-bottom:10px}
.cf-grid{display:grid; grid-template-columns:1fr 1fr; gap:8px}
.cf-row{display:flex; flex-wrap:wrap; gap:8px}
.cf-opt{position:relative; display:block; cursor:pointer}
.cf-opt input{position:absolute; opacity:0; inset:0; pointer-events:none}
.cf-opt span{display:block; padding:12px 16px; border-radius:var(--r-sm); border:1px solid var(--line);
background:#FFFFFF; font-size:13.5px; font-weight:600; color:var(--ink); line-height:1.3;
transition:background .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease)}
.cf-opt small{display:block; font-weight:400; font-size:12px; color:var(--peri-text); margin-top:3px}
.cf-opt:hover span{border-color:var(--navy)}
.cf-opt input:checked + span{background:var(--navy); border-color:var(--navy); color:#FFFFFF}
.cf-opt input:checked + span small{color:rgba(255,255,255,.82)}
.cf-opt input:focus-visible + span{outline:2px solid var(--navy); outline-offset:2px}
.cf-out{background:#FFFFFF; border:1px solid var(--line); border-radius:var(--r); padding:clamp(20px,2.4vw,32px);
position:sticky; top:calc(var(--topbar-h) + var(--hdr) + 20px)}
.cf-plan{border-radius:var(--r-sm); overflow:hidden; background:var(--wash); margin-bottom:20px}
.cf-svg{width:100%; height:auto; display:block}
.cf-room,.cf-doors,.cf-deck{transition:all .6s cubic-bezier(.22,.61,.36,1)}
.cf-dim{font-family:Inter,sans-serif; font-size:12px; font-weight:600; fill:var(--ink); letter-spacing:.08em}
.cf-sum{display:grid; gap:0; margin:0 0 20px}
.cf-sum div{display:grid; grid-template-columns:100px 1fr; gap:14px; padding:10px 0;
border-bottom:1px solid var(--line); font-size:14px}
.cf-sum dt{color:var(--peri-text); font-weight:600; font-size:11px; letter-spacing:.14em; text-transform:uppercase;
padding-top:3px}
.cf-sum dd{margin:0; color:var(--ink); transition:color .3s var(--ease)}
.cf-sum dd.flash{color:var(--navy)}
@media (max-width:900px){.cf{grid-template-columns:1fr} .cf-out{position:static}}
.mod-sq .sq-wrap{position:relative; padding:0 var(--gut)}
.sq-line{position:absolute; left:var(--gut); right:var(--gut); top:26px; height:2px; background:var(--line)}
.sq-line i{display:block; height:100%; width:0; background:linear-gradient(90deg, var(--navy), var(--peri));
transition:width .25s linear}
.sq{display:grid; grid-template-columns:repeat(6,1fr); gap:clamp(12px,1.4vw,20px); list-style:none;
margin:0; padding:0; counter-reset:none}
.sq-step{position:relative; padding-top:52px}
.sq-n{position:absolute; top:12px; left:0; width:30px; height:30px; border-radius:50%; background:#FFFFFF;
border:2px solid var(--navy); display:flex; align-items:center; justify-content:center;
font-family:Inter,sans-serif; font-size:11px; font-weight:700; color:var(--navy);
transition:background .3s var(--ease), color .3s var(--ease)}
.sq-step.lit .sq-n{background:var(--navy); color:#FFFFFF}
.sq-step figure{margin:0 0 14px; border-radius:var(--r); overflow:hidden; aspect-ratio:4/3.2; background:var(--wash)}
.sq-step img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .9s var(--ease)}
.sq-step:hover img{transform:scale(1.05)}
.sq-step h3{font-size:clamp(19px,1.5vw,22px); margin-bottom:6px}
.sq-step p{font-size:14px; line-height:1.55}
@media (max-width:1100px){.sq{grid-template-columns:repeat(3,1fr)} .sq-line{display:none} .sq-step{padding-top:44px}}
@media (max-width:640px){.sq{grid-template-columns:1fr 1fr}}
@media (max-width:420px){.sq{grid-template-columns:1fr}}
.ws{display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(30px,4vw,60px); align-items:start}
.ws-fig{position:relative; border-radius:var(--r); overflow:hidden; border:1px solid var(--line);
box-shadow:none}
.ws-svg{width:100%; height:auto; display:block}
.ws-dot{position:absolute; width:30px; height:30px; margin:-15px 0 0 -15px; border-radius:50%; border:0;
background:transparent; cursor:pointer; padding:0}
.ws-dot i{display:block; width:14px; height:14px; margin:8px; border-radius:50%; background:#FFFFFF;
border:3px solid var(--navy); box-shadow:0 0 0 0 rgba(104,105,106,.35);
transition:transform .3s var(--ease), background .3s var(--ease); animation:wsPulse 2.4s var(--ease) infinite}
.ws-dot:hover i,.ws-dot.on i{background:var(--navy); transform:scale(1.25); animation:none}
@keyframes wsPulse{0%{box-shadow:0 0 0 0 rgba(104,105,106,.35)} 70%{box-shadow:0 0 0 12px rgba(104,105,106,0)} 100%{box-shadow:0 0 0 0 rgba(104,105,106,0)}}
.ws-desc{min-height:11em}
@media (max-width:900px){.ws{grid-template-columns:1fr}}
.pk{display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(24px,3.4vw,50px); align-items:start}
.pk-tabs{display:grid; gap:6px}
.pk-panels{position:relative}
.pk-panel{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(20px,2.6vw,36px); align-items:center;
position:absolute; inset:0; opacity:0; transform:translateY(10px); pointer-events:none;
transition:opacity .45s var(--ease), transform .45s var(--ease)}
.pk-panel.on{position:relative; opacity:1; transform:none; pointer-events:auto}
.pk-panel figure{margin:0; border-radius:var(--r); overflow:hidden; aspect-ratio:4/3.2; box-shadow:none}
.pk-panel img{width:100%; height:100%; object-fit:cover; display:block}
.pk-copy h3{font-size:clamp(24px,2vw,30px); margin-bottom:10px}
.pk-copy p{font-size:15px}
.pk-copy ul.tick{margin-top:16px}
@media (max-width:900px){.pk{grid-template-columns:1fr} .pk-panel{grid-template-columns:1fr}
.pk-tabs{display:flex; flex-wrap:wrap} .pk-tab{width:auto}}
.mod-xs,.mod-fm,.mod-ws,.mod-pk{background:var(--wash)}
.mod-rs,.mod-cf,.mod-sq{background:#FFFFFF}
.mod-pt,.mod-bd{background:linear-gradient(180deg, #FFFFFF, var(--wash))}
.xs-fig{position:relative}
.sp-wide{grid-template-columns:1fr 1fr; grid-template-areas:"head head" "art copy"}
.sp-wide.flip{grid-template-areas:"head head" "copy art"}
.sp-wide .sp-head{grid-area:head; max-width:none; margin-bottom:clamp(4px,1vw,12px)}
.sp-wide .sp-head h2{max-width:26ch}
.sp-wide .sp-art{grid-area:art; order:0}
.sp-wide .sp-copy{grid-area:copy}
.sp h2 em{display:inline}
.sp-copy h2{font-size:clamp(28px,3.1vw,44px)}
.sp-head h2{font-size:clamp(34px,4.4vw,64px)}
@media (max-width:900px){
.sp-wide{grid-template-areas:"head" "art" "copy"; grid-template-columns:1fr}
.sp-wide.flip{grid-template-areas:"head" "art" "copy"}
}
.d1-cta-in{grid-template-areas:"head head" "copy form"}
.d1-cta-head{grid-area:head; max-width:none}
.d1-cta-head h2{max-width:22ch}
.d1-cta-copy{grid-area:copy}
.d1-cta-form{grid-area:form}
@media (max-width:900px){.d1-cta-in{grid-template-areas:"head" "copy" "form"}}
.mod[data-freeze-steps],.mod-mat[data-freeze-steps]{position:relative}
.pinned.mod,.pinned.mod-mat{padding:0; min-height:0; display:block}
.pinned > .fz-track{
position:sticky; top:0; min-height:100svh; box-sizing:border-box;
display:flex; align-items:center;
padding:calc(var(--topbar-h) + var(--hdr) + 10px) 0 18px;
}
.pinned > .fz-track > *{min-width:0; max-width:100%}
.pinned.mod-mat{overflow:visible}
.pinned.mod-mat > .fz-track{padding:0; isolation:isolate; overflow:hidden}
.pinned.mod-mat > .fz-track > .d1-mat-in{padding-top:calc(var(--topbar-h) + var(--hdr) + 14px)}.pinned.mod-mat.jw-boiler-tabs > .fz-track > .d1-mat-in{padding-top:calc(var(--topbar-h) + var(--hdr) + 14px)}
.pinned .mod-head{margin-bottom:clamp(16px,2.2vw,30px)}
.fz-prog{display:flex; gap:8px; margin-top:16px}
.fz-prog i{width:26px; height:3px; border-radius:3px; background:var(--line); transition:background .3s var(--ease)}
.fz-prog i.on{background:var(--navy)}
.fz-prog i.done{background:var(--peri)}
.mod-mat .fz-prog i{background:rgba(255,255,255,.25)}
.mod-mat .fz-prog i.on{background:#FFFFFF}
.mod-mat .fz-prog i.done{background:var(--sky)}
.pinned .mod-head{max-width:none; margin-bottom:clamp(10px,1.4vw,18px); display:grid;
grid-template-columns:1fr auto; gap:6px clamp(20px,3vw,40px); align-items:end}
.pinned .mod-head .eyebrow{grid-column:1 / -1}
.pinned .mod-head h2{font-size:clamp(26px,2.7vw,40px); margin:4px 0 0; max-width:none}
.pinned .mod-head .lead{font-size:14px; line-height:1.5; max-width:44ch; margin:0}
.pinned .mod-head .fz-prog{grid-column:1 / -1; margin-top:10px}
.pinned .xs,.pinned .pt,.pinned .fm,.pinned .bd,.pinned .ws,.pinned .pk{align-items:center}
.pinned .xs-fig{padding:clamp(12px,1.6vw,22px)}
.pinned .xs-svg{max-height:min(44vh,400px)}
.pinned .pt-panel,.pinned .fm-panel,.pinned .bd-wall{aspect-ratio:auto; height:min(46vh,430px)}
.pinned .ws-svg{max-height:min(46vh,430px)}
.pinned .pk-panel figure{aspect-ratio:auto; height:min(44vh,400px)}
.pinned .xs-tab,.pinned .pt-tab,.pinned .fm-tab,.pinned .bd-tab,.pinned .pk-tab{padding:10px 14px; font-size:12.5px}
.pinned .xs-desc,.pinned .pt-desc,.pinned .fm-desc,.pinned .bd-desc,.pinned .ws-desc{min-height:7.5em; margin-top:12px}
.pinned .xs-d,.pinned .pt-d,.pinned .fm-d,.pinned .bd-d,.pinned .ws-d{font-size:14.5px; line-height:1.55}
.pinned .xs-d b,.pinned .pt-d b,.pinned .fm-d b,.pinned .bd-d b,.pinned .ws-d b{font-size:21px; margin-bottom:5px}
.pinned .rs-bars{gap:12px}
.pinned .pk-copy p{font-size:14.5px}
.pinned.mod-mat .d1-mat-in h2{font-size:clamp(28px,3vw,44px); margin-bottom:20px}.pinned.mod-mat.jw-boiler-tabs .d1-mat-in h2{font-size:clamp(28px,3vw,44px); margin-bottom:20px}
@media (max-width:760px){
.pinned > .fz-track{padding-top:calc(var(--topbar-h) + var(--hdr) + 8px); padding-bottom:12px}
.pinned .mod-head{display:block; margin-bottom:8px}
.pinned .mod-head .lead{display:none}
.pinned .mod-head .eyebrow{margin-bottom:4px}
.pinned .mod-head h2{font-size:clamp(21px,6vw,26px); line-height:1.1; margin:0}
.pinned .mod-head .fz-prog{margin-top:8px}
.pinned .xs-tabs,.pinned .pt-tabs,.pinned .fm-tabs,.pinned .bd-tabs,.pinned .pk-tabs{
display:flex; flex-wrap:nowrap; overflow-x:auto; gap:6px; margin:10px 0 0; padding-bottom:2px;
scrollbar-width:none; -webkit-overflow-scrolling:touch}
.pinned .xs-tabs::-webkit-scrollbar,.pinned .pt-tabs::-webkit-scrollbar,.pinned .fm-tabs::-webkit-scrollbar,
.pinned .bd-tabs::-webkit-scrollbar,.pinned .pk-tabs::-webkit-scrollbar{display:none}
.pinned .xs-tab,.pinned .pt-tab,.pinned .fm-tab,.pinned .bd-tab,.pinned .pk-tab{
width:auto; flex:none; padding:8px 12px; font-size:11.5px; gap:8px; white-space:nowrap}
.pinned .xs-tab:hover,.pinned .pt-tab:hover,.pinned .fm-tab:hover,.pinned .bd-tab:hover,.pinned .pk-tab:hover{transform:none}
.pinned .xs-n,.pinned .pk-n{font-size:16px; min-width:0}
.pinned .xs-fig{padding:10px}
.pinned .xs-svg{max-height:26vh}
.pinned .pt-panel,.pinned .fm-panel,.pinned .bd-wall{height:min(30vh,240px)}
.pinned .ws-svg{max-height:32vh}
.pinned .pk-panel figure{height:min(26vh,210px)}
.pinned .pk-copy h3{font-size:20px; margin-bottom:6px}
.pinned .pk-copy p{font-size:13.5px}
.pinned .pk-copy ul.tick{margin-top:8px}
.pinned .xs-desc,.pinned .pt-desc,.pinned .fm-desc,.pinned .bd-desc,.pinned .ws-desc{min-height:6.2em; margin-top:8px}
.pinned .xs-d,.pinned .pt-d,.pinned .fm-d,.pinned .bd-d,.pinned .ws-d{font-size:13.5px; line-height:1.5}
.pinned .xs-d b,.pinned .pt-d b,.pinned .fm-d b,.pinned .bd-d b,.pinned .ws-d b{font-size:18px; margin-bottom:4px}
.pinned.mod .rs{grid-template-columns:1fr; gap:10px}
.pinned .xs,.pinned .pt,.pinned .fm,.pinned .bd,.pinned .ws,.pinned .pk{grid-template-columns:minmax(0,1fr)}
.pinned .xs-svg,.pinned .ws-svg{max-width:100%}
.pinned .rs-toggle{margin-bottom:4px}
.pinned .rs-bars{gap:8px}
.pinned .rs-row{grid-template-columns:1fr 1.15fr; gap:10px}
.pinned .rs-l b{font-size:12.5px}
.pinned .rs-l span{display:none}
.pinned .rs-note{display:none}
.pinned .pk-panel figure{height:min(22vh,180px)}
.pinned .pk-copy ul.tick{display:none}
.pinned.mod-mat > .fz-track > .d1-mat-in{padding-top:calc(var(--topbar-h) + var(--hdr) + 8px)}.pinned.mod-mat.jw-boiler-tabs > .fz-track > .d1-mat-in{padding-top:calc(var(--topbar-h) + var(--hdr) + 8px)}
.pinned.mod-mat .d1-mat-in h2{font-size:24px; margin-bottom:10px}.pinned.mod-mat.jw-boiler-tabs .d1-mat-in h2{font-size:24px; margin-bottom:10px}
.pinned.mod-mat .d1-mat-lead{font-size:13.5px; line-height:1.5; margin-bottom:8px}
.pinned.mod-mat .d1-mat-lead + .d1-mat-lead{margin-bottom:12px}
}
.pinned.mod-mat .d1-mat-desc{min-height:4.4em}
@media (max-width:1100px){.pinned .mod-head{grid-template-columns:1fr} .pinned .mod-head .lead{max-width:none}}
.pinned .rs{max-width:none; display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(24px,4vw,60px); align-items:center}
.pinned .rs-toggle{margin-bottom:18px}
.pinned .rs-note{margin-top:8px; font-size:19px}
.ftr-tag{font-family:"Cormorant Garamond",Georgia,serif; font-style:italic; font-size:25px;
color:#FFFFFF; margin:16px 0 8px !important; line-height:1.25}
@media (max-height:980px) and (min-width:761px){
.d1-hero{padding-top:calc(var(--topbar-h) + var(--hdr) + 32px); padding-bottom:clamp(40px,6vh,70px)}
.d1-hero h1{font-size:clamp(44px,6.2vw,88px); margin-bottom:18px}
.d1-hero .lead{font-size:clamp(16px,1.25vw,19px); max-width:62ch}
.d1-hero .lead + .lead{margin-top:10px}
.d1-hero .hero-cta{margin:24px 0 20px}
.d1-facts{padding-top:14px}
.d1-cue{margin-top:16px}
}
@media (max-height:820px) and (min-width:761px){
.d1-hero h1{font-size:clamp(36px,4.8vw,62px)}
.d1-hero .kicker{margin-bottom:10px}
.d1-cue{display:none}
}
@media (max-width:760px){
.d1-hero{padding-top:calc(var(--topbar-h) + var(--hdr) + 18px); padding-bottom:28px}
.d1-hero .kicker{margin-bottom:10px}
.d1-hero h1{font-size:clamp(38px,10.5vw,46px); margin-bottom:10px}
.d1-hero .lead{font-size:14.5px; line-height:1.5}
.d1-hero .lead + .lead{margin-top:10px}
.d1-hero .hero-cta{margin:16px 0 0; gap:10px}
.d1-hero .hero-cta .btn{min-height:50px}
.d1-hero .d1-facts{display:none}
.d1-hero .d1-cue{display:none}
}
.d1-mat-lead{color:rgba(255,255,255,.9); max-width:56ch; font-size:clamp(16px,1.25vw,18.5px);
line-height:1.6; margin:0 0 14px}
.d1-mat-lead + .d1-mat-lead{margin-bottom:26px}
.d1-mat-in h2{margin-bottom:22px}.jw-boiler-tabs .d1-mat-in h2{margin-bottom:22px}
.d1-areas-head{grid-template-columns:1fr; gap:14px}
.d1-areas-head h2{max-width:22ch}
.d1-areas-head .lead{max-width:62ch}
:root{--block:linear-gradient(160deg, #717274 0%, #68696A 45%, #454547 100%); --block-flat:#68696A}
.ftr,.ftr-compact{background:var(--block)}
.ftr-bot,.ftr-legal{border-color:rgba(255,255,255,.16)}
.pb-ink{background:var(--block)}
.d1-contact-band{background:var(--block)}
.drawer{background:linear-gradient(170deg, #EAEBEE, #F4F6F9)}
.d1-backs{background:#E6E7E9}
.d1-mat{background:#454547}.d1-mat.jw-boiler-tabs{background:#F1F2F3}
.ftr-tag{font-size:38px; line-height:1.15}
.prog{background:linear-gradient(90deg, var(--sky), #FFFFFF); height:2px; z-index:100}
.js .sp-art[data-reveal] figure,.js .g-tile[data-reveal],.js .ms-tile[data-reveal],.js .ft-grid figure[data-reveal],.js .photo-strip figure[data-reveal]{
clip-path:inset(100% 0 0 0 round var(--r)); transition:clip-path 1.15s cubic-bezier(.2,.8,.2,1), transform .5s var(--ease), box-shadow .5s var(--ease);
}
.js .sp-art[data-reveal].in figure,.js .g-tile[data-reveal].in,.js .ms-tile[data-reveal].in,.js .ft-grid figure[data-reveal].in,.js .photo-strip figure[data-reveal].in{clip-path:inset(0 0 0 0 round var(--r))}
.no-reveal .sp-art figure,.no-reveal .g-tile,.no-reveal .ms-tile,.no-reveal .ft-grid figure,.no-reveal .photo-strip figure{clip-path:none !important}
.opt{transition:background .4s var(--ease), transform .45s var(--ease), box-shadow .45s var(--ease)}
.opt:hover{transform:translateY(-4px); box-shadow:none; background:#FFFFFF}
.opt::after{
content:""; position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .4s var(--ease);
background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%), rgba(119,216,248,.22), rgba(119,216,248,0) 60%);
}
.opt:hover::after{opacity:1}
.pb-in{will-change:transform}
@media (prefers-reduced-motion:reduce){
.js .sp-art[data-reveal] figure,.js .g-tile[data-reveal],.js .ms-tile[data-reveal],.js .ft-grid figure[data-reveal],.js .photo-strip figure[data-reveal]{clip-path:none; transition:none}
.opt:hover{transform:none}
}
.d1-cta .d1-contact-copy h2{max-width:14ch}
.d1-cta .eyebrow{color:var(--sky)}
.d1-hero .hero-cta{margin-bottom:0}
.d1-hero{padding-bottom:clamp(64px,8vh,110px)}
.d1-contact-phone{font-family:Inter,sans-serif; font-size:14.5px; font-weight:600; gap:9px}
.d1-contact-phone svg{width:16px; height:16px}
.intro{display:none}
html.intro-on{scrollbar-gutter:stable}
.intro-on .intro{
display:flex; align-items:center; justify-content:center; position:fixed; inset:0; z-index:58;
color:#FFFFFF; cursor:pointer; overflow:hidden; --lk:2.2; --inset:clamp(16px,2.6vw,38px);
}
.intro-on .hdr .lockup{opacity:0}
.intro-on .intro.out ~ .hdr .lockup{opacity:1}
.intro-on .hdr .nav,.intro-on .hdr .hdr-cta,.intro-on .hdr .burger{opacity:0; transition:opacity .6s var(--ease) .4s}
.intro-on .intro.out ~ .hdr .nav,.intro-on .intro.out ~ .hdr .hdr-cta,.intro-on .intro.out ~ .hdr .burger{opacity:1}
.intro-on .rail,.intro-on .prog{visibility:hidden}
.intro-on .intro.out .intro-lk{visibility:hidden}
.intro-veil{
position:absolute; inset:0; pointer-events:none;
background:radial-gradient(85% 70% at 50% 46%, #717274 0%, #454547 34%, #303031 66%, #0D0D0D 100%);
transition:opacity 1s cubic-bezier(.55,0,.3,1) .2s;
}
.intro-bloom{
position:absolute; left:50%; top:46%; width:min(72vw,900px); aspect-ratio:1.25; border-radius:50%;
transform:translate(-50%,-50%); pointer-events:none;
background:radial-gradient(closest-side, rgba(119,216,248,.34), rgba(119,216,248,.10) 45%, transparent 72%);
mix-blend-mode:screen; animation:introBreathe 4.2s ease-in-out infinite alternate;
}
.intro-ghost{
position:absolute; right:-12vw; top:50%; width:min(64vw,760px); aspect-ratio:1; transform:translateY(-50%);
background:url("/assets/jt/img/brand/mark-white.svg") center/contain no-repeat; opacity:.045;
animation:introSpin 60s linear infinite; pointer-events:none;
}
.intro-grain{
position:absolute; inset:-40px; opacity:.09; mix-blend-mode:overlay; pointer-events:none;
background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") repeat;
animation:introGrain .7s steps(4) infinite;
}
.intro-frame{position:absolute; inset:var(--inset); pointer-events:none}
.intro-frame::before,.intro-frame::after{content:""; position:absolute; inset:0; pointer-events:none}
.intro-frame::before{border-top:1px solid rgba(255,255,255,.16); border-bottom:1px solid rgba(255,255,255,.16);
transform:scaleX(0); animation:introFrameX 1.6s cubic-bezier(.3,0,.2,1) .9s both}
.intro-frame::after{border-left:1px solid rgba(255,255,255,.16); border-right:1px solid rgba(255,255,255,.16);
transform:scaleY(0); animation:introFrameY 1.6s cubic-bezier(.3,0,.2,1) 1.1s both}
.intro-cap{position:absolute; bottom:calc(var(--inset) + 18px); font-size:11px; font-weight:600; letter-spacing:.32em;
text-transform:uppercase; color:rgba(255,255,255,.5); white-space:nowrap; animation:introRise 1s var(--ease) 2s both}
.intro-cap-l{left:calc(var(--inset) + 22px)}
.intro-cap-r{right:calc(var(--inset) + 22px)}
.intro-in{position:relative; display:flex; flex-direction:column; align-items:center; gap:clamp(22px,3vw,34px); padding:0 24px}
.intro .lockup{position:relative; gap:calc(17px * var(--lk)); transform-origin:0 0; will-change:transform}
.intro .lockup img{height:calc(98px * var(--lk))}
.intro .lockup .mark-on-dark{animation:introMark 1.5s cubic-bezier(.2,.8,.2,1) both}
.intro .lockup .mark-on-light{display:block; position:absolute; left:0; top:50%; transform:translateY(-50%); opacity:0; transition:opacity .45s var(--ease) .3s}
.intro .lockup .wm b{font-size:calc(19px * var(--lk)); animation:introWipe 1.1s cubic-bezier(.2,.8,.2,1) .55s both; transition:color .45s var(--ease) .3s}
.intro .lockup .wm span{font-size:calc(12.5px * var(--lk)); letter-spacing:.34em; margin-top:calc(5px * var(--lk));
animation:introWipe 1.1s cubic-bezier(.2,.8,.2,1) .8s both; transition:color .45s var(--ease) .3s}
.intro.to-light .lockup .mark-on-dark{opacity:0; transition:opacity .45s var(--ease) .3s}
.intro.to-light .lockup .mark-on-light{opacity:1}
.intro.to-light .lockup .wm b{color:var(--ink)}
.intro.to-light .lockup .wm span{color:var(--navy)}
.intro-ring,.intro-sheen{
position:absolute; left:0; top:50%; width:calc(98px * var(--lk)); aspect-ratio:1; transform:translateY(-50%);
pointer-events:none;
}
.intro-ring{
left:calc(-4px * var(--lk)); width:calc(106px * var(--lk)); border-radius:50%;
background:conic-gradient(from 0deg, transparent 0 62%, rgba(119,216,248,.25) 74%, #FFFFFF 100%);
-webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 2.5px), #000000 calc(100% - 1.5px));
mask:radial-gradient(farthest-side, transparent calc(100% - 2.5px), #000000 calc(100% - 1.5px));
opacity:0; animation:introRing 1.9s cubic-bezier(.45,0,.2,1) .25s both;
}
.intro-sheen{
-webkit-mask:url("/assets/jt/img/brand/mark-white.svg") center/contain no-repeat;
mask:url("/assets/jt/img/brand/mark-white.svg") center/contain no-repeat;
background:linear-gradient(115deg, transparent 32%, rgba(255,255,255,.85) 50%, transparent 68%) 120% 0 / 260% 100% no-repeat;
animation:introSheen 1.3s cubic-bezier(.4,0,.2,1) 1.35s both;
}
.intro-tag{display:block; font-family:"Cormorant Garamond",Georgia,serif; font-style:italic; font-weight:400;
font-size:clamp(20px,2.3vw,33px); letter-spacing:.01em; color:rgba(255,255,255,.9);
text-shadow:0 2px 24px rgba(0,0,0,.4); animation:introRise 1s var(--ease) 1.45s both}
.intro-bar{display:block; width:min(260px,56vw); height:1px; background:rgba(255,255,255,.14); overflow:hidden;
animation:introRise 1s var(--ease) 1.7s both}
.intro-bar i{display:block; height:100%; width:100%; background:linear-gradient(90deg, transparent, var(--sky) 30%, #FFFFFF 50%, var(--sky) 70%, transparent);
transform:scaleX(0); animation:introBar 2.2s cubic-bezier(.3,0,.4,1) 1.1s both}
.intro-on .intro.out{cursor:default}
.intro-on .intro.out .intro-veil{opacity:0}
.intro-on .intro.out .intro-tag,.intro-on .intro.out .intro-bar{opacity:0; transform:translateY(-8px); transition:opacity .35s var(--ease), transform .35s var(--ease)}
.intro-on .intro.out .intro-ring,.intro-on .intro.out .intro-sheen{display:none}
@keyframes introMark{from{opacity:0; transform:scale(.84); filter:blur(10px)} 60%{filter:blur(0)} to{opacity:1; transform:none; filter:blur(0)}}
@keyframes introWipe{from{opacity:0; clip-path:inset(0 100% 0 0); transform:translateX(-10px)} to{opacity:1; clip-path:inset(0 0 0 0); transform:none}}
@keyframes introRing{0%{opacity:0; transform:translateY(-50%) rotate(-40deg)} 18%{opacity:1} 80%{opacity:1} 100%{opacity:0; transform:translateY(-50%) rotate(380deg)}}
@keyframes introSheen{from{background-position:120% 0} to{background-position:-40% 0}}
@keyframes introRise{from{opacity:0; transform:translateY(14px)} to{opacity:1; transform:none}}
@keyframes introCapC{from{opacity:0; transform:translate(-50%,14px)} to{opacity:1; transform:translate(-50%,0)}}
@keyframes introBar{from{transform:scaleX(0)} to{transform:scaleX(1)}}
@keyframes introFrameX{from{transform:scaleX(0)} to{transform:scaleX(1)}}
@keyframes introFrameY{from{transform:scaleY(0)} to{transform:scaleY(1)}}
@keyframes introBreathe{from{transform:translate(-50%,-50%) scale(.92)} to{transform:translate(-46%,-52%) scale(1.12)}}
@keyframes introSpin{to{transform:translateY(-50%) rotate(360deg)}}
@keyframes introGrain{0%{background-position:0 0} 25%{background-position:-60px 30px} 50%{background-position:40px -50px} 75%{background-position:-30px -20px} 100%{background-position:0 0}}
@media (max-width:1100px){.intro-on .intro{--lk:1.5}}
@media (max-width:820px){.intro-cap-r{display:none} .intro-cap-l{left:50%; transform:translateX(-50%); animation-name:introCapC} .intro-cap{font-size:10px}}
@media (max-width:640px){
.intro-on .intro{--lk:1.24}
.intro .lockup img{height:calc(68px * var(--lk))}
.intro .lockup .wm b{font-size:calc(15.5px * var(--lk))}
.intro .lockup .wm span{font-size:calc(10.5px * var(--lk)); letter-spacing:.26em}
.intro-ring,.intro-sheen{width:calc(68px * var(--lk))}
.intro-ring{left:calc(-2.7px * var(--lk)); width:calc(73.5px * var(--lk))}
.intro-ghost{right:-30vw; width:110vw}
}
@media (max-width:400px){.intro-on .intro{--lk:1.1}}
@media (max-width:360px){
.intro-on .intro{--lk:1.12}
.intro .lockup img{height:calc(52px * var(--lk))}
.intro .lockup .wm b{font-size:calc(12.5px * var(--lk))}
.intro .lockup .wm span{font-size:calc(8.5px * var(--lk)); letter-spacing:.24em}
.intro-ring,.intro-sheen{width:calc(52px * var(--lk))}
.intro-ring{left:calc(-2.1px * var(--lk)); width:calc(56.2px * var(--lk))}
}
.intro-on body{overflow:hidden}
.intro-on.intro-done body{overflow:visible}
.mod:not(.pinned) .mod-head h2{font-size:clamp(34px,3.8vw,58px)}
.mod:not(.pinned) .lead{font-size:clamp(16px,1.3vw,19px)}
.xs,.pt,.fm,.bd,.ws{grid-template-columns:1.4fr .6fr}
.xs-fig,.pt-fig,.fm-fig,.bd-fig,.ws-fig{
position:relative; box-shadow:none;
}
.xs-fig{padding:clamp(24px,3vw,44px); background:linear-gradient(160deg, #FFFFFF, #F4F7F8)}
.mod,.mod-mat{overflow-x:clip}
.xs-fig::before,.pt-fig::before,.fm-fig::before,.bd-fig::before,.ws-fig::before{
content:""; position:absolute; inset:-12%; z-index:-1; pointer-events:none; border-radius:50%;
background:radial-gradient(60% 60% at 50% 50%, rgba(119,216,248,.35), rgba(119,216,248,0) 70%);
}
.xs-tab,.pt-tab,.fm-tab,.bd-tab,.pk-tab{padding:16px 20px; font-size:13.5px}
.xs-n,.pk-n{font-size:24px}
.xs-d b,.pt-d b,.fm-d b,.bd-d b,.ws-d b{font-size:26px}
@media (min-width:761px){
.pinned .mod-head h2{font-size:clamp(28px,3vw,46px)}
.pinned .xs-svg{max-height:min(52vh,520px)}
.pinned .pt-panel,.pinned .fm-panel,.pinned .bd-wall{height:min(54vh,520px)}
.pinned .ws-svg{max-height:min(54vh,520px)}
.pinned .pk-panel figure{height:min(50vh,480px)}
.pinned .xs-tab,.pinned .pt-tab,.pinned .fm-tab,.pinned .bd-tab,.pinned .pk-tab{padding:12px 16px; font-size:13px}
}
@media (max-width:900px){.xs,.pt,.fm,.bd,.ws{grid-template-columns:1fr}}
.am-sec{background:#FFFFFF; color:var(--ink); position:relative; overflow:hidden}
.am-sec .wrap{position:relative; z-index:1}
.am{max-width:1180px; margin:0 auto}
.am-bar{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 18px; margin-bottom:20px}
.am-legend{display:flex; flex-wrap:wrap; gap:8px}
.am-f{
display:inline-flex; align-items:center; gap:9px; padding:9px 16px; border-radius:4px; cursor:pointer;
font:inherit; font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--navy);
background:#FFFFFF; border:1px solid var(--line); transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.am-f:hover{border-color:var(--sky); box-shadow:none}
.am-f.on{background:var(--navy); color:#FFFFFF; border-color:var(--navy)}
.am-f i,.am-chip i,.am-tag i{width:10px; height:10px; border-radius:50%; display:inline-block; flex:none; box-shadow:0 0 0 2px #FFFFFF}
.am-chalk i{background:var(--navy)}
.am-sand i{background:var(--peri)}
.am-clay i{background:var(--ink)}
.am-f.on i{box-shadow:0 0 0 2px rgba(255,255,255,.35)}
.am-find{
display:inline-flex; align-items:center; gap:8px; padding:0 14px; height:40px; border-radius:4px; min-width:220px;
background:var(--wash); border:1px solid var(--line); color:var(--navy); transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.am-find:focus-within{border-color:var(--navy); box-shadow:0 0 0 4px rgba(104,105,106,.12); background:#FFFFFF}
.am-find .sr{position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%)}
.am-find svg{flex:none; color:var(--navy)}
.am-find input{border:0; background:none; font:inherit; font-size:14px; color:var(--ink); outline:none; width:100%; min-width:0}
.am-find input::placeholder{color:var(--peri-text)}
.am-find input::-webkit-search-cancel-button{-webkit-appearance:none}
.am-grid{display:grid; grid-template-columns:minmax(0,1.6fr) minmax(300px,.9fr); gap:22px; align-items:stretch}
.am-map{position:relative; border-radius:var(--r); overflow:hidden; background:#FFFFFF; border:1px solid var(--line); box-shadow:none}
.am-map{display:flex}
.am-svg{display:block; width:100%; height:100%; min-height:0}
@media (max-width:900px){.am-svg{height:auto}}
.am-band{transition:opacity .45s var(--ease), fill .45s var(--ease); cursor:pointer}
.am-band-chalk{fill:#F5F9FA}
.am-band-sand{fill:#E5ECEE}
.am-band-clay{fill:#DADCDF}
.am-pocket{fill:#E5ECEE}
.am.filtered .am-band:not(.am-band-on){opacity:.35}
.am-edge{fill:none; stroke:rgba(104,105,106,.16); stroke-width:1}
.am-band-l{font-family:Inter,sans-serif; font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; pointer-events:none}
.am-band-l-chalk{fill:rgba(104,105,106,.55)}
.am-band-l-sand{fill:rgba(107,107,109,.7)}
.am-band-l-clay{fill:rgba(31,31,32,.5)}
.am-ring{fill:none; stroke:rgba(104,105,106,.22); stroke-width:1; stroke-dasharray:3 6}
.am-ring-l{font-family:Inter,sans-serif; font-size:11px; letter-spacing:.14em; text-transform:uppercase; fill:rgba(104,105,106,.6)}
.am-beam{will-change:transform}
.am-spoke{stroke:var(--navy); stroke-width:1.5; stroke-dasharray:5 5; opacity:0; transition:opacity .3s var(--ease); animation:amDash 1.2s linear infinite}
.am-spoke.on{opacity:.85}
@keyframes amDash{to{stroke-dashoffset:-20}}
.am-town{cursor:pointer; outline:none; transition:opacity .35s var(--ease)}
.am-dot{stroke:#FFFFFF; stroke-width:2.5; transform-box:fill-box; transform-origin:center; transition:transform .3s var(--ease), fill .3s var(--ease); filter:drop-shadow(0 2px 4px rgba(31,31,32,.35))}
.am-chalk .am-dot{fill:var(--navy)}
.am-sand .am-dot{fill:var(--peri)}
.am-clay .am-dot{fill:var(--ink)}
.am-halo{fill:none; stroke:var(--navy); stroke-width:1.5; opacity:0; transform:scale(.6); transform-box:fill-box; transform-origin:center;
transition:opacity .35s var(--ease), transform .45s var(--ease)}
.am-sand .am-halo{stroke:var(--peri)}
.am-clay .am-halo{stroke:var(--ink)}
.am-ping{fill:none; stroke:var(--navy); stroke-width:1.5; opacity:0; transform-box:fill-box; transform-origin:center}
.am-town.ping .am-ping{animation:amPing 1.1s cubic-bezier(.2,.7,.3,1) both}
@keyframes amPing{0%{transform:scale(1); opacity:.85} 100%{transform:scale(4.5); opacity:0}}
.am-l{font-family:Inter,sans-serif; font-size:13.5px; font-weight:600; fill:var(--ink); letter-spacing:.01em; transition:fill .3s var(--ease); paint-order:stroke; stroke:#FFFFFF; stroke-width:4px; stroke-linejoin:round}
.am-town:hover .am-dot,.am-town:focus-visible .am-dot,.am-town.on .am-dot{transform:scale(1.45)}
.am-town:hover .am-halo,.am-town:focus-visible .am-halo,.am-town.on .am-halo{opacity:.7; transform:scale(1)}
.am-town:hover .am-l,.am-town:focus-visible .am-l,.am-town.on .am-l{fill:var(--navy)}
.am.filtered .am-town:not(.am-match){opacity:.18}
.am-home-o{fill:none; stroke:var(--navy); stroke-width:1.5; opacity:.55; transform-box:fill-box; transform-origin:center; animation:amHome 3.2s ease-in-out infinite}
@keyframes amHome{0%,100%{transform:scale(1); opacity:.55} 50%{transform:scale(1.2); opacity:.2}}
.am-home-i{fill:var(--navy); filter:drop-shadow(0 6px 14px rgba(104,105,106,.4))}
.am-home-l{font-family:Inter,sans-serif; font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; fill:var(--navy)}
.am-north path{fill:var(--navy); opacity:.7}
.am-north text{font-family:Inter,sans-serif; font-size:11px; font-weight:700; letter-spacing:.1em; fill:var(--navy)}
.am-card{
display:flex; flex-direction:column; border-radius:var(--r); overflow:hidden; background:var(--block); color:#FFFFFF;
box-shadow:none; position:relative; min-height:0;
}
.am-photo{margin:0; position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--ink); flex:none}
.am-photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .6s var(--ease), transform 6s linear; transform:scale(1)}
.am-photo img.on{opacity:1; transform:scale(1.06)}
.am-photo::after{content:""; position:absolute; inset:auto 0 0 0; height:40%; background:linear-gradient(to top, rgba(31,31,32,.55), transparent); pointer-events:none}
.am-card-in{padding:20px 22px 22px; display:flex; flex-direction:column; gap:8px; flex:1}
.am-tag{display:inline-flex; align-items:center; gap:8px; align-self:flex-start; padding:5px 11px 5px 7px; border-radius:4px; font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); color:#FFFFFF}
.am-tag i{box-shadow:0 0 0 2px rgba(255,255,255,.5)}
.am-tag.am-clay i{background:var(--sky)}
.am-tag.am-chalk i{background:#FFFFFF}
.am-tag.am-sand i{background:var(--sky-2)}
.am-card h3{font-family:"Cormorant Garamond",Georgia,serif; font-weight:500; font-size:34px; line-height:1; color:#FFFFFF; margin:6px 0 0}
.am-miles{font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--sky); margin:0}
.am-line{font-size:14.5px; line-height:1.55; color:rgba(255,255,255,.84); margin:2px 0 0; flex:1}
.am-go{align-self:flex-start; margin-top:12px; padding:12px 20px; font-size:12px; background:#FFFFFF; color:var(--navy); border-color:#FFFFFF}
.am-go:hover{background:var(--sky-2); border-color:var(--sky-2); color:var(--ink)}
.am-card.swap .am-card-in > *{animation:amCardIn .5s var(--ease) both}
.am-card.swap .am-card-in > :nth-child(2){animation-delay:.05s}
.am-card.swap .am-card-in > :nth-child(3){animation-delay:.1s}
.am-card.swap .am-card-in > :nth-child(4){animation-delay:.15s}
.am-card.swap .am-card-in > :nth-child(5){animation-delay:.2s}
@keyframes amCardIn{from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none}}
.am-chips{display:none; grid-template-columns:1fr 1fr; gap:8px; margin-top:14px}
.am-chip{display:flex; align-items:center; gap:10px; min-width:0; padding:11px 12px; border-radius:4px; font-size:13.5px; font-weight:500; color:var(--ink);
white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
background:#FFFFFF; border:1px solid var(--line); transition:opacity .35s var(--ease), border-color .3s var(--ease)}
.am-chip:active{border-color:var(--navy)}
.am[data-filter="chalk"] .am-chip:not(.am-chalk),.am[data-filter="sand"] .am-chip:not(.am-sand),.am[data-filter="clay"] .am-chip:not(.am-clay){opacity:.3}
@media (max-width:900px){
.am-grid{grid-template-columns:1fr}
.am-card{flex-direction:row; align-items:stretch}
.am-photo{width:42%; aspect-ratio:auto; min-height:230px}
.am-card-in{padding:18px 20px}
}
@media (max-width:640px){
.am-l,.am-ring-l,.am-band-l,.am-north{display:none}
.am-dot{transform:scale(2); stroke-width:1.4}
.am-town:hover .am-dot,.am-town:focus-visible .am-dot,.am-town.on .am-dot{transform:scale(2.5)}
.am-hit{transform:scale(1.6); transform-box:fill-box; transform-origin:center}
.am-town:hover .am-halo,.am-town:focus-visible .am-halo,.am-town.on .am-halo{transform:scale(1.5)}
.am-ping{transform:scale(1.7)}
@keyframes amPing{0%{transform:scale(1.7); opacity:.85} 100%{transform:scale(6); opacity:0}}
.am-home-l{font-size:15px}
.am-chips{display:grid}
.am-card{flex-direction:column}
.am-photo{width:auto; aspect-ratio:16/10; min-height:0}
.am-card h3{font-size:28px}
.am-bar{display:grid; grid-template-columns:1fr; gap:8px}
.am-legend{display:grid; grid-template-columns:1fr 1fr; gap:8px}
.am-f{justify-content:center; padding:11px 10px; font-size:11px; letter-spacing:.08em; white-space:nowrap}
.am-find{width:100%; min-width:0}
}
@media (prefers-reduced-motion:reduce){.am-spoke,.am-home-o,.am-town.ping .am-ping{animation:none} .am-photo img{transition:opacity .4s; transform:none}}
.nf{min-height:clamp(420px,60vh,640px)}
.nf-links{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:10px}
.nf-links a{display:block; padding:16px 18px; border:1px solid var(--line); border-radius:var(--r-sm); color:var(--ink); font-weight:500; text-decoration:none;
transition:border-color .3s var(--ease), background .3s var(--ease)}
.nf-links a:hover{border-color:var(--navy); background:var(--wash)}
.pt-panel.hb45{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2248%22%20height%3D%2248%22%3E%3Cdefs%3E%3Cpattern%20id%3D%22p%22%20width%3D%2248%22%20height%3D%2248%22%20patternUnits%3D%22userSpaceOnUse%22%20patternTransform%3D%22rotate%2845%29%22%3E%3Crect%20width%3D%2248%22%20height%3D%2248%22%20fill%3D%22%23E9F7FB%22%2F%3E%3Crect%20x%3D%22-23.4%22%20y%3D%22-23.4%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%22-23.4%22%20y%3D%22-11.4%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%22-23.4%22%20y%3D%2224.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%22-23.4%22%20y%3D%2236.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%22-11.4%22%20y%3D%22-11.4%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%22-11.4%22%20y%3D%220.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%22-11.4%22%20y%3D%2236.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%22-11.4%22%20y%3D%2248.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%22-35.4%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%220.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%2212.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%2248.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2212.6%22%20y%3D%22-23.4%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2212.6%22%20y%3D%2212.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2212.6%22%20y%3D%2224.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2212.6%22%20y%3D%2260.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2224.6%22%20y%3D%22-23.4%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2224.6%22%20y%3D%22-11.4%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2224.6%22%20y%3D%2224.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2224.6%22%20y%3D%2236.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2236.6%22%20y%3D%22-11.4%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2236.6%22%20y%3D%220.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2236.6%22%20y%3D%2236.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2236.6%22%20y%3D%2248.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2248.6%22%20y%3D%22-35.4%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2248.6%22%20y%3D%220.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2248.6%22%20y%3D%2212.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2248.6%22%20y%3D%2248.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2260.6%22%20y%3D%22-23.4%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2260.6%22%20y%3D%2212.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2260.6%22%20y%3D%2224.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2260.6%22%20y%3D%2260.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3C%2Fpattern%3E%3C%2Fdefs%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22url%28%23p%29%22%2F%3E%3C%2Fsvg%3E")}
.pt-panel.hb90{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2248%22%20height%3D%2248%22%3E%3Cdefs%3E%3Cpattern%20id%3D%22p%22%20width%3D%2248%22%20height%3D%2248%22%20patternUnits%3D%22userSpaceOnUse%22%3E%3Crect%20width%3D%2248%22%20height%3D%2248%22%20fill%3D%22%23E9F7FB%22%2F%3E%3Crect%20x%3D%22-23.4%22%20y%3D%22-23.4%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%22-23.4%22%20y%3D%22-11.4%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%22-23.4%22%20y%3D%2224.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%22-23.4%22%20y%3D%2236.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%22-11.4%22%20y%3D%22-11.4%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%22-11.4%22%20y%3D%220.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%22-11.4%22%20y%3D%2236.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%22-11.4%22%20y%3D%2248.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%22-35.4%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%220.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%2212.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%2248.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2212.6%22%20y%3D%22-23.4%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2212.6%22%20y%3D%2212.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2212.6%22%20y%3D%2224.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2212.6%22%20y%3D%2260.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2224.6%22%20y%3D%22-23.4%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2224.6%22%20y%3D%22-11.4%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2224.6%22%20y%3D%2224.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2224.6%22%20y%3D%2236.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2236.6%22%20y%3D%22-11.4%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2236.6%22%20y%3D%220.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2236.6%22%20y%3D%2236.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2236.6%22%20y%3D%2248.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2248.6%22%20y%3D%22-35.4%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2248.6%22%20y%3D%220.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2248.6%22%20y%3D%2212.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2248.6%22%20y%3D%2248.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2260.6%22%20y%3D%22-23.4%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2260.6%22%20y%3D%2212.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2260.6%22%20y%3D%2224.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2260.6%22%20y%3D%2260.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3C%2Fpattern%3E%3C%2Fdefs%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22url%28%23p%29%22%2F%3E%3C%2Fsvg%3E")}
.pt-panel.stretcher{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cdefs%3E%3Cpattern%20id%3D%22p%22%20width%3D%2224%22%20height%3D%2224%22%20patternUnits%3D%22userSpaceOnUse%22%3E%3Crect%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22%23E9F7FB%22%2F%3E%3Crect%20x%3D%22-23.4%22%20y%3D%220.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%220.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2224.6%22%20y%3D%220.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2248.6%22%20y%3D%220.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%22-11.4%22%20y%3D%2212.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2212.6%22%20y%3D%2212.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2236.6%22%20y%3D%2212.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2260.6%22%20y%3D%2212.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3C%2Fpattern%3E%3C%2Fdefs%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22url%28%23p%29%22%2F%3E%3C%2Fsvg%3E")}
.pt-panel.basket{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2248%22%20height%3D%2248%22%3E%3Cdefs%3E%3Cpattern%20id%3D%22p%22%20width%3D%2248%22%20height%3D%2248%22%20patternUnits%3D%22userSpaceOnUse%22%3E%3Crect%20width%3D%2248%22%20height%3D%2248%22%20fill%3D%22%23E9F7FB%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%220.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%2212.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%2224.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2212.6%22%20y%3D%2224.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2224.6%22%20y%3D%220.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2236.6%22%20y%3D%220.6%22%20width%3D%2210.8%22%20height%3D%2222.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2224.6%22%20y%3D%2224.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3Crect%20x%3D%2224.6%22%20y%3D%2236.6%22%20width%3D%2222.8%22%20height%3D%2210.8%22%20fill%3D%22%23B5C9D0%22%2F%3E%3C%2Fpattern%3E%3C%2Fdefs%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22url%28%23p%29%22%2F%3E%3C%2Fsvg%3E")}
.bd-wall.stretcher{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2228%22%3E%3Cdefs%3E%3Cpattern%20id%3D%22p%22%20width%3D%2228%22%20height%3D%2228%22%20patternUnits%3D%22userSpaceOnUse%22%3E%3Crect%20width%3D%2228%22%20height%3D%2228%22%20fill%3D%22%23E9F7FB%22%2F%3E%3Crect%20x%3D%22-27.4%22%20y%3D%220.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%220.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2228.6%22%20y%3D%220.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2256.6%22%20y%3D%220.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%22-13.4%22%20y%3D%2214.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2214.6%22%20y%3D%2214.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2242.6%22%20y%3D%2214.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2270.6%22%20y%3D%2214.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3C%2Fpattern%3E%3C%2Fdefs%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22url%28%23p%29%22%2F%3E%3C%2Fsvg%3E")}
.bd-wall.flemish{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2242%22%20height%3D%2228%22%3E%3Cdefs%3E%3Cpattern%20id%3D%22p%22%20width%3D%2242%22%20height%3D%2228%22%20patternUnits%3D%22userSpaceOnUse%22%3E%3Crect%20width%3D%2242%22%20height%3D%2228%22%20fill%3D%22%23E9F7FB%22%2F%3E%3Crect%20x%3D%22-83.4%22%20y%3D%220.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%22-55.4%22%20y%3D%220.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%22-41.4%22%20y%3D%220.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%22-13.4%22%20y%3D%220.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%220.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2228.6%22%20y%3D%220.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2242.6%22%20y%3D%220.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2270.6%22%20y%3D%220.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2284.6%22%20y%3D%220.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%22112.6%22%20y%3D%220.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%22-62.4%22%20y%3D%2214.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%22-34.4%22%20y%3D%2214.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%22-20.4%22%20y%3D%2214.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%227.6%22%20y%3D%2214.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2221.6%22%20y%3D%2214.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2249.6%22%20y%3D%2214.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2263.6%22%20y%3D%2214.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2291.6%22%20y%3D%2214.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%22105.6%22%20y%3D%2214.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%22133.6%22%20y%3D%2214.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3C%2Fpattern%3E%3C%2Fdefs%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22url%28%23p%29%22%2F%3E%3C%2Fsvg%3E")}
.bd-wall.english{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2228%22%3E%3Cdefs%3E%3Cpattern%20id%3D%22p%22%20width%3D%2228%22%20height%3D%2228%22%20patternUnits%3D%22userSpaceOnUse%22%3E%3Crect%20width%3D%2228%22%20height%3D%2228%22%20fill%3D%22%23E9F7FB%22%2F%3E%3Crect%20x%3D%22-27.4%22%20y%3D%220.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%220.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2228.6%22%20y%3D%220.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2256.6%22%20y%3D%220.6%22%20width%3D%2226.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%22-6.4%22%20y%3D%2214.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%227.6%22%20y%3D%2214.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2221.6%22%20y%3D%2214.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2235.6%22%20y%3D%2214.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2249.6%22%20y%3D%2214.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3C%2Fpattern%3E%3C%2Fdefs%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22url%28%23p%29%22%2F%3E%3C%2Fsvg%3E")}
.bd-wall.header{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2214%22%20height%3D%2228%22%3E%3Cdefs%3E%3Cpattern%20id%3D%22p%22%20width%3D%2214%22%20height%3D%2228%22%20patternUnits%3D%22userSpaceOnUse%22%3E%3Crect%20width%3D%2214%22%20height%3D%2228%22%20fill%3D%22%23E9F7FB%22%2F%3E%3Crect%20x%3D%22-13.4%22%20y%3D%220.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%220.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2214.6%22%20y%3D%220.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2228.6%22%20y%3D%220.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%22-6.4%22%20y%3D%2214.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%227.6%22%20y%3D%2214.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2221.6%22%20y%3D%2214.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3Crect%20x%3D%2235.6%22%20y%3D%2214.6%22%20width%3D%2212.8%22%20height%3D%2212.8%22%20fill%3D%22%23148FB8%22%2F%3E%3C%2Fpattern%3E%3C%2Fdefs%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22url%28%23p%29%22%2F%3E%3C%2Fsvg%3E")}
.fm-panel.f600{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2230%22%20height%3D%2260%22%3E%3Cdefs%3E%3Cpattern%20id%3D%22p%22%20width%3D%2230%22%20height%3D%2260%22%20patternUnits%3D%22userSpaceOnUse%22%3E%3Crect%20width%3D%2230%22%20height%3D%2260%22%20fill%3D%22%23FFFFFF%22%2F%3E%3Crect%20x%3D%22-29.4%22%20y%3D%220.6%22%20width%3D%2228.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%220.6%22%20width%3D%2228.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%2230.6%22%20y%3D%220.6%22%20width%3D%2228.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%2260.6%22%20y%3D%220.6%22%20width%3D%2228.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%22-29.4%22%20y%3D%2230.6%22%20width%3D%2228.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%2230.6%22%20width%3D%2228.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%2230.6%22%20y%3D%2230.6%22%20width%3D%2228.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%2260.6%22%20y%3D%2230.6%22%20width%3D%2228.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3C%2Fpattern%3E%3C%2Fdefs%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22url%28%23p%29%22%2F%3E%3C%2Fsvg%3E")}
.fm-panel.f900{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2245.0%22%20height%3D%2260%22%3E%3Cdefs%3E%3Cpattern%20id%3D%22p%22%20width%3D%2245.0%22%20height%3D%2260%22%20patternUnits%3D%22userSpaceOnUse%22%3E%3Crect%20width%3D%2245.0%22%20height%3D%2260%22%20fill%3D%22%23FFFFFF%22%2F%3E%3Crect%20x%3D%22-44.4%22%20y%3D%220.6%22%20width%3D%2243.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%220.6%22%20width%3D%2243.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%2245.6%22%20y%3D%220.6%22%20width%3D%2243.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%2290.6%22%20y%3D%220.6%22%20width%3D%2243.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%22-21.9%22%20y%3D%2230.6%22%20width%3D%2243.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%2223.1%22%20y%3D%2230.6%22%20width%3D%2243.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%2268.1%22%20y%3D%2230.6%22%20width%3D%2243.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%22113.1%22%20y%3D%2230.6%22%20width%3D%2243.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3C%2Fpattern%3E%3C%2Fdefs%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22url%28%23p%29%22%2F%3E%3C%2Fsvg%3E")}
.fm-panel.f1200{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2260%22%20height%3D%2260%22%3E%3Cdefs%3E%3Cpattern%20id%3D%22p%22%20width%3D%2260%22%20height%3D%2260%22%20patternUnits%3D%22userSpaceOnUse%22%3E%3Crect%20width%3D%2260%22%20height%3D%2260%22%20fill%3D%22%23FFFFFF%22%2F%3E%3Crect%20x%3D%22-59.4%22%20y%3D%220.6%22%20width%3D%2258.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%220.6%22%20width%3D%2258.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%2260.6%22%20y%3D%220.6%22%20width%3D%2258.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%22120.6%22%20y%3D%220.6%22%20width%3D%2258.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%22-29.4%22%20y%3D%2230.6%22%20width%3D%2258.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%2230.6%22%20y%3D%2230.6%22%20width%3D%2258.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%2290.6%22%20y%3D%2230.6%22%20width%3D%2258.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%22150.6%22%20y%3D%2230.6%22%20width%3D%2258.8%22%20height%3D%2228.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3C%2Fpattern%3E%3C%2Fdefs%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22url%28%23p%29%22%2F%3E%3C%2Fsvg%3E")}
.fm-panel.fplank{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2260%22%3E%3Cdefs%3E%3Cpattern%20id%3D%22p%22%20width%3D%2220%22%20height%3D%2260%22%20patternUnits%3D%22userSpaceOnUse%22%3E%3Crect%20width%3D%2720%27%20height%3D%2760%27%20fill%3D%27%23FFFFFF%27%2F%3E%3Crect%20x%3D%220.6%22%20y%3D%220.6%22%20width%3D%228.8%22%20height%3D%2258.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%2210.6%22%20y%3D%22-29.4%22%20width%3D%228.8%22%20height%3D%2258.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3Crect%20x%3D%2210.6%22%20y%3D%2230.6%22%20width%3D%228.8%22%20height%3D%2258.8%22%20fill%3D%22%23DDE6E9%22%2F%3E%3C%2Fpattern%3E%3C%2Fdefs%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22url%28%23p%29%22%2F%3E%3C%2Fsvg%3E")}
.phx-hit{position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; cursor:zoom-in;
background:transparent; display:block; z-index:3}
.phx-hit:focus-visible{outline:2px solid var(--phx-ring,#FFFFFF); outline-offset:-4px}
.phx-zoom{position:absolute; right:12px; bottom:12px; width:38px; height:38px; border-radius:50%;
display:grid; place-items:center; color:var(--phx-zoom-fg,#FFFFFF);
background:var(--phx-zoom-bg,rgba(14,14,14,.55));
backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
opacity:0; transform:translateY(6px) scale(.9);
transition:opacity .45s cubic-bezier(.16,1,.3,1), transform .45s cubic-bezier(.16,1,.3,1)}
.phx-zoom svg{width:16px; height:16px}
.phx-hit:hover .phx-zoom,.phx-hit:focus-visible .phx-zoom{opacity:1; transform:none}
@media (pointer:coarse){ .phx-zoom{opacity:1; transform:none} }
.phx{position:fixed; inset:0; z-index:9700; display:grid; place-items:center;
padding:clamp(16px,4vw,56px); background:var(--phx-bg,rgba(14,14,14,.95));
opacity:0; visibility:hidden; transition:opacity .4s cubic-bezier(.16,1,.3,1), visibility .4s}
.phx.on{opacity:1; visibility:visible}
.phx-stage{display:grid; place-items:center; max-width:100%}
.phx img{max-width:100%; max-height:76vh; width:auto; height:auto; object-fit:contain;
border-radius:var(--phx-radius,4px); transform:scale(.97);
transition:transform .5s cubic-bezier(.16,1,.3,1)}
.phx.on img{transform:none}
.phx p{margin:18px auto 0; max-width:64ch; text-align:center; font-size:13.6px; line-height:1.6;
color:var(--phx-cap,rgba(255,255,255,.82))}
.phx-btn{position:absolute; width:46px; height:46px; border-radius:50%; cursor:pointer;
display:grid; place-items:center; color:#FFFFFF;
border:1px solid var(--phx-line,rgba(255,255,255,.28)); background:var(--phx-btn,rgba(255,255,255,.08));
transition:background .3s ease, border-color .3s ease, transform .3s cubic-bezier(.16,1,.3,1)}
.phx-btn:hover{background:var(--phx-accent,#68696A); border-color:var(--phx-accent,#68696A); transform:scale(1.06)}
.phx-btn svg{width:18px; height:18px}
.phx-x{top:18px; right:18px}
.phx-prev{left:18px; top:50%; margin-top:-23px}
.phx-next{right:18px; top:50%; margin-top:-23px}
.phx-count{position:absolute; left:50%; bottom:20px; transform:translateX(-50%);
font-family:Inter,system-ui,sans-serif; font-size:11.5px; letter-spacing:.18em;
text-transform:uppercase; color:var(--phx-cap,rgba(255,255,255,.6))}
@media (max-width:640px){
.phx-prev{left:10px} .phx-next{right:10px} .phx-x{top:10px; right:10px}
.phx-btn{width:42px; height:42px}
}
.phx-instant,.phx-instant img{transition:none !important}
@media (prefers-reduced-motion:reduce){ .phx,.phx img,.phx-zoom{transition:none !important} }
:root{--sw-accent:#03B3EF; --sw-accent-fg:#0E0E0E;
--proof-note-bg:rgba(3,179,239,.12); --proof-note-line:rgba(3,179,239,.42);
--phx-accent:#68696A; --phx-bg:rgba(31,31,32,.95); --phx-radius:4px}
:root{--hdr:132px; --hdr-solid:92px}
.hdr .wrap-wide{max-width:var(--max)}
.hdr.solid{height:var(--hdr-solid)}
.hdr .lockup{position:relative; gap:0}
.hdr .lockup img,.hdr.solid .lockup img{height:84px; width:auto; transition:height .4s var(--ease), opacity .4s var(--ease)}
.hdr.solid .lockup img{height:62px}
.hdr .lockup .mark-on-dark{filter:drop-shadow(0 1px 2px rgba(0,0,0,.35)) drop-shadow(0 2px 14px rgba(0,0,0,.3))}
.hdr .lockup .mark-on-light{display:block; position:absolute; left:0; top:0; opacity:0}
.hdr.solid .lockup .mark-on-dark{display:block; opacity:0}
.hdr.solid .lockup .mark-on-light{opacity:1}
.lockup-drawer img{height:56px; width:auto}
.lockup-drawer .mark-on-dark{display:block}
.ftr-about .lockup img,.ftr-compact .ftr-about .lockup img{height:104px; width:auto}
@media (max-width:760px){
:root{--hdr:92px; --hdr-solid:80px}
.hdr .lockup img{height:56px}
.hdr.solid .lockup img{height:54px}
}
@media (max-width:360px){ .hdr .lockup img,.hdr.solid .lockup img{height:54px} }
.hdr.solid{background:transparent; -webkit-backdrop-filter:none; backdrop-filter:none}
.hdr::before{content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; opacity:0;
background:rgba(243,244,248,.9); -webkit-backdrop-filter:blur(18px) saturate(1.4); backdrop-filter:blur(18px) saturate(1.4);
transition:opacity .4s var(--ease)}
.hdr.solid::before{opacity:1}
.nav-menu{left:calc(50% - 140px); width:280px; min-width:0; transform:translateY(-8px)}
.nav-drop:hover .nav-menu,.nav-drop:focus-within .nav-menu,.nav-drop.open .nav-menu{transform:none}
.nav-menu a{text-shadow:none}
html{scroll-padding-top:calc(var(--hdr-solid) + 14px)}
.hdr:not(.solid) .nav > a,.hdr:not(.solid) .nav-dropt{text-shadow:0 1px 2px rgba(0,0,0,.5), 0 2px 14px rgba(0,0,0,.45)}
.intro-on .intro.d3-intro{z-index:70; background:#E6E7E9; flex-direction:column;
animation:d3Blind .66s cubic-bezier(.72,0,.18,1) 2.6s forwards}
@keyframes d3Blind{from{clip-path:inset(0 0 0 0)} to{clip-path:inset(0 0 100% 0)}}
.d3-in{position:relative; display:flex; flex-direction:column; align-items:center; gap:clamp(20px,2.6vh,30px); padding:0 24px;
animation:d3InLift .6s cubic-bezier(.6,0,.3,1) 2.55s forwards}
@keyframes d3InLift{to{transform:translateY(-36px); opacity:0}}
.d3-glow{position:absolute; left:50%; top:38%; width:min(80vw,760px); aspect-ratio:1; border-radius:50%; pointer-events:none;
transform:translate(-50%,-50%) scale(.8); opacity:0;
background:radial-gradient(closest-side, rgba(3,179,239,.22), rgba(3,179,239,.07) 52%, rgba(3,179,239,0) 74%);
animation:d3Glow 2.4s ease-in-out .2s forwards}
@keyframes d3Glow{0%{opacity:0; transform:translate(-50%,-50%) scale(.8)} 55%{opacity:1; transform:translate(-50%,-50%) scale(1.04)}
100%{opacity:.55; transform:translate(-50%,-50%) scale(1)}}
.d3-logo{position:relative; display:block; height:min(52vh,460px); width:auto; overflow:visible}
.d3-ring{fill:none; stroke:#03B3EF; stroke-width:20; stroke-linecap:round; stroke-dasharray:1 1; stroke-dashoffset:1;
animation:d3Ring 1.05s cubic-bezier(.6,0,.25,1) .15s forwards, d3Fade .35s ease 1.5s forwards}
@keyframes d3Ring{to{stroke-dashoffset:0}}
@keyframes d3Fade{to{opacity:0}}
.d3-mark{fill:#03B3EF; opacity:0; transform-box:fill-box; transform-origin:50% 50%; transform:scale(.94);
animation:d3Mark .7s cubic-bezier(.2,.7,.2,1) .95s forwards}
@keyframes d3Mark{to{opacity:1; transform:none}}
.d3-words{fill:#2A2B2D; opacity:0; transform:translateY(34px); animation:d3Rise .7s cubic-bezier(.2,.7,.2,1) 1.35s forwards}
@keyframes d3Rise{to{opacity:1; transform:none}}
.d3-hair{display:block; width:min(280px,56vw); height:1px; background:linear-gradient(90deg, rgba(3,179,239,0), #03B3EF 30%, #2A2B2D 50%, #03B3EF 70%, rgba(3,179,239,0));
transform:scaleX(0); animation:d3Hair .6s cubic-bezier(.6,0,.3,1) 1.8s forwards}
@keyframes d3Hair{to{transform:scaleX(1)}}
.d3-tag{display:block; font:italic 400 clamp(21px,2.3vw,32px)/1.3 "Cormorant Garamond",Georgia,serif; color:#2A2B2D;
text-align:center; text-wrap:balance; max-width:30ch; opacity:0; transform:translateY(10px);
animation:d3Rise .6s cubic-bezier(.2,.7,.2,1) 2s forwards}
.intro-on .hdr .lockup,.intro-on .hdr .nav,.intro-on .hdr .hdr-cta,.intro-on .hdr .burger{opacity:1}
.intro-on .rail{visibility:visible}
.intro-on .intro.d3-intro.out{pointer-events:none; animation:d3Blind .3s cubic-bezier(.72,0,.18,1) forwards}
@media (max-width:640px){ .d3-logo{height:min(40vh,300px)} }
.d1-wm{background:var(--navy); -webkit-mask:url("/assets/jt/img/brand/mark-white.svg") center/contain no-repeat;
mask:url("/assets/jt/img/brand/mark-white.svg") center/contain no-repeat}
.d1-backs .d1-wm{background:#FFFFFF; opacity:.07}
.hero-slides.d3-slides > picture{position:absolute; inset:0; display:block; opacity:0;
transform-origin:50% 55%; will-change:transform, opacity;
animation:d3Slide 21s cubic-bezier(.3,.05,.2,1) infinite both}
.hero-slides.d3-slides img{position:static; inset:auto; display:block; width:100%; height:100%; object-fit:cover;
opacity:1; animation:none; transform:none; will-change:auto; filter:saturate(1.12) contrast(1.05) brightness(1.04)}
.hero-slides.d3-slides > .d3-s0{opacity:1; animation-name:d3SlideFirst}
.hero-slides.d3-slides > .d3-s1{animation-delay:7s}
.hero-slides.d3-slides > .d3-s2{animation-delay:14s}
@keyframes d3Slide{
0%{opacity:0; transform:scale(1.22)} 6.7%{opacity:1}
33.3%{opacity:1; transform:scale(1.03)} 40%{opacity:0; transform:scale(1)}
100%{opacity:0; transform:scale(1.22)}
}
@keyframes d3SlideFirst{
0%{opacity:1; transform:scale(1.22)}
33.3%{opacity:1; transform:scale(1.03)} 40%{opacity:0; transform:scale(1)}
99.9%{opacity:0; transform:scale(1.22)} 100%{opacity:1; transform:scale(1.22)}
}
.d1-hero .hero-scrim{background:
linear-gradient(180deg, rgba(18,18,19,.45) 0, rgba(18,18,19,0) 160px),
radial-gradient(60% 44% at 50% 52%, rgba(18,18,19,.64) 0%, rgba(18,18,19,.52) 45%, rgba(18,18,19,.2) 80%, rgba(18,18,19,0) 100%),
radial-gradient(24% 26% at 10% 8%, rgba(18,18,19,.42) 0%, rgba(18,18,19,.18) 55%, rgba(18,18,19,0) 100%),
linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,0) 24%, rgba(0,0,0,0) 70%, rgba(0,0,0,.36) 100%)}
.d1-hero .kicker{text-shadow:0 1px 3px rgba(0,0,0,.5), 0 2px 18px rgba(0,0,0,.6)}
.d1-hero .lead{text-shadow:0 1px 3px rgba(0,0,0,.45), 0 2px 18px rgba(0,0,0,.55); max-width:62ch}
.d1-hero-in{max-width:1180px}
.d1-hero h1{text-wrap:balance}
.d3-kp{white-space:nowrap}
@media (max-width:760px){
.d3-kp{display:block}
.d3-kdot{display:none}
.d1-hero{padding-top:calc(var(--hdr) + 44px)}
.d1-hero .hero-scrim{background:
linear-gradient(180deg, rgba(18,18,19,.45) 0, rgba(18,18,19,0) 140px),
radial-gradient(100% 54% at 50% 48%, rgba(18,18,19,.64) 0%, rgba(18,18,19,.5) 50%, rgba(18,18,19,.18) 84%, rgba(18,18,19,0) 100%),
linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,0) 18%)}
}
.d3-caps{position:absolute; left:var(--gut); bottom:clamp(28px,4.5vh,52px); z-index:2; display:flex; flex-direction:column;
align-items:flex-start; gap:12px; pointer-events:none}
.d3-cap-set{position:relative; height:26px; width:min(360px,40vw)}
.d3-cap{position:absolute; inset:0; display:flex; align-items:center; opacity:0;
animation:d3cap 21s linear infinite; animation-delay:calc(var(--i) * 7s)}
.d3-cap b{font:italic 400 22px/1.1 "Cormorant Garamond",Georgia,serif; color:#FFFFFF; white-space:nowrap;
text-shadow:0 1px 3px rgba(0,0,0,.45), 0 2px 14px rgba(0,0,0,.55)}
@keyframes d3cap{0%{opacity:0; clip-path:inset(0 100% 0 0); transform:translateX(-8px)} 5%{opacity:1; clip-path:inset(0 0 0 0); transform:none}
30%{opacity:1; clip-path:inset(0 0 0 0)} 33.3%{opacity:0; transform:translateY(-4px)} 100%{opacity:0}}
.d3-prog{display:flex; gap:6px; width:min(200px,26vw)}
.d3-prog i{flex:1; height:2px; background:rgba(255,255,255,.32); overflow:hidden; position:relative}
.d3-prog i::after{content:""; position:absolute; inset:0; background:var(--sky); transform-origin:left; transform:scaleX(0);
animation:d3bar 21s linear infinite; animation-delay:calc(var(--i) * 7s)}
@keyframes d3bar{0%{transform:scaleX(0)} 33.3%{transform:scaleX(1)} 33.31%,100%{transform:scaleX(0)}}
@media (max-height:760px) and (min-width:761px){ .d3-caps{display:none} }
@media (max-width:1100px){ .d3-caps{display:none} }
.d1-intro .d1-wm-b{left:auto; right:4vw; bottom:auto; top:clamp(70px,7vw,120px)}
.marks .fill svg{color:var(--sky)}
.d1-badge .rating b{font-variant-numeric:lining-nums}
.d1-intro-head h2{text-wrap:balance}
.d3-zoom{overflow:hidden}
.d3-zoom img{transition:transform 1.1s var(--ease)}
.d3-zoom:hover img{transform:scale(1.045)}
.d3-also{padding:clamp(46px,4.6vw,70px) 0 0}
.d3-also .also-head{justify-content:center; text-align:center}
.d3-also-line{display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:6px 26px; margin-top:14px}
.d3-also-line i{width:6px; height:6px; border-radius:50%; background:var(--sky); flex:none}
.d3-also-c{display:inline-flex; align-items:center; min-height:44px; font-family:"Cormorant Garamond",Georgia,serif;
font-size:clamp(22px,2vw,28px); color:var(--ink); background:linear-gradient(var(--navy),var(--navy)) 0 88%/0 1px no-repeat;
transition:color .3s var(--ease), background-size .45s var(--ease)}
.d3-also-c:hover,.d3-also-c:focus-visible{color:var(--navy); background-size:100% 1px}
@media (max-width:640px){ .d3-also-line{flex-direction:column; gap:0} .d3-also-line i{display:none} }
.d1-mat-tab{position:relative; overflow:hidden}
.d1-mat-tab.on::after{content:""; position:absolute; left:16px; right:16px; bottom:7px; height:2px; border-radius:2px;
background:var(--navy); transform-origin:left; transform:scaleX(0); animation:d3tab 6s linear both}
.d1-mat.d3-hold .d1-mat-tab.on::after{animation:none; transform:scaleX(1); opacity:.35}.d1-mat.jw-boiler-tabs.d3-hold .d1-mat-tab.on::after{animation:none; transform:scaleX(1); opacity:.35}
@keyframes d3tab{to{transform:scaleX(1)}}
.d1-mat-veil{background:
linear-gradient(92deg, rgba(18,18,19,.86) 0%, rgba(18,18,19,.7) 44%, rgba(18,18,19,.16) 78%, rgba(18,18,19,.26) 100%),
linear-gradient(0deg, rgba(0,0,0,.42), transparent 55%)}
.d1-mat-d{font-size:clamp(20px,1.6vw,24px)}
.d1-gr-copy h2{max-width:none; text-wrap:balance}
@media (min-width:901px){ .d1-gr-in{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)} }
.d3-offer{margin:-8px 0 26px; padding-left:14px; border-left:2px solid var(--sky); color:var(--ink); font-weight:500}
.plq-back b{color:var(--ink) !important}
.plq:hover .plq-front b,.plq:focus-visible .plq-front b{color:var(--ink) !important}
.plq-back p{color:var(--body)}
.plq-face{transition:visibility 0s linear .4s, box-shadow .4s var(--ease), border-color .4s var(--ease), background .45s var(--ease)}
.plq:not(.flip) .plq-back{visibility:hidden; pointer-events:none}
.plq.flip .plq-front{visibility:hidden; pointer-events:none}
.d1-backs .plq-face .plq-logo{height:64px; max-width:200px; flex:none}
.d1-backs .plq-back .plq-logo{height:50px}
.plq-logo img,.plq:hover .plq-logo img,.plq:focus-visible .plq-logo img,.plq-back .plq-logo img{
filter:drop-shadow(0 8px 14px rgba(0,0,0,.25)); height:100%; width:auto}
.plq-logo img.d3-plq-checkatrade{height:auto; width:150px; padding:6px 8px; background:#FFFFFF; border-radius:var(--r-sm)}
.plq-back .plq-logo img.d3-plq-checkatrade{width:130px}
.d3-g{display:inline-flex; flex-direction:column; align-items:center; gap:4px; color:#FFFFFF}
.d3-g b{font:400 34px/1 "Cormorant Garamond",Georgia,serif}
.d3-g span{display:inline-flex; gap:3px; color:var(--sky)}
.plq:hover .d3-g,.plq:focus-visible .d3-g,.plq-back .d3-g{color:var(--ink)}
.plq-back .d3-g b{font-size:28px}
.plq-front small{max-width:26ch; text-wrap:balance}
.plq-front{justify-content:flex-start; padding-top:clamp(26px,2.4vw,34px)}
.eyebrow.light{color:#C6E6F1}.d1-backs .eyebrow,.d1-backs .plq:not(:hover):not(:focus-visible) .plq-front .plq-hint{color:#05668E}.fs-cta-vn .eyebrow.light{color:#05668E}.d3-due-out .eyebrow.light{color:#05668E}.jw-boiler-tabs .eyebrow.light{color:#05668E}.jw-rd-out .eyebrow.light{color:#05668E}
.step{position:relative}
.step::before{content:""; position:absolute; left:0; right:0; top:0; height:2px; background:var(--navy);
transform:scaleX(0); transform-origin:left; transition:transform 1s var(--ease) .25s}
.step.in::before,.no-reveal .step::before,html:not(.js) .step::before{transform:scaleX(1)}
.step .step-n{color:var(--navy)}
.d1-gal figure{cursor:zoom-in}
.rq{padding-top:72px}
.rq-stage{display:grid; min-height:0}
.rq-item{position:relative; inset:auto; grid-area:1 / 1; align-self:center;
transition:opacity .26s ease, transform .26s ease}
.rq-item.on{transition:opacity .34s ease .28s, transform .5s cubic-bezier(.16,1,.3,1) .28s}
.rq-dots{display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:0}
.rq-dot{position:relative; width:18px; height:44px; background:none; transform:none}
.rq-dot.on{background:none; transform:none}
.rq-dot::after{content:""; position:absolute; left:50%; top:50%; width:6px; height:6px; border-radius:50%; background:var(--line);
transform:translate(-50%,-50%); transition:background .3s var(--ease), transform .3s var(--ease)}
.rq-dot.on::after{background:var(--navy); transform:translate(-50%,-50%) scale(1.4)}
.d3-rev-sub{text-align:center; margin:clamp(22px,2.4vw,34px) 0 0; color:var(--peri-text); font-size:14.5px}
.d3-due{position:relative; background:var(--wash); overflow:hidden}
.d3-due > .wrap{position:relative; z-index:1}
.d3-due-in{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:clamp(18px,2vw,28px);
max-width:1080px; margin:clamp(30px,3.4vw,50px) auto 0; align-items:stretch}
.d3-due-form{background:#FFFFFF; border:1px solid var(--line); border-radius:var(--r); padding:clamp(24px,2.8vw,40px);
display:flex; flex-direction:column; gap:22px}
.d3-due-form[hidden]{display:none}
.d3-due-h{margin:0; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(26px,2.2vw,32px); line-height:1.15; color:var(--ink)}
.d3-due-row{display:grid; grid-template-columns:1.3fr 1fr; gap:16px}
.d3-due .field{display:flex; flex-direction:column; gap:8px}
.d3-due .field span{font-size:11.5px; font-weight:600; letter-spacing:1.6px; text-transform:uppercase; color:var(--peri-text)}
.d3-due select{height:54px; width:100%; padding:0 40px 0 16px; font:inherit; font-size:16px; color:var(--ink); cursor:pointer;
background:#FFFFFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23037196' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 16px center/12px 8px;
border:1px solid var(--line); border-radius:var(--r-sm); -webkit-appearance:none; appearance:none;
transition:border-color .3s var(--ease), box-shadow .3s var(--ease)}
.d3-due select:hover{border-color:var(--sky)}
.d3-due select:focus{outline:none; border-color:var(--navy); box-shadow:0 0 0 3px rgba(3,179,239,.22)}
.d3-sw{position:relative; display:flex; align-items:center; gap:14px; min-height:44px; cursor:pointer; color:var(--ink); font-size:15px; line-height:1.4}
.d3-sw input{position:absolute; opacity:0; width:52px; height:30px; margin:0; cursor:pointer}
.d3-sw-t{position:relative; flex:none; width:52px; height:30px; border-radius:100px; background:var(--line);
transition:background .3s var(--ease)}
.d3-sw-t i{position:absolute; left:3px; top:3px; width:24px; height:24px; border-radius:50%; background:#FFFFFF;
box-shadow:none; transition:transform .35s var(--ease)}
.d3-sw input:checked + .d3-sw-t{background:var(--navy)}
.d3-sw input:checked + .d3-sw-t i{transform:translateX(22px)}
.d3-sw input:focus-visible + .d3-sw-t{outline:2px solid var(--navy); outline-offset:3px}
.d3-due-year{margin-top:auto; padding-top:6px}
.d3-due-ticks{display:grid; grid-template-columns:repeat(12,1fr); gap:4px}
.d3-due-ticks i{height:8px; border-radius:2px; background:var(--line); transition:background .4s var(--ease); transition-delay:calc(var(--k,0) * 40ms)}
.d3-due-ticks i.on{background:var(--sky)}
.d3-due-ticks.late i.on{background:var(--navy)}
.d3-due-scale{display:flex; justify-content:space-between; margin-top:10px}
.d3-due-scale b{font-size:11.5px; font-weight:600; letter-spacing:1.6px; text-transform:uppercase; color:var(--peri-text)}
.d3-due-out{position:relative; background:#EDEEEF; color:#262727; border-radius:var(--r);
padding:clamp(26px,3vw,44px); display:flex; flex-direction:column; gap:10px; overflow:hidden}
.d3-due-out::after{content:""; position:absolute; right:-60px; bottom:-60px; width:240px; aspect-ratio:1; background:#FFFFFF; opacity:.06;
-webkit-mask:url("/assets/jt/img/brand/mark-white.svg") center/contain no-repeat; mask:url("/assets/jt/img/brand/mark-white.svg") center/contain no-repeat;
pointer-events:none}
.d3-due-out > *{position:relative; z-index:1}
.d3-due-out .eyebrow{margin:0}
.d3-due-t{margin:0; font-family:"Cormorant Garamond",Georgia,serif; font-weight:400; font-size:clamp(36px,3.6vw,54px);
line-height:1.05; font-variant-numeric:lining-nums; text-wrap:balance}
.d3-due-s{margin:0; font-size:15px; line-height:1.6; color:#39393A}
.d3-due-s b{color:#262727; font-weight:600}
.d3-due-l{display:flex; gap:10px; align-items:flex-start; margin:4px 0 0; font-size:14.5px; line-height:1.55; color:#39393A}
.d3-due-l svg{flex:none; margin-top:2px; color:#05668E}
.d3-due-ll{margin-top:8px; padding-top:16px; border-top:1px solid rgba(42,43,45,.2); display:grid; gap:4px}
.d3-due-ll[hidden]{display:none}
.d3-due-lh{margin:0; font-size:11.5px; font-weight:600; letter-spacing:1.6px; text-transform:uppercase; color:#05668E}
.d3-due-lt{margin:0; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(26px,2.4vw,34px); line-height:1.1}
.d3-due-lp{margin:4px 0 0; font-size:14px; line-height:1.6; color:#3D3E3F}
.d3-due-out .btn{margin-top:auto; align-self:flex-start}
.d3-due-out .btn:hover{background:var(--sky); color:var(--ink)}
.d3-due-out.swap .d3-due-t,.d3-due-out.swap .d3-due-s,.d3-due-out.swap .d3-due-lt{animation:d3Swap .5s var(--ease) both}
@keyframes d3Swap{from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none}}
@media (max-width:900px){ .d3-due-in{grid-template-columns:1fr} }
@media (max-width:340px){ .d3-due-row{grid-template-columns:1fr} }
.d1-faq{padding:var(--sec) 0; background:#FFFFFF}
.faq summary{font-size:clamp(20px,1.8vw,24px)}
.faq-a p{font-size:16px}
.d1-contact-card .field input,.d1-contact-card .field select{height:52px}.ip-contact .d1-contact-card .field input,.ip-contact .d1-contact-card .field select{height:52px}
.d1-contact-card .field select{width:100%; padding:10px 28px 12px 0; font:inherit; font-size:16px; color:#FFFFFF; cursor:pointer;
background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23ffffff' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 2px center/12px 8px;
border:0; border-bottom:1px solid rgba(255,255,255,.32); border-radius:0; -webkit-appearance:none; appearance:none}.ip-contact .d1-contact-card .field select{width:100%; padding:10px 28px 12px 0; font:inherit; font-size:16px; color:#262727; cursor:pointer;
background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23ffffff' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 2px center/12px 8px;
border:0; border-bottom:1px solid rgba(42,43,45,.32); border-radius:0; -webkit-appearance:none; appearance:none}
.d1-contact-card .field select:focus{outline:none; border-bottom-color:#FFFFFF; box-shadow:0 1px 0 #FFFFFF}.ip-contact .d1-contact-card .field select:focus{outline:none; border-bottom-color:rgb(42,43,45); box-shadow:0 1px 0 rgb(42,43,45)}
.d1-contact-card .field select option{color:#0E0E0E}.ip-contact .d1-contact-card .field select option{color:#0E0E0E}
.d1-contact-card .field select.d3-flash{animation:d3Flash 1.2s var(--ease)}.ip-contact .d1-contact-card .field select.d3-flash{animation:d3Flash 1.2s var(--ease)}
@keyframes d3Flash{0%,100%{box-shadow:none} 30%{box-shadow:none}}
.d1-contact-card .proof-sent{color:#FFFFFF}.ip-contact .d1-contact-card .proof-sent{color:#262727}
.d1-contact-points li,.d1-contact-points li:last-child{border:0}
.form-note{font-size:13px}
.d3-seo{margin-top:clamp(14px,1.6vw,22px)}
.d3-seo p{max-width:80ch; color:var(--body); font-size:15.5px; line-height:1.7}
.d1-areas .area-rail{margin-top:clamp(26px,3vw,40px)}
.area-c{padding:10px 0; margin-right:30px; gap:10px; border:0; border-radius:0; background:none; box-shadow:none}
.area-c::before{content:""; flex:none; align-self:center; width:5px; height:5px; border-radius:50%; background:var(--sky); margin-right:20px}
.area-c:hover{transform:none}
.area-c b{transition:color .3s var(--ease)}
.area-c:hover b,.area-c:focus-visible b{color:var(--navy)}
.area-rail:hover .area-track,.area-rail:focus-within .area-track{animation-play-state:paused}
.d3-ftr-marks{display:grid; grid-template-columns:repeat(2,max-content); gap:8px 24px; margin:16px 0 0 !important; max-width:none !important}
.d3-ftr-marks span{display:inline-flex; align-items:center; gap:10px; color:rgba(255,255,255,.82)}
.d3-ftr-marks span::before{content:""; width:4px; height:4px; border-radius:50%; background:var(--sky); flex:none}
.ftr-compact .ftr-about .ftr-tag{color:#FFFFFF}
.ftr-compact .ftr-bot{padding-bottom:84px}
@media (max-width:1380px){ .ftr-compact .ftr-bot{padding-bottom:calc(150px + env(safe-area-inset-bottom))} }
@media (max-width:360px){ .d3-ftr-marks{grid-template-columns:max-content} }
@media (max-width:1380px){
.rail{right:auto; left:50%; top:auto; bottom:calc(12px + env(safe-area-inset-bottom, 0px));
transform:translateX(-50%); flex-direction:row; transition:transform .5s var(--ease), opacity .5s var(--ease)}
.rail.rail-late,.rail.rail-hold{transform:translate(-50%, 90px); opacity:0; pointer-events:none}
.rail-bubbles .rail-l{display:none}
:root{--sw-b:calc(78px + env(safe-area-inset-bottom)); --sw-tb:calc(70px + env(safe-area-inset-bottom))}
.d3-top:not(.intro-on) .pswitch,.d3-top:not(.intro-on) .pswitch-tab{opacity:0 !important; pointer-events:none}
}
.rail-bubbles .rail-b.d3-lt .rail-i{background:#FFFFFF; color:var(--navy); border-color:rgba(104,105,106,.22);
backdrop-filter:none; -webkit-backdrop-filter:none}
.rail-bubbles .rail-b.d3-dk .rail-i{background:rgba(255,255,255,.16); color:#FFFFFF; border-color:rgba(255,255,255,.55);
backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px)}
.rail-bubbles .rail-b.d3-lt:hover .rail-i,.rail-bubbles .rail-b.d3-lt:focus-visible .rail-i{background:var(--navy); color:#FFFFFF; border-color:var(--navy)}
.rail-bubbles .rail-b.d3-dk:hover .rail-i,.rail-bubbles .rail-b.d3-dk:focus-visible .rail-i{background:#FFFFFF; color:var(--navy); border-color:#FFFFFF}
body:has(.drawer.open) .pswitch,body:has(.drawer.open) .pswitch-tab{visibility:hidden}
@media (pointer:coarse){
.ftr-grid li a,.ftr-contact a{min-height:44px; display:flex; align-items:center}
.ftr-grid ul{gap:0}
}
h1,h2,h3,blockquote{text-wrap:balance}
p,li{text-wrap:pretty}
html *{font-variant-numeric:lining-nums}
@media (prefers-reduced-motion:reduce){
.hero-slides.d3-slides > picture{animation:none; transform:none}
.hero-slides.d3-slides > :not(.d3-s0){display:none}
.d3-caps{display:none}
.d1-mat-tab.on::after{animation:none; transform:scaleX(1); opacity:.35}
.d3-zoom img,.step::before,.d3-due-ticks i{transition:none}
.d3-zoom:hover img{transform:none}
.step::before{transform:scaleX(1)}
.d3-due-out.swap .d3-due-t,.d3-due-out.swap .d3-due-s,.d3-due-out.swap .d3-due-lt{animation:none}
.area-rail{overflow-x:auto; -webkit-mask-image:none; mask-image:none}
.area-rail .area-track{animation:none; padding:0 var(--gut)}
.area-rail .area-set[aria-hidden]{display:none}
}
.d1-backs .plq-in{min-height:236px}
@media (max-width:640px){ .d1-backs .plq-in{min-height:224px} }
.d1-intro-art figure,.d1-gr-art{box-shadow:none}
.d1-rev-rate .rating{border:0; background:none; padding:0}
.d3-about-film{background:var(--ink)}
.d3-about-film video{display:block; width:100%; height:auto; aspect-ratio:4 / 5; object-fit:cover}
@media (max-width:900px){ .d3-about-film video{aspect-ratio:4 / 3.6} }
.js [data-reveal="mask"] img,.js [data-reveal="mask"] video{transform:scale(1.08); transition:transform 1.8s var(--ease)}
.js [data-reveal="mask"].in img,.js [data-reveal="mask"].in video{transform:none}
.js .d1-gal figure[data-reveal="mask"].in:hover img,.js .d3-zoom[data-reveal="mask"].in:hover video,
.js .d1-gr-art[data-reveal="mask"].in:hover video{transform:scale(1.045); transition:transform 1.1s var(--ease)}
.js [data-reveal="mask"].in{transition:clip-path 1.3s cubic-bezier(.65,0,.3,1)}
html.no-reveal [data-reveal="mask"]{clip-path:none !important}
html.no-reveal [data-reveal="mask"] img,html.no-reveal [data-reveal="mask"] video{transform:none}
.btn svg,.btn-hdr svg,.svc-go svg,.plq-link svg{transition:transform .35s var(--ease)}
.btn:hover svg,.btn:focus-visible svg,.btn-hdr:hover svg,.svc:hover .svc-go svg,.plq-link:hover svg{transform:translateX(4px)}
.d1-gal{grid-auto-rows:clamp(230px,21vw,330px)}
@media (max-width:640px){ .d1-gal{grid-auto-rows:300px} }
.d1-mat{min-height:clamp(600px,86vh,880px)}.d1-mat.jw-boiler-tabs{min-height:clamp(600px,86vh,880px)}
.d1-contact{overflow:hidden}
.d1-contact-bg img{height:116%; margin-top:-8%}
@media (prefers-reduced-motion:reduce){
.js [data-reveal="mask"]{clip-path:none}
.js [data-reveal="mask"] img,.js [data-reveal="mask"] video{transform:none; transition:none}
.d3-cap{clip-path:none}
}
.d3-feat img{aspect-ratio:4 / 4.7; object-position:50% 40%}
.d3-feat{overflow:hidden; border-radius:var(--r)}
.js .d3-feat[data-reveal="mask"].in:hover img{transform:scale(1.045); transition:transform 1.1s var(--ease)}
@media (max-width:900px){ .d3-feat img{aspect-ratio:4 / 3.4} }
.d1-rev-head h2{font-size:clamp(34px,4.6vw,68px)}.d1-backs .d1-svc-head h2{font-size:clamp(34px,4.6vw,68px)}
.d1-rev-head h2,.d1-gr-copy h2{margin-bottom:22px}
.hero-cta .btn{min-height:54px}
.pinned > .fz-track{padding-top:calc(var(--hdr-solid) + 18px); padding-bottom:76px}
.pinned > .fz-track > .wrap{width:100%}
.pinned.mod-mat > .fz-track{padding:0}
.pinned.mod-mat > .fz-track > .d1-mat-in{padding-top:calc(var(--hdr-solid) + 18px); padding-bottom:76px}.pinned.mod-mat.jw-boiler-tabs > .fz-track > .d1-mat-in{padding-top:calc(var(--hdr-solid) + 18px); padding-bottom:76px}
.d1-mat.pinned .d1-mat-tab.on::after{animation:none; transform:scaleX(1); opacity:.35}.d1-mat.jw-boiler-tabs.pinned .d1-mat-tab.on::after{animation:none; transform:scaleX(1); opacity:.35}
.d1-mat .fz-prog{margin-top:22px}.d1-mat.jw-boiler-tabs .fz-prog{margin-top:22px}
.fz-prog i{border-radius:100px}
.d3-step-b{appearance:none; -webkit-appearance:none; border:0; background:none; padding:0; margin:0; font:inherit; color:inherit;
text-align:inherit; cursor:pointer; line-height:inherit}
.d3-step-b:focus-visible{outline:2px solid var(--navy); outline-offset:4px; border-radius:var(--r-sm)}
.d1-proc.pinned{overflow:visible; overflow-x:clip}
.pinned.mod-mat{overflow-x:clip}
.d1-proc.pinned .mod-head{display:block; text-align:center; margin-bottom:clamp(26px,3vw,44px); max-width:none}
.d1-proc.pinned .mod-head h2{font-size:clamp(34px,3.6vw,56px); margin:0 auto 0}
.d1-proc .fz-prog{justify-content:center; margin-top:20px}
.d1-proc.pinned .step{transition:opacity .45s var(--ease), background .45s var(--ease)}
.d1-proc.pinned .step:not(.on){opacity:.4}
.d1-proc.pinned .step.on{background:#FFFFFF}
.d1-proc.pinned .step::before,.d1-proc.pinned .step.in::before{transform:scaleX(0)}
.d1-proc.pinned .step.on::before,.d1-proc.pinned .step.done::before{transform:scaleX(1)}
.d1-proc.pinned .step.done{opacity:.7}
.d1-proc.pinned .d1-steps{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-height:760px){
.pinned.mod-mat .d1-mat-lead + .d1-mat-lead{display:none}
.d1-proc.pinned .mod-head{margin-bottom:20px}
.d1-proc.pinned .step{padding:22px 22px 24px}
.d1-proc.pinned .step p{font-size:14px; line-height:1.55}
}
.pinned.mod-mat > .fz-track > .d1-mat-in{max-width:1180px; width:auto; margin:0 auto}.pinned.mod-mat.jw-boiler-tabs > .fz-track > .d1-mat-in{max-width:1180px; width:auto; margin:0 auto}
.pinned.mod-mat .d1-mat-desc{min-height:6em}
@media (max-height:760px){ .pinned.mod-mat .d1-mat-desc{min-height:5.4em} }
.d3-faq-tools{display:flex; gap:12px; max-width:900px; margin:clamp(26px,3vw,42px) auto 0}
.d3-faq-tools[hidden]{display:none}
.d3-faq-tools + .d3-faq-none + .faq-list,.d3-faq-tools ~ .faq-list{margin-top:18px}
.d3-faq-find{flex:1; min-width:0; display:flex; align-items:center; gap:12px; height:54px; padding:0 18px;
border:1px solid var(--line); border-radius:var(--r-sm); background:#FFFFFF; color:var(--peri-text);
transition:border-color .3s var(--ease), box-shadow .3s var(--ease)}
.d3-faq-find:focus-within{border-color:var(--navy); box-shadow:0 0 0 3px rgba(3,179,239,.22)}
.d3-faq-find input{flex:1; min-width:0; height:100%; border:0; outline:0; background:none; font:inherit; font-size:16px; color:var(--ink)}
.d3-faq-find input::placeholder{color:var(--peri-text)}
.d3-faq-all{min-height:54px; flex:none}
.d3-faq-none{max-width:900px; margin:18px auto 0; color:var(--body)}
.d3-faq-none[hidden],.faq[hidden]{display:none}
.d3-sr{position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap}
@media (max-width:560px){ .d3-faq-tools{flex-direction:column} .d3-faq-find{flex:none; width:100%} .d3-faq-all{width:100%} }
.d3-held .pswitch,.d3-held .pswitch-tab{opacity:0 !important; pointer-events:none}
@media (max-width:1380px){ .pinned > .fz-track,.pinned.mod-mat > .fz-track > .d1-mat-in{padding-bottom:32px}.pinned.mod-mat.jw-boiler-tabs > .fz-track > .d1-mat-in{padding-bottom:32px} }
.d1-proc.pinned .mod-head .fz-prog{margin-top:22px; justify-content:center}
@media (max-height:760px){ .d1-proc.pinned .mod-head{margin-bottom:28px} .d1-proc.pinned .mod-head .fz-prog{margin-top:16px} }
.faq summary .d3-q{flex:1; min-width:0; text-wrap:balance}
@media (pointer:coarse){
.rating,.d1-contact-direct a,.d3-step-b{min-height:44px; display:inline-flex; align-items:center}
.d1-badge .rating{min-height:44px}
.ftr-social a{min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center}
}
.d3-water{position:absolute; inset:0; z-index:-2; width:100%; height:100%; display:block; pointer-events:none;
opacity:0; transition:opacity .6s var(--ease)}
.d3-water.on{opacity:1; transition:opacity .25s var(--ease)}
@media (prefers-reduced-motion:reduce){ .d3-water{display:none} }
.btn,.hdr .btn-hdr{position:relative; isolation:isolate; overflow:hidden;
transition:color .45s var(--ease), border-color .45s var(--ease), background-color .45s var(--ease), transform .15s ease}
.btn::before,.hdr .btn-hdr::before{content:""; position:absolute; inset:0; z-index:-1; transform:scaleX(0); transform-origin:100% 50%;
transition:transform .6s cubic-bezier(.65,0,.25,1)}
.btn:hover::before,.btn:focus-visible::before,.hdr .btn-hdr:hover::before,.hdr .btn-hdr:focus-visible::before{transform:scaleX(1); transform-origin:0 50%}
.btn:active,.hdr .btn-hdr:active{transform:translateY(1px) scale(.99)}
.btn-primary::before,.hdr .btn-hdr::before{background:#0679A8}
.btn-primary:hover,.hdr .btn-hdr:hover{background:#055F86}
.btn-light::before{background:var(--sky)}
.btn-light:hover{background:#FFFFFF; color:var(--ink)}
.btn-ghost::before{background:#FFFFFF}.fs-cta-vn .btn-ghost::before{background:#FFFFFF}
.btn-ghost:hover{background:transparent; color:var(--ink); border-color:#FFFFFF}.fs-cta-vn .btn-ghost:hover{background:transparent; color:var(--ink); border-color:rgb(42,43,45)}
.btn-outline::before{background:var(--ink)}
.btn-outline:hover{color:#FFFFFF; border-color:var(--ink)}
.d1-contact-card .btn-primary::before{background:var(--sky)}.ip-contact .d1-contact-card .btn-primary::before{background:var(--sky)}
.d1-contact-card .btn-primary:hover{background:#FFFFFF; color:var(--ink); border-color:#FFFFFF}.ip-contact .d1-contact-card .btn-primary:hover{background:#FFFFFF; color:var(--ink); border-color:rgb(42,43,45)}
.d3-due-out .btn:hover{background:#FFFFFF}
.ftr-grid ul a,.ftr-contact a span,.ftr-contact > a,.d1-contact-direct a,.plq-link{
background:linear-gradient(currentColor,currentColor) no-repeat 0 100% / 0 1px; transition:background-size .5s var(--ease), color .3s var(--ease)}
.ftr-grid ul a:hover,.ftr-contact a:hover span,.ftr-contact > a:hover,.d1-contact-direct a:hover,.plq-link:hover{background-size:100% 1px}
:focus-visible{outline:2px solid var(--sky); outline-offset:3px; border-radius:var(--r-sm)}
.js [data-reveal] > .lead,.js .d1-svc-head[data-reveal] > p:not(.eyebrow){opacity:0; transform:translateY(10px)}
.js [data-reveal].in > .lead,.js .d1-svc-head[data-reveal].in > p:not(.eyebrow){opacity:1; transform:none;
transition:opacity .9s var(--ease) .22s, transform 1s var(--ease) .22s}
html.no-reveal [data-reveal] > .lead,html.no-reveal .d1-svc-head > p{opacity:1 !important; transform:none !important}
.d1-svc{padding-top:calc(var(--sec) * 1.12)}
.d1-rev{padding:calc(var(--sec) * 1.12) 0}
.d1-contact{padding:calc(var(--sec) * 1.12) 0}
.rq-stage{touch-action:pan-y; cursor:grab; user-select:none; -webkit-user-select:none}
.rq-stage:active{cursor:grabbing}
@media (prefers-reduced-motion:reduce){
.btn::before,.hdr .btn-hdr::before{transition:none}
.js [data-reveal] > .lead,.js .d1-svc-head[data-reveal] > p:not(.eyebrow){opacity:1; transform:none}
}
.d3-explore{padding-top:clamp(54px,5.6vw,86px); display:flex; flex-direction:column; align-items:center; text-align:center}
.d3-explore .eyebrow{margin:0 0 14px}
.d3-explore-link{position:relative; display:inline-flex; align-items:center; gap:18px; min-height:44px; padding-bottom:10px;
font-family:"Cormorant Garamond",Georgia,serif; font-weight:300; font-size:clamp(32px,3.6vw,54px); line-height:1.1; color:var(--ink)}
.d3-explore-link::after{content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--line)}
.d3-explore-link::before{content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--navy); z-index:1;
transform:scaleX(0); transform-origin:0 50%; transition:transform .8s cubic-bezier(.65,0,.25,1)}
.d3-explore-link:hover::before,.d3-explore-link:focus-visible::before{transform:scaleX(1)}
.d3-explore-link svg{color:var(--navy); transition:transform .45s var(--ease)}
.d3-explore-link:hover svg,.d3-explore-link:focus-visible svg{transform:translateX(6px)}
.d3-explore-link:hover{color:var(--navy)}
.d3-sheet{position:fixed; inset:0; z-index:9500; display:none}
.d3-sheet:target,.d3-sheet.open{display:block}
.d3-sheet-bg{position:absolute; inset:0; background:rgba(18,18,19,.58); opacity:0; transition:opacity .5s var(--ease)}
.d3-sheet.shown .d3-sheet-bg,.d3-sheet:target .d3-sheet-bg{opacity:1}
.d3-sheet-in{position:absolute; left:0; right:0; bottom:0; max-height:88vh; overflow:auto; overscroll-behavior:contain;
background:#FFFFFF; border-radius:var(--r) var(--r) 0 0; padding:clamp(26px,3vw,46px) var(--gut) clamp(40px,4vw,60px);
transform:translateY(100%); transition:transform .65s cubic-bezier(.2,.8,.2,1)}
.d3-sheet.shown .d3-sheet-in,.d3-sheet:target .d3-sheet-in{transform:none}
.d3-sheet.settled .d3-sheet-in{transition:none; transform:none}
.d3-sheet-head{max-width:var(--max); margin:0 auto clamp(22px,2.6vw,36px); display:flex; align-items:flex-start; justify-content:space-between; gap:20px}
.d3-sheet-head .eyebrow{margin:0 0 12px}
.d3-sheet-head h2{margin:0; font-size:clamp(34px,3.6vw,54px)}
.d3-sheet-x{flex:none; width:52px; height:52px; display:grid; place-items:center; border-radius:50%; border:1px solid var(--line);
font-size:30px; line-height:1; color:var(--ink); transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease)}
.d3-sheet-x:hover{background:var(--ink); color:#FFFFFF; border-color:var(--ink)}
.d3-sheet-grid{max-width:var(--max); margin:0 auto; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px;
background:var(--line); border:1px solid var(--line)}
.d3-sc{display:grid; grid-template-columns:112px minmax(0,1fr); gap:18px; padding:20px; background:#FFFFFF; align-items:start}
.d3-sc-ph{margin:0; border-radius:var(--r-sm); overflow:hidden; aspect-ratio:1}
.d3-sc-ph img{width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease)}
.d3-sc:hover .d3-sc-ph img{transform:scale(1.05)}
.d3-sc-n{display:block; font-size:11.5px; font-weight:600; letter-spacing:1.6px; color:var(--navy)}
.d3-sc h3{margin:6px 0 6px; font-size:clamp(21px,1.7vw,25px); line-height:1.15}
.d3-sc p{margin:0 0 10px; font-size:14px; line-height:1.55; color:var(--body)}
.d3-sc-more{border-top:1px solid var(--line)}
.d3-sc-more summary{list-style:none; display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:44px; cursor:pointer;
font-size:11.5px; font-weight:600; letter-spacing:1.6px; text-transform:uppercase; color:var(--ink)}
.d3-sc-more summary::-webkit-details-marker{display:none}
.d3-sc-more summary svg{transition:transform .35s var(--ease); color:var(--navy)}
.d3-sc-more[open] summary svg{transform:rotate(180deg)}
.d3-sc-more ul{list-style:none; margin:0 0 10px; padding:0; display:grid; gap:6px}
.d3-sc-more li{display:flex; gap:8px; align-items:flex-start; font-size:13.5px; line-height:1.45; color:var(--body)}
.d3-sc-more li svg{flex:none; margin-top:3px; color:var(--navy)}
.d3-sc-ask{display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:11.5px; font-weight:600; letter-spacing:1.6px;
text-transform:uppercase; color:var(--navy); background:linear-gradient(currentColor,currentColor) no-repeat 0 76% / 0 1px;
transition:background-size .5s var(--ease)}
.d3-sc-ask:hover{background-size:calc(100% - 20px) 1px}
.d3-sc-ask svg{transition:transform .35s var(--ease)}
.d3-sc-ask:hover svg{transform:translateX(4px)}
.d3-sc.hl{animation:d3Hl 1.6s var(--ease)}
@keyframes d3Hl{0%,30%{background:var(--wash)} 100%{background:#FFFFFF}}
html.d3-locked,html.d3-locked body{overflow:hidden}
html.d3-locked .pswitch,html.d3-locked .pswitch-tab,html.d3-locked .rail{visibility:hidden}
@media (max-width:1100px){ .d3-sheet-grid{grid-template-columns:repeat(2,minmax(0,1fr))} .d3-sheet-grid .d3-sc:last-child{grid-column:1 / -1} }
@media (max-width:760px){
.d3-sheet-in{top:0; max-height:none; border-radius:0}
.d3-sheet-grid{grid-template-columns:minmax(0,1fr)}
.d3-sheet-grid .d3-sc:last-child{grid-column:auto}
.d3-sc{grid-template-columns:84px minmax(0,1fr); gap:14px; padding:16px}
}
@media (prefers-reduced-motion:reduce){ .d3-sheet-in,.d3-sheet-bg{transition:none} }
.d3-ab-nav{display:none}
.d1-intro.pinned{padding:0; overflow:visible; overflow-x:clip}
.d1-intro.pinned .fz-prog{display:none}
.d1-intro.pinned > .fz-track > .wrap{display:grid; grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr); grid-template-rows:1fr auto auto 1fr;
column-gap:clamp(34px,5vw,80px); align-content:center; align-items:start}
.d1-intro.pinned .d1-intro-in{display:contents}
.d1-intro.pinned .mod-head{grid-column:1; grid-row:2; display:block; margin:0 0 clamp(18px,2.4vh,30px); max-width:none}
.d1-intro.pinned .mod-head h2{font-size:clamp(36px,3.8vw,58px); margin:0}
.d1-intro.pinned .d1-intro-copy{grid-column:1; grid-row:3; display:grid; align-items:start}
.d1-intro.pinned .d3-ab{grid-area:1 / 1; align-self:start; transition:opacity .55s var(--ease), transform .7s var(--ease), visibility 0s linear .55s}
.d1-intro.pinned .d3-ab:not(.on){opacity:0; transform:translateY(14px); visibility:hidden; pointer-events:none}
.d1-intro.pinned .d3-ab.on{transition:opacity .55s var(--ease) .12s, transform .7s var(--ease) .12s, visibility 0s}
.d1-intro.pinned .d3-ab p{font-size:clamp(17px,1.35vw,20px); line-height:1.7}
.d1-intro.pinned .d3-ab .d1-pull{font-size:clamp(24px,2.1vw,32px); line-height:1.35}
.d1-intro.pinned .d1-intro-art{grid-column:2; grid-row:1 / span 4; align-self:center; justify-self:center;
width:min(100%, calc((100svh - var(--hdr-solid) - 120px) * .8), 544px)}
.d1-intro.pinned .d3-about-film video{width:100%; height:auto; aspect-ratio:4 / 5}
.d1-intro.pinned .d3-ab-nav{display:flex; gap:clamp(16px,2vw,28px); margin-top:clamp(18px,2.4vh,28px)}
.d3-ab-b{position:relative; appearance:none; -webkit-appearance:none; border:0; background:none; cursor:pointer; padding:10px 0 14px; min-height:44px;
font:600 11.5px/1 Inter,system-ui,sans-serif; letter-spacing:1.6px; text-transform:uppercase; color:var(--peri-text); transition:color .35s var(--ease)}
.d3-ab-b::before,.d3-ab-b::after{content:""; position:absolute; left:0; right:0; bottom:0; height:2px; border-radius:2px}
.d3-ab-b::before{background:var(--line)}
.d3-ab-b::after{background:var(--navy); transform:scaleX(0); transform-origin:0 50%; transition:transform .6s var(--ease)}
.d3-ab-b.on,.d3-ab-b:hover{color:var(--ink)}
.d3-ab-b.on::after,.d3-ab-b.done::after{transform:scaleX(1)}
.d3-ab-b.done::after{opacity:.45}
.d1-intro.pinned .d1-wm{transition:transform 1.4s var(--ease); transform:translateY(calc(var(--abp, 0) * -26px)) rotate(calc(var(--abp, 0) * -2.5deg))}
@media (max-height:760px){ .d1-intro.pinned .d3-ab p{font-size:16px; line-height:1.6} .d1-intro.pinned .mod-head h2{font-size:clamp(32px,3.2vw,46px)} }
.d1-backs .plq-face .plq-logo{height:76px; max-width:none; margin:0 auto 14px; transform:none}
.d1-backs .plq-back .plq-logo{height:60px; margin-bottom:8px}
.d1-backs .plq-logo img,.d1-backs .plq:hover .plq-logo img,.d1-backs .plq:focus-visible .plq-logo img,.d1-backs .plq-back .plq-logo img{
filter:none; width:auto; height:auto; max-width:100%; max-height:100%; padding:0; background:none; border-radius:0}
.d1-backs .plq-logo img.d3-plq-gassafe{max-height:44px}
.d1-backs .plq-logo img.d3-plq-which{max-height:52px}
.d1-backs .plq-logo img.d3-plq-checkatrade{max-width:100px}
.plq-back .plq-logo img.d3-plq-gassafe{max-height:36px}
.plq-back .plq-logo img.d3-plq-which{max-height:42px}
.d3-g{flex-direction:row; align-items:center; gap:9px; color:var(--ink)}
.d3-gg{width:28px; height:28px; flex:none}
.plq-back .d3-gg{width:22px; height:22px}
.d3-g-r{display:flex; flex-direction:column; align-items:flex-start; gap:3px}
.d3-g b,.plq-back .d3-g b{font:600 17px/1 Inter,system-ui,sans-serif; color:var(--ink)}
.d3-g-s{display:inline-flex; gap:2px; color:#FBBC05}
.d3-g-s svg{width:11px; height:11px}
.d1-backs .plq-front{justify-content:flex-start; padding:clamp(26px,2.4vw,32px) 18px 22px}
.d1-backs .plq-front b{font-size:21px}
.d1-backs .plq-front small{max-width:none; white-space:nowrap; font-size:13px}
.d1-backs .plq-front .plq-hint{margin-top:auto}
.d1-backs .plq-in{min-height:272px}
.d1-backs .plq-wrap{transition:transform .6s var(--ease)}
@media (hover:hover){ .d1-backs .plq-wrap:hover{transform:translateY(-6px)} }
.d1-backs .plq:hover .plq-light::after{animation:plqSheen 1.4s var(--ease) 1 both}
.d3-facts{list-style:none; display:flex; justify-content:center; flex-wrap:wrap; margin:clamp(30px,3.4vw,48px) auto 0; padding:0}
.d3-facts li{padding:6px clamp(18px,2.4vw,34px); font-size:11.5px; font-weight:600; letter-spacing:1.6px; text-transform:uppercase; color:#FFFFFF}
.d3-facts li + li{border-left:1px solid rgba(255,255,255,.28)}
@media (max-width:1100px){ .d1-backs .plq-front small{font-size:12px; letter-spacing:0} .d1-backs .plq-front{padding-left:12px; padding-right:12px} }
@media (max-width:560px){ .d3-facts{flex-direction:column; align-items:center} .d3-facts li + li{border-left:0; border-top:1px solid rgba(255,255,255,.2)} }
@media (prefers-reduced-motion:reduce){ .d1-backs .plq-wrap{transition:none} .d1-backs .plq-wrap:hover{transform:none} }
.d1-svc{padding-bottom:var(--sec)}
@media (max-width:560px){ .d3-explore-link{font-size:27px; gap:10px; white-space:nowrap} }
.d1-hero h1 em{color:#BFEBFB !important; -webkit-text-fill-color:#BFEBFB}
.d1-hero h1{text-shadow:0 1px 4px rgba(0,0,0,.5), 0 4px 30px rgba(0,0,0,.55)}
.d1-hero h1 em{text-shadow:0 1px 4px rgba(0,0,0,.55), 0 4px 30px rgba(0,0,0,.55)}
.hdr .nav-menu.fs-menu2{left:calc(50% - 250px); width:500px; grid-template-columns:1fr 1fr; gap:0 10px; padding:14px}
.hdr .nav-menu.fs-menu-areas{left:calc(50% - 190px); width:380px; grid-template-columns:1fr 1fr; gap:0 10px; padding:14px}
.fs-mcol{display:grid; align-content:start; gap:1px}
.fs-mh{margin:4px 16px 8px; font-size:11px; font-weight:600; letter-spacing:1.6px; text-transform:uppercase; color:var(--peri-text)}
.nav-menu a.fs-mall{grid-column:1 / -1; margin-top:8px; border-top:1px solid var(--line); border-radius:0;
padding-top:14px; font-weight:600; color:var(--navy)}
.nav-menu .fs-mcol a{padding:9px 16px}
.nav > a{white-space:nowrap}
@media (max-width:1500px){ .hdr .nav{gap:clamp(10px,1.1vw,18px)} }
.drawer nav .nav-acc + .nav-acc{margin-top:0}
.fs-pb{position:relative; isolation:isolate; overflow:hidden; display:flex; align-items:flex-end;
min-height:clamp(560px,80svh,900px); padding:calc(var(--hdr) + 60px) 0 clamp(64px,9vh,110px)}
.fs-pb-img{position:absolute; inset:0; z-index:-2; overflow:hidden}
.fs-pb-img img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.fs-pb .hero-scrim{background:
linear-gradient(180deg, rgba(18,18,19,.45) 0, rgba(18,18,19,0) 160px),
radial-gradient(56% 56% at 38% 64%, rgba(18,18,19,.40) 0%, rgba(18,18,19,.24) 55%, rgba(18,18,19,0) 100%),
linear-gradient(90deg, rgba(18,18,19,.55) 0%, rgba(18,18,19,.44) 30%, rgba(18,18,19,.16) 52%, rgba(18,18,19,0) 64%)}
.fs-pb .pb-in{max-width:min(860px, 66vw)}
.fs-pb .pb-in{max-width:min(940px, 100%)}
.fs-pb h1{font-size:clamp(40px,5.4vw,82px); text-wrap:balance; text-shadow:0 1px 4px rgba(0,0,0,.5), 0 4px 30px rgba(0,0,0,.55)}
.fs-pb .lead,.fs-pb .kicker{text-shadow:0 1px 3px rgba(0,0,0,.55), 0 2px 18px rgba(0,0,0,.55)}
.fs-pb .lead{font-size:clamp(16px,1.25vw,19px)}
.pb-ink.fs-pb{min-height:clamp(520px,74svh,820px)}
.fs-stub{display:inline-block; margin:0 0 14px; padding:6px 12px; background:#FFFFFF; color:#B00020; font-weight:700;
font-size:12px; letter-spacing:.1em; border-radius:var(--r-sm)}
@media (max-width:760px){
.fs-pb{min-height:clamp(520px,86svh,760px); padding-top:calc(var(--hdr) + 40px); padding-bottom:48px}
.fs-pb .hero-scrim{background:
linear-gradient(180deg, rgba(18,18,19,.45) 0, rgba(18,18,19,0) 140px),
radial-gradient(100% 50% at 40% 66%, rgba(18,18,19,.30) 0%, rgba(18,18,19,.16) 55%, rgba(18,18,19,0) 100%),
linear-gradient(180deg, rgba(18,18,19,0) 20%, rgba(18,18,19,.42) 44%, rgba(18,18,19,.55) 100%)}
.fs-pb .pb-in{max-width:none}
.fs-pb .hero-cta .btn{width:100%; max-width:none}
}
.fs-intro .d1-intro-art img{aspect-ratio:4 / 4.4}
.fs-intro .d1-intro-copy p{max-width:58ch}
.sp-art .fs-film,.fs-film{margin:0; border-radius:var(--r); overflow:hidden; background:var(--ink)}
.fs-film video{display:block; width:100%; aspect-ratio:4 / 3.05; object-fit:cover}
.sp-art figure:not(.fs-film){box-shadow:none}
.sp-art figure img{transition:transform 1.1s var(--ease)}
.sp-art figure:hover img{transform:scale(1.04)}
.fs-tlink{display:inline-flex; align-items:center; gap:8px; min-height:44px; margin-left:18px; font-size:11.5px; font-weight:600;
letter-spacing:1.6px; text-transform:uppercase; color:var(--navy);
background:linear-gradient(currentColor,currentColor) no-repeat 0 76% / 0 1px; transition:background-size .5s var(--ease)}
.fs-tlink:hover,.fs-tlink:focus-visible{background-size:calc(100% - 20px) 1px}
.fs-tlink svg{transition:transform .35s var(--ease)}
.fs-tlink:hover svg{transform:translateX(4px)}
.fs-more{margin:clamp(20px,2.4vw,32px) 0 0; text-align:center}
.fs-more .fs-tlink{margin-left:0}
.d1-gr-copy .fs-tlink,.d3-ab .fs-tlink{margin-left:14px}
.d3-feat-film video,.d3-feat-film img{display:block; width:100%; aspect-ratio:1; object-fit:cover}
.d3-feat.d3-feat-film{background:var(--ink)}
.d3-about-photo img{display:block; width:100%; aspect-ratio:4 / 5; object-fit:cover}
.d1-intro.pinned .d3-about-photo img{width:100%; height:auto; aspect-ratio:4 / 5}
@media (max-width:900px){ .d3-about-photo img{aspect-ratio:4 / 3.6} }
.fs-opt-a{display:flex; flex-direction:column; color:inherit; background:#FFFFFF; transition:background .35s var(--ease)}
.fs-opt-a:hover{background:var(--wash)}
.fs-opt-go{margin-top:auto; padding-top:12px; display:inline-flex; align-items:center; gap:8px; font-size:11.5px; font-weight:600;
letter-spacing:1.6px; text-transform:uppercase; color:var(--navy)}
.fs-opt-go svg{transition:transform .35s var(--ease)}
.fs-opt-a:hover .fs-opt-go svg{transform:translateX(4px)}
.fs-rel-4 .rel-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.fs-rel-2 .rel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:1100px){ .fs-rel-4 .rel-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:640px){ .fs-rel-4 .rel-grid,.fs-rel-2 .rel-grid{grid-template-columns:minmax(0,1fr)} }
.fs-dist{margin-top:26px; max-width:520px}
.fs-dist b small{font-size:.42em}
.fs-places{background:var(--wash)}
.fs-pl{list-style:none; margin:clamp(26px,3vw,40px) auto 0; padding:0; max-width:980px; border-top:1px solid var(--line)}
.fs-pl li{display:grid; grid-template-columns:minmax(0,13rem) 4rem minmax(0,1fr); gap:6px 24px; align-items:baseline;
padding:18px 4px; border-bottom:1px solid var(--line)}
.fs-pl b{font-family:"Cormorant Garamond",Georgia,serif; font-weight:400; font-size:clamp(21px,1.7vw,25px); color:var(--ink)}
.fs-pl i{font-style:normal; font-size:11.5px; font-weight:600; letter-spacing:1.6px; color:var(--navy)}
.fs-pl span{font-size:15px; line-height:1.6; color:var(--body)}
@media (max-width:760px){ .fs-pl li{grid-template-columns:auto auto; } .fs-pl span{grid-column:1 / -1} }
.fs-town-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1200px){ .fs-town-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:560px){ .fs-town-grid{grid-template-columns:minmax(0,1fr)} }
.fs-call .lead{color:#39393A; max-width:60ch; margin-left:auto; margin-right:auto}
.fs-call-row{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; max-width:900px; margin:clamp(26px,3vw,40px) auto 0;
background:rgba(255,255,255,0.85); border:1px solid rgba(42,43,45,.18); border-radius:var(--r); overflow:hidden}
.fs-call-n{display:flex; flex-direction:column; gap:6px; padding:22px 24px; background:rgba(255,255,255,0.84); color:#262727;
transition:background .35s var(--ease)}
.fs-call-n:hover{background:rgba(255,255,255,0.60)}
.fs-call-n span{font-size:11.5px; font-weight:600; letter-spacing:1.6px; text-transform:uppercase; color:#05668E}
.fs-call-n b{font-family:"Cormorant Garamond",Georgia,serif; font-weight:400; font-size:clamp(26px,2.2vw,32px); line-height:1.1}
@media (max-width:760px){ .fs-call-row{grid-template-columns:minmax(0,1fr)} }
.fs-hs{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(30px,5vw,80px); align-items:start;
margin-top:clamp(30px,3.4vw,50px)}
.fs-hs-fig{position:relative; margin:0; border-radius:var(--r); overflow:hidden; aspect-ratio:3 / 4; max-width:540px; background:var(--wash)}
.fs-hs-fig > img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.fs-pin{position:absolute; z-index:2; width:44px; height:44px; margin:-22px 0 0 -22px; padding:0; border:0; border-radius:50%; cursor:pointer;
display:grid; place-items:center; background:transparent}
.fs-pin span{display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:var(--navy); color:#FFFFFF;
font:600 13px/1 Inter,system-ui,sans-serif; box-shadow:none;
transition:transform .35s var(--ease), background .35s var(--ease)}
.fs-pin::before{content:""; position:absolute; left:50%; top:50%; width:32px; height:32px; margin:-16px 0 0 -16px; border-radius:50%;
border:2px solid var(--sky); opacity:0}
.fs-pin.on span,.fs-pin:hover span{background:var(--sky); color:var(--ink); transform:scale(1.15)}
.fs-pin.on::before{animation:fsPing 1.8s var(--ease) infinite}
@keyframes fsPing{0%{transform:scale(1); opacity:.9} 100%{transform:scale(2.1); opacity:0}}
.fs-pin:focus-visible{outline:none}
.fs-pin:focus-visible span{outline:2px solid var(--sky); outline-offset:3px}
.fs-hs-list{list-style:none; margin:0; padding:0; border-top:1px solid var(--line)}
.fs-hs-it{border-bottom:1px solid var(--line)}
.fs-hs-b{display:grid; grid-template-columns:52px minmax(0,1fr); gap:14px; align-items:baseline; width:100%; padding:16px 4px; border:0;
background:none; text-align:left; cursor:pointer; color:inherit; font:inherit}
.fs-hs-b .step-n{font-family:"Cormorant Garamond",Georgia,serif; font-weight:300; font-size:30px; line-height:1; color:var(--peri);
transition:color .35s var(--ease)}
.fs-hs-t{display:flex; flex-direction:column; gap:4px}
.fs-hs-t b{font-family:"Cormorant Garamond",Georgia,serif; font-weight:400; font-size:clamp(21px,1.7vw,25px); line-height:1.15; color:var(--ink)}
.fs-hs-p{font-size:11.5px; font-weight:600; letter-spacing:1.4px; text-transform:uppercase; color:var(--peri-text)}
.fs-hs-it p{display:none; margin:-6px 0 18px 70px; font-size:15px; line-height:1.65; color:var(--body); max-width:52ch}
.fs-hs-it.on p{display:block; animation:d3Swap .45s var(--ease) both}
.fs-hs-it.on .step-n,.fs-hs-b:hover .step-n{color:var(--navy)}
.fs-hs-b:focus-visible{outline:2px solid var(--sky); outline-offset:2px; border-radius:var(--r-sm)}
.fs-hs-cta{display:flex; flex-wrap:wrap; align-items:center; gap:8px 4px; margin-top:28px}
html:not(.js) .fs-hs-it p{display:block}
@media (max-width:900px){
.fs-hs{grid-template-columns:minmax(0,1fr)}
.fs-hs-fig{max-width:none; aspect-ratio:4 / 4.6}
}
.fs-bas{background:var(--wash)}
.fs-ba-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(18px,2vw,28px); margin-top:clamp(28px,3vw,44px)}
.fs-ba-1{grid-template-columns:minmax(0,680px); justify-content:center}
.fs-ba{margin:0}
.fs-ba-frame{position:relative; aspect-ratio:4 / 4.6; border-radius:var(--r); overflow:hidden; background:var(--line); --p:50%}
.fs-ba-frame > img,.fs-ba-before img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.fs-ba-before{position:absolute; inset:0; clip-path:inset(0 calc(100% - var(--p)) 0 0)}
.fs-ba-h{position:absolute; top:0; bottom:0; left:var(--p); width:2px; margin-left:-1px; background:#FFFFFF; pointer-events:none;
box-shadow:0 0 0 1px rgba(31,31,32,.12)}
.fs-ba-h::after{content:""; position:absolute; top:50%; left:50%; width:44px; height:44px; margin:-22px 0 0 -22px; border-radius:50%;
background:#FFFFFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23037196' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l-6 6 6 6M15 6l6 6-6 6'/%3E%3C/svg%3E") no-repeat center/22px;
box-shadow:none}
.fs-ba-r{position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; -webkit-appearance:none; appearance:none}
.fs-ba-l{position:absolute; top:16px; padding:6px 10px; border-radius:var(--r-sm); background:rgba(18,18,19,.72); color:#FFFFFF;
font-size:11px; font-weight:600; letter-spacing:1.6px; text-transform:uppercase; pointer-events:none}
.fs-ba-l1{left:16px}
.fs-ba-l2{right:16px}
.fs-ba-cap{display:flex; flex-direction:column; gap:4px; padding:16px 4px 0}
.fs-ba-cap b{font-family:"Cormorant Garamond",Georgia,serif; font-weight:400; font-size:24px; color:var(--ink)}
.fs-ba-cap span{font-size:15px; color:var(--body)}
html:not(.js) .fs-ba-before{position:static; clip-path:none}
@media (max-width:760px){ .fs-ba-grid{grid-template-columns:minmax(0,1fr)} }
.fs-gf{display:flex; flex-wrap:wrap; justify-content:center; gap:0 30px; margin:clamp(20px,2.4vw,30px) 0 clamp(16px,2vw,24px)}
.fs-gf[hidden]{display:none}
.fs-gf .d4-f{position:relative; min-height:44px; padding:0; border:0; background:none; cursor:pointer; color:var(--body);
font:600 11.5px/1 Inter,system-ui,sans-serif; letter-spacing:1.6px; text-transform:uppercase}
.fs-gf .d4-f::after{content:""; position:absolute; left:0; right:0; bottom:9px; height:1.5px; background:var(--navy); transform:scaleX(0);
transform-origin:left; transition:transform .38s var(--ease)}
.fs-gf .d4-f.on{color:var(--navy)}
.fs-gf .d4-f.on::after{transform:scaleX(1)}
.fs-gal-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(12px,1.4vw,20px)}
.fs-gal-grid .ms-tile{cursor:zoom-in}
.fs-gal-grid .ms-tile[hidden]{display:none}
@media (max-width:900px){ .fs-gal-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
.ip-masonry .ms-tile{cursor:zoom-in}
.fs-card-light{background:#EDEEEF; color:#262727; border-radius:var(--r); padding:clamp(24px,2.8vw,40px)}
.fs-hours{margin-top:22px; border-collapse:collapse}
.fs-hours th,.fs-hours td{padding:6px 0; text-align:left; font-size:15px; white-space:nowrap}
.fs-hours th{font-weight:400; color:var(--body); padding-right:26px}
.fs-hours td{font-weight:600; color:var(--ink)}
.ip-contact .ftr-contact a,.ip-contact .ftr-contact .ftr-addr{color:var(--ink)}
.ip-contact .ftr-contact svg{color:var(--navy)}
.fs-legal-ul{margin:0 0 16px 1.2em; list-style:disc}
.fs-legal-ul li{margin:4px 0}
.fs-pdf{margin-top:30px}
.fs-sm-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(24px,4vw,60px)}
.fs-sm-col h2{font-size:clamp(26px,2.4vw,34px); margin-bottom:16px}
.fs-sm-col ul{list-style:none; margin:0; padding:0; border-top:1px solid var(--line)}
.fs-sm-col li a{display:flex; min-height:44px; align-items:center; border-bottom:1px solid var(--line); color:var(--ink)}
.fs-sm-col li a:hover{color:var(--navy)}
.fs-404{display:flex; flex-wrap:wrap; gap:14px; justify-content:center}
@media (max-width:900px){ .fs-sm-grid{grid-template-columns:minmax(0,1fr)} }
.fs-msg{margin:12px 0 0; font-size:15px; line-height:1.55}
.fs-msg:empty{display:none}
.fs-msg.ok{color:#FFFFFF; padding:12px 14px; border-radius:var(--r-sm); background:rgba(3,179,239,.18); border:1px solid rgba(3,179,239,.45)}
.fs-msg.err{color:#FFFFFF; padding:12px 14px; border-radius:var(--r-sm); background:rgba(176,0,32,.28); border:1px solid rgba(255,140,150,.5)}
.field.bad input,.field.bad select{border-bottom-color:#FF8C96}
.fs-captcha{display:grid; grid-template-columns:auto auto minmax(0,1fr); grid-template-areas:"lab lab lab" "img btn inp"; gap:0 14px; align-items:center}
.fs-cap-lab{grid-area:lab; display:block; margin-bottom:10px; font-size:13px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:#6B6B6D}
.d1-contact-card .fs-cap-lab,.on-dark .fs-cap-lab{color:var(--sky)}.ip-contact .d1-contact-card .fs-cap-lab{color:#05668E}
.fs-cap-img{grid-area:img; padding:3px; border:1px solid var(--line); border-radius:var(--r-sm); background:#FFFFFF; line-height:0}
.fs-cap-img img{display:block; width:150px; height:50px; border-radius:2px}
.fs-cap-new{grid-area:btn; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0;
border:1px solid var(--line); border-radius:50%; background:none; color:inherit; cursor:pointer; transition:border-color .3s var(--ease)}
.fs-cap-new:hover{border-color:currentColor}
.fs-cap-new svg{transition:transform .4s var(--ease)}
.fs-cap-new:active svg{transform:rotate(-90deg)}
.fs-captcha .fs-cap-in{grid-area:inp; min-width:0; text-transform:uppercase; letter-spacing:.18em}
.d1-contact-card .fs-cap-img,.on-dark .fs-cap-img{border-color:rgba(255,255,255,.28)}.ip-contact .d1-contact-card .fs-cap-img{border-color:rgba(42,43,45,.28)}
.d1-contact-card .fs-cap-new,.on-dark .fs-cap-new{border-color:rgba(255,255,255,.32); color:#FFFFFF}.ip-contact .d1-contact-card .fs-cap-new{border-color:rgba(42,43,45,.32); color:#262727}
@media (max-width:560px){ .fs-captcha{grid-template-columns:auto auto 1fr; grid-template-areas:"lab lab lab" "img btn ." "inp inp inp"; row-gap:12px} }
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.fs-ftr-links{display:flex; flex-wrap:wrap; gap:6px 24px; padding:0 0 18px}
.fs-ftr-links a{color:rgba(255,255,255,.78); font-size:13px}
.fs-ftr-links a:hover{color:#FFFFFF}
@media (pointer:coarse){ .fs-ftr-links a{min-height:44px; display:inline-flex; align-items:center} }
.fs-sc-links{display:flex; flex-wrap:wrap; gap:0 18px}
@media (prefers-reduced-motion:reduce){
.fs-pin.on::before{animation:none}
.sp-art figure img,.fs-tlink svg{transition:none}
}
.hdr:not(.solid) .burger{background:rgba(14,14,14,.42); border-color:rgba(255,255,255,.38); border-radius:50%;
-webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px)}
.fs-credit{position:absolute; right:var(--gut); bottom:14px; z-index:2; margin:0; font-size:11px; line-height:1.3;
color:rgba(255,255,255,.72); text-shadow:0 1px 3px rgba(0,0,0,.6)}
.fs-credit a{color:inherit}
.fs-credit a:hover{color:#FFFFFF; text-decoration:underline}
.fs-pic,.fs-pic img{display:block; width:100%; height:100%}
.fs-pb-img .fs-pic img{object-fit:cover}
@media (max-width:760px){ .fs-credit{left:var(--gut); right:auto; bottom:10px} }
.fs-credits{background:var(--wash)}
.fs-cr-list{list-style:none; margin:clamp(24px,3vw,40px) auto 0; padding:0; max-width:980px; border-top:1px solid var(--line)}
.fs-cr-list li{display:grid; grid-template-columns:minmax(0,12rem) minmax(0,1fr); gap:6px 24px; padding:14px 4px; border-bottom:1px solid var(--line);
font-size:14px; line-height:1.55; color:var(--body)}
.fs-cr-list b{font-family:"Cormorant Garamond",Georgia,serif; font-weight:400; font-size:20px; color:var(--ink)}
.fs-cr-list a{color:var(--navy); text-decoration:underline; text-underline-offset:2px}
@media (max-width:640px){ .fs-cr-list li{grid-template-columns:minmax(0,1fr)} }
.fs-pb-bright .pb-in::before{content:""; position:absolute; z-index:-1; left:-8%; right:-12%; top:-14%; bottom:-14%; pointer-events:none;
background:radial-gradient(closest-side, rgba(18,18,19,.26), rgba(18,18,19,.14) 60%, rgba(18,18,19,0))}
.js [data-reveal].in{transition-duration:1.05s}
.sp-art figure img,.ms-tile img,.fs-gal-grid .ms-tile img,.svc img,.d3-zoom img,.fs-intro .d1-intro-art img,.d3-sc-ph img{
transition:transform 1.3s var(--ease)}
.sp-art figure:hover img,.ms-tile:hover img,.svc:hover img,.d3-zoom:hover img,.fs-intro .d1-intro-art figure:hover img{transform:scale(1.05)}
@keyframes fsKb{from{transform:scale(1.04)} to{transform:scale(1.22) translate3d(-1.6%,-1.2%,0)}}
@keyframes fsArrive{from{transform:scale(1.42)} to{transform:scale(1)}}
.fs-pb-img{will-change:transform}
.fs-pb-img .fs-pic{transform-origin:52% 46%; animation:fsKb 16s ease-in-out infinite alternate}
.fs-pb-img .fs-pic img{transform-origin:52% 42%; animation:fsArrive 5.5s cubic-bezier(.33,.08,.18,1) both}
.fs-pb.fs-off .fs-pic{animation-play-state:paused}
.fs-pb h1 .fs-l{display:block; overflow:hidden; padding:.06em .04em .16em; margin:-.06em -.04em -.16em}
.fs-pb h1 .fs-l > span,.fs-pb h1 .fs-l > em{display:block}
.js .fs-pb h1 .fs-l > span,.js .fs-pb h1 .fs-l > em{animation:fsRise 1.3s cubic-bezier(.16,1,.3,1) .25s backwards}
.js .fs-pb h1 .fs-l + .fs-l > em{animation-delay:.41s}
@keyframes fsRise{from{transform:translateY(108%)} to{transform:none}}
.js .fs-pb .kicker,.js .fs-pb .lead,.js .fs-pb .hero-cta{animation:fsSettle 1.05s var(--ease) backwards}
.js .fs-pb .kicker{animation-delay:.1s}
.js .fs-pb .lead{animation-delay:.62s}
.js .fs-pb .hero-cta{animation-delay:.78s}
@keyframes fsSettle{from{opacity:.4; transform:translateY(14px)} to{opacity:1; transform:none}}
.sp.fs-stick .sp-art{align-self:stretch}
.sp.fs-stick .sp-art figure{position:sticky; top:calc(var(--hdr-solid) + 24px)}
.js .ip-splits.sweep{overflow:visible; overflow-x:clip}
@media (prefers-reduced-motion:reduce){
.fs-pb-img .fs-pic,.fs-pb-img .fs-pic img,.js .fs-pb h1 .fs-l > span,.js .fs-pb h1 .fs-l > em,.js .fs-pb .kicker,.js .fs-pb .lead,.js .fs-pb .hero-cta{animation:none}
.sp-art figure img,.ms-tile img,.svc img,.d3-zoom img{transition:none}
}
.fs-cr-map{max-width:980px; margin:18px auto 0; font-size:13.5px; line-height:1.6; color:var(--body)}
.fs-cr-map a{color:var(--navy); text-decoration:underline; text-underline-offset:2px}
@media (pointer:coarse){
.ftr-social a,.ftr-compact .ftr-social a{width:44px; height:44px}
.ftr-grid li a,.ftr-contact a,.ftr-phones a{min-height:44px; display:inline-flex; align-items:center}
.ftr-contact,.ftr-phones{row-gap:0}
}
.hdr.solid{background:#F5F6F9; backdrop-filter:none; -webkit-backdrop-filter:none;
box-shadow:0 1px 0 rgba(104,105,106,.12), 0 18px 40px -30px rgba(31,31,32,.35)}
.prog{display:none !important}
@media (min-width:900px){
.rail,.rail.rail-bubbles{left:auto; right:10px; top:50%; bottom:auto; flex-direction:column; gap:10px;
transform:translateY(-50%); transition:transform .5s var(--ease), opacity .5s var(--ease)}
.rail.rail-late,.rail.rail-hold{transform:translate(80px,-50%); opacity:0; pointer-events:none}
.ftr-legal,.ftr-compact .ftr-bot,.ftr-bot{padding-bottom:22px}
}
@media (min-width:900px) and (max-width:1279px){
.rail-bubbles .rail-b,.rail-bubbles .rail-i{width:40px; height:40px}
.rail-bubbles .rail-i svg{width:17px; height:17px}
}
@media (max-width:899px){
.rail.rail-away{transform:translate(-50%, 90px); opacity:0; pointer-events:none}
footer.ftr{padding-bottom:calc(72px + env(safe-area-inset-bottom, 0px))}
.ftr-legal,.ftr-compact .ftr-bot,.ftr-bot{padding-bottom:12px}
}
.field span,.d3-due .field span{font-size:13px; letter-spacing:.14em}
.fs-form .field select{width:100%}
.ip-contact .fs-card-light{background:linear-gradient(160deg, #EEF0F3 0%, #F0F2F5 100%); backdrop-filter:none; -webkit-backdrop-filter:none;
border:1px solid rgba(42,43,45,.10); box-shadow:none}
.d1-contact::before{background:
radial-gradient(ellipse 62% 78% at 24% 46%, rgba(14,14,15,.70) 0%, rgba(14,14,15,.54) 46%, rgba(14,14,15,.16) 100%),
linear-gradient(92deg, rgba(14,14,15,.34) 0%, rgba(14,14,15,.10) 60%, rgba(14,14,15,.04) 100%)}
.d1-contact-copy h2,.d1-contact-copy .lead,.d1-contact-points,.d1-contact-direct{text-shadow:0 1px 2px rgba(0,0,0,.45), 0 0 22px rgba(0,0,0,.35)}
.d1-mat-veil{background:
radial-gradient(ellipse 60% 82% at 26% 52%, rgba(18,18,19,.74) 0%, rgba(18,18,19,.58) 46%, rgba(18,18,19,.14) 100%),
linear-gradient(0deg, rgba(0,0,0,.28), transparent 45%)}
.d1-mat-in h2,.pinned.mod-mat .d1-mat-in h2{font-size:clamp(40px,4vw,58px); text-shadow:0 1px 2px rgba(0,0,0,.4), 0 0 26px rgba(0,0,0,.3)}.jw-boiler-tabs .d1-mat-in h2,.pinned.mod-mat.jw-boiler-tabs .d1-mat-in h2{font-size:clamp(40px,4vw,58px); text-shadow: none}
.d1-mat-lead,.d1-mat-d{text-shadow:0 1px 2px rgba(0,0,0,.45), 0 0 18px rgba(0,0,0,.35)}
.d1-mat-d{font-family:Inter,system-ui,sans-serif; font-style:normal; font-size:17px; line-height:1.6}
.d1-mat-d b{font-size:13px}
.d1-proc.pinned .step:not(.on){opacity:.62}
.d1-proc.pinned .step.done{opacity:.8}
.rel-c b{font-size:23px; line-height:1.2; text-wrap:balance}
.rel-c span{font-size:15.5px}
.fs-rel-4 .rel-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1199px){ .fs-rel-4 .rel-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
.fs-rel-2 .rel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:900px){ .fs-rel-4 .rel-grid,.fs-rel-2 .rel-grid{grid-template-columns:1fr} }
.fs-ftr .ftr-grid{grid-template-columns:1.5fr .9fr 1.2fr}
.fs-ftr li,.fs-ftr .ftr-about p,.fs-ftr .ftr-contact a{font-size:14px}
.fs-ftr-hours{margin-top:20px; border-collapse:collapse}
.fs-ftr-hours th,.fs-ftr-hours td{padding:5px 0; text-align:left; font-size:14px; white-space:nowrap; vertical-align:top}
.fs-ftr-hours th{font-weight:400; color:rgba(255,255,255,.72); padding-right:22px}
.fs-ftr-hours td{font-weight:600; color:rgba(255,255,255,.94)}
.fs-ftr-addr{margin-top:14px; font-size:14px; color:rgba(255,255,255,.82)}
.fs-ftr-addr span{display:block; line-height:1.55}
.fs-ftr-towns{display:flex; flex-wrap:nowrap; justify-content:space-between; gap:0 18px; padding:18px 0; border-bottom:1px solid rgba(255,255,255,.11);
overflow-x:auto; scrollbar-width:none; -webkit-mask-image:none}
.fs-ftr-towns::-webkit-scrollbar{display:none}
.fs-ftr-towns a{flex:none; color:rgba(255,255,255,.82); font-size:13.5px; white-space:nowrap; padding:4px 0}
.fs-ftr-towns a:hover{color:#FFFFFF}
.fs-ftr .ftr-bot{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px 28px; padding:16px 0 18px; font-size:12.5px}
.fs-ftr .ftr-bot p{color:rgba(255,255,255,.72)}
.fs-ftr .fs-ftr-links{padding:0}
@media (max-width:1080px){ .fs-ftr .ftr-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)} .fs-ftr .ftr-about{grid-column:1 / -1} }
@media (max-width:760px){
.fs-ftr .ftr-grid{grid-template-columns:minmax(0,1fr)}
.fs-ftr .ftr-grid > *{min-width:0}
.fs-ftr-hours th{padding-right:14px}
.fs-ftr-towns{justify-content:flex-start; -webkit-mask-image:linear-gradient(90deg,#000 85%,transparent); mask-image:linear-gradient(90deg,#000 85%,transparent)}
}
@media (pointer:coarse){ .fs-ftr-towns a{min-height:44px; display:inline-flex; align-items:center} }
.eyebrow,.kicker,.d1-mat-tab,.d3-ab-b,.d3-facts > li,.d3-kp,.fs-ba-l,.fs-hs-p,.fs-opt-go,.fs-tlink,.jw-am-go,.jw-am-k,.jw-am-pcl,.jw-bc-fit,.jw-bc-tag,.jw-bt-more,.jw-bt-tab,.jw-cr-k,.jw-cs-row > button,.jw-cs-sh,.jw-fm-k,.jw-fs-gh,.jw-fs-o,.jw-fs-tab,.jw-gv-f,.jw-lf-h3,.jw-lf-m,.jw-lf-pcl,.jw-mf-gh,.jw-mf-k,.jw-pg-k,.jw-pg-pl,.jw-rd-f > span,.jw-rd-row > dt,.jw-rn-n,.jw-rs-nh,.jw-rs-pl,.jw-sf-gt,.jw-sf-part,.jw-sf-ph,.jw-tm-ok,.jw-tm-pcl,.jw-tm-tag,.jw-tr-gh,.jw-tr-strong,.jw-um-k,.jw-um-t,.plq-hint,.svc-go,.ticker-set > span,figcaption > b{font-size:12.5px !important}.fs-call-n > span{font-size:12.5px !important}
.d1-contact-card-p,.d1-gr-list > li,.d3-due-l > span,.d3-due-s,.d3-rev-sub,.d3-sw-l,.fs-ba-cap > span,.fs-hs-it > p,.ip-note,.jw-ba-hint,.jw-bc-line,.jw-bc-ot,.jw-bt-p > p,.jw-cs-l,.jw-cs-x,.jw-id-t,.jw-ji-t > em,.jw-ji-xin > p,.jw-pg-hint,.jw-pg-note,.jw-pg-p > p,.jw-pg-tip,.jw-pg-zo > p,.jw-rd-l > span,.jw-rd-words > p,.jw-rn-247,.jw-sf-gx,.jw-tr-age-h,.jw-tr-v > p,.opt > p,.rel-c > span,.step > p,.svc-p,.tick > li,.town-l,.d1-contact-points span,.fs-sitemap a{font-size:16px !important}.jw-pp-step > p{font-size:16px !important}
.form-note,.jw-am-pch,.jw-lf-pch,.jw-tm-pch,.plq-face > small,.fs-cr-map{font-size:14px !important}
.ftr-bot > p{font-size:13px !important}
.fs-rows .wrap{gap:clamp(64px,8vw,120px)}
.fs-sp,.fs-stk{grid-template-columns:minmax(0,.82fr) minmax(0,1fr); grid-template-areas:none; align-items:start; gap:clamp(32px,5vw,84px)}
.fs-sp.flip,.fs-stk.flip{grid-template-columns:minmax(0,1fr) minmax(0,.82fr)}
.fs-sp.flip .sp-art,.fs-stk.flip .sp-art{order:2}
.fs-sp .sp-art figure,.fs-stk .sp-art figure{aspect-ratio:auto}
.fs-port{margin:0; border-radius:var(--r); overflow:hidden; background:var(--wash)}
.fs-port img,.fs-port video,.sp-art .fs-port img{width:100%; aspect-ratio:4 / 5; height:auto; object-fit:cover; display:block}
.fs-sp .sp-copy h2,.fs-stk h2{font-size:clamp(28px,3vw,42px); line-height:1.12; margin:0 0 18px; max-width:22ch; text-wrap:balance}
.fs-sp .sp-copy .eyebrow,.fs-stk .eyebrow{margin-bottom:14px}
.fs-sp .sp-copy{padding-top:4px}
.fs-stk .sp-art{align-self:stretch}
.fs-stk .sp-art .fs-port{position:sticky; top:calc(var(--hdr-solid) + 28px)}
.fs-stk-b + .fs-stk-b{margin-top:clamp(40px,5vw,64px); padding-top:clamp(40px,5vw,64px); border-top:1px solid var(--line)}
.fs-stk-b p{max-width:58ch}
@media (max-width:899px){
.fs-sp,.fs-stk,.fs-sp.flip,.fs-stk.flip{grid-template-columns:1fr}
.fs-sp.flip .sp-art,.fs-stk.flip .sp-art{order:0}
.fs-stk .sp-art .fs-port{position:static}
.fs-port img,.fs-port video{aspect-ratio:4 / 3.4}
}
.fs-band{padding:0 0 var(--sec); background:var(--paper)}
.fs-band-ph{margin:0; height:clamp(380px,66vh,640px); overflow:hidden; background:var(--wash)}
.fs-band-ph img{width:100%; height:115%; object-fit:cover; display:block}
.fs-band-card{position:relative; z-index:1; max-width:780px; margin:-180px 0 0; background:#FFFFFF; border-radius:var(--r);
padding:clamp(28px,4vw,60px); box-shadow:none}
.fs-band-card h2{font-size:clamp(30px,3.2vw,46px); line-height:1.12; margin:0 0 18px; text-wrap:balance}
.fs-band-card p{max-width:60ch}
@media (max-width:899px){ .fs-band-ph{height:clamp(260px,52vw,420px)} .fs-band-card{margin-top:-60px} }
.fs-notes{background:var(--wash)}
.fs-notes-grid{display:grid; gap:clamp(14px,1.6vw,22px)}
.fs-nc-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.fs-nc-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.fs-note{background:#FFFFFF; border-radius:var(--r); padding:clamp(26px,3vw,44px)}
.fs-note-n{display:block; font-family:"Cormorant Garamond",Georgia,serif; font-weight:300; font-size:38px; line-height:1; color:var(--peri); margin-bottom:16px; font-variant-numeric:lining-nums}
.fs-note h2{font-size:clamp(24px,2.3vw,32px); line-height:1.15; margin:0 0 14px; text-wrap:balance}
.fs-note p{font-size:16px; line-height:1.68; margin-bottom:12px}
.fs-note p:last-child{margin-bottom:0}
@media (max-width:1099px){ .fs-nc-3{grid-template-columns:1fr} }
@media (max-width:899px){ .fs-nc-2{grid-template-columns:1fr} }
.fs-list-in{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(32px,6vw,96px); align-items:start}
.fs-list-h h2{font-size:clamp(30px,3.2vw,46px); line-height:1.12; text-wrap:balance}
.fs-list-ul{list-style:none; margin:0; padding:0; border-top:1px solid var(--line)}
.fs-list-ul li{display:flex; gap:14px; align-items:flex-start; padding:16px 0; border-bottom:1px solid var(--line); font-size:17px; line-height:1.5; color:var(--ink)}
.fs-list-ul li svg{flex:none; margin-top:5px; color:var(--navy)}
@media (max-width:899px){ .fs-list-in{grid-template-columns:1fr} }
.fs-areas-in{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.95fr); gap:clamp(32px,6vw,96px); align-items:center; margin-bottom:clamp(30px,4vw,52px)}
.fs-areas-copy h2{text-wrap:balance}
.fs-areas-copy .lead{max-width:52ch}
.fs-areas-seo{font-size:16px; line-height:1.7; color:var(--body); max-width:58ch}
.fs-areas-ph{margin:0; border-radius:var(--r); overflow:hidden}
.fs-areas-ph img{width:100%; aspect-ratio:3 / 2; object-fit:cover; display:block}
.d1-areas.fs-areas .d1-wm{display:none}
@media (max-width:899px){ .fs-areas-in{grid-template-columns:1fr} }
.d1-work-head.fs-stackhead{display:block; max-width:760px}
.d1-work-head.fs-stackhead .lead{margin-top:14px}
@media (min-width:900px) and (max-width:1279px){ :root{--gut:max(54px,4.2vw)} }
@media (min-width:900px){ .fs-note h2{min-height:2.3em} .fs-nc-3 .fs-note h2{min-height:2.3em} }
@media (min-width:900px){ .fs-ba-frame{aspect-ratio:auto; height:min(560px, calc(100vh - 230px))} }
@media (max-width:760px){
.fs-pb{display:block; min-height:0; padding:0; background:#1F1F20}
.fs-pb-img{position:relative; inset:auto; z-index:0; height:min(122vw, 500px); transform:none !important}
.fs-pb .hero-scrim{position:absolute; left:0; right:0; top:0; bottom:auto; z-index:1; height:min(122vw, 500px); background:
linear-gradient(180deg, rgba(18,18,19,.52) 0, rgba(18,18,19,0) 120px, rgba(18,18,19,0) 52%, rgba(31,31,32,.78) 82%, #1F1F20 100%)}
.fs-pb .pb-in{position:relative; z-index:2; margin-top:-104px; padding-top:0; padding-bottom:44px}
.fs-pb-bright .pb-in::before{display:none}
}
:root{--sec:clamp(84px,8.4vw,136px)}
.d1-gr-list{grid-template-columns:1fr; gap:10px}
.marks .fill svg{color:var(--navy)}
.on-dark .marks .fill svg{color:var(--sky)}
@media (max-width:560px){
.d1-backs-grid{grid-template-columns:1fr 1fr !important; gap:10px}
.plq-in{min-height:190px}.d1-backs .plq-in{min-height:190px}
}
.hero-slides.d3-zoom3 > .d3-sl{position:absolute; inset:0; overflow:hidden; opacity:0; transition:opacity 1.4s cubic-bezier(.3,.05,.2,1)}
.hero-slides.d3-zoom3 > .d3-sl.on{opacity:1; z-index:1}
.hero-slides.d3-zoom3 > .d3-sl.off{opacity:0; z-index:0}
.hero-slides.d3-zoom3 .d3-push,.hero-slides.d3-zoom3 .d3-sl picture{position:absolute; inset:0; display:block; transform-origin:var(--o, 50% 50%); will-change:transform}
.hero-slides.d3-zoom3 .d3-sl picture{opacity:1; animation:none}
.hero-slides.d3-zoom3 .d3-sl.on .d3-push,.hero-slides.d3-zoom3 .d3-sl.off .d3-push{animation:d3Push 9s cubic-bezier(.25,.1,.25,1) both}
.hero-slides.d3-zoom3 .d3-sl.on picture,.hero-slides.d3-zoom3 .d3-sl.off picture{animation:d3Arrive 5.5s cubic-bezier(.33,.08,.18,1) both}
@keyframes d3Push{from{transform:scale(1.04)} to{transform:scale(1.25)}}
@keyframes d3Arrive{from{transform:scale(1.5)} to{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){
.hero-slides.d3-zoom3 .d3-sl .d3-push,.hero-slides.d3-zoom3 .d3-sl picture{animation:none !important; transform:none}
.hero-slides.d3-zoom3 > .d3-sl:first-child{display:block; opacity:1}
}
@media (min-width:900px) and (max-height:760px){
.d1-proc .step > p{font-size:15px !important; line-height:1.55}.jw-bt-p > p{font-size:15px !important; line-height:1.55}
}
@media (min-width:900px) and (max-height:940px){ .jw-bt-p > p{font-size:15px !important; line-height:1.55} }
.fs-ftr .ftr-about > p:not(.d3-ftr-marks){font-size:14.5px}
.d3-ftr-marks{font-size:13.5px}
@media (max-width:420px){ .d3-ftr-marks{grid-template-columns:repeat(2,minmax(0,max-content)); gap:8px 16px} }
.hero-slides.d3-zoom3 img{filter:none}
.d1-hero h1 em{animation-iteration-count:1}
.d1-hero .d3-hin{opacity:1; transform:none; filter:none}
html:not(.intro-on):not(.intro-done) .d1-hero .d3-hin{animation:d3Hin .7s cubic-bezier(.2,.7,.2,1) backwards}
.d1-hero h1.d3-hin{animation-delay:.06s}
.d1-hero .lead.d3-hin{animation-delay:.12s}
.d1-hero .hero-cta.d3-hin{animation-delay:.18s}
@keyframes d3Hin{from{opacity:.6; transform:translateY(10px)} to{opacity:1; transform:none}}
@media (prefers-reduced-motion:reduce){ .d1-hero .d3-hin{animation:none} }
.d1-hero h1 em{background:none !important; -webkit-background-clip:border-box !important; background-clip:border-box !important;
filter:none !important; animation:none !important; color:#BFEBFB !important; -webkit-text-fill-color:#BFEBFB !important}
.d1-hero,.hero-slides.d3-zoom3,.hero-slides.d3-zoom3 > .d3-sl{background:#1F1F20}
.d1-contact{overflow:clip}
@media (min-width:900px) and (min-height:600px){
.d1-contact-grid{align-items:start}
.d1-contact-copy.fs-hold,.ip-contact-copy.fs-hold{position:sticky; top:calc(var(--hdr-solid) + 28px); transform:none !important}
}
@media (min-width:900px) and (max-height:760px){
.d1-contact-copy .eyebrow{margin-bottom:12px}
.d1-contact-copy h2{font-size:clamp(34px,3.4vw,44px); margin-bottom:14px}
.d1-contact .d1-contact-copy .lead{font-size:16px; line-height:1.55; margin-bottom:10px}
.d1-contact-points{margin-top:14px}
.d1-contact-points li{padding:9px 0}
.d1-contact-direct{margin-top:14px}
}
@media (min-width:900px) and (max-height:760px){
.d1-contact-copy.fs-hold{top:calc(var(--hdr-solid) + 14px)}
.d1-contact .d1-contact-copy .lead{font-size:15.5px !important; line-height:1.5}
.d1-contact-points li{padding:7px 0; gap:12px}
.d1-contact-points span{font-size:14.5px !important; line-height:1.45}
.d1-contact-points b{margin-bottom:1px}
.d1-contact-direct{margin-top:10px; gap:4px 18px}
}
@media (min-width:900px) and (max-height:900px){
.d1-contact-points .cp-d{display:none}
.d1-contact-points li{padding:6px 0; align-items:center}
.d1-contact-points b{margin:0}
}
@media (min-width:900px) and (max-height:760px){
.d1-contact-copy h2{font-size:clamp(30px,3vw,38px); line-height:1.1}
.d1-contact .d1-contact-copy .lead{font-size:15px !important; line-height:1.48}
}
.ht{--ht-sky:#03B3EF}
.ht .wrap{max-width:var(--max)}
.ht-head{max-width:760px; margin-bottom:clamp(28px,3.4vw,52px)}
.ht-head .lead{margin-top:14px; max-width:60ch}
.ht-in{display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(28px,4vw,64px); align-items:center}
@media (min-width:1000px){ .ht-in{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)} }
.ht-map{position:relative; margin:0; aspect-ratio:880 / 780; background:#F2F6F7; border:1px solid var(--line); border-radius:var(--r); overflow:clip}
.ht-svg{position:absolute; inset:0; width:100%; height:100%}
.ht-b{fill:none; stroke:#D7DCDE; stroke-width:1.2; stroke-dasharray:5 6}
.ht-r{fill:none; stroke-linecap:round; stroke-linejoin:round}
.ht-r.main{stroke:#8FD6F0; stroke-width:4}
.ht-r.minor{stroke:#BEE6F5; stroke-width:1.8}
.ht-r.canal{stroke:#BEE6F5; stroke-width:1.6; stroke-dasharray:6 5}
.ht-line{fill:none; stroke:var(--ht-sky); stroke-width:2.2; stroke-linecap:round; opacity:0}
.ht-has-line .ht-line{opacity:1}
.ht-line.ht-draw{animation:htLine .8s var(--ease) both}
@keyframes htLine{from{stroke-dashoffset:1} to{stroke-dashoffset:0}}
.ht-base{position:absolute; transform:translate(-50%,-50%); z-index:3; display:flex; align-items:center; pointer-events:none}
.ht-base img{width:clamp(28px,3vw,40px); height:auto; border-radius:50%; background:#fff}
.ht-base span{position:absolute; left:calc(100% + 8px); top:50%; transform:translateY(-50%); white-space:nowrap; font:400 clamp(14px,1.25vw,18px)/1 var(--serif, "Cormorant Garamond", Georgia, serif); color:var(--ink)}
.ht-base.on span{color:var(--navy)}
.ht-dot{position:absolute; z-index:2; width:44px; height:44px; margin:-22px 0 0 -22px; padding:0; border:0; background:none; display:grid; place-items:center; cursor:pointer; color:inherit}
.ht-dot i{display:block; width:9px; height:9px; border-radius:50%; background:#373D3E; border:1.5px solid #F2F6F7; box-sizing:content-box; position:relative; transition:background-color .4s, transform .5s var(--ease)}
.ht-dot i::after{content:""; position:absolute; left:50%; top:50%; width:26px; height:26px; margin:-13px; border-radius:50%; border:1px solid var(--ht-sky); opacity:0; transform:scale(.5); transition:opacity .5s, transform .7s var(--ease)}
.ht-dot span{position:absolute; top:50%; transform:translateY(-50%); white-space:nowrap; font:400 clamp(13px,1.1vw,16px)/1 "Cormorant Garamond", Georgia, serif; color:var(--ink); transition:color .3s;
text-shadow:0 0 3px #F2F6F7, 0 0 3px #F2F6F7, 0 0 6px #F2F6F7}
.ht-dot.r span{left:calc(50% + 10px)} .ht-dot.l span{right:calc(50% + 10px)}
.ht-dot.b span{left:50%; top:calc(50% + 12px); transform:translateX(-50%)}
.ht-dot.on i,.ht-dot:hover i{background:var(--ht-sky); transform:scale(1.25)}
.ht-dot.on i::after{opacity:1; transform:scale(1); animation:htPulse 2s var(--ease) infinite}
.ht-dot.on span{color:var(--navy)}
@keyframes htPulse{0%{transform:scale(.6); opacity:.9} 100%{transform:scale(1.5); opacity:0}}
.js .ht-in .ht-map,.js .ht-in .ht-fb{opacity:0; transition:opacity 1s var(--ease)}
.js .ht-in .ht-fb{transition-delay:.25s}
.js .ht-in.in .ht-map,.js .ht-in.in .ht-fb{opacity:1}
.ht-top{display:flex; justify-content:space-between; align-items:baseline; padding-bottom:14px; border-bottom:1px solid var(--line)}
.ht-top .eyebrow{margin:0}
.ht-n{margin:0; font:500 12.5px/1 Inter,system-ui,sans-serif; letter-spacing:.2em; color:var(--body)} .ht-n b{font-weight:600; color:var(--ink)}
.ht-book{position:relative; display:grid; margin:clamp(22px,2.4vw,34px) 0 0; padding:0; list-style:none; perspective:1200px}
.ht-p{padding-bottom:6px}
.ht-p + .ht-p{margin-top:28px}
.ht-js .ht-p{grid-area:1/1; margin:0; visibility:hidden; transform-origin:50% 0; backface-visibility:hidden}
.ht-js .ht-p.on{visibility:visible}
.ht-js .ht-p.out,.ht-js .ht-p.out-dn{visibility:visible; animation:htFlipOut .4s cubic-bezier(.5,0,.75,0) both}
.ht-js .ht-p.in-up,.ht-js .ht-p.in-dn{animation:htFlipIn .7s cubic-bezier(.2,.75,.25,1) .36s both}
@keyframes htFlipOut{from{transform:rotateX(0); opacity:1} to{transform:rotateX(-78deg); opacity:0}}
@keyframes htFlipIn{from{transform:rotateX(78deg); opacity:0} to{transform:rotateX(0); opacity:1}}
.ht-k{margin:0; font:500 12.5px/1.5 Inter,system-ui,sans-serif; letter-spacing:.16em; text-transform:uppercase; color:var(--body)}
.ht-t{margin:12px 0 0; font:300 clamp(42px,4.6vw,68px)/1.02 "Cormorant Garamond", Georgia, serif; color:var(--ink)}
.ht-t a{color:inherit} .ht-t a:hover{color:var(--navy)}
.ht-l{margin:14px 0 0; font-size:17px; line-height:1.6; color:var(--body)}
.ht-book .ht-book-l,.ht-p .ht-book{display:inline-flex; align-items:center; min-height:44px; margin-top:12px}
.ht-nav{display:none; gap:10px; margin-top:clamp(20px,2.4vw,32px); padding-top:18px; border-top:1px solid var(--line)}
.ht-js .ht-nav{display:flex}
.ht-arr{display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid var(--line); border-radius:50%; background:none; color:var(--ink); cursor:pointer;
transition:background-color .35s var(--ease), color .35s, border-color .35s}
.ht-arr:hover{background:var(--ink); color:#fff; border-color:var(--ink)}
@media (max-width:639px){ .ht-dot{pointer-events:none} .ht-dot span{font-size:12px} .ht-dot.r span{left:calc(50% + 8px)} .ht-dot.l span{right:calc(50% + 8px)} .ht-base span{font-size:12.5px} }
@media (prefers-reduced-motion:reduce){
.ht-js .ht-p.out,.ht-js .ht-p.out-dn,.ht-js .ht-p.in-up,.ht-js .ht-p.in-dn{animation:none}
.ht-dot.on i::after{animation:none}
.ht-line.ht-draw{animation:none}
}
.ht-dot.t span{left:50%; top:auto; bottom:calc(50% + 10px); transform:translateX(-50%)}
.ht-dot span,.ht-base > span{transition:color .3s, opacity .35s}
.ht-dot span.ht-mute,.ht-base > span.ht-mute{opacity:0}
.acc .d1-wm{display:none}
.acc-row{list-style:none; margin:clamp(30px,3.6vw,52px) 0 0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr))}
.acc-c{position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; padding:6px clamp(8px,1.6vw,30px) 4px}
.acc-c + .acc-c{border-left:1px solid rgba(42,43,45,.18)}
.acc-logo{display:flex; align-items:center; justify-content:center; height:84px; width:100%}
.acc-img{display:block; width:auto; height:auto; max-width:100%}
.acc-img.acc-gassafe{height:78px}
.acc-img.acc-which{height:76px}
.acc-img.acc-checkatrade{width:158px; max-width:92%}
.acc-g{display:inline-flex; align-items:center; gap:12px}
.acc-g > svg{width:42px; height:42px; flex:none}
.acc-g-r{display:flex; flex-direction:column; align-items:flex-start; gap:5px}
.acc-g-r b{font:600 26px/1 Inter,system-ui,sans-serif; color:#262727; letter-spacing:.01em}
.acc-g-s{display:inline-flex; gap:2px; color:#FBBC05}
.acc-g-s svg{width:13px; height:13px}
.acc-shield{color:#05668E; width:58px; height:58px}
.acc-n{margin:18px 0 0; font:400 clamp(22px,2vw,27px)/1.15 "Cormorant Garamond", Georgia, serif; color:#262727; white-space:nowrap}
.acc-stage{position:relative; display:grid; width:100%; margin-top:10px}
.acc-front,.acc-back{grid-area:1/1; display:flex; flex-direction:column; align-items:center; transition:opacity .45s var(--ease), transform .55s var(--ease)}
.acc-l{margin:0; font-size:16px; line-height:1.55; color:#39393A}
.acc-more{display:inline-flex; align-items:center; gap:10px; min-height:44px; margin-top:6px; padding:0 2px; border:0; background:none; cursor:pointer;
font:600 12.5px/1 Inter,system-ui,sans-serif; letter-spacing:.16em; text-transform:uppercase; color:#05668E}
.acc-more i{position:relative; width:12px; height:12px}
.acc-more i::before,.acc-more i::after{content:""; position:absolute; left:0; top:5.5px; width:12px; height:1px; background:currentColor; transition:transform .45s var(--ease)}
.acc-more i::after{transform:rotate(90deg)}
.acc-back{opacity:0; transform:translateY(8px); pointer-events:none}
.acc-back p{margin:0; font-size:16px; line-height:1.55; color:#262727; text-wrap:pretty}
.acc-link{display:inline-flex; align-items:center; gap:8px; min-height:44px; margin-top:4px; font:600 12.5px/1 Inter,system-ui,sans-serif; letter-spacing:.16em;
text-transform:uppercase; color:#05668E}
.acc-c.open .acc-front{opacity:0; transform:translateY(-8px); pointer-events:none}
.acc-c.open .acc-back{opacity:1; transform:none; pointer-events:auto}
.acc-c.open .acc-more i::after{transform:none}
.js .acc .acc-c{opacity:.6; transform:translateY(14px); transition:opacity .9s var(--ease) calc(var(--i) * 110ms), transform 1.1s var(--ease) calc(var(--i) * 110ms)}
.js .acc.acc-in .acc-c,.js.no-reveal .acc .acc-c{opacity:1; transform:none}
.acc-facts{list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,max-content)); justify-content:center; margin:clamp(30px,3.4vw,46px) auto 0; padding:0}
.acc-facts li{display:flex; align-items:center; justify-content:center; gap:10px; padding:6px clamp(18px,2.6vw,38px); white-space:nowrap;
font:600 12.5px/1 Inter,system-ui,sans-serif; letter-spacing:.16em; text-transform:uppercase; color:#262727}
.acc-facts li + li{border-left:1px solid rgba(42,43,45,.26)}
.acc-facts svg{flex:none; color:#05668E}
@media (max-width:899px){
.acc-row{grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:34px}
.acc-c:nth-child(3){border-left:0}
}
@media (max-width:640px){
.acc-facts{grid-template-columns:max-content; justify-content:center}
.acc-facts li{padding-left:6px; padding-right:6px}
.acc-facts li + li{border-left:0; border-top:1px solid rgba(42,43,45,.2)}
.acc-logo{height:70px}
.acc-img.acc-gassafe{height:60px} .acc-img.acc-which{height:62px} .acc-img.acc-checkatrade{width:132px}
.acc-g > svg{width:34px; height:34px} .acc-g-r b{font-size:22px}
}
@media (prefers-reduced-motion:reduce){ .js .acc .acc-c{opacity:1; transform:none; transition:none} .acc-front,.acc-back{transition:none} }
@media (max-width:640px){ .acc-n{white-space:normal; text-wrap:balance} }
.acc-stage,.acc-front,.acc-back{min-width:0}
.acc-l{margin-bottom:6px}
.acc-front .acc-more{margin-top:auto}
@media (max-width:640px){
.acc-more,.acc-link{letter-spacing:.05em; white-space:nowrap; gap:6px; padding:0}
.acc-l{font-size:15px}
.acc-back p{font-size:16px; line-height:1.5}
.acc-c{padding-left:8px; padding-right:8px}
}
.fs-ftr3 .ftr-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr); align-items:start; gap:clamp(24px,3.4vw,56px)}
.fs-ftr3 .ftr-h{margin-top:0}
.fs-ftr3 .fs-f-brand{display:flex; flex-direction:column; align-items:center; text-align:center}
.fs-ftr3 .fs-f-brand .lockup{justify-content:center}
.fs-ftr3 .fs-f-brand .lockup img{height:44px}
.fs-ftr3 .ftr-about .ftr-tag{margin-top:16px; white-space:nowrap; font-size:clamp(17px,1.5vw,20px)}
.fs-ftr3 .fs-f-line{margin:10px auto 0; max-width:36ch; font-size:14.5px; line-height:1.6}
.fs-f-marks{list-style:none; display:flex; align-items:center; justify-content:center; gap:clamp(14px,1.8vw,24px); margin:20px 0 0; padding:0}
.fs-f-marks li{display:flex; align-items:center; height:40px}
.fs-f-marks .acc-img.acc-gassafe{height:36px}
.fs-f-marks .acc-img.acc-which{height:38px}
.fs-f-marks .acc-img.acc-checkatrade{width:96px}
.fs-f-marks .acc-g{gap:7px} .fs-f-marks .acc-g > svg{width:22px; height:22px}
.fs-f-marks .acc-g-r{gap:2px} .fs-f-marks .acc-g-r b{font-size:15px} .fs-f-marks .acc-g-s svg{width:8px; height:8px}
.fs-ftr3 .ftr-social{justify-content:center; margin-top:18px}
.fs-ftr3 .ftr-contact{display:grid; gap:4px; justify-items:start}
.fs-ftr3 .ftr-contact a{display:inline-grid; grid-template-columns:18px auto; align-items:center; column-gap:10px; min-height:44px}
.fs-ftr3 .ftr-contact a span{white-space:nowrap}
.fs-ftr3 .fs-ftr-hours th,.fs-ftr3 .fs-ftr-hours td{white-space:nowrap}
.fs-ftr3 .ftr-bot{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px 28px}
@media (max-width:1180px){ .fs-ftr3 .ftr-bot{flex-direction:column; justify-content:center; text-align:center} .fs-ftr3 .fs-ftr-links{justify-content:center} }
@media (max-width:899px){
.fs-ftr3 .ftr-grid{grid-template-columns:minmax(0,1fr); justify-items:center; text-align:center; row-gap:36px}
.fs-ftr3 .fs-f-brand{order:-1}
.fs-ftr3 .fs-f-explore ul{align-items:center}
.fs-ftr3 .ftr-contact{justify-items:center}
.fs-ftr3 .fs-ftr-hours{margin-left:auto; margin-right:auto}
.fs-ftr3 .fs-ftr-hours th,.fs-ftr3 .fs-ftr-hours td{text-align:left}
}
@media (max-width:420px){ .fs-ftr3 .ftr-about .ftr-tag{white-space:nowrap; font-size:18px} .fs-f-marks{gap:14px}
.fs-f-marks .acc-img.acc-gassafe{height:30px} .fs-f-marks .acc-img.acc-which{height:32px} .fs-f-marks .acc-img.acc-checkatrade{width:78px}
.fs-f-marks .acc-g > svg{width:19px; height:19px} .fs-f-marks .acc-g-r b{font-size:13.5px} }
.fs-f-marks li{flex:none} .fs-f-marks .acc-img{max-width:none}
.ftr-compact ul.fs-f-marks{gap:clamp(14px,1.8vw,24px)}
@media (min-width:900px){ .fs-ftr3 .ftr-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr)} .fs-ftr3 .ftr-about{grid-column:auto} }
.fs-ftr3 .fs-f-marks{flex-direction:row; flex-wrap:nowrap}
.fs-ftr3 .fs-f-explore .ftr-h,.fs-ftr3 .fs-f-contact .ftr-h{line-height:1.15}
@media (min-width:900px) and (max-width:1279px){
.fs-ftr3 .fs-ftr-hours,.fs-ftr3 .fs-ftr-hours tbody,.fs-ftr3 .fs-ftr-hours tr{display:block}
.fs-ftr3 .fs-ftr-hours tr + tr{margin-top:10px}
.fs-ftr3 .fs-ftr-hours th,.fs-ftr3 .fs-ftr-hours td{display:block; padding:0}
.fs-ftr3 .fs-ftr-hours th{font-size:13px; letter-spacing:.04em}
}
.fs-pb-ai .fs-pb-img .fs-pic,.fs-pb-ai .fs-pb-img .fs-pic img{transform-origin:var(--o, 70% 50%)}
@media (min-width:761px){
.fs-pb-ai .hero-scrim{background:
linear-gradient(180deg, rgba(18,18,19,.42) 0, rgba(18,18,19,0) 150px),
linear-gradient(90deg, rgba(18,18,19,var(--pa,.80)) 0%, rgba(18,18,19,var(--pb,.74)) calc(var(--e, .6) * 100% - 16%), rgba(18,18,19,.34) calc(var(--e, .6) * 100% - 2%), rgba(18,18,19,0) calc(var(--e, .6) * 100% + 8%))}
.fs-pb-ai .pb-in{width:100%}
.fs-pb-ai .pb-in > :not(.hero-cta){max-width:clamp(440px, calc(var(--e, .6) * 100vw - 120px), 640px)}
.fs-pb-ai h1{font-size:clamp(38px,4.4vw,72px)}
.fs-pb-ai .pb-in::before{display:none}
}
@media (min-width:761px) and (max-height:760px){
.fs-pb.fs-pb-ai{padding-top:calc(var(--hdr) + 14px); padding-bottom:38px}
}
.fs-nw{white-space:nowrap}
.fs-pq .acc-row{grid-template-columns:repeat(3,minmax(0,1fr)); row-gap:0}
.fs-pq .acc-c{padding-top:clamp(22px,2.4vw,34px); padding-bottom:clamp(18px,2vw,26px)}
.fs-pq .acc-c:nth-child(3n+1){border-left:0}
.fs-pq .acc-c:nth-child(n+4){border-top:1px solid rgba(42,43,45,.18)}
.fs-pq-n{display:block; font:300 clamp(38px,3.4vw,52px)/1 "Cormorant Garamond",Georgia,serif; color:#05668E}
.fs-pq .acc-n{margin-top:12px; white-space:normal; text-wrap:balance; max-width:16em}
.fs-pq .acc-back p{max-width:30ch}
.fs-pq .acc-stage{margin-top:12px}
@media (max-width:899px){
.fs-pq .acc-row{grid-template-columns:repeat(2,minmax(0,1fr))}
.fs-pq .acc-c:nth-child(3n+1){border-left:1px solid rgba(42,43,45,.18)}
.fs-pq .acc-c:nth-child(2n+1){border-left:0}
.fs-pq .acc-c:nth-child(n+3){border-top:1px solid rgba(42,43,45,.18)}
}
.jw-boiler-tabs.fs-tb .jw-bt-tabs{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 26px; border-bottom:0}
.jw-boiler-tabs.fs-tb .jw-bt-tab{display:flex; align-items:center; min-height:48px; padding:10px 0; text-align:left; white-space:normal; border-bottom:1px solid rgba(42,43,45,.2);
font:500 15.5px/1.3 Inter,system-ui,sans-serif; letter-spacing:0; text-transform:none; color:#474748}
.jw-boiler-tabs.fs-tb .jw-bt-tab::after{bottom:-1px}
.fs-tb .jw-bt-panels{margin-top:22px}
.fs-tb .jw-bt-p h3{font-size:clamp(26px,2.2vw,32px)}
.jw-boiler-tabs.fs-tb.fs-tb-3 .jw-bt-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
.fs-tb.fs-tb-hold .jw-bt-shot img{transform:none}
@media (min-width:900px) and (max-height:760px){
.jw-boiler-tabs.fs-tb.pinned .jw-bt-tab{min-height:44px; padding:6px 0; font-size:15px}
.fs-tb.pinned .jw-bt-p p{font-size:16px}
}
@media (max-width:560px){ .jw-boiler-tabs.fs-tb .jw-bt-tabs{grid-template-columns:1fr 1fr} .jw-boiler-tabs.fs-tb .jw-bt-tab{font-size:15px} }
.fs-steps{background:var(--wash)}
.fs-st-in{display:grid; grid-template-columns:minmax(0,42fr) minmax(0,58fr); gap:clamp(32px,5vw,80px); align-items:start}
.fs-st-art{position:sticky; top:calc(var(--hdr-solid,92px) + 24px)}
.fs-st-frame{position:relative; height:min(calc(100vh - var(--hdr-solid,92px) - 56px), 640px); min-height:320px; overflow:hidden; border-radius:var(--r-sm); background:var(--ink)}
.fs-st-ph{position:absolute; inset:0; margin:0; opacity:0; transition:opacity .7s var(--ease)}
.fs-st-ph.on{opacity:1}
.fs-st-ph img{width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.04); transition:transform 1.4s var(--ease)}
.fs-st-ph.on img{transform:none}
.fs-st-list{position:relative; list-style:none; margin:0; padding:0 0 0 64px}
.fs-st-line{position:absolute; left:21px; top:8px; bottom:8px; width:1px; background:var(--line)}
.fs-st-line i{position:absolute; inset:0; background:var(--sky,#03B3EF); transform-origin:50% 0; transform:scaleY(var(--p,0)); transition:transform .2s linear}
.fs-st{position:relative; padding:0 0 clamp(40px,5vh,64px)}
.fs-st:last-child{padding-bottom:0}
.fs-st-n{position:absolute; left:-64px; top:0; display:grid; place-items:center; width:44px; height:44px; border-radius:50%;
border:1px solid var(--line); background:#FFFFFF; font:500 13px/1 Inter,sans-serif; letter-spacing:.06em; color:var(--navy);
transition:background-color .45s var(--ease), color .45s var(--ease), border-color .45s var(--ease)}
.fs-st.on .fs-st-n{background:var(--navy); border-color:var(--navy); color:#FFFFFF}
.fs-st-b h2{font-size:clamp(26px,2.4vw,34px); line-height:1.14; margin:4px 0 14px; text-wrap:balance}
.fs-st-b p{font-size:16px; line-height:1.7; max-width:60ch}
@media (max-width:899px){
.fs-st-in{grid-template-columns:1fr}
.fs-st-art{position:relative; top:auto}
.fs-st-frame{height:auto; aspect-ratio:4 / 3; min-height:0}
.fs-st-list{padding-left:56px}
.fs-st-n{left:-56px}
.fs-st-line{left:21px}
}
.fs-band2{padding:0 0 var(--sec); background:var(--paper,#FFFFFF)}
.fs-band2 .fs-band-ph{height:clamp(360px,64vh,700px)}
.fs-band2 .fs-band-ph img{height:100%}
.fs-band-in{display:grid; grid-template-columns:minmax(0,40fr) minmax(0,60fr); gap:clamp(28px,5vw,80px); align-items:start; padding-top:clamp(36px,4.4vw,64px)}
.fs-band-h h2{font-size:clamp(30px,3.2vw,46px); line-height:1.12; margin:0; text-wrap:balance}
.fs-band-t p{max-width:62ch}
@media (max-width:899px){ .fs-band-in{grid-template-columns:1fr} .fs-band2 .fs-band-ph{height:clamp(260px,62vw,440px)} }
.fs-lsp .fs-list-ul{margin-top:18px}
.fs-lsp .fs-list-ul li{font-size:16.5px; padding:13px 0}
.fs-qt{background:var(--wash)}
.fs-qt-in{display:grid; grid-template-columns:minmax(0,40fr) minmax(0,60fr); gap:clamp(32px,5vw,88px); align-items:center}
.fs-qt-np .fs-qt-in{grid-template-columns:minmax(0,1fr); max-width:980px}
.fs-qt-ph{margin:0; aspect-ratio:4 / 5; max-height:min(76vh,640px); overflow:hidden; border-radius:var(--r-sm)}
.fs-qt-ph img{width:100%; height:100%; object-fit:cover; display:block}
.fs-qt .fs-rq{margin-top:18px; text-align:left; max-width:none}
.fs-qt .rq-stage{display:grid; min-height:0}
.fs-qt .rq-item{grid-area:1 / 1; margin:0}
.fs-qt .rq-item blockquote{margin:0; font:300 clamp(26px,2.6vw,40px)/1.28 "Cormorant Garamond",Georgia,serif; color:var(--ink); text-align:left; text-wrap:pretty}
.fs-qt .rq-item figcaption{justify-content:flex-start; text-align:left; margin-top:22px}
.fs-qt .rq-ctrl{justify-content:flex-start; margin-top:26px}
@media (max-width:899px){ .fs-qt-in{grid-template-columns:1fr} .fs-qt-ph{aspect-ratio:4 / 3; max-height:none} }
.fs-rx{background:#FFFFFF; overflow:hidden}
.fs-rx-head{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:clamp(24px,2.8vw,40px)}
.fs-rx-head h2{margin:0}
.fs-rx-ctl{display:flex; gap:10px; flex:none}
.fs-rx-b{display:grid; place-items:center; width:48px; height:48px; border:1px solid var(--line); border-radius:50%; background:#FFFFFF; color:var(--ink); cursor:pointer;
transition:background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), opacity .35s var(--ease)}
.fs-rx-b[data-rx="-1"] svg{transform:rotate(180deg)}
.fs-rx-b:hover{background:var(--ink); border-color:var(--ink); color:#FFFFFF}
.fs-rx-b:disabled{opacity:.35; cursor:default; background:#FFFFFF; color:var(--ink); border-color:var(--line)}
.fs-rx-b:focus-visible{outline:2px solid var(--navy); outline-offset:2px}
.fs-rx-row{display:flex; gap:clamp(12px,1.3vw,18px); overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none;
-webkit-overflow-scrolling:touch; overscroll-behavior-x:contain; padding-bottom:2px}
.fs-rx-row::-webkit-scrollbar{display:none}
.fs-rx-row:focus-visible{outline:2px solid var(--navy); outline-offset:4px}
.fs-rx-t{flex:0 0 calc((100% - 2 * clamp(12px,1.3vw,18px)) / 3); scroll-snap-align:start}
@media (max-width:1099px){ .fs-rx-t{flex-basis:calc((100% - clamp(12px,1.3vw,18px)) / 2)} }
@media (max-width:640px){ .fs-rx-t{flex-basis:82%} .fs-rx-ctl{display:none} }
@media (prefers-reduced-motion:reduce){ .fs-rx-row{scroll-behavior:auto} .fs-st-line i,.fs-st-ph,.fs-st-ph img{transition:none} }
.fs-fq-s{max-width:860px; margin:0 auto clamp(18px,2vw,26px)}
.fs-fq-find{display:flex; align-items:center; gap:12px; height:54px; padding:0 16px; border:1px solid var(--line); border-radius:var(--r-sm); background:#FFFFFF; color:var(--body);
transition:border-color .3s var(--ease), box-shadow .3s var(--ease)}
.fs-fq-find:focus-within{border-color:var(--navy); box-shadow:0 0 0 3px rgba(3,179,239,.2)}
.fs-fq-find input{flex:1; min-width:0; height:100%; border:0; outline:0; background:none; font:inherit; font-size:16px; color:var(--ink)}
.fs-fq-find input::placeholder{color:#6B6B6D}
.fs-fq-none{max-width:860px; margin:14px auto 0; font-size:16px; color:var(--body)}
.fs-fq-none[hidden],.d1-faq details.fs-fq-out{display:none}
.js body:not(.fs-home) [data-split]{filter:none; transform:translateY(10px)}
.js body:not(.fs-home) [data-split].in{filter:none; transform:none; transition:opacity .55s var(--ease), transform .6s var(--ease)}
.js body:not(.fs-home) [data-reveal].in{transition-duration:.6s}
.js body:not(.fs-home) [data-reveal="mask"].in{transition:clip-path .75s cubic-bezier(.65,0,.3,1)}
.js body:not(.fs-home) [data-reveal="mask"] img{transition:transform 1s var(--ease)}
.js body:not(.fs-home) [data-reveal="up"].in{transition:opacity .5s var(--ease), transform .55s var(--ease)}
.js .fs-rx-t{opacity:1; transform:none}
.fs-towns-line{list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:4px 0; margin:clamp(26px,3vw,40px) 0 0; padding:18px 0 0; border-top:1px solid var(--line)}
.fs-towns-line li{display:flex; align-items:center}
.fs-towns-line li + li::before{content:""; width:4px; height:4px; border-radius:50%; background:var(--sky,#03B3EF); margin:0 clamp(12px,1.3vw,20px)}
.fs-towns-line a{display:inline-flex; align-items:center; min-height:44px; font-size:16px; color:var(--ink); white-space:nowrap; transition:color .3s var(--ease)}
.fs-towns-line a:hover,.fs-towns-line a:focus-visible{color:var(--navy)}
.fs-rx-town{background:var(--wash)}
.fs-rx-lead{margin:12px 0 0; max-width:62ch}
@media (max-width:1199px){
.fs-towns-line{display:grid; grid-template-columns:repeat(5,max-content); justify-content:center; column-gap:clamp(18px,2.4vw,34px)}
.fs-towns-line li + li::before{display:none}
}
@media (max-width:640px){ .fs-towns-line{grid-template-columns:repeat(2,minmax(0,max-content)); column-gap:28px} }
.fs-ftr.fs-ftr3 .ftr-about > p.ftr-tag{font-size:clamp(17px,1.5vw,20px)}
.fs-ftr.fs-ftr3 .ftr-about > p.fs-f-line{font-size:16px}
@media (max-width:420px){ .fs-ftr.fs-ftr3 .ftr-about > p.ftr-tag{font-size:18px} }
.jw-boiler-tabs.fs-tb.pinned .jw-bt-p p{font-size:16px}
@media (max-width:560px){
.fs-pq .acc-row{grid-template-columns:1fr}
.fs-pq .acc-c,.fs-pq .acc-c:nth-child(2n+1),.fs-pq .acc-c:nth-child(3n+1){border-left:0}
.fs-pq .acc-c + .acc-c{border-top:1px solid rgba(42,43,45,.18)}
.fs-pq .acc-c{padding:18px 8px 10px}
.fs-pq .acc-n{max-width:none}
}
.fs-band2 + .ip-splits,.fs-band2 + .fs-rows{padding-top:0}
.fs-band2:has(+ .ip-splits){padding-bottom:calc(var(--sec) * .25)}
.fs-band-t > :last-child{margin-bottom:0}
.fs-cta{background:var(--wash,#F3F8FA); padding:clamp(48px,6vw,84px) 0}
.fs-cta-in{display:grid; grid-template-columns:minmax(0,44fr) minmax(0,56fr); gap:clamp(28px,4.4vw,72px); align-items:center}
.fs-cta-vr .fs-cta-ph{order:2}
.fs-cta-ph{margin:0; overflow:hidden; border-radius:var(--r-sm); height:clamp(260px,52vh,400px)}
.fs-cta-ph img{width:100%; height:100%; object-fit:cover; display:block}
.fs-cta-copy h2{margin:0; font-size:clamp(30px,3vw,44px); line-height:1.1; text-wrap:balance}
.fs-cta-l{margin:14px 0 0; font-size:16.5px; line-height:1.6; color:var(--body); max-width:46ch}
.fs-cta-btns{display:flex; flex-wrap:wrap; gap:10px 12px; margin-top:22px}
.fs-cta-btns .btn{min-height:50px}
.fs-cta-btns .ic,.fs-cta-btns svg{flex:none}
.fs-cta-facts{list-style:none; display:flex; flex-wrap:wrap; gap:8px 0; margin:22px 0 0; padding:16px 0 0; border-top:1px solid var(--line)}
.fs-cta-facts li{display:flex; align-items:center; gap:9px; padding-right:clamp(14px,1.8vw,24px); margin-right:clamp(14px,1.8vw,24px); border-right:1px solid var(--line);
font:600 12.5px/1.2 Inter,system-ui,sans-serif; letter-spacing:.14em; text-transform:uppercase; color:var(--ink); white-space:nowrap}
.fs-cta-facts li:last-child{border-right:0; margin-right:0; padding-right:0}
.fs-cta-facts svg{color:var(--navy)}
.fs-cta-vb{position:relative; isolation:isolate; overflow:hidden; background:#1F1F20; padding:0}
.fs-cta-vb .fs-cta-in{display:block; position:static; min-height:clamp(380px,62vh,460px); padding-top:clamp(48px,6vw,80px); padding-bottom:clamp(48px,6vw,80px)}
.fs-cta-vb .fs-cta-ph{position:absolute; inset:0; z-index:-2; height:auto; border-radius:0}
.fs-cta-vb .fs-cta-ph img{object-position:70% 50%}
.fs-cta-vb::before{content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
background:linear-gradient(90deg, rgba(18,18,19,.86) 0%, rgba(18,18,19,.74) 38%, rgba(18,18,19,.28) 62%, rgba(18,18,19,0) 78%)}
.fs-cta-vb .fs-cta-copy{max-width:560px; color:#FFFFFF}
.fs-cta-vb .fs-cta-copy h2{color:#FFFFFF}
.fs-cta-vb .fs-cta-copy h2 em{color:var(--sky)}
.fs-cta-vb .fs-cta-l{color:rgba(255,255,255,.88)}
.fs-cta-vb .fs-cta-facts{border-top-color:rgba(255,255,255,.22)}
.fs-cta-vb .fs-cta-facts li{color:#FFFFFF; border-right-color:rgba(255,255,255,.22)}
.fs-cta-vb .fs-cta-facts svg{color:var(--sky)}
@media (max-width:899px){
.fs-cta-in{grid-template-columns:1fr}
.fs-cta-vr .fs-cta-ph{order:0}
.fs-cta-ph{height:clamp(220px,56vw,340px)}
.fs-cta-vb::before{background:linear-gradient(180deg, rgba(18,18,19,.35) 0%, rgba(18,18,19,.82) 52%, rgba(18,18,19,.9) 100%)}
.fs-cta-vb .fs-cta-in{min-height:0; padding-top:clamp(180px,48vw,260px)}
}
@media (max-width:560px){
.fs-cta-btns .btn{flex:1 1 100%; justify-content:center}
.fs-cta-facts{flex-direction:column; gap:10px}
.fs-cta-facts li{border-right:0; margin-right:0; padding-right:0}
}
.fs-cta{padding:clamp(40px,5vw,72px) 0}
.fs-cta-in{grid-template-columns:minmax(0,40fr) minmax(0,60fr)}
.fs-cta-ph{height:clamp(240px,50vh,400px)}
.fs-cta-copy h2{font-size:clamp(28px,2.7vw,40px)}
.fs-cta-l{margin-top:10px}
.fs-cta-btns{margin-top:18px; flex-wrap:wrap}
.fs-cta-btns .btn{flex:none}
.fs-cta-btns .btn{min-height:48px; white-space:nowrap}
.fs-cta-btns .fs-cta-wa{width:48px; min-width:48px; padding:0; justify-content:center; flex:none}
.fs-cta-facts{flex-wrap:nowrap; margin-top:18px; padding-top:14px}
.fs-cta-facts li{letter-spacing:.06em; padding-right:clamp(10px,1.2vw,18px); margin-right:clamp(10px,1.2vw,18px)}
.fs-cta-vb .fs-cta-in{min-height:clamp(340px,58vh,440px); padding-top:clamp(40px,5vw,64px); padding-bottom:clamp(40px,5vw,64px)}
.fs-cta-vb .fs-cta-copy{max-width:600px}
@media (max-width:1099px){ .fs-cta-facts li{font-size:12.5px; letter-spacing:.04em} }
@media (max-width:899px){ .fs-cta-btns{flex-wrap:wrap} .fs-cta-facts{flex-wrap:wrap} }
@media (max-width:560px){ .fs-cta-btns .btn:not(.fs-cta-wa){flex:1 1 calc(100% - 60px)} .fs-cta-btns .fs-cta-tel{flex:1 1 calc(100% - 60px)} }
@media (min-width:900px){ .fs-cta-vb .fs-cta-in{min-height:0; padding-top:clamp(36px,4.4vw,56px); padding-bottom:clamp(36px,4.4vw,56px)} }
@media (min-width:900px) and (max-height:760px){ .fs-cta{padding:36px 0} .fs-cta-copy h2{font-size:clamp(28px,2.6vw,34px)} .fs-cta-ph{height:min(50vh,330px)} }
@media (min-width:900px) and (max-height:760px){ .fs-cta-copy h2{font-size:clamp(26px,2.5vw,32px)} .fs-cta-l{font-size:16px} }
@media (max-width:560px){ .fs-cta-facts{flex-wrap:wrap} .fs-cta-facts li{white-space:normal; letter-spacing:.04em} }
.fs-cta-facts{grid-column:1 / -1; justify-content:center; margin-top:4px}
.fs-cta-vr .fs-cta-in{grid-template-columns:minmax(0,60fr) minmax(0,40fr)}
.fs-cta-vr .fs-cta-ph{order:0}
.fs-cta-vr .fs-cta-copy{order:-1}
.fs-cta-vb .fs-cta-facts{max-width:640px; justify-content:flex-start; margin-top:22px}
@media (max-width:899px){ .fs-cta-vr .fs-cta-in{grid-template-columns:1fr} .fs-cta-vr .fs-cta-copy{order:0} .fs-cta-facts{justify-content:flex-start} }
@media (min-width:900px) and (max-height:760px){ .fs-cta-ph{height:min(44vh,290px)} .fs-cta-in{row-gap:14px} .fs-cta-facts{padding-top:12px} }
.fs-cta-copy h2{font-size:clamp(36px,4.4vw,48px); line-height:1.06}
.fs-cta-copy h2 em{display:block}
.fs-cta-btns{gap:10px}
.fs-cta-btns .btn{padding-left:22px; padding-right:22px; letter-spacing:.12em}
.fs-cta-btns .fs-cta-wa{width:auto; min-width:0; padding-left:20px; padding-right:22px; gap:8px}
.fs-cta-btns .fs-cta-wa .ic{width:18px; height:18px}
.fs-cta-in{grid-template-columns:minmax(0,36fr) minmax(0,64fr)}
.fs-cta-vr .fs-cta-in{grid-template-columns:minmax(0,64fr) minmax(0,36fr)}
.fs-cta-facts{margin-top:14px; padding-top:20px; gap:10px 0}
.fs-cta-facts li{padding-right:clamp(16px,2vw,30px); margin-right:clamp(16px,2vw,30px)}
@media (min-width:900px) and (max-height:760px){
.fs-cta-copy h2{font-size:clamp(34px,3.9vw,42px)}
.fs-cta-ph{height:min(48vh,310px)}
}
.fs-cta-vn{position:relative; overflow:hidden; isolation:isolate; background:#E6E7E9}
.fs-cta-vn .fs-cta-in{grid-template-columns:minmax(0,1fr)}
.fs-cta-vn .fs-cta-copy{max-width:640px; color:#262727}
.fs-cta-vn .fs-cta-copy h2{color:#262727}
.fs-cta-vn .fs-cta-copy h2 em{color:#05668E}
.fs-cta-vn .fs-cta-l{color:#39393A}
.fs-cta-vn .fs-cta-facts{justify-content:flex-start; border-top-color:rgba(42,43,45,.22)}
.fs-cta-vn .fs-cta-facts li{color:#262727; border-right-color:rgba(42,43,45,.22)}
.fs-cta-vn .fs-cta-facts svg{color:#05668E}
.fs-cta-mark{position:absolute; z-index:-1; right:-4vw; top:50%; width:min(46vw,560px); aspect-ratio:1; transform:translateY(-50%);
background:#FFFFFF; opacity:.07; -webkit-mask:url("/assets/jt/img/brand/mark-white.svg") center/contain no-repeat; mask:url("/assets/jt/img/brand/mark-white.svg") center/contain no-repeat; pointer-events:none}
@media (max-width:899px){ .fs-cta-vr .fs-cta-in{grid-template-columns:1fr} .fs-cta-in{grid-template-columns:1fr} .fs-cta-mark{width:80vw; right:-20vw} }
.fs-intro .d1-wm{display:none}
@media (min-width:900px) and (max-height:760px){ .fs-cta-vb .fs-cta-in{padding-top:28px; padding-bottom:28px} .fs-cta-vb .fs-cta-facts{margin-top:12px; padding-top:14px} .fs-cta-vn{padding:32px 0} }
.fs-cta-in{grid-template-columns:minmax(0,32fr) minmax(0,68fr); column-gap:clamp(28px,4vw,64px)}
.fs-cta-vr .fs-cta-in{grid-template-columns:minmax(0,68fr) minmax(0,32fr)}
.fs-cta-btns .btn{padding-left:18px; padding-right:18px}
@media (max-width:899px){ .fs-cta-in,.fs-cta-vr .fs-cta-in{grid-template-columns:1fr} }
.fs-cta-ml .fs-cta-mark{right:auto; left:-4vw}
.fs-cta-ml .fs-cta-copy{margin-left:auto}
.fs-cta-ml .fs-cta-facts{justify-content:flex-end}
@media (max-width:899px){ .fs-cta-ml .fs-cta-copy{margin-left:0} .fs-cta-ml .fs-cta-facts{justify-content:flex-start} .fs-cta-ml .fs-cta-mark{left:-20vw} }
.fs-pb-still .fs-pb-img .fs-pic,.fs-pb-still .fs-pb-img .fs-pic img{animation:none !important; transform:none !important}
.fs-pb-mosaic .fs-pb-img{background:#1F1F20}
.fs-mos{position:absolute; inset:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:2px}
.fs-mos-p{position:relative; margin:0; overflow:hidden}
.fs-mos-p img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform-origin:50% 45%;
animation:fsMosIn 1.6s cubic-bezier(.33,.08,.18,1) var(--d,0s) both, fsMosPush 18s ease-in-out calc(var(--d,0s) + 1.6s) infinite alternate}
@keyframes fsMosIn{from{transform:scale(1.18); opacity:.4} to{transform:scale(1.02); opacity:1}}
@keyframes fsMosPush{from{transform:scale(1.02)} to{transform:scale(1.1)}}
.fs-pb.fs-off .fs-mos-p img{animation-play-state:paused}
.fs-pb-mosaic .hero-scrim{background:linear-gradient(180deg, rgba(18,18,19,.38) 0, rgba(18,18,19,0) 150px),
linear-gradient(0deg, rgba(18,18,19,.86) 0%, rgba(18,18,19,.62) 34%, rgba(18,18,19,.16) 62%, rgba(18,18,19,0) 78%)}
@media (max-width:760px){
.fs-mos{grid-template-columns:repeat(2,minmax(0,1fr))}
.fs-mos-p:nth-child(n+3){display:none}
.fs-pb-mosaic .hero-scrim{background:linear-gradient(180deg, rgba(18,18,19,.52) 0, rgba(18,18,19,0) 120px, rgba(18,18,19,0) 52%, rgba(31,31,32,.78) 82%, #1F1F20 100%)}
}
@media (prefers-reduced-motion:reduce){ .fs-mos-p img{animation:none; transform:none} }
@media (min-width:761px){
.fs-pb-mosaic .pb-in{width:100%}
.fs-pb-mosaic .pb-in > :not(.hero-cta){max-width:720px}
.fs-pb-mosaic .hero-scrim{background:linear-gradient(180deg, rgba(18,18,19,.38) 0, rgba(18,18,19,0) 150px),
linear-gradient(0deg, rgba(18,18,19,.9) 0%, rgba(18,18,19,.72) 40%, rgba(18,18,19,.2) 66%, rgba(18,18,19,0) 80%),
linear-gradient(90deg, rgba(18,18,19,.35) 0%, rgba(18,18,19,0) 60%)}
}
.hsx{background:#FFFFFF}
.hsx-in{display:grid; grid-template-columns:minmax(0,38fr) minmax(0,62fr); gap:clamp(36px,5vw,96px); align-items:start}
.hsx-head h2{margin:0; font-size:clamp(34px,3.6vw,52px); line-height:1.08}
.hsx-head h2 em{display:block}
.hsx-head .lead{margin:18px 0 0; max-width:40ch; font-size:16.5px; line-height:1.65}
.hsx-all{margin-top:22px}
@media (min-width:900px) and (min-height:600px){ .hsx-head{position:sticky; top:calc(var(--hdr-solid,92px) + 40px)} }
.hsx-body{position:relative}
.hsx-list{list-style:none; margin:0; padding:0; border-top:1px solid var(--line)}
.hsx-row{position:relative; display:grid; grid-template-columns:44px minmax(0,1fr) 28px; grid-template-areas:"n t a" ". d a"; column-gap:14px; row-gap:2px;
align-items:center; padding:16px 6px 16px 0; border-bottom:1px solid var(--line); color:var(--ink); text-decoration:none}
.hsx-n{grid-area:n; font:600 12.5px/1 Inter,system-ui,sans-serif; letter-spacing:.08em; color:#6F7072; font-variant-numeric:tabular-nums}
.hsx-t{grid-area:t; font-family:"Cormorant Garamond",Georgia,serif; font-weight:500; font-size:clamp(24px,2.1vw,28px); line-height:1.15; transition:color .35s var(--ease)}
.hsx-d{grid-area:d; font-size:16px; line-height:1.5; color:var(--body)}
.hsx-ar{grid-area:a; justify-self:end; color:var(--navy); opacity:0; transform:translateX(-10px); transition:opacity .35s var(--ease), transform .45s var(--ease)}
.hsx-row:hover .hsx-ar,.hsx-row:focus-visible .hsx-ar{opacity:1; transform:none}
.hsx-row:hover .hsx-t,.hsx-row:focus-visible .hsx-t{color:var(--navy)}
.hsx-row:focus-visible{outline:2px solid var(--navy); outline-offset:2px}
.hsx-prev{position:absolute; left:0; top:0; width:260px; aspect-ratio:4 / 5; pointer-events:none; z-index:3; opacity:0; visibility:hidden;
transform:translate3d(var(--hx,0px),var(--hy,0px),0); transition:opacity .35s var(--ease), visibility 0s linear .35s; border-radius:4px; overflow:hidden;
box-shadow:none}
.hsx.hsx-show .hsx-prev{opacity:1; visibility:visible; transition:opacity .35s var(--ease), visibility 0s}
.hsx-pic{position:absolute; inset:0; margin:0; opacity:0}
.hsx-pic.on,.hsx-pic.was{opacity:1}
.hsx-pic.was{z-index:0}
.hsx-pic.on{z-index:1}
.hsx-pic img{width:100%; height:100%; object-fit:cover; display:block}
.hsx-pic.wipe{animation:hsxWipe .9s cubic-bezier(.62,0,.22,1) both}
@keyframes hsxWipe{
0%{clip-path:polygon(0 108%,12.5% 110%,25% 112%,37.5% 110%,50% 108%,62.5% 106%,75% 104%,87.5% 106%,100% 108%,100% 100%,0 100%)}
50%{clip-path:polygon(0 46%,12.5% 49%,25% 52%,37.5% 55%,50% 52%,62.5% 49%,75% 46%,87.5% 43%,100% 46%,100% 100%,0 100%)}
100%{clip-path:polygon(0 -8%,12.5% -6%,25% -4%,37.5% -6%,50% -8%,62.5% -10%,75% -12%,87.5% -10%,100% -8%,100% 100%,0 100%)}}
.hsx-ink{display:grid; place-items:end start; padding:22px; background:#E6E7E9}
.hsx-ink span{font:400 26px/1.15 "Cormorant Garamond",Georgia,serif; color:#262727}
.js .hsx .hsx-row[data-reveal="up"]{transform:translateY(12px)}
.js .hsx .hsx-row[data-reveal="up"].in{transform:none; transition:opacity .45s var(--ease), transform .5s var(--ease)}
@media (hover:none),(max-width:899px){ .hsx-prev{display:none} }
@media (max-width:899px){ .hsx-in{grid-template-columns:1fr; gap:28px} .hsx-row{grid-template-columns:36px minmax(0,1fr) 22px} .hsx-ar{opacity:.6; transform:none} }
@media (prefers-reduced-motion:reduce){ .hsx-pic.wipe{animation:none} .hsx-prev{transition:none} }
@media (max-width:560px){ .hsx-t{font-size:22px; text-wrap:balance} }
.hsx-in{grid-template-columns:minmax(0,34fr) minmax(0,66fr); column-gap:clamp(32px,4.4vw,80px)}
.hsx-row{grid-template-columns:38px minmax(0,1fr) 22px; column-gap:12px; padding:14px 4px 14px 0}
.hsx-d{white-space:nowrap; overflow:hidden; text-overflow:clip}
@media (max-width:1099px){ .hsx-d{white-space:normal} }
@media (max-width:899px){ .hsx-in{grid-template-columns:minmax(0,1fr); row-gap:26px} .hsx-row{grid-template-columns:34px minmax(0,1fr) 22px} .hsx-d{white-space:normal} }
footer.fsf{background:#D8D9DB; color:#494A4C; padding:clamp(64px,6.5vw,96px) 0 0; margin-top:0; border-top:0}
footer.fsf a{color:#2A2B2D; text-decoration:none; transition:color .25s var(--ease)}
footer.fsf a:hover,footer.fsf a:focus-visible{color:#05668E}
.fsf-social a:hover,.fsf-social a:focus-visible{border-color:#05668E}
footer.fsf ul{list-style:none; margin:0; padding:0}
.fsf-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); column-gap:clamp(40px,5vw,80px); align-items:start}
.fsf-k{margin:0 0 20px; height:14px; font:600 12px/14px Inter,system-ui,sans-serif; letter-spacing:.2em; text-transform:uppercase; color:#2A2B2D}
.fsf-two{display:grid; grid-template-columns:1fr 1fr; gap:0 24px}
.fsf-two a,.fsf-list li{font-size:15.5px; line-height:1.5}
.fsf-two li,.fsf-list li{display:flex; align-items:center; min-height:36px}
.fsf-two a,.fsf-list a{display:inline-flex; align-items:center; min-height:36px}
.fsf-list li{color:#2A2B2D; white-space:nowrap}
.fsf-list .fsf-quiet{color:#5C5D60}
.fsf-brand{display:flex; flex-direction:column; align-items:center; text-align:center; padding-top:2px}
footer.fsf .fsf-logo img{height:68px; width:auto; display:block}
.fsf-tag{margin:18px 0 0; font:italic 400 18px/1.3 "Cormorant Garamond",Georgia,serif; color:#2A2B2D; white-space:nowrap}
.fsf-marks{display:flex !important; align-items:center; justify-content:center; gap:20px; margin:24px 0 0 !important}
.fsf-marks li{display:flex; align-items:center; justify-content:center; height:34px; flex:none}
.fsf-marks .acc-img{max-width:none}
.fsf-marks .acc-img.acc-gassafe{height:30px}
.fsf-marks .acc-img.acc-which{height:32px}
.fsf-marks .acc-img.acc-checkatrade{width:86px; height:auto}
.fsf-marks .acc-g{display:inline-flex; align-items:center; gap:7px}
.fsf-marks .acc-g > svg{width:20px; height:20px}
.fsf-marks .acc-g-r{gap:2px} .fsf-marks .acc-g-r b{font-size:14px; color:#2A2B2D} .fsf-marks .acc-g-s svg{width:8px; height:8px}
.fsf-towns{display:flex; flex-wrap:wrap; justify-content:center; gap:2px 26px; margin:clamp(48px,5vw,72px) 0 0 !important; padding:16px 0 !important; border-top:1px solid rgba(42,43,45,.14)}
.fsf-towns a{font-size:13px; letter-spacing:.04em; color:#5C5D60; display:inline-flex; align-items:center; min-height:32px}
.fsf-bot{display:flex; align-items:center; justify-content:space-between; gap:10px 20px; flex-wrap:wrap; padding:6px 0 28px}
.fsf-bot p{margin:0; font-size:12.5px !important; color:#5C5D60; white-space:nowrap}
.fsf-bot-r{display:flex; align-items:center; gap:16px; flex-wrap:wrap}
.fsf-bot nav{display:flex; gap:18px; flex-wrap:wrap}
.fsf-bot nav a{font-size:12.5px; color:#5C5D60; display:inline-flex; align-items:center; min-height:32px}
.fsf-social{display:flex; gap:6px}
.fsf-social a{display:grid; place-items:center; width:34px; height:34px; border:1px solid rgba(42,43,45,.2); border-radius:50%; color:#2A2B2D; transition:color .25s var(--ease), border-color .25s var(--ease)}
.fsf-social svg{width:15px; height:15px}
@media (min-width:900px) and (max-width:1149px){ .fsf-grid{column-gap:40px} .fsf-two a,.fsf-list li{font-size:15px} .fsf-marks{gap:14px} .fsf-marks .acc-img.acc-checkatrade{width:76px} }
@media (max-width:899px){
.fsf-bot p{white-space:normal}
.fsf-grid{grid-template-columns:minmax(0,1fr); row-gap:44px}
.fsf-brand{order:-1; align-items:flex-start; text-align:left}
.fsf-marks{justify-content:flex-start}
.fsf-towns{justify-content:flex-start; gap:2px 20px}
.fsf-bot{flex-direction:column; align-items:flex-start}
.fsf-bot-r{flex-direction:column; align-items:flex-start; gap:8px}
.fsf-list li{white-space:normal}
}
@media (max-width:420px){ .fsf-tag{font-size:17px; white-space:normal} .fsf-marks{gap:12px} .fsf-marks .acc-img.acc-checkatrade{width:74px} .fsf-marks .acc-img.acc-gassafe{height:26px} .fsf-marks .acc-img.acc-which{height:28px} .fsf-bot nav{gap:4px 20px} }
.sec.jw-pressure-gauge .jw-pg-z-high i{background:#EDEEEF}
.sec.jw-town-map .jw-tm-rp,.sec.jw-lost-finder .jw-lf-m{color:#68696B}
.d1-hero,.hero-slides.d3-zoom3,.hero-slides.d3-zoom3 > .d3-sl,.fs-pb-img,.fs-pb-mosaic .fs-pb-img{background:#A6A8AB}
@media (min-width:761px){ .fs-pb{background:#A6A8AB} }
:root{--hv:#05668E; --hv-btn:#055F86; --hv-sky:#77D8F8}
a:not(.btn):not(.btn-hdr):not(.lockup):not(.rail-b):is(:hover,:focus-visible),
button:not(.btn):not(.burger):not(.rail-b):is(:hover,:focus-visible),
summary:is(:hover,:focus-visible),[role=button]:is(:hover,:focus-visible){color:var(--hv) !important}
:is(a:not(.btn):not(.btn-hdr):not(.lockup):not(.rail-b),button:not(.btn):not(.burger):not(.rail-b),summary,[role=button]):is(:hover,:focus-visible)
:is(h2,h3,h4,b,strong,[class$="-t"],[class*="-t "],[class$="-n"],[class$="-name"],[class$="-title"],[class$="-l"]){color:var(--hv) !important}
button:not(.btn):not(.burger):not(.rail-b):is(:hover,:focus-visible){border-color:var(--hv) !important}
a:not(.btn):not(.btn-hdr):not(.lockup):not(.rail-b),button:not(.btn):not(.rail-b),summary{transition:color .25s var(--ease), border-color .25s var(--ease), background-color .25s var(--ease), opacity .3s var(--ease), transform .45s var(--ease)}
.btn-primary::before,.hdr .btn-hdr::before{background:var(--hv-btn) !important}
.btn-primary:is(:hover,:focus-visible),.hdr .btn-hdr:is(:hover,:focus-visible){background:var(--hv-btn) !important; border-color:var(--hv-btn) !important; color:#FFFFFF !important}
.btn-light::before{background:#0679A8 !important}
.btn-light:is(:hover,:focus-visible){background:#0679A8 !important; border-color:#0679A8 !important; color:#FFFFFF !important}
.btn-ghost::before{display:none !important}.fs-cta-vn .btn-ghost::before{display:none !important}
.btn-ghost:is(:hover,:focus-visible){background:transparent !important; border-color:var(--hv) !important; color:var(--hv) !important}.fs-cta-vn .btn-ghost:is(:hover,:focus-visible){background:transparent !important; border-color:var(--hv) !important; color:var(--hv) !important}
.rail-b:is(:hover,:focus-visible) .rail-i{color:var(--hv) !important; border-color:var(--hv) !important; background:#FFFFFF !important; transform:none !important}
.rail-b:is(:hover,:focus-visible){background:transparent !important; transform:none !important}
.burger:is(:hover,:focus-visible){border-color:var(--hv) !important; color:var(--hv) !important}
.burger:is(:hover,:focus-visible) span,.burger:is(:hover,:focus-visible) span::before,.burger:is(:hover,:focus-visible) span::after{background:var(--hv) !important}
:is(.fs-pb,.d1-hero,.d1-contact,.fs-cta-vb,.d1-mat:not(.jw-boiler-tabs),.hdr:not(.solid):not(.hdr-light)) a:not(.btn):not(.btn-hdr):not(.lockup):is(:hover,:focus-visible),
:is(.fs-pb,.d1-hero,.d1-contact,.fs-cta-vb,.d1-mat:not(.jw-boiler-tabs),.hdr:not(.solid):not(.hdr-light)) button:not(.btn):not(.burger):is(:hover,:focus-visible){color:var(--hv-sky) !important}
:is(.fs-pb,.d1-hero,.d1-contact,.fs-cta-vb,.d1-mat:not(.jw-boiler-tabs)) .btn-ghost:is(:hover,:focus-visible){border-color:var(--hv-sky) !important; color:var(--hv-sky) !important}
.hdr:not(.solid):not(.hdr-light) .burger:is(:hover,:focus-visible){border-color:var(--hv-sky) !important}
.hdr:not(.solid):not(.hdr-light) .burger:is(:hover,:focus-visible) span,.hdr:not(.solid):not(.hdr-light) .burger:is(:hover,:focus-visible) span::before,.hdr:not(.solid):not(.hdr-light) .burger:is(:hover,:focus-visible) span::after{background:var(--hv-sky) !important}
.rail-b.d3-dk:is(:hover,:focus-visible) .rail-i{color:var(--hv) !important; border-color:#FFFFFF !important}
:is(.acc-more,.acc-link,.plq-link,.drawer-foot a,.fs-call-n,.eyebrow a):not(#_):is(:hover,:focus-visible),
:is(.acc-more,.acc-link,.plq-link,.drawer-foot a,.fs-call-n):not(#_):is(:hover,:focus-visible) *{color:var(--hv-btn) !important; border-color:var(--hv-btn) !important}
.btn-outline:is(:hover,:focus-visible){background:transparent !important; border-color:var(--hv) !important; color:var(--hv) !important}
.btn-outline::before{display:none !important}
.hdr::before{background:rgba(230,231,233,.72); -webkit-backdrop-filter:saturate(160%) blur(14px); backdrop-filter:saturate(160%) blur(14px);
box-shadow:inset 0 -1px 0 rgba(0,0,0,.06); transition:opacity .3s var(--ease)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){ .hdr::before{background:rgba(230,231,233,.96)} }
.hdr.solid{background:transparent !important; box-shadow:none !important}
.d1-svc{--r:14px}
.btn:not(.btn-sm):not(#_){min-height:50px}
.btn:not(#_),.hdr .btn-hdr:not(#_){letter-spacing:.12em; font-size:13px}
:is(.ip-splits,.jw-first-minutes,.d1-cta,.d1-contact) .eyebrow:not(#_){margin-bottom:22px}
.btn-outline:not(#_){min-height:50px; height:50px; padding-top:0; padding-bottom:0}
.d1-contact-points i:not(#_){background:transparent; border:1px solid rgba(255,255,255,.42)}
:is(.d1-backs,.d1-proc,.d1-rev,.jw-contact-steps):not(#_){padding-top:var(--sec); padding-bottom:var(--sec)}
.jw-boiler-tabs .eyebrow:not(#_){margin-bottom:22px}
:is(.fs-cta,.d1-work,.fs-rx,.jw-gallery-viewer,.jw-boiler-tabs,.d1-intro,.ip-splits,.ip-areas,.ip-contact) h2:not(#_){margin-bottom:0}
:is(.fs-cta,.d1-work,.fs-rx,.jw-gallery-viewer,.jw-boiler-tabs,.d1-intro,.ip-splits,.ip-areas,.ip-contact) h2 + :is(p,.lead):not(#_){margin-top:18px}
@media (max-width:640px){ :root{--sec:64px} }
.d1-mat-desc:not(#_){display:grid; min-height:0}
.d1-mat-desc > .d1-mat-d:not(#_){position:relative; inset:auto; grid-area:1 / 1}
.d3-sw input:checked + .d3-sw-t:not(#_),.jw-sw input:checked + span:not(#_){background:#0679A8}
.d3-sw input:focus-visible + .d3-sw-t:not(#_){outline-color:#0679A8}
.fs-band-in:not(#_){grid-template-columns:minmax(0,1fr); gap:18px; max-width:760px}
@media (max-width:899px){
.rail-b .rail-i:not(#_){background:#FFFFFF; color:#2A2B2D; border-color:rgba(42,43,45,.16); -webkit-backdrop-filter:none; backdrop-filter:none}
.fsf-bot:not(#_){padding-bottom:calc(96px + env(safe-area-inset-bottom))}
}
:is(.jw-am-arr,.rq-arrow,.fs-rx-b,.jw-fm-step,.jw-gv-b,.ht-arr):not(#_):is(:hover,:focus-visible){background:#FFFFFF; color:var(--hv); border-color:var(--hv)}
:is(.jw-am-go,.jw-tm-row,.jw-am-row):not(#_):is(:hover,:focus-visible),
:is(.jw-am-go,.jw-tm-row,.jw-am-row):not(#_):is(:hover,:focus-visible) *{color:var(--hv) !important}
.jw-bt-more:not(#_):is(:hover,:focus-visible){color:var(--hv-btn) !important}
.fs-pb-lead .fs-pb-img::after{content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
background:linear-gradient(90deg, rgba(20,21,23,.58) 0%, rgba(20,21,23,.42) 50%, rgba(20,21,23,.08) 82%, rgba(20,21,23,0) 100%)}
@media (max-width:760px){ .fs-pb-lead .fs-pb-img::after{display:none} }
@media (max-width:899px){ .fs-homes .sp-art:not(#_){order:2} .fs-homes .sp-copy:not(#_){order:1} .fs-homes .sp:not(#_){display:flex; flex-direction:column} }
.d1-intro + .ip-splits:not(#_),.d1-intro + .fs-rows:not(#_){padding-top:0}
.fs-tlink:not(#_){white-space:nowrap}

/* ==== TRS go-live additions, 31 Oct 2026 ==================================================== */
/* Footer marks link to the Which? profile and the Gas Safe Register check; the Gas Safe registration number below them. */
.fsf-marks li > a{display:flex; align-items:center; justify-content:center}
.fsf-gs{margin:14px 0 0; font-size:12.5px; color:#5C5D60}
/* Which? Trusted Trader reviews section (homepage) */
.jt-which{background:var(--paper)}
.jt-which .d1-svc-head{margin-bottom:clamp(28px,3vw,44px)}
/* Complaints policy: the Which? logo in the intro and the TF11 version line */
.jt-which-logo{margin:0 0 6px}
.jt-which-logo img{display:block; width:100px; height:auto}
.jt-tf11{font-size:13px; color:var(--peri-text); margin-top:22px}
/* Town pages: the service by service section (two columns of short blocks, one on phones) */
.jt-kw{background:var(--paper)}
.jt-kw-list{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(36px,4vw,60px) clamp(28px,4.5vw,72px); max-width:1120px; margin:0 auto}
.jt-kw-b h3{font-size:clamp(24px,2.1vw,31px); line-height:1.15; margin:0 0 14px; text-wrap:balance}
.jt-kw-b p{margin:0 0 12px; max-width:62ch; color:var(--body)}
.jt-kw-b p:last-child{margin-bottom:0}
.jt-kw-b a,.jt-near a{color:inherit; text-decoration:underline; text-underline-offset:3px}
@media (max-width:899px){ .jt-kw-list{grid-template-columns:minmax(0,1fr)} }
/* Photo viewer: a frame that had no position of its own holds its full size button */
:where(.phx-rel){position:relative}
/* Photo viewer: interactive parts that sit on a photo stay clickable above the full size button */
.fs-hs-fig .fs-pin{z-index:4}
.jw-cold-radiator .jw-cr-hs{z-index:4}
.fs-st-ph:not(.on){pointer-events:none}
.js .sfx .sfx-frame .sfx-ph:not(.on){pointer-events:none}
.jw-install-day .jw-id-sp:not(.on){pointer-events:none}
/* Before and after slider: dragging moves the slider, so each photo opens from its own round button */
.jt-ba-open{position:absolute; bottom:14px; width:44px; height:44px; border-radius:50%; z-index:5}
.jt-ba-open-b{left:14px}
.jt-ba-open-a{right:14px}
.jt-ba-open .phx-hit{border-radius:50%}
.jt-ba-open .phx-zoom{opacity:1; transform:none; right:3px; bottom:3px}
