/*
  Main site. Built from the section lab picks (site/lab/). Variant 2 look: Archivo wide and heavy, Public Sans body,
  square photos, navy bands, hard rules, one orange call tab. Picks are recorded in design.md.
*/

/*
  Section lab. Three treatments (A, B, C) for each section of the main site.
  Same Variant 2 look and design.md palette in all of them: Archivo wide and heavy, Public Sans body,
  square photos, navy bands, hard rules, one orange call tab. Orange is only the tab and submit buttons.
  Fast: WebP only, lazy images below the fold, no libraries, a few lines of JS.
*/
:root{
  --bg:#F9F9F9; --navy:#092634; --blue:#004E72; --orange:#FF6E42; --mango:#F5A220;
  --ocean:#C9E7E9; --royal:#28469E; --white:#FFFFFF; --muted:#4A5F6B;
  --s-1:4px; --s-2:8px; --s-3:16px; --s-4:24px; --s-5:40px; --s-6:64px; --s-7:96px;
  --display:"Archivo","Arial Black",Impact,sans-serif;
  --body:"Public Sans","Segoe UI",system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:var(--bg);color:var(--navy);font:400 17px/1.6 var(--body);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue)}
h1,h2,h3,.hl{font-family:var(--display);font-stretch:120%;font-weight:850;line-height:.98;letter-spacing:-.03em;margin:0}
h3{font-size:1.25rem;letter-spacing:-.015em;line-height:1.15}
p{margin:0 0 var(--s-3);max-width:60ch}
ul{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit}
.wrap{width:min(1280px,100% - 32px);margin-inline:auto}
:focus-visible{outline:3px solid var(--mango);outline-offset:3px}
.sh{font-size:clamp(2.2rem,6vw,4.6rem)}
.sec{padding-block:72px}
.dark{background:var(--navy);color:#fff}
.dark .sh{color:#fff}
.sub{color:#cfe2e6;margin-top:var(--s-4);max-width:56ch}

.btn{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:14px 30px;border-radius:8px;font:800 1.05rem/1 var(--display);font-stretch:110%;text-decoration:none;cursor:pointer;border:2px solid transparent}
.btn-call{background:var(--orange);color:var(--navy)}
.btn-call:hover{background:#ff8460}
.btn-solid{background:#fff;color:var(--navy);border-color:#fff}
.btn-solid:hover{background:var(--ocean);border-color:var(--ocean)}

.pin{position:fixed;right:0;top:50%;translate:0 -50%;z-index:60}
.pin a{display:block;writing-mode:vertical-rl;rotate:180deg;background:var(--orange);color:var(--navy);text-decoration:none;font:850 1.05rem/1 var(--display);font-stretch:112%;padding:26px 16px;border-radius:0 8px 8px 0;box-shadow:-4px 0 0 rgba(9,38,52,.25)}
.pin a:hover{background:#ff8460}
.skip{position:absolute;left:-999px;top:8px;background:#fff;color:var(--navy);padding:8px 14px;z-index:100}
.skip:focus{left:8px}

/* ---------- lab chrome (not part of the site) ---------- */

/* ---------- shared header bit used inside hero treatments ---------- */
.logo{background:#fff;border-radius:8px;padding:6px 10px;display:block}
.logo img{height:52px;width:auto}
.hl{color:#fff}
.hl em{font-style:normal;color:var(--mango)}
.lede{font-size:1.25rem;font-weight:500;max-width:44ch;margin:var(--s-4) 0 var(--s-5);color:#fff}

/* ---------- HERO ---------- */
.hA,.hB,.hC{position:relative;color:#fff;background:var(--navy);isolation:isolate}
.hA{min-height:min(92svh,820px);display:flex;align-items:flex-end}
.hA>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:78% 40%;z-index:-2}
.hA::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(9,38,52,.94) 0,rgba(9,38,52,.84) 40%,rgba(9,38,52,.35) 72%,rgba(9,38,52,.15) 100%),linear-gradient(0deg,rgba(9,38,52,.6),transparent 40%)}
.hA>.wrap{padding-top:130px}
.hA .hl{font-size:clamp(2.7rem,7vw,6.2rem);max-width:13ch}
.hA .bar{margin-top:56px;border-top:4px solid #fff;display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 32px;padding:18px 0 22px}
.hA .bar a{color:#fff;text-decoration:none;font:850 clamp(1.2rem,2.6vw,2rem)/1.2 var(--display);font-stretch:112%;padding:4px 0}
@keyframes rise{from{opacity:0;translate:0 28px}to{opacity:1;translate:0 0}}
.hA .hl{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}
.hA .lede,.hA .acts{animation:rise .8s .2s cubic-bezier(.2,.7,.2,1) both}

.hB{min-height:min(94svh,860px);display:flex;align-items:flex-end;background:var(--navy)}
.hB>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 50%;z-index:-1}
.hB>.wrap{display:flex;align-items:flex-end;padding-top:120px}
.hB .slab{background:var(--navy);width:min(800px,100%);padding:48px 48px 56px}
.hB .hl{font-size:clamp(2.5rem,6.6vw,5.8rem)}
.hB .lede{margin-bottom:var(--s-4)}

.hC{display:grid;grid-template-columns:5fr 7fr;min-height:min(92svh,840px)}
.hC .pan{padding:150px 48px 56px max(16px,calc((100vw - 1280px)/2));display:flex;flex-direction:column;justify-content:flex-end}
.hC .hl{font-size:clamp(2.4rem,5.2vw,5rem)}
.hC .lede{font-size:1.15rem}
.hC .shots{position:relative;min-height:420px;background:var(--navy)}
.pane{opacity:0;visibility:hidden;transition:opacity .45s ease,visibility 0s .45s}
.pane.on{opacity:1;visibility:visible;transition:opacity .45s ease}
.hC .shots .pane{position:absolute;inset:0}
.hC .shots img{width:100%;height:100%;object-fit:cover}
.hC .cap{position:absolute;left:0;right:0;bottom:64px;padding:48px 20px 14px;background:linear-gradient(0deg,rgba(9,38,52,.85),transparent);font-weight:500;z-index:2}
.hC .ctl{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(3,1fr);z-index:3}
.ctl button{min-height:64px;border:0;border-top:2px solid rgba(255,255,255,.25);background:rgba(9,38,52,.94);color:#fff;font:800 1.15rem/1 var(--display);font-stretch:112%;cursor:pointer}
.ctl button+button{border-left:2px solid rgba(255,255,255,.25)}
.ctl button[aria-pressed="true"]{background:#fff;color:var(--navy)}

/* ---------- TRUST STRIP ---------- */
.bbb{display:block;width:fit-content;background:#fff;padding:12px 14px}
.bbb img{width:210px;height:auto}
.fact{font:850 1.3rem/1.08 var(--display);font-stretch:112%;letter-spacing:-.02em}
.fsub{font-size:.95rem;line-height:1.35;margin:6px 0 0}

.tA{background:var(--navy);color:#fff;padding:32px 0}
.tA .wrap{display:grid;grid-template-columns:auto 1fr;gap:var(--s-5);align-items:center}
.tA ul{display:grid;grid-template-columns:repeat(4,1fr)}
.tA li{padding:4px 22px;border-left:2px solid rgba(255,255,255,.35)}
.tA .fsub{color:#cfe2e6}

.tB{background:var(--ocean);padding:72px 0}
.tB .wrap{display:grid;grid-template-columns:auto 1fr;gap:var(--s-6);align-items:start}
.tB .bbb img{width:260px}
.tB ul{border-top:4px solid var(--navy)}
.tB li{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--s-4);align-items:center;padding:20px 0;border-bottom:2px solid var(--navy)}
.tB .fact{font-size:clamp(1.5rem,3.2vw,2.6rem);line-height:1}
.tB .fsub{margin:0;font-size:1rem}

.tC{background:var(--bg);padding-bottom:56px}
.tC .pic{position:relative;height:340px;background:var(--navy);isolation:isolate}
.tC .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 42%;z-index:-2}
.tC .pic::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(9,38,52,.8),rgba(9,38,52,.15) 70%)}
.tC .strip{position:relative;margin-top:-88px;background:#fff;border-top:8px solid var(--blue);padding:28px 32px;display:grid;grid-template-columns:auto 1fr;gap:var(--s-5);align-items:center;box-shadow:0 0 0 2px var(--navy)}
.tC .bbb{padding:0}
.tC ul{display:grid;grid-template-columns:repeat(4,1fr)}
.tC li{padding:4px 22px;border-left:2px solid var(--navy)}
.tC .fsub{color:var(--muted)}

/* ---------- WHAT WE BUILD ---------- */
.rows{margin-top:var(--s-6);border-top:4px solid var(--navy)}
.row{display:grid;grid-template-columns:1.25fr 1fr 220px;gap:var(--s-5);align-items:center;padding:var(--s-5) 0;border-bottom:2px solid var(--navy)}
.row h3{font-size:clamp(1.9rem,4.4vw,3.6rem);line-height:.98;font-stretch:118%}
.row.lead h3{color:var(--blue)}
.row p{margin:0}
.row img{width:220px;height:150px;object-fit:cover}
.row .small{font-size:.95rem;color:var(--muted);margin-top:8px}
.row.lead img{height:190px}

.bB{display:grid;grid-template-columns:7fr 5fr;gap:12px;margin-top:var(--s-6)}
.bB .big{position:relative;min-height:600px;overflow:hidden;background:var(--navy);color:#fff;display:flex;align-items:flex-end;isolation:isolate}
.bB .big img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:80% 50%;z-index:-2}
.bB .big::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(9,38,52,.95) 0,rgba(9,38,52,.7) 38%,transparent 70%)}
.bB .big .in{padding:36px}
.bB .big h3{font-size:clamp(2.4rem,5.4vw,4.6rem);color:#fff;margin-bottom:var(--s-3)}
.bB .big p{color:#fff;margin:0 0 8px}
.bB .big .small{font-size:.95rem;color:#cfe2e6}
.bB .side{display:grid;grid-template-rows:repeat(3,1fr);gap:12px}
.blk{display:grid;grid-template-columns:1fr;gap:var(--s-3);padding:28px;align-content:end;min-height:180px}
.blk.has{grid-template-columns:1fr 36%;align-items:end}
.blk h3{font-size:clamp(1.5rem,2.6vw,2.3rem);margin-bottom:8px;line-height:1}
.blk p{margin:0;font-size:1rem}
.blk img{width:100%;height:100%;min-height:120px;object-fit:cover}
.blk.nv{background:var(--navy);color:#fff}
.blk.b{background:var(--blue);color:#fff}
.blk.o{background:var(--ocean);color:var(--navy)}

.bC{display:grid;grid-template-columns:5fr 7fr;margin-top:var(--s-6);border-top:4px solid var(--navy)}
.bC .list{display:flex;flex-direction:column}
.bC .list button{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:2px solid var(--navy);padding:24px 16px 24px 0;font:850 clamp(1.7rem,3.4vw,2.9rem)/1 var(--display);font-stretch:118%;letter-spacing:-.03em;color:var(--navy);cursor:pointer}
.bC .list button:hover{color:var(--blue)}
.bC .list button[aria-pressed="true"]{color:var(--blue);padding-left:22px;box-shadow:inset 12px 0 0 var(--mango)}
.bC .view{position:relative;min-height:480px;background:var(--navy)}
.bC .view .pane{position:absolute;inset:0;display:flex;align-items:flex-end;color:#fff;isolation:isolate}
.bC .view .pane>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.bC .view .pane::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(9,38,52,.94) 0,rgba(9,38,52,.7) 36%,transparent 66%)}
.bC .view .pane.txt{background:var(--ocean);color:var(--navy)}
.bC .view .pane.txt::after{display:none}
.bC .view .in{padding:32px}
.bC .view p{margin:0;font-size:1.2rem;max-width:40ch}
.bC .view .small{font-size:.95rem;margin-top:8px;opacity:.9}
.bC .view .big{font:850 clamp(2.4rem,5vw,4.4rem)/1 var(--display);font-stretch:120%;letter-spacing:-.03em;margin-bottom:var(--s-3);max-width:12ch}

/* ---------- HOW A JOB GOES ---------- */
.grid8{display:grid;grid-template-columns:repeat(4,1fr);margin-top:var(--s-6);border-top:4px solid var(--navy)}
.step{padding:var(--s-4) var(--s-4) var(--s-5) 0;border-bottom:2px solid var(--navy);margin-right:var(--s-4)}
.n{font:900 5.4rem/.9 var(--display);font-stretch:125%;color:transparent;-webkit-text-stroke:2px var(--blue)}
.step .n{margin-bottom:var(--s-3)}
.step h3{margin-bottom:8px}
.step p{margin:0;color:var(--muted);font-size:.98rem}
.ground{margin-top:var(--s-6);background:var(--navy);color:#fff;padding:var(--s-5);display:grid;grid-template-columns:auto 1fr;gap:var(--s-5);align-items:center;border-left:14px solid var(--mango)}
.ground h3{font-size:clamp(1.5rem,3vw,2.4rem);max-width:14ch}
.ground p{margin:0;font-size:1.1rem;color:#eaf3f5}
.dark .ground{background:#0d3346}

.jB{display:grid;grid-template-columns:5fr 7fr;gap:var(--s-6);align-items:start;margin-top:var(--s-5)}
.jB .side{position:sticky;top:80px}
.jB figure{margin:0;position:relative}
.jB figure img{width:100%;aspect-ratio:4/3;object-fit:cover}
.jB figcaption{font-size:.95rem;color:var(--muted);margin-top:8px}
.jB .list{border-top:4px solid var(--navy)}
.jrow{display:grid;grid-template-columns:104px 1fr;gap:var(--s-4);align-items:start;padding:20px 0;border-bottom:2px solid var(--navy)}
.jrow .n{font-size:4.2rem}
.jrow h3{margin:6px 0 6px;font-size:1.4rem}
.jrow p{margin:0;color:var(--muted)}

.track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 0 20px;margin-top:var(--s-5);scrollbar-color:var(--mango) #0d3346}
.track:focus-visible{outline-offset:6px}
.card{flex:none;width:min(320px,78vw);min-height:340px;scroll-snap-align:start;background:#0d3346;border-top:8px solid var(--blue);padding:var(--s-4);display:flex;flex-direction:column}
.card .n{-webkit-text-stroke:2px #fff;font-size:5.6rem;margin-bottom:auto;padding-bottom:var(--s-4)}
.card h3{color:#fff;margin-bottom:8px;font-size:1.4rem;min-height:2.3em}
.card p{margin:0;color:#cfe2e6;font-size:1rem}
.hint{color:#cfe2e6;margin:var(--s-3) 0 0;font-size:.95rem}

/* ---------- GALLERY ---------- */
.mosaic{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:150px;gap:12px;margin-top:var(--s-6)}
.mosaic figure{margin:0;position:relative;overflow:hidden;background:#12384b}
.mosaic img,.strip3 img{width:100%;height:100%;object-fit:cover}
figcaption.fc{position:absolute;left:0;bottom:0;right:0;padding:28px 14px 12px;font-size:.92rem;line-height:1.35;color:#fff;background:linear-gradient(0deg,rgba(9,38,52,.9),transparent)}
.m1{grid-column:span 7;grid-row:span 3}
.m2{grid-column:span 5;grid-row:span 2}
.m3{grid-column:span 5;grid-row:span 3}
.m4{grid-column:span 4;grid-row:span 2}
.m5{grid-column:span 3;grid-row:span 2}
.m6{grid-column:span 12;grid-row:span 2}

.strip3{display:flex;gap:12px;height:min(72vh,620px);margin-top:var(--s-6)}
.strip3 figure{flex:1 1 0;min-width:0;margin:0;position:relative;overflow:hidden;background:#12384b;cursor:pointer;transition:flex-grow .55s cubic-bezier(.2,.7,.2,1)}
.strip3 figure.on{flex-grow:3.4}
.strip3 figcaption.fc{padding:56px 18px 16px}
.strip3 .tt{display:block;font:850 clamp(1.4rem,2.4vw,2.2rem)/1 var(--display);font-stretch:118%;letter-spacing:-.02em;margin-bottom:4px}
.strip3 .fc span:not(.tt){display:block;max-width:34ch}
.more{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}
.more figure{margin:0}
.more img{width:100%;aspect-ratio:4/3;object-fit:cover}
.more figcaption{font-size:.92rem;line-height:1.35;color:#cfe2e6;margin-top:8px}

.gC .main{position:relative;aspect-ratio:16/9;max-height:78vh;width:100%;background:#12384b;overflow:hidden;margin:var(--s-6) 0 0}
.gC .main img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.thumbs{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;margin-top:8px}
.thumbs button{position:relative;padding:0;border:0;background:#12384b;aspect-ratio:4/3;cursor:pointer;opacity:.62}
.thumbs button:hover{opacity:.9}
.thumbs button[aria-pressed="true"]{opacity:1;outline:4px solid var(--mango);outline-offset:-4px}
.thumbs img{width:100%;height:100%;object-fit:cover}

/* ---------- SERVICE AREA ---------- */
.towns{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-6);margin-top:var(--s-6)}
.towns h3{color:var(--mango);margin-bottom:var(--s-3);font-size:1.1rem}
.towns li{font:800 clamp(1.5rem,2.6vw,2.2rem)/1.2 var(--display);font-stretch:112%;letter-spacing:-.02em;padding:4px 0}
li.shop{color:var(--mango)}

.spine{position:relative;margin-top:var(--s-6);display:grid;gap:0}
.spine .st{display:grid;grid-template-columns:56px 1fr;gap:0 var(--s-4);position:relative}
.spine .st::before{content:"";position:absolute;left:19px;top:0;bottom:0;width:8px;background:var(--blue)}
.spine .st:first-child::before{top:18px}
.spine .st:last-child::before{bottom:calc(100% - 18px)}
.spine .dot{position:relative;z-index:1;width:46px;height:46px;background:var(--mango);border:6px solid var(--navy);margin-top:0}
.spine .st.shop .dot{background:#fff}
.spine h3{font-size:1.1rem;color:var(--mango);padding-top:10px;margin-bottom:var(--s-3)}
.spine ul{display:flex;flex-wrap:wrap;gap:0 var(--s-5);padding-bottom:var(--s-5)}
.spine li{font:800 clamp(1.5rem,3vw,2.5rem)/1.25 var(--display);font-stretch:112%;letter-spacing:-.02em}
.spine .ends{display:flex;justify-content:space-between;color:#cfe2e6;font-size:.95rem;margin:var(--s-3) 0 0}

.tC2{background:var(--ocean)}
.cloud{margin-top:var(--s-5);font:850 clamp(2rem,6.4vw,5.6rem)/1.08 var(--display);font-stretch:122%;letter-spacing:-.035em;color:var(--navy)}
.cloud li{display:inline}
.cloud li::after{content:" / ";color:var(--blue);font-weight:500}
.cloud li:last-child::after{content:""}
.cloud li.shop{background:var(--navy);color:#fff;padding:0 .18em;margin-right:.3em}
.cloud li.shop::after{content:""}
.tC2 .sub{color:var(--navy)}
.tC2 .bandrule{border-top:4px solid var(--navy);margin-top:var(--s-5)}

/* ---------- FAQ ---------- */
.fA{display:grid;grid-template-columns:1fr 360px;gap:var(--s-6);margin-top:var(--s-6);align-items:start}
.fA .list{border-top:4px solid var(--navy)}
.fA details{border-bottom:2px solid var(--navy)}
.fA summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);padding:20px 0;min-height:64px}
.fA summary::-webkit-details-marker{display:none}
.fA summary h3{font-size:1.35rem}
.fA summary::after{content:"+";font:800 2rem/1 var(--display);color:var(--blue);flex:none}
.fA details[open] summary::after{content:"\2212"}
.fA details p{padding:0 0 22px;margin:0}
.callcard{position:sticky;top:80px;background:var(--navy);color:#fff;padding:var(--s-5) var(--s-4);border-left:14px solid var(--mango)}
.callcard h3{font-size:1.9rem;margin-bottom:var(--s-3);color:#fff}
.callcard p{color:#eaf3f5}
.callcard a{display:inline-block;padding:8px 0;font:850 1.7rem/1 var(--display);font-stretch:112%;color:#fff;text-decoration:none}
.callcard a:hover{color:var(--mango)}

.fB{margin-top:var(--s-6);display:grid;gap:12px}
.fB dt,.fB dd{margin:0;padding:18px 22px}
.fB dt{background:var(--navy);color:#fff;width:min(600px,88%);font:800 1.25rem/1.2 var(--display);font-stretch:112%;letter-spacing:-.015em}
.fB dd{background:var(--ocean);width:min(660px,92%);margin-left:auto;margin-bottom:var(--s-3)}
.fB dd p{margin:0}

.fC{display:grid;grid-template-columns:5fr 7fr;gap:var(--s-6);margin-top:var(--s-6);align-items:start}
.fC .list{border-top:4px solid var(--navy)}
.fC .list button{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:2px solid var(--navy);padding:16px 12px 16px 0;font:800 1.2rem/1.2 var(--display);font-stretch:112%;letter-spacing:-.015em;cursor:pointer;min-height:60px}
.fC .list button:hover{color:var(--blue)}
.fC .list button[aria-pressed="true"]{padding-left:20px;box-shadow:inset 12px 0 0 var(--mango);color:var(--blue)}
.fC .panes{display:grid;background:var(--navy);color:#fff;position:sticky;top:80px}
.fC .panes .pane{grid-area:1/1;padding:var(--s-5)}
.fC .panes h3{color:var(--mango);margin-bottom:var(--s-3);font-size:1.2rem}
.fC .panes p{font:600 clamp(1.4rem,2.6vw,2.1rem)/1.3 var(--body);max-width:30ch;margin:0}

/* ---------- QUOTE FORM ---------- */
label{display:block;font-weight:600;margin-bottom:6px}
input,select,textarea{width:100%;font:400 1rem/1.4 var(--body);color:var(--navy);background:#fff;border:2px solid #fff;border-radius:6px;padding:12px 14px;min-height:50px}
textarea{min-height:120px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:3px solid var(--mango);outline-offset:2px}
.sent{display:none;font-weight:600;margin:0}
.tel-big{display:inline-block;font:850 clamp(1.6rem,3vw,2.4rem)/1 var(--display);font-stretch:112%;text-decoration:none;padding:8px 0}
.qd .tel-big{color:#fff}.qd .tel-big:hover{color:var(--mango)}
.qd .meta{color:#cfe2e6}.qd .meta a{color:#fff;display:inline-block;padding:8px 0}
.qd label{color:#fff}
.qd .sent{color:var(--mango)}
.qf{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}
.qf .full{grid-column:1/-1}

.qA{display:grid;grid-template-columns:1fr 1.1fr;gap:var(--s-6);align-items:start}
.qA .sh{font-size:clamp(3rem,9vw,7rem)}

.qB{background:var(--ocean)}
.sheet{background:#fff;border-top:14px solid var(--navy);padding:var(--s-5);display:grid;grid-template-columns:1fr 1.3fr;gap:var(--s-6);align-items:start}
.sheet .sh{font-size:clamp(2.2rem,5vw,4rem);margin-bottom:var(--s-3)}
.sheet .meta{margin:var(--s-3) 0 0}
.sheet .meta a{display:inline-block;padding:8px 0}
.sheet input,.sheet select,.sheet textarea{border:0;border-bottom:3px solid var(--navy);border-radius:0;background:var(--bg);padding:12px 10px}
.sheet .sent{color:var(--blue)}

.qC{display:grid;grid-template-columns:1fr 1.1fr;gap:var(--s-6);align-items:start}
.qC .sh{font-size:clamp(2.8rem,8vw,6rem)}
.wiz{background:#0d3346;padding:var(--s-5)}
.wbar{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:var(--s-3)}
.wbar i{height:8px;background:rgba(255,255,255,.25)}
.wbar i.on{background:var(--mango)}
.wlabel{color:#cfe2e6;margin:0 0 var(--s-3);font-size:.95rem}
.wstep{border:0;margin:0;padding:0;min-width:0;display:grid;gap:var(--s-3)}
.wstep[hidden]{display:none}
.wstep legend{font:850 clamp(1.6rem,3vw,2.3rem)/1.05 var(--display);font-stretch:116%;letter-spacing:-.025em;padding:0;margin-bottom:var(--s-3);color:#fff}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tile{position:relative;margin:0}
.tile input{position:absolute;opacity:0;inset:0;width:100%;height:100%;min-height:0;cursor:pointer}
.tile span{display:flex;align-items:center;min-height:68px;padding:10px 16px;border:2px solid #fff;color:#fff;font:800 1.05rem/1.15 var(--display);font-stretch:108%}
.tile input:checked+span{background:#fff;color:var(--navy)}
.tile input:focus-visible+span{outline:3px solid var(--mango);outline-offset:2px}
.wnav{display:flex;gap:var(--s-3);margin-top:var(--s-3);flex-wrap:wrap}
.btn-ghost{background:transparent;color:#fff;border-color:#fff}
.btn-ghost:hover{background:#fff;color:var(--navy)}
.btn-next{background:#fff;color:var(--navy);border-color:#fff}
.btn-next:hover{background:var(--ocean);border-color:var(--ocean)}
.wiz .sent{color:var(--mango);margin-top:var(--s-3)}
.wiz label{color:#fff}

/* footer used in the lab */

/* ---------- tablet ---------- */
@media (max-width:1100px){
  .tA .wrap,.tB .wrap{grid-template-columns:1fr;gap:var(--s-4)}
  .tA ul,.tC ul{grid-template-columns:1fr 1fr;row-gap:var(--s-3)}
  .tA li:nth-child(odd),.tC li:nth-child(odd){border-left:0;padding-left:0}
  .tC .strip{grid-template-columns:1fr;gap:var(--s-4)}
}
@media (max-width:1000px){
  .row{grid-template-columns:1fr 1fr;gap:var(--s-3) var(--s-4)}
  .row h3{grid-column:1/-1}
  .row img,.row.lead img{width:100%;height:150px}
  .bB,.bC,.jB,.fA,.fC,.qA,.qC,.sheet{grid-template-columns:1fr}
  .bB .big{min-height:480px}
  .bC .view{min-height:420px}
  .jB .side,.callcard,.fC .panes{position:static}
  .grid8{grid-template-columns:repeat(2,1fr)}
  .ground{grid-template-columns:1fr}
  .towns{grid-template-columns:1fr 1fr}
  .tB li{grid-template-columns:1fr}
  .hC{grid-template-columns:minmax(0,1fr)}
  .hC .shots{order:-1;min-height:0;aspect-ratio:4/3}
  .hC .pan{padding:var(--s-5) 16px var(--s-6)}
  .hC .hdr .tel{display:none}
}
@media (max-width:900px){
  .hdr .tel{display:none}
}
/* ---------- phone ---------- */
@media (max-width:700px){
  body{font-size:17px}
  .wrap{width:auto;margin-left:16px;margin-right:62px}
  .sec{padding-block:var(--s-6)}
  .sh{font-size:clamp(2rem,9.4vw,2.6rem)}
  .pin a{font-size:.95rem;padding:22px 15px;box-shadow:-3px 0 0 rgba(9,38,52,.25)}
  .lab{padding-top:64px}
  .lab-bar strong{display:none}
  .hdr .wrap{min-height:64px}
  .logo img{height:44px}
  .logo{padding:4px 8px}
  .lede{font-size:1.1rem;margin:var(--s-3) 0 var(--s-4)}
  .hA{min-height:min(100svh,760px)}
  .hA>.wrap{padding-top:112px}
  .hA .bar{margin-top:var(--s-4)}
  .hA .acts .btn,.hB .acts .btn,.hC .acts .btn{width:100%;min-height:60px}
  .hB{min-height:0;display:block}
  .hB>img{position:relative;height:56vw;min-height:220px}
  .hB>.wrap{display:block;padding:0;margin:0}
  .hB .slab{width:auto;padding:var(--s-4) 62px var(--s-5) 16px}
  .hB .hdr{position:absolute}
  .hC .pan{padding-right:62px}
  .hC .shots{margin-right:0}
  .hC .ctl{right:45px}
  .ctl button{min-height:56px;font-size:1rem}
  .hC .cap{bottom:56px;right:45px}
  .tB{padding:var(--s-6) 0}
  .tA ul,.tC ul{grid-template-columns:1fr}
  .tA li,.tC li{border-left:0;border-top:2px solid rgba(255,255,255,.3);padding:14px 0 6px}
  .tC li{border-top-color:var(--navy)}
  .tC .strip{margin-right:62px;margin-left:0;padding:var(--s-4) var(--s-3)}
  .tC .pic{height:260px}
  .bbb img{width:190px}
  .tB .bbb img{width:220px}
  .rows,.grid8,.mosaic,.towns,.bB,.bC,.fA,.fB,.fC,.spine,.strip3,.gC .main{margin-top:var(--s-5)}
  .row{grid-template-columns:1fr;gap:var(--s-2);padding:var(--s-4) 0}
  .row h3{font-size:1.8rem}
  .row img,.row.lead img{height:170px;margin-top:var(--s-2)}
  .row .noimg{display:none}
  .bB .big{min-height:420px}
  .bB .big .in{padding:var(--s-4) var(--s-3)}
  .blk,.blk.has{padding:var(--s-4) var(--s-3);grid-template-columns:1fr}
  .blk.has img{height:140px;order:-1}
  .bC .view{min-height:400px}
  .bC .list button{padding:18px 8px 18px 0;min-height:60px}
  .grid8{grid-template-columns:1fr}
  .step{display:grid;grid-template-columns:56px 1fr;column-gap:var(--s-3);align-items:start;margin-right:0;padding:var(--s-3) 0}
  .step .n{grid-row:1 / span 2;font-size:3rem;margin:0;-webkit-text-stroke:1.5px var(--blue)}
  .step h3{margin:2px 0 4px;font-size:1.15rem}
  .step p{font-size:1rem}
  .ground{padding:var(--s-4) var(--s-3);border-left-width:10px;margin-top:var(--s-5)}
  .jrow{grid-template-columns:64px 1fr;gap:var(--s-3)}
  .jrow .n{font-size:3rem;-webkit-text-stroke:1.5px var(--blue)}
  .card{min-height:300px}
  .mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:150px;gap:8px}
  .m1{grid-column:span 2;grid-row:span 2}
  .m2,.m3,.m4,.m5{grid-column:span 1;grid-row:span 1}
  .m6{grid-column:span 2;grid-row:span 1}
  figcaption.fc{padding:24px 10px 8px;font-size:.875rem;line-height:1.3}
  .strip3{flex-direction:column;height:auto}
  .strip3 figure{flex:none;height:230px}
  .strip3 figure.on{flex-grow:0}
  .more{grid-template-columns:1fr 1fr;gap:8px}
  .thumbs{grid-template-columns:repeat(4,1fr)}
  .towns{grid-template-columns:1fr;gap:var(--s-4)}
  .towns ul{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--s-3)}
  .towns li{font-size:1.15rem;padding:6px 0}
  .spine .st{grid-template-columns:44px 1fr;gap:0 var(--s-3)}
  .spine .dot{width:38px;height:38px;border-width:5px}
  .spine .st::before{left:15px;width:8px}
  .spine ul{gap:0 var(--s-4)}
  .spine li{font-size:1.4rem}
  .fA summary{min-height:60px}
  .fA summary h3{font-size:1.1rem}
  .callcard{padding:var(--s-4) var(--s-3)}
  .fB dt,.fB dd{width:auto;padding:16px}
  .fB dt{font-size:1.1rem;margin-right:var(--s-5)}
  .fB dd{margin-left:var(--s-5)}
  .fC .panes .pane{padding:var(--s-4) var(--s-3)}
  .qf{grid-template-columns:1fr}
  .qA .sh,.qC .sh{font-size:clamp(2.6rem,13vw,3.4rem)}
  .sheet,.wiz{padding:var(--s-4) var(--s-3)}
  .tiles{grid-template-columns:1fr}
  input,select,textarea{min-height:54px}
  .qf .btn,.wnav .btn{width:100%;min-height:60px}
  footer.lf a{display:inline-block;padding:12px 0}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hA .hl,.hA .lede,.hA .acts{animation:none}
  .pane,.pane.on,.strip3 figure{transition:none}
}

/* ================= ROUND 2 ================= */
/* hero A without the phone line, room at the bottom for the trust strip to overlap */
.hA>.wrap{padding-bottom:160px}
.pair .tC{padding-bottom:56px}

/* ---- what we build D: stacked bands ---- */
.wD{display:grid}
.wD .band{position:relative;display:flex;align-items:flex-end;color:#fff;isolation:isolate;overflow:hidden;background:var(--navy)}
.wD .band>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.wD .band::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(9,38,52,.92) 0,rgba(9,38,52,.7) 42%,rgba(9,38,52,.15) 100%)}
.wD .band>.wrap{padding-block:56px}
.wD .b1{min-height:min(80vh,680px)}
.wD .b2,.wD .b3{min-height:340px}
.wD .b4{min-height:260px;background:var(--ocean);color:var(--navy)}
.wD .b4::after{display:none}
.wD .sh2{font-size:clamp(2.2rem,6.4vw,5.6rem);max-width:13ch;color:inherit}
.wD .b2 .sh2,.wD .b3 .sh2,.wD .b4 .sh2{font-size:clamp(1.9rem,4.4vw,3.8rem)}
.wD p{color:inherit;max-width:46ch;margin:var(--s-3) 0 0}
.wD .b4 p{color:var(--navy)}
.wD .small{font-size:.95rem;opacity:.9}

/* ---- E: zigzag split ---- */
.wE .zz{display:grid;grid-template-columns:1fr 1fr;min-height:460px}
.wE .zz .pic{position:relative;min-height:340px;background:var(--navy)}
.wE .zz .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wE .zz .tx{display:flex;flex-direction:column;justify-content:center;padding:var(--s-6) clamp(24px,6vw,110px)}
.wE .zz.rev .pic{order:2}
.wE .tx h3{font-size:clamp(2rem,4.6vw,4.2rem);line-height:.98;font-stretch:120%;margin-bottom:var(--s-3);color:inherit}
.wE .tx p{margin:0 0 8px;max-width:42ch}
.wE .small{font-size:.95rem;opacity:.9}

/* ---- F: four tall panels ---- */
.wF .panels{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:12px;height:min(82vh,680px);margin-top:var(--s-6)}
.wF .panel{position:relative;overflow:hidden;color:#fff;display:flex;align-items:flex-end;padding:var(--s-4);isolation:isolate;background:var(--navy)}
.wF .panel>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.wF .panel::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(9,38,52,.94) 0,rgba(9,38,52,.6) 42%,transparent 72%)}
.wF .panel h3{font-size:clamp(1.4rem,2.2vw,2rem);color:#fff;margin-bottom:8px;line-height:1}
.wF .panel.p1 h3{font-size:clamp(2.2rem,4.6vw,4rem)}
.wF .panel p{margin:0;font-size:.98rem}
.wF .panel .small{font-size:.9rem;margin-top:8px;opacity:.9}
.wF .panel.p4{background:var(--ocean);color:var(--navy)}
.wF .panel.p4::after{display:none}
.wF .panel.p4 h3{color:var(--navy)}

/* ---- G: pool package ---- */
.wG{display:grid;grid-template-columns:5fr 7fr;background:var(--navy);color:#fff}
.wG .pic{position:relative;min-height:520px}
.wG .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wG .tx{padding:var(--s-6) clamp(24px,5vw,88px)}
.wG h3{font-size:clamp(2.4rem,5.4vw,4.8rem);color:#fff;margin-bottom:var(--s-3)}
.wG .tx>p{color:#eaf3f5}
.wG ul{display:grid;grid-template-columns:1fr 1fr;border-top:4px solid #fff;margin-top:var(--s-4)}
.wG li{padding:12px 0;border-bottom:2px solid rgba(255,255,255,.3);font-weight:600}
.wG li:nth-child(odd){padding-right:16px}
.wG .add{margin:var(--s-4) 0 0;color:#cfe2e6;font-size:.98rem}
.also{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-5)}
.also>div{border-top:4px solid var(--navy);padding-top:var(--s-3)}
.also h3{font-size:clamp(1.4rem,2.4vw,2rem);font-stretch:118%;margin-bottom:8px;line-height:1}
.also p{margin:0 0 var(--s-3)}
.also img{width:100%;aspect-ratio:3/2;object-fit:cover}
.also .nophoto{aspect-ratio:3/2;background:var(--ocean);display:flex;align-items:flex-end;padding:var(--s-3);font:850 1.4rem/1 var(--display);font-stretch:118%;letter-spacing:-.02em}

/* ---- H: two-photo split ---- */
.wH .duo{display:grid;grid-template-columns:1fr 1fr;gap:12px;height:min(70vh,580px);position:relative}
.wH .duo figure{margin:0;position:relative;overflow:hidden;background:var(--navy)}
.wH .duo img{width:100%;height:100%;object-fit:cover}
.wH .over{position:absolute;left:0;right:0;bottom:0;z-index:2;color:#fff;background:linear-gradient(0deg,rgba(9,38,52,.96) 0,rgba(9,38,52,.8) 55%,transparent);padding:96px 0 var(--s-5)}
.wH .over h3{font-size:clamp(2.6rem,8vw,7rem);color:#fff;margin-bottom:var(--s-3)}
.wH .over p{max-width:60ch;margin:0;color:#eaf3f5}
.wH .over .small{font-size:.95rem;color:#cfe2e6;margin-top:8px}
.wH .stage2{position:relative}

/* ---- who we are ---- */
.slot{background:var(--ocean);border:3px dashed var(--blue);aspect-ratio:4/5;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;text-align:left;padding:var(--s-4);color:var(--navy)}
.slot b{font:850 1.3rem/1.1 var(--display);font-stretch:112%;margin-bottom:8px}
.slot span{font-size:.95rem;max-width:26ch}
.who{display:grid;grid-template-columns:5fr 7fr;gap:var(--s-6);margin-top:var(--s-6);align-items:start}
.who h3{font-size:clamp(2.2rem,5vw,4.4rem);line-height:.98;font-stretch:120%;margin-bottom:var(--s-4)}
.who p{font-size:1.1rem}
.facts3{display:grid;grid-template-columns:repeat(3,1fr);margin-top:var(--s-5);border-top:4px solid var(--navy)}
.facts3 div{padding:var(--s-3) var(--s-3) var(--s-3) 0;border-bottom:2px solid var(--navy)}
.facts3 b{display:block;font:850 1.25rem/1.1 var(--display);font-stretch:112%;letter-spacing:-.02em}
.facts3 span{font-size:.95rem;color:var(--muted)}

.wB{display:grid;grid-template-columns:7fr 4fr;gap:var(--s-6);margin-top:var(--s-6);align-items:start}
.wB .big{font-size:clamp(2.2rem,5vw,4.4rem);line-height:.98;font-stretch:120%;margin-bottom:var(--s-5)}
.tl{position:relative}
.tl .st{display:grid;grid-template-columns:56px 1fr;gap:0 var(--s-4);position:relative;padding-bottom:var(--s-5)}
.tl .st::before{content:"";position:absolute;left:19px;top:18px;bottom:-18px;width:8px;background:var(--blue)}
.tl .st:last-child::before{display:none}
.tl .st:last-child{padding-bottom:0}
.tl .dot{position:relative;z-index:1;width:46px;height:46px;background:var(--mango);border:6px solid var(--bg)}
.tl h4{margin:0 0 4px;font:850 1.5rem/1.1 var(--display);font-stretch:112%;letter-spacing:-.02em}
.tl p{margin:0;color:var(--muted);max-width:48ch}

.wC{position:relative;color:#fff;isolation:isolate;background:var(--navy);overflow:hidden}
.wC>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.wC::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(9,38,52,.96) 0,rgba(9,38,52,.9) 50%,rgba(9,38,52,.6) 100%)}
.wC .grid{display:grid;grid-template-columns:7fr 4fr;gap:var(--s-6);align-items:center;padding-block:var(--s-7)}
.wC .huge{font-size:clamp(2.8rem,8vw,7rem);line-height:.95;font-stretch:122%;color:#fff;margin-bottom:var(--s-4)}
.wC p{font-size:1.2rem;color:#fff;max-width:46ch}
.wC .facts3{border-top-color:#fff}
.wC .facts3 div{border-bottom-color:rgba(255,255,255,.4)}
.wC .facts3 span{color:#cfe2e6}
.wC .slot{background:rgba(201,231,233,.95)}

/* ---- service area with the map ---- */
.mapTile{background:#fff;padding:14px;width:fit-content;max-width:100%}
.mapTile img{width:min(600px,100%);height:auto}
.mapcap{font-size:.9rem;color:#cfe2e6;margin:10px 0 0;max-width:46ch}
.area2{display:grid;grid-template-columns:1.1fr 1fr;gap:var(--s-6);margin-top:var(--s-6);align-items:start}
.towns2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5) var(--s-5)}
.towns2 h3{color:var(--mango);margin-bottom:var(--s-2);font-size:1.05rem}
.towns2 li{font:800 clamp(1.3rem,2.2vw,1.8rem)/1.25 var(--display);font-stretch:112%;letter-spacing:-.02em}
.towns2 .full{grid-column:1/-1}
.pinwrap{position:relative;display:block}
.pinwrap .you{position:absolute;left:54%;top:65.5%;width:16px;height:16px;background:var(--mango);border:3px solid var(--navy);border-radius:50%;translate:-50% -50%;box-shadow:0 0 0 4px rgba(245,162,32,.45)}
.tC3{background:var(--ocean)}
.tC3 .area2{margin-top:var(--s-5)}
.bigtowns{font:850 clamp(1.6rem,3.6vw,3rem)/1.12 var(--display);font-stretch:122%;letter-spacing:-.035em}
.bigtowns li{display:inline}
.bigtowns li::after{content:" / ";color:var(--blue);font-weight:500}
.bigtowns li:last-child::after{content:""}
.bigtowns li.shop{background:var(--navy);color:#fff;padding:0 .18em;margin-right:.3em}
.bigtowns li.shop::after{content:""}
.centermap{display:grid;justify-items:center;text-align:left;margin-top:var(--s-5)}
.center3{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--s-5);align-items:center;margin-top:var(--s-6)}
.center3 ul li{font:800 clamp(1.2rem,2vw,1.7rem)/1.3 var(--display);font-stretch:112%;letter-spacing:-.02em}
.center3 .l{text-align:right}
.center3 h3{color:var(--mango);margin-bottom:var(--s-2);font-size:1.05rem}

/* ---- gallery lightbox ---- */
.strip3 figure,.more figure{cursor:zoom-in}
.more figure:focus-visible,.strip3 figure:focus-visible{outline:3px solid var(--mango);outline-offset:3px}
.more figure img{transition:opacity .2s}
.more figure:hover img{opacity:.88}
dialog.lb{border:0;padding:0;background:transparent;max-width:100vw;max-height:100dvh;width:100%;height:100dvh;color:#fff}
dialog.lb::backdrop{background:rgba(6,26,36,.96)}
dialog.lb{overflow:hidden}
dialog.lb .in{position:relative;height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:12px;padding:72px 72px 16px}
dialog.lb .stage3{position:relative;min-height:0;min-width:0;overflow:hidden}
dialog.lb img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
dialog.lb .bar2{text-align:center}
dialog.lb .cap{margin:0;color:#eaf3f5}
dialog.lb button{position:absolute;z-index:2;display:grid;place-items:center;width:48px;height:48px;padding:0;background:rgba(9,38,52,.85);color:#fff;border:2px solid #fff;border-radius:50%;font:800 1.5rem/1 var(--display);cursor:pointer}
dialog.lb button:hover{background:#fff;color:var(--navy)}
dialog.lb .prev{left:12px;top:50%;transform:translateY(-50%)}
dialog.lb .next{right:12px;top:50%;transform:translateY(-50%)}
dialog.lb .x{right:12px;top:12px}
@media (max-width:700px){dialog.lb .in{padding:64px 8px 12px}dialog.lb .prev{left:8px}dialog.lb .next{right:8px}}
.more figcaption{display:none}

/* ---- tablet / phone for round 2 ---- */
@media (max-width:1000px){
  .wE .zz,.wG,.who,.wB,.wC .grid,.area2,.center3{grid-template-columns:1fr}
  .wE .zz.rev .pic{order:0}
  .wE .zz .pic{min-height:280px}
  .wF .panels{grid-template-columns:1fr 1fr;height:auto}
  .wF .panel{min-height:300px}
  .wF .panel.p1{grid-column:1/-1;min-height:380px}
  .wG .pic{min-height:320px}
  .also{grid-template-columns:1fr}
  .wH .duo{height:min(56vh,420px)}
  .slot{aspect-ratio:auto;min-height:220px}
  .center3 .l{text-align:left}
  .center3 .map{order:-1;justify-self:start}
}
@media (max-width:700px){
  .hA>.wrap{padding-bottom:130px}
  .wD .band>.wrap{padding-block:var(--s-5)}
  .wD .b1{min-height:520px}
  .wD .b2,.wD .b3{min-height:300px}
  .wD .b4{min-height:220px}
  .wD .band::after{background:linear-gradient(0deg,rgba(9,38,52,.94) 0,rgba(9,38,52,.75) 55%,rgba(9,38,52,.25) 100%)}
  .wE .zz .tx{padding:var(--s-5) 62px var(--s-5) 16px}
  .wF .panels{grid-template-columns:1fr;gap:8px;margin-top:var(--s-5)}
  .wF .panel,.wF .panel.p1{min-height:280px;padding:var(--s-3) 62px var(--s-3) var(--s-3)}
  .wG .tx{padding:var(--s-5) 62px var(--s-5) 16px}
  .wG ul{grid-template-columns:1fr}
  .wG li:nth-child(odd){padding-right:0}
  .wH .duo{grid-template-columns:1fr;height:auto;gap:8px}
  .wH .duo figure{height:200px}
  .wH .duo figure+figure{display:none}
  .wH .over{position:relative;background:var(--navy);padding:var(--s-4) 0 var(--s-5)}
  .facts3{grid-template-columns:1fr}
  .facts3 div{padding-right:0}
  .who,.wB,.area2,.center3,.wC .grid{margin-top:var(--s-5);gap:var(--s-5)}
  .wC .grid{padding-block:var(--s-6)}
  .towns2{grid-template-columns:1fr 1fr;gap:var(--s-4)}
  .tl .st{grid-template-columns:44px 1fr;gap:0 var(--s-3)}
  .tl .dot{width:38px;height:38px;border-width:5px}
  .tl .st::before{left:15px}
  .mapTile{padding:8px}
  dialog.lb .in{padding:12px 62px 12px 12px}
  dialog.lb button{min-width:80px}
}
@media (prefers-reduced-motion:reduce){ .more figure img{transition:none} }

/* ================= ROUND 3 ================= */
/* zigzag rows with an info list (the E and G mix) */
.info{display:grid;grid-template-columns:1fr 1fr;border-top:4px solid currentColor;margin:var(--s-4) 0 0;max-width:560px}
.info li{padding:11px 16px 11px 0;border-bottom:2px solid color-mix(in srgb,currentColor 28%,transparent);font-weight:600;line-height:1.3}
.info.one{grid-template-columns:1fr}
.flat2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5);margin-top:var(--s-4);max-width:640px}
.flat2 h4{margin:0;font-size:.85rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.flat2 .info{margin-top:var(--s-2)}
@media (max-width:560px){.flat2{grid-template-columns:1fr;gap:var(--s-4)}}
.wE .tx .add{font-size:.95rem;margin:var(--s-3) 0 0;opacity:.9;max-width:50ch}

/* pool service */
.svc{border-top:4px solid #fff;margin-top:var(--s-4)}
.svc>div{padding:16px 0;border-bottom:2px solid rgba(255,255,255,.3)}
.svc h4{margin:0 0 4px;font:850 clamp(1.4rem,2.4vw,1.9rem)/1.1 var(--display);font-stretch:114%;letter-spacing:-.02em;color:#fff}
.svc p{margin:0;color:#eaf3f5}
.callrow{margin-top:var(--s-4);display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-4);align-items:center}
.callrow .num{font:850 1.6rem/1 var(--display);font-stretch:112%;color:#fff;text-decoration:none;padding:8px 0}

.sv2{background:var(--ocean)}
.sv2 .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-5);margin-top:var(--s-6)}
.sv2 .cols>div{border-top:4px solid var(--navy);padding-top:var(--s-3)}
.sv2 h3{font-size:clamp(1.7rem,3.2vw,2.8rem);font-stretch:120%;margin-bottom:var(--s-2);line-height:1}
.sv2 .cols p{margin:0;max-width:30ch}
.sv2 .callrow .num{color:var(--navy)}
.sv2 .lead{font-size:1.2rem;max-width:44ch;margin-top:var(--s-4)}

/* service area: the map sits straight on the section, no white block */
.mapimg{display:block;width:min(640px,100%);height:auto}
.blend-multiply{mix-blend-mode:multiply}
.pinbox{position:relative;width:min(640px,100%)}
.pinbox .mapimg{width:100%}
.pinbox .you{position:absolute;left:48.7%;top:68.8%;width:14px;height:14px;background:var(--mango);border:3px solid var(--navy);border-radius:50%;translate:-50% -50%;box-shadow:0 0 0 5px rgba(245,162,32,.5)}
.sa{display:grid;grid-template-columns:1fr 1.1fr;gap:var(--s-6);align-items:center}
.sa .sh2{font-size:clamp(2.6rem,6.4vw,5.8rem);line-height:.96;font-stretch:122%;margin-bottom:var(--s-4)}
.sa .lead{font-size:1.25rem;max-width:36ch;margin:0 0 var(--s-4)}
.sa .num{display:inline-block;font:850 clamp(1.7rem,3vw,2.4rem)/1 var(--display);font-stretch:112%;color:inherit;text-decoration:none;padding:8px 0}
.sa .legend{font-size:.92rem;margin:var(--s-3) 0 0;display:flex;align-items:center;gap:8px}
.sa .legend i{width:12px;height:12px;border-radius:50%;background:var(--mango);border:2px solid var(--navy);display:inline-block}
.tw3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-5);margin-top:var(--s-6);border-top:4px solid currentColor;padding-top:var(--s-3)}
.tw3 h3{font-size:1rem;margin-bottom:var(--s-2)}
.tw3 li{font:700 1.05rem/1.5 var(--body)}
.sa-ocean{background:var(--ocean)}
.sa-night{background:var(--navy);color:#fff}
.sa-night .sh2{color:#fff}
.night-map{filter:invert(1);mix-blend-mode:screen}
.sa-night .tw3 h3{color:var(--mango)}
.sa-night .num{color:#fff}
.sa-night .legend i{border-color:#fff}
.sa-night .pinbox .you{border-color:#fff}
.sa.flip>:first-child{order:2}

@media (max-width:1000px){
  .sa{grid-template-columns:1fr}
  .sa.flip>:first-child{order:0}
  .tw3{grid-template-columns:1fr 1fr}
  .sv2 .cols{grid-template-columns:1fr}
}
@media (max-width:700px){
  .info{grid-template-columns:1fr}
  .tw3{grid-template-columns:1fr 1fr;gap:var(--s-4)}
  .sa{gap:var(--s-5)}
  .sv2 .cols{margin-top:var(--s-5)}
  .callrow .btn{width:100%}
}

/* ================= MAIN SITE ASSEMBLY ================= */
html{scroll-padding-top:72px}
/* header over the hero */
header.top{position:absolute;inset:0 0 auto 0;z-index:30;color:#fff}
.top .wrap{display:flex;align-items:center;justify-content:space-between;min-height:84px}
.top nav{display:flex;gap:var(--s-5);margin-left:auto;margin-right:var(--s-5)}
.top nav a{color:#fff;text-decoration:none;font-weight:600;white-space:nowrap}
.top nav a:hover{text-decoration:underline;text-underline-offset:6px}
.top .tel{font:850 1.5rem/1 var(--display);font-stretch:112%;color:#fff;text-decoration:none;white-space:nowrap}
.menu-btn,.top nav .only-m{display:none}
.hA .hl{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}

/* flatwork row has a photo now, so it zigzags like the others */
.buildhead{padding-block:72px 40px}
.buildhead .sh{margin:0}

/* who we are */
.portrait{margin:0}
.portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:60% 25%}
.portrait figcaption{font-size:.95rem;color:var(--muted);margin-top:8px}
.whoMain{padding-block:72px}

/* pool service is the navy block, with an h2 */
.wG h2{font-size:clamp(2.4rem,5.4vw,4.8rem);color:#fff;margin-bottom:var(--s-3)}

/* how a job goes */
.jobMain{padding-block:72px}

/* service area, on ocean blue */
.areaMain{padding-block:72px}
.areaMain .sa{margin-top:0}

/* FAQ and quote */
.faqMain{padding-block:72px}
.quoteMain{padding-block:72px}
.qB .sheet{margin-top:0}

footer.site{background:#061a24;color:#cfe2e6;padding-block:var(--s-5)}
footer.site .wrap{display:flex;flex-wrap:wrap;gap:var(--s-4) var(--s-6);align-items:center;justify-content:space-between}
footer.site a{color:#fff}
footer.site .fcard{background:#fff;border-radius:8px;padding:8px 10px}
footer.site img{height:56px;width:auto}
footer.site p{margin:0}

@media (max-width:1100px){
  .top nav{gap:var(--s-4);margin-right:var(--s-4)}
}
@media (max-width:1000px){
  .fA,.sheet{grid-template-columns:1fr}
}
@media (max-width:900px){
  .top .tel{display:none}
  .top nav{margin-right:0}
  header.top{position:fixed;transition:background-color .2s}
  header.top.stuck,header.top.menu-open{background:var(--navy)}
  .top .wrap{min-height:64px}
  .top .logo{padding:4px 8px}
  .top .logo img{height:44px}
  .menu-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:88px;padding:0 18px;background:transparent;color:#fff;border:2px solid #fff;border-radius:8px;font:800 1rem/1 var(--display);font-stretch:110%;cursor:pointer}
  .menu-btn[aria-expanded="true"]{background:#fff;color:var(--navy)}
  .top nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;padding:4px 62px 18px 16px;flex-direction:column;gap:0;background:var(--navy);border-top:1px solid rgba(255,255,255,.2)}
  .top nav.open{display:flex}
  .top nav a,.top nav .only-m{display:flex;align-items:center;min-height:56px;font-size:1.15rem;border-bottom:1px solid rgba(255,255,255,.18)}
  .top nav a:last-child{border-bottom:0}
}
@media (max-width:700px){
  .buildhead,.whoMain,.jobMain,.areaMain,.faqMain,.quoteMain{padding-block:var(--s-6)}
  .buildhead{padding-bottom:var(--s-4)}
  .hA .acts .btn{width:100%;min-height:60px}
  footer.site{padding-block:var(--s-5)}
  footer.site .wrap{gap:var(--s-3)}
  footer.site a{display:inline-block;padding:12px 0}
}

.svc h3{margin:0 0 4px;font:850 clamp(1.4rem,2.4vw,1.9rem)/1.1 var(--display);font-stretch:114%;letter-spacing:-.02em;color:#fff}
.who h2{font-size:clamp(2.2rem,5vw,4.4rem);line-height:.98;font-stretch:120%;margin-bottom:var(--s-4)}

/* ================= POLISH PASS: spacing tokens, section rhythm, finish ================= */
:root{
  --container:1200px; --gutter:24px;
  --space-section:96px;  /* vertical padding of every section */
  --space-head:48px;     /* section heading to its content */
  --space-block:24px;    /* between blocks inside a section */
  --space-card:32px;     /* padding inside cards, rows and sheets */
  --gap:16px;            /* gap between cards, photos and list items */
  --edge:max(var(--gutter),calc((100vw - var(--container))/2));
  --focus:var(--blue);
}
@media (max-width:1000px){:root{--space-section:80px}}
@media (max-width:700px){:root{--space-section:64px;--space-head:32px;--space-card:24px;--gutter:16px}}

.wrap{width:min(var(--container),100% - 2*var(--gutter))}
@media (max-width:1000px){.wrap{width:auto;margin-left:var(--gutter);margin-right:62px}}

h1,h2,h3,.hl{text-wrap:balance}
p,li{text-wrap:pretty}

/* focus rings that read on every background */
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.hA,header.top,.wG,footer.site,dialog.lb,.ground,.card,.callcard{--focus:var(--mango)}
.pin a:focus-visible{outline-color:var(--navy);outline-offset:-6px}
input:focus,select:focus,textarea:focus{outline:3px solid var(--blue);outline-offset:2px}
.skip{padding:12px 18px}

/* section backgrounds, in page order: white strip, ocean, navy, ocean, light, ocean, white, ocean, light */
.s-ocean{background:var(--ocean)}
.s-white{background:var(--white)}
.s-bg{background:var(--bg)}
#who,#gallery,#job,#area,#faq,#quote{padding-block:var(--space-section)}
main h2.sh{margin:0 0 var(--space-head)}
.tC{background:var(--white);padding-bottom:var(--space-head)}

/* tap targets */
.top nav a{padding:10px 0}
.top .tel{padding:10px 0}
.sa .num,.tel-big,.callcard a,.callrow .num,.meta a,footer.site a{display:inline-flex;align-items:center;min-height:44px;padding-block:0}

/* what we build: one row recipe */
#build .buildhead{padding:var(--space-section) 0 var(--space-head)}
#build .buildhead .sh{margin:0}
.wE .zz{grid-template-columns:1fr 1fr;min-height:620px}
.wE .zz:nth-child(odd){background:var(--white)}
.wE .zz:nth-child(even){background:var(--ocean)}
.wE .zz .pic{min-height:0}
.wE .zz .tx{color:var(--navy);padding:calc(var(--space-card)*1.5) var(--edge) calc(var(--space-card)*1.5) clamp(32px,5vw,72px);justify-content:center}
.wE .zz.rev .tx{padding:calc(var(--space-card)*1.5) clamp(32px,5vw,72px) calc(var(--space-card)*1.5) var(--edge)}
.wE .zz .tx h3{color:var(--navy);margin:0 0 var(--gap)}
.wE .zz .tx p{color:var(--navy);margin:0 0 var(--gap);max-width:46ch}
.wE .zz .info{margin:var(--space-block) 0 0;max-width:520px}
.wE .zz .tx .add{margin:var(--space-block) 0 0;font-size:.95rem;opacity:1}
.wE .zz .tx p:last-child{margin-bottom:0}
@media (max-width:1000px){
  .wE .zz{grid-template-columns:minmax(0,1fr);min-height:0}
  .wE .zz .pic{aspect-ratio:3/2}
  .wE .zz .tx,.wE .zz.rev .tx{padding:calc(var(--space-card)*1.5) 62px calc(var(--space-card)*1.5) var(--gutter)}
}

/* pool service */
.wG .pic{min-height:0}
.wG .tx{padding:var(--space-section) var(--edge) var(--space-section) clamp(32px,5vw,72px)}
.wG h2{margin:0 0 var(--gap)}
.wG .tx>p{max-width:46ch;margin:0}
.svc{margin-top:var(--space-block)}
.callrow{margin-top:var(--space-block)}
@media (max-width:1000px){.wG .tx{padding:var(--space-section) 62px var(--space-section) var(--gutter)}}

/* who we are, service area: shared column gap */
.who,.sa{gap:var(--space-head)}
.who p,.sa .lead{max-width:46ch}
.who h2{margin:0 0 var(--space-block)}
.who p{margin:0 0 var(--gap)}
.facts3{margin-top:var(--space-block)}

/* gallery on the light page color */
.strip3{margin-top:0;gap:var(--gap)}
.more{gap:var(--gap);margin-top:var(--gap)}
.more figcaption{color:var(--muted)}

/* how a job goes on ocean */
.track{margin-top:0;gap:var(--gap);padding-bottom:var(--space-block);scrollbar-color:var(--blue) var(--white)}
.card{padding:var(--space-card)}
.hint{color:var(--navy);margin:var(--gap) 0 0}
.ground{margin-top:var(--space-head);padding:var(--space-card)}
@media (max-width:700px){.ground{padding:var(--space-card) var(--gap)}}

/* faq and quote */
.fA{margin-top:0;gap:var(--space-head)}
.callcard{padding:var(--space-card)}
.sheet{gap:var(--space-head);padding:calc(var(--space-card)*1.25);border:2px solid var(--ocean);border-top:14px solid var(--navy);margin-top:0}
.sheet .sh{margin:0 0 var(--space-block)}
.sheet p{margin:0 0 var(--gap)}
.sheet .meta{margin-top:var(--gap)}
.btn{min-height:56px}
@media (max-width:700px){.btn{min-height:60px}.sheet{padding:var(--space-card) var(--gap)}}

/* what we build, flow fix: page-colored heading, rows inside the 1200 px column, navy rules instead of blue bands */
#build{padding-bottom:var(--space-section)}
#build .buildhead{padding:var(--space-section) 0 var(--space-head)}
#build .wE{width:min(var(--container),100% - 2*var(--gutter));margin-inline:auto}
#build .wE .zz,#build .wE .zz:nth-child(odd),#build .wE .zz:nth-child(even){background:transparent;min-height:0;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center;padding-block:var(--space-head);border-top:4px solid var(--navy)}
#build .wE .zz .pic{aspect-ratio:4/3;min-height:0}
#build .wE .zz.rev .pic{order:2}
#build .wE .zz .tx,#build .wE .zz.rev .tx{padding:0}
@media (max-width:1000px){
  #build .wE{width:auto;margin-left:var(--gutter);margin-right:62px}
  #build .wE .zz,#build .wE .zz:nth-child(odd),#build .wE .zz:nth-child(even){grid-template-columns:minmax(0,1fr);gap:var(--space-block);padding-block:var(--space-head)}
  #build .wE .zz.rev .pic{order:0}
  #build .wE .zz .pic{aspect-ratio:3/2}
}

/* ================= COLOR PASS: ocean is an accent, navy is back ================= */
/* sequence: hero navy / strip white / build off-white / service white / who navy / gallery off-white / job white / area navy / faq white / quote ocean (the only ocean band) / footer dark navy */
.s-navy{background:var(--navy);color:#fff}
#who,#area{--focus:var(--mango)}

/* what we build: white cards on off-white, one mango rule per row */
#build .wE .zz,#build .wE .zz:nth-child(odd),#build .wE .zz:nth-child(even){background:var(--white);border:1px solid var(--ocean);border-top:8px solid var(--mango);padding-inline:var(--space-card);margin-bottom:var(--space-block)}
#build .wE .zz:last-child{margin-bottom:0}

/* pool service on white */
#service .wG{background:var(--white);color:var(--navy);--focus:var(--blue)}
#service .wG h2,#service .wG h3,#service .svc h3,#service .svc h4{color:var(--navy)}
#service .wG .tx>p{color:var(--navy)}
#service .svc{border-top-color:var(--navy)}
#service .svc>div{border-bottom-color:rgba(9,38,52,.25)}
#service .svc p{color:var(--muted)}
#service .callrow .btn-solid{background:var(--navy);border-color:var(--navy);color:#fff}
#service .callrow .btn-solid:hover{background:var(--blue);border-color:var(--blue)}
#service .callrow .num{color:var(--blue)}

/* who we are on navy */
#who p{color:#eaf3f5}
#who .facts3{border-top-color:#fff}
#who .facts3 div{border-bottom-color:rgba(255,255,255,.35)}
#who .facts3 span,#who .portrait figcaption{color:#cfe2e6}

/* how a job goes on white: white cards, navy number badges */
.card{background:var(--white);border:1px solid var(--ocean);border-top:8px solid var(--blue);--focus:var(--blue)}
.card .n{-webkit-text-stroke:0;color:#fff;background:var(--navy);width:64px;height:64px;display:grid;place-items:center;font-size:2rem;line-height:1;padding:0;align-self:flex-start;margin-bottom:auto}
.card h3{color:var(--navy);margin-top:var(--s-4)}
.card p{color:var(--muted)}
.hint{color:var(--muted)}
.track{scrollbar-color:var(--blue) var(--ocean)}

/* service area on navy */
#area .sa .lead{color:#eaf3f5}
#area .sa .num{color:#fff}
#area .sa .num:hover{color:var(--mango)}

/* ================= WIDTH PASS: one column ================= */
/* Rule: all content sits on one column (.wrap, --container and --gutter). Only section backgrounds and the hero image go full-bleed. */
#service{padding-block:var(--space-section)}
#service .wG{grid-template-columns:5fr 7fr;gap:clamp(32px,5vw,72px);align-items:stretch;background:transparent}
#service .wG .pic{min-height:420px}
#service .wG .tx{padding:0;align-self:center}
@media (max-width:1000px){
  #service .wG{grid-template-columns:minmax(0,1fr);gap:var(--space-block)}
  #service .wG .pic{min-height:0;aspect-ratio:3/2}
  #service .wG .tx{padding:0}
}
/* trust strip: border instead of an outside shadow, so the card edge lands on the column edge */
.tC .strip{box-shadow:none;border:2px solid var(--navy);border-top:8px solid var(--blue)}
/* the wrap already keeps the call tab clear, so the strip takes the full column, and the hero text column fills it too */
@media (max-width:1000px){.hA>.wrap{flex:1 1 auto}}
@media (max-width:700px){.tC .strip{margin-right:0}}

/* ================= COPY PASS: calls to action ================= */
.cta{margin-top:var(--space-head);display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3) var(--s-5)}
.cta p{margin:0;font:600 clamp(1.15rem,2vw,1.4rem)/1.35 var(--body);max-width:38ch}
.go{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3) var(--s-4)}
.cta .btn-solid{background:var(--navy);border-color:var(--navy);color:#fff}
.cta .btn-solid:hover{background:var(--blue);border-color:var(--blue)}
.cta .num{font:850 1.35rem/1 var(--display);font-stretch:112%;color:var(--blue);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.cta .num:hover{text-decoration:underline;text-underline-offset:6px}
.cta.dk p,.cta.dk .num{color:#fff}
.cta.dk .btn-solid{background:#fff;border-color:#fff;color:var(--navy)}
.cta.dk .btn-solid:hover{background:var(--ocean);border-color:var(--ocean)}
#service .cta,.sa .cta{margin-top:var(--space-block)}
.hA .acts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3) var(--s-4)}
.hA .acts .num{color:#fff;font:850 1.35rem/1 var(--display);font-stretch:112%;text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.hcta{min-height:44px;padding:8px 20px;font-size:.95rem;margin-left:var(--s-3);white-space:nowrap}
@media (min-width:1001px){.top nav{gap:var(--s-4);margin-right:var(--s-3);margin-left:var(--s-4)}.top .tel{font-size:1.2rem}}
@media (max-width:1000px){.hcta{display:none}}
.callcard .go{margin-top:var(--s-3)}
.callcard a.btn{display:inline-flex;font:800 1.05rem/1 var(--display);font-stretch:110%;padding:14px 30px;min-height:56px;color:var(--navy)}
.callcard a.btn:hover{color:var(--navy)}

/* gallery thumbnails: one row, slides left and right */
.slider{position:relative;margin-top:var(--gap)}
.slider .more{display:flex;gap:var(--gap);margin-top:0;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}
.slider .more::-webkit-scrollbar{display:none}
.slider .more figure{flex:0 0 calc((100% - 2*var(--gap))/3);scroll-snap-align:start}
.slider .more img{aspect-ratio:4/3}
.sl{position:absolute;top:50%;translate:0 -50%;z-index:3;width:48px;height:64px;padding:0;border:0;background:rgba(9,38,52,.88);cursor:pointer}
.sl::before{content:"";position:absolute;top:50%;left:50%;translate:-50% -50%;border-style:solid;border-width:12px 0 12px 18px;border-color:transparent transparent transparent #fff}
.sl.prev{left:0}.sl.next{right:0}
.sl.prev::before{border-width:12px 18px 12px 0;border-color:transparent #fff transparent transparent}
.sl:hover{background:var(--mango)}
.sl:hover::before{border-left-color:var(--navy)}.sl.prev:hover::before{border-right-color:var(--navy);border-left-color:transparent}
.sl:focus-visible{outline:3px solid var(--mango);outline-offset:2px}
.sl[disabled]{opacity:.25;cursor:default}
@media (max-width:700px){.slider .more figure{flex-basis:calc((100% - var(--gap))/1.6)}.sl{width:40px;height:56px}}
@media (prefers-reduced-motion:reduce){.slider .more{scroll-behavior:auto}}

/* bridge band and service questions (round 5 picks) */
.bridge5{background:var(--navy);color:#fff;border-top:8px solid var(--mango);padding:var(--s-6) 0}
.bridge5 .wrap{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5);align-items:end}
.bridge5 h2{font:850 clamp(2.2rem,5.2vw,4.4rem)/1 var(--display);font-stretch:118%;letter-spacing:-.03em;color:#fff;margin:0}
.bridge5 p{margin:0;color:#eaf3f5;font-size:1.3rem;line-height:1.45;max-width:34ch}
.sv5head{margin-bottom:var(--s-6)}
.sv5head h2{margin:0 0 var(--s-3);font-size:clamp(2.2rem,5.4vw,4.6rem);line-height:1}
.sv5head p{margin:0;font-size:1.3rem;line-height:1.45;max-width:40ch}
.sv5rows{border-top:4px solid var(--navy)}
.sv5row{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s-5);align-items:center;padding:var(--s-5) 0;border-bottom:2px solid var(--navy)}
.sv5row img{width:100%;aspect-ratio:4/3;object-fit:cover}
.sv5row h3{font:850 clamp(1.8rem,3.4vw,2.8rem)/1.04 var(--display);font-stretch:118%;letter-spacing:-.03em;margin:0 0 var(--s-3);max-width:18ch;color:var(--navy)}
.sv5row .ans{margin:0;font-size:1.3rem;line-height:1.45;max-width:36ch}
.sv5row .ans b{font-family:var(--display);font-stretch:112%;font-weight:850;letter-spacing:-.02em;color:var(--blue)}
#service .cta{margin-top:var(--s-6)}
@media (max-width:900px){.bridge5 .wrap,.sv5row{grid-template-columns:minmax(0,1fr)}.sv5row{gap:var(--s-4);padding:var(--s-4) 0}.sv5row img{aspect-ratio:3/2}}

/* build carousels */
#build .wE .zz .pic.car{overflow:hidden}
#build .pic .track{position:absolute;inset:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}
#build .pic .track::-webkit-scrollbar{display:none}
#build .wE .zz .pic .track img{position:static;flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:start}
.car .cnt{position:absolute;right:12px;bottom:12px;z-index:3;padding:4px 12px;background:rgba(9,38,52,.88);color:#fff;font:700 .9rem/1.4 var(--display)}
.car:focus-visible{outline:3px solid var(--mango);outline-offset:3px}
@media (prefers-reduced-motion:reduce){#build .pic .track{scroll-behavior:auto}}
.sv5row .more5{margin:var(--s-3) 0 0;max-width:52ch;line-height:1.5}
.sv5row .info{margin:var(--s-3) 0 0;max-width:620px}

/* gallery: one big photo, arrows in its corner, thumbnails below follow */
.stage{position:relative;aspect-ratio:16/9;background:var(--navy);overflow:hidden;cursor:zoom-in}
.stage>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.stage .sl{top:auto;bottom:16px;translate:none;height:56px}
.stage .sl.next{right:16px}.stage .sl.prev{left:auto;right:68px}
.stage .cnt{position:absolute;left:16px;bottom:16px;z-index:3;padding:4px 12px;background:rgba(9,38,52,.88);color:#fff;font:700 .9rem/1.4 var(--display)}
.slider>.sl{display:none}
.slider .more figure[data-gl]{cursor:pointer}
.slider .more figure.cur img{outline:4px solid var(--mango);outline-offset:-4px}
@media (max-width:700px){.stage{aspect-ratio:4/3}.stage .sl{bottom:12px}.stage .sl.next{right:12px}.stage .sl.prev{left:auto;right:56px}}

/* ================= HAND-MADE TOUCHES (2026-11-09) ================= */
/* headline: bigger and bolder */
.hA .hl{font-size:clamp(2.9rem,7.4vw,6.4rem);font-weight:900;line-height:.94;letter-spacing:-.035em;max-width:24ch}

/* hand-drawn swash under "Family." The clip box stays still. Only the line inside it slides in, once (transform only). */
.swash-word{position:relative;display:inline-block}
.swash{position:absolute;left:-2%;bottom:-.14em;width:104%;height:.2em;color:var(--mango);overflow:visible;pointer-events:none;
  animation:swash-in .7s .65s cubic-bezier(.3,.7,.2,1) both}
@keyframes swash-in{from{transform:scaleX(0);transform-origin:left center}to{transform:scaleX(1);transform-origin:left center}}
@media (prefers-reduced-motion:reduce){.swash{animation:none}}
