@font-face{font-family:"Bodoni Moda";font-weight:500;font-display:swap;src:url(/assets/fonts/bodoni-moda-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-weight:400;font-display:swap;src:url(/assets/fonts/jost-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-weight:500;font-display:swap;src:url(/assets/fonts/jost-latin-500-normal.woff2) format("woff2")}
:root{--ink:#14202B;--ink-2:#1d2c3a;--ink-line:#2b3d4f;--pool:#6E9BA3;--pool-d:#4f7c85;--pool-l:#9CC3C9;--ivory:#F4F1EA;--mist:#E6ECEC;--line:#d6dcdc;--body:#3c4a55;--soft:#c9d3d6}
*{box-sizing:border-box}
html,body{margin:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font-family:Jost,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--ivory);line-height:1.65;-webkit-font-smoothing:antialiased;font-size:17px}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--pool);outline-offset:3px}
.cap{text-transform:uppercase;letter-spacing:.26em;font-size:.76rem;font-weight:500}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.narrow{max-width:760px}
h1,h2,h3{font-family:"Bodoni Moda",Georgia,serif;font-weight:500;line-height:1.18;text-wrap:balance}
h2{font-size:clamp(1.7rem,3.4vw,2.45rem);margin:0 0 18px}
h3{font-size:1.3rem;margin:0 0 8px}
.eyebrow{color:var(--pool-d);margin:0 0 14px}
.lead{max-width:40em;font-size:1.1rem;color:var(--body)}
section{padding:96px 0}
section.tight{padding:64px 0}
.mist{background:var(--mist)}
.dark{background:var(--ink);color:var(--ivory)}
.dark .eyebrow{color:var(--pool-l)}
.dark p,.dark li{color:var(--soft)}
.btn{display:inline-block;padding:16px 32px;border:1.5px solid var(--pool-l);color:var(--ivory);text-decoration:none;transition:background .2s,color .2s;cursor:pointer;background:transparent;font:inherit}
.btn:hover,.btn:focus-visible{background:var(--pool-l);color:var(--ink)}
.btn.solid{background:var(--ink);border-color:var(--ink);color:var(--ivory)}
.btn.solid:hover,.btn.solid:focus-visible{background:var(--ink-2)}
.link{color:var(--pool-d);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:1px}
.dark .link{color:var(--pool-l)}

/* nav */
.nav{position:fixed;inset:0 0 auto;z-index:20;transition:background .25s,box-shadow .25s}
.nav.solid,.nav.always{background:var(--ink);box-shadow:0 1px 0 #26384a}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px}
.nav .logo{flex:none}
.nav .logo img{height:40px;width:auto}
@media(max-width:420px){.nav .logo img{height:34px}}
.nav ul{display:none;list-style:none;margin:0;padding:0;gap:22px;letter-spacing:.16em}
.nav ul a{color:var(--ivory);text-decoration:none;opacity:.88}
.nav ul a:hover,.nav ul a[aria-current]{opacity:1;color:var(--pool-l)}
.nav .tel{color:var(--ivory);text-decoration:none;font-size:.95rem;letter-spacing:.04em;white-space:nowrap}
.menu-btn{background:none;border:0;color:var(--ivory);padding:10px 0 10px 12px;cursor:pointer}
.menu-btn span{display:block;width:24px;height:1.5px;background:currentColor;margin:5px 0}
.nav-right{display:flex;align-items:center;gap:18px}
.drawer{display:none;background:var(--ink);border-top:1px solid #26384a;padding:12px 24px 28px}
.drawer.open{display:block}
.drawer a{display:block;color:var(--ivory);text-decoration:none;padding:12px 0;border-bottom:1px solid #26384a}
@media(min-width:1000px){.nav ul{display:flex}.menu-btn,.drawer{display:none!important}}
@media(max-width:420px){.nav .tel{display:none}}
@media(pointer:coarse) and (min-width:421px) and (max-width:999px),(pointer:coarse) and (min-width:1200px){.nav .tel{display:inline-block}}
@media(min-width:1000px) and (max-width:1199px){.nav .tel{display:none}.nav ul{gap:18px}}

/* hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;color:var(--ivory);background:var(--ink);overflow:hidden}
.hero picture,.hero picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,32,43,.55) 0%,rgba(20,32,43,.25) 38%,rgba(20,32,43,.84) 100%)}
.hero-in{position:relative;z-index:1;padding:140px 24px 72px;width:100%}
.hero h1{font-size:clamp(2.1rem,5.2vw,3.9rem);margin:0;max-width:14em}
.hero .sub{color:var(--pool-l);margin:22px 0 0;max-width:34em}
.ctas{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;margin-top:36px}
.ctas a.call{color:var(--ivory);text-decoration:none;border-bottom:1px solid var(--pool-l);padding-bottom:2px}

/* page header (inner pages) */
.phead{position:relative;background:var(--ink);color:var(--ivory);padding:150px 0 72px;overflow:hidden}
.phead.photo{padding:200px 0 80px}
.phead picture,.phead picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.phead.photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,32,43,.6),rgba(20,32,43,.86))}
.phead .wrap{position:relative;z-index:1}
.phead h1{font-size:clamp(2rem,4.6vw,3.3rem);margin:0;max-width:17em}
.phead .sub{color:var(--soft);margin:20px 0 0;max-width:38em;font-size:1.1rem}
.crumbs{margin:0 0 22px;color:var(--pool-l)}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.crumbs li+li::before{content:"/";margin-right:6px;opacity:.6}
.crumbs a{color:var(--pool-l);text-decoration:none}
.meta-line{color:var(--pool-l);margin-top:22px}

/* grids */
.grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:44px}
@media(min-width:720px){.grid.two{grid-template-columns:repeat(2,1fr)}.grid.three{grid-template-columns:repeat(3,1fr)}}
@media(min-width:900px){.grid.four{grid-template-columns:repeat(4,1fr)}}
@media(min-width:720px) and (max-width:899px){.grid.four{grid-template-columns:repeat(2,1fr)}}
.cell{background:var(--ivory);padding:30px 26px}
.mist .cell{background:var(--mist)}
.cell p{margin:0;font-size:.97rem;color:var(--body)}
.cell a.more{display:inline-block;margin-top:14px;color:var(--pool-d);text-decoration:none;font-size:.95rem}
.cell a.more::after{content:" →"}
a.cell{text-decoration:none;transition:background .2s}
a.cell:hover{background:#fff}
.num{font-family:"Bodoni Moda",Georgia,serif;color:var(--pool);font-size:1.6rem;display:block;margin-bottom:10px}

/* prose */
.prose{max-width:720px}
.prose h2{font-size:clamp(1.5rem,2.8vw,2rem);margin:48px 0 14px}
.prose h3{font-size:1.25rem;margin:32px 0 8px}
.prose p,.prose li{color:var(--body)}
.prose ul,.prose ol{padding-left:1.2em}
.prose li{margin:6px 0}
.prose strong{color:var(--ink);font-weight:500}
.prose a{color:var(--pool-d)}
.prose table{width:100%;border-collapse:collapse;margin:22px 0;font-size:.97rem}
.prose th,.prose td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.prose th{font-weight:500;color:var(--ink);border-bottom:1.5px solid var(--ink)}
.prose td:last-child{white-space:nowrap}
.answer{background:var(--mist);border-left:3px solid var(--pool);padding:20px 24px;margin:0 0 32px}
.answer p{margin:0;color:var(--ink)}
.note{font-size:.9rem;color:#5d6b75}
.split{display:grid;gap:48px}
@media(min-width:960px){.split{grid-template-columns:minmax(0,1fr) 320px;align-items:start}}
.aside{position:sticky;top:96px;background:var(--ink);color:var(--ivory);padding:30px 28px}
.aside h3{color:var(--ivory)}
.aside p{color:var(--soft);font-size:.96rem}
.aside .btn{margin-top:8px;width:100%;text-align:center}
.aside a.tel{display:block;color:var(--pool-l);text-decoration:none;margin-top:16px;text-align:center}
@media(max-width:959px){.aside{position:static}}

/* work gallery */
.work{display:grid;gap:14px;margin-top:44px;grid-template-columns:1fr}
.work figure{margin:0;position:relative;overflow:hidden;background:var(--mist)}
.work img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.work figure:hover img{transform:scale(1.03)}
.work figcaption{position:absolute;left:0;right:0;bottom:0;padding:40px 18px 14px;color:var(--ivory);font-size:.92rem;background:linear-gradient(180deg,transparent,rgba(20,32,43,.8))}
@media(min-width:760px){
 .work{grid-template-columns:repeat(6,1fr);grid-auto-rows:150px}
 .w-a{grid-column:span 4;grid-row:span 3}.w-b{grid-column:span 2;grid-row:span 3}
 .w-c{grid-column:span 3;grid-row:span 2}.w-d{grid-column:span 3;grid-row:span 2}
 .w-e{grid-column:span 2;grid-row:span 2}.w-f{grid-column:span 4;grid-row:span 2}
}
@media(max-width:759px){.work figure{aspect-ratio:4/3}}
.media{margin:36px 0}
.media img{width:100%}
.media figcaption{font-size:.9rem;color:#5d6b75;margin-top:8px}

/* investment */
.invest-in{display:grid;gap:44px}
@media(min-width:900px){.invest-in{grid-template-columns:1.1fr 1fr;align-items:center}}
.figure-line{font-family:"Bodoni Moda",Georgia,serif;font-size:clamp(2.6rem,6vw,4.2rem);line-height:1;margin:0;color:var(--ivory)}
.figure-line small{display:block;font-family:Jost,sans-serif;font-size:.76rem;letter-spacing:.26em;text-transform:uppercase;color:var(--pool-l);margin-top:14px}
.tiers,.prose .tiers{list-style:none;padding:0;margin:26px 0 0;border-top:1px solid var(--ink-line)}
.tiers li{padding:16px 0;border-bottom:1px solid var(--ink-line);display:flex;justify-content:space-between;gap:16px}
.tiers li span:last-child{color:var(--pool-l);white-space:nowrap}
.tiers.light{border-top-color:var(--line)}
.tiers.light li{border-bottom-color:var(--line)}
.tiers.light li span:last-child{color:var(--pool-d)}

/* proof */
.proof{display:grid;gap:28px;margin-top:52px;padding-top:40px;border-top:1px solid var(--line)}
@media(min-width:760px){.proof{grid-template-columns:repeat(3,1fr)}}
.proof h3{font-size:1.15rem;margin:0 0 6px}
.proof p{margin:0;color:var(--body);font-size:.96rem}

/* areas */
.areas{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:26px;font-size:1.05rem}
.areas a{text-decoration:none;border-bottom:1px solid var(--line)}
.areas a:hover{border-color:var(--pool)}

/* faq */
.faq{margin-top:36px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:20px 36px 20px 0;position:relative;font-family:"Bodoni Moda",Georgia,serif;font-size:1.15rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:16px;font-family:Jost,sans-serif;font-size:1.5rem;color:var(--pool)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0 0 22px;color:var(--body);max-width:46em}

/* blog cards */
.posts{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:44px}
@media(min-width:760px){.posts{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1040px){.posts{grid-template-columns:repeat(3,1fr)}}
.post{background:var(--ivory);padding:30px 26px;text-decoration:none;display:flex;flex-direction:column;gap:10px;transition:background .2s}
.post:hover{background:#fff}
.post h2,.post h3{font-size:1.25rem;margin:0}
.post p{margin:0;color:var(--body);font-size:.96rem}
.post .cap{color:var(--pool-d)}

/* cta band */
.cta-band{background:var(--ink);color:var(--ivory);text-align:center}
.cta-band h2{color:var(--ivory)}
.cta-band p{color:var(--soft);max-width:34em;margin:0 auto}
.cta-band .ctas{justify-content:center}

/* contact */
.contact-in{display:grid;gap:48px}
@media(min-width:900px){.contact-in{grid-template-columns:1fr 1.2fr}}
.direct a{display:block;color:var(--pool-l);text-decoration:none;font-size:1.15rem;margin-top:10px}
.form-slot{background:var(--ivory);color:var(--ink);padding:36px 32px;min-height:320px}
.form-slot h3{margin:0 0 10px;font-size:1.35rem}
.form-slot p{color:var(--body);margin:0 0 22px}

/* footer */
footer{background:var(--ink);color:#8fa2ab;padding:72px 24px 40px;font-size:.92rem}
.foot{max-width:1120px;margin:0 auto;display:grid;gap:36px}
@media(min-width:760px){.foot{grid-template-columns:1.3fr 1fr 1fr 1fr}}
.foot img{height:78px;width:auto;margin:0 0 16px -14px}
.foot h4{font-family:Jost,sans-serif;font-weight:500;color:var(--ivory);text-transform:uppercase;letter-spacing:.22em;font-size:.74rem;margin:0 0 14px}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin:6px 0}
.foot a{color:#8fa2ab;text-decoration:none}
.foot a:hover{color:var(--pool-l)}
.foot-base{max-width:1120px;margin:48px auto 0;border-top:1px solid #26384a;padding-top:24px;display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between;font-size:.85rem}

/* mobile call bar */
.callbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;background:var(--ink);border-top:1px solid #26384a}
.callbar a{flex:1;text-align:center;padding:15px 8px;color:var(--ivory);text-decoration:none}
.callbar a+a{border-left:1px solid #26384a;color:var(--pool-l)}
@media(min-width:1000px){.callbar{display:none}}
@media(max-width:999px){body{padding-bottom:54px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.work img{transition:none}}

.pf picture{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--mist)}
.pf img{width:100%;height:100%;object-fit:cover}

/* lead form */
form.lead{background:var(--ivory);color:var(--ink);padding:34px 30px;border:1px solid var(--line)}
form.lead h3{font-size:1.45rem;margin:0 0 6px}
form.lead .form-intro{color:var(--body);margin:0 0 22px}
.fgrid{display:grid;gap:14px 16px}
@media(min-width:620px){.fgrid{grid-template-columns:1fr 1fr}.fgrid .full{grid-column:1/-1}}
form.lead label{display:flex;flex-direction:column;gap:6px;font-size:.86rem;font-weight:500;color:var(--ink)}
form.lead .opt{font-weight:400;color:#6b7882}
form.lead input,form.lead select,form.lead textarea{font:inherit;font-size:16px;font-weight:400;color:var(--ink);background:#fff;border:1px solid #c7d0d2;border-radius:0;padding:12px 12px;width:100%;appearance:none;-webkit-appearance:none}
form.lead select{background-image:linear-gradient(45deg,transparent 50%,var(--pool-d) 50%),linear-gradient(135deg,var(--pool-d) 50%,transparent 50%);background-position:calc(100% - 18px) 52%,calc(100% - 13px) 52%;background-size:5px 5px;background-repeat:no-repeat;padding-right:34px}
form.lead input:focus,form.lead select:focus,form.lead textarea:focus{outline:2px solid var(--pool);outline-offset:0;border-color:var(--pool)}
form.lead label.bad input,form.lead label.bad select{border-color:#b54a3c;background:#fdf4f2}
form.lead .form-err{color:#9a3a2e;margin:14px 0 0;font-size:.92rem}
form.lead button{margin-top:22px;width:100%;font-size:.8rem}
form.lead button:disabled{opacity:.7}
form.lead .fine{font-size:.82rem;color:#6b7882;margin:14px 0 0}
form.lead .fine a{color:inherit}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-wrap{display:grid;gap:44px}
@media(min-width:960px){.form-wrap{grid-template-columns:1fr 1.15fr;align-items:start}}
.form-wrap .why li{margin:10px 0;color:var(--soft)}
.checks{list-style:none;padding:0;margin:24px 0 0}
.checks li{position:relative;padding-left:30px;margin:12px 0}
.checks li::before{content:"";position:absolute;left:0;top:.5em;width:14px;height:8px;border-left:2px solid var(--pool-l);border-bottom:2px solid var(--pool-l);transform:rotate(-45deg)}
.dark .checks li{color:var(--soft)}
.checks.on-light li::before{border-color:var(--pool-d)}
.checks.on-light li{color:var(--body)}
.prose table.compare td:last-child{white-space:normal}
table.compare th{font-family:"Bodoni Moda",Georgia,serif;font-weight:500;font-size:1.05rem}
table.compare td:first-child{color:var(--ink);font-weight:500;white-space:nowrap}
table.compare td:nth-child(2){color:var(--ink)}
@media(max-width:640px){table.compare{font-size:.88rem}table.compare td:first-child{white-space:normal}}
.nextsteps{padding-left:1.2em;margin:12px 0 0}
.nextsteps li{margin:10px 0;color:var(--soft)}
.nextsteps strong{color:var(--ivory);font-weight:500}
.calc{display:grid;gap:18px;background:var(--mist);padding:26px 24px;margin:20px 0 12px}
@media(min-width:640px){.calc{grid-template-columns:1fr 1fr}}
.calc label{display:flex;flex-direction:column;gap:8px;font-size:.88rem;font-weight:500;color:var(--ink)}
.calc label:first-child{grid-column:1/-1}
.calc output{font-family:"Bodoni Moda",Georgia,serif;font-size:1.5rem;font-weight:500}
.calc input[type=range]{width:100%;accent-color:var(--pool-d)}
.calc select,.calc input[type=number]{font:inherit;font-size:16px;padding:10px 12px;border:1px solid #c7d0d2;background:#fff;color:var(--ink)}
.calc-out{grid-column:1/-1;background:var(--ink);color:var(--ivory);padding:20px 22px;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.calc-out .cap{color:var(--pool-l)}
.calc-out strong,.prose .calc-out strong{color:var(--ivory);font-family:"Bodoni Moda",Georgia,serif;font-size:2.4rem;font-weight:500}
.glance{padding:0;background:var(--mist);border-bottom:1px solid var(--line)}
.glance-in{display:grid;border-left:1px solid var(--line);border-right:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}
@media(min-width:860px){.glance-in{grid-template-columns:repeat(4,1fr)}}
.glance-in div{background:var(--mist);padding:20px 18px}
.glance .cap{display:block;color:var(--pool-d);font-size:.75rem;margin-bottom:4px}
.glance strong{font-family:"Bodoni Moda",Georgia,serif;font-weight:500;font-size:1.08rem}
/* touch devices: comfortable tap targets */
@media (pointer:coarse){
.ctas a.call{display:inline-flex;align-items:center;min-height:44px;padding-bottom:0}
.areas{gap:4px 26px}.areas a{display:inline-flex;align-items:center;min-height:44px}
.nav .tel{padding:12px 0}
:where(main a[href^="tel:"],main a[href^="mailto:"]){display:inline-block;padding:7px 0}
.foot li{margin:0}.foot li a{display:inline-flex;align-items:center;min-height:40px}
}
