:root{--sand:#f4f0e7;--sand2:#e9e3d4;--tide:#12263a;--tide2:#1b3650;--glass:#2f7f7a;--buoy:#d4532b;--ink:#17222d;--mute:#5a6670;--line:rgba(18,38,58,.16);--display:'Newsreader',Georgia,serif;--body:'IBM Plex Sans',system-ui,sans-serif}
html{scroll-behavior:smooth;scroll-padding-top:84px;overflow-x:clip}
body{font-family:var(--body);font-size:1.02rem;line-height:1.7;color:var(--ink);background:var(--sand);overflow-x:clip}
h1,h2,h3,h4{font-family:var(--display);font-weight:500;line-height:1.1;letter-spacing:-.01em}
h2{font-size:clamp(2rem,4.2vw,3.1rem);margin-bottom:1.2rem}
h3{font-size:1.45rem}
a{color:var(--glass)}
img{max-width:100%;height:auto;display:block}
section{padding:92px 0;position:relative}
.eyebrow,.btn,.nav-link,.util{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500}
.eyebrow{display:block;color:var(--glass);margin-bottom:1rem}
.util{background:#0c1a28;color:#d9e1e8;padding:.5rem 0;font-size:.66rem}
.util a{color:#fff;text-decoration:none}.util .sep{opacity:.35;margin:0 .6rem}
.navbar{background:var(--sand);border-bottom:1px solid var(--line);padding:.8rem 0}
.navbar-brand{font-family:var(--display);font-weight:600;font-size:1.35rem;color:var(--tide)!important;line-height:1.1}
.navbar-brand small{display:block;font-family:var(--body);font-size:.58rem;letter-spacing:.24em;text-transform:uppercase;color:var(--mute);font-weight:500;margin-top:.15rem}
.nav-link{color:var(--tide)!important;padding:.5rem .8rem!important}.nav-link:hover{color:var(--glass)!important}
.navbar-toggler{border-color:var(--line)}
.btn{border-radius:0;padding:.85rem 1.6rem}
.btn-tide{background:var(--tide);border:1.5px solid var(--tide);color:#fff}.btn-tide:hover{background:var(--glass);border-color:var(--glass);color:#fff}
.btn-buoy{background:var(--buoy);border:1.5px solid var(--buoy);color:#fff}.btn-buoy:hover{background:#b8431f;border-color:#b8431f;color:#fff}
.btn-line{border:1.5px solid var(--tide);color:var(--tide)}.btn-line:hover{background:var(--tide);color:#fff}
.btn-light-line{border:1.5px solid rgba(255,255,255,.6);color:#fff}.btn-light-line:hover{background:#fff;color:var(--tide)}
/* hero */
.hero{padding:84px 0 96px;overflow:hidden;background:var(--sand)}
.hero .contours{position:absolute;right:-8%;top:-10%;width:70%;max-width:900px;opacity:.9;pointer-events:none}
.hero h1{font-size:clamp(2.6rem,6vw,5rem);color:var(--tide);font-weight:500}
.hero h1 em{font-style:italic;color:var(--glass)}
.hero .lead{font-size:1.2rem;max-width:34rem;color:#33424f}
.depth{background:var(--tide);color:#fff;padding:2rem 2.2rem;position:relative}
.depth .big{font-family:var(--display);font-size:4.4rem;line-height:1;font-weight:500}
.depth .lbl{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#a9c6c4}
.depth hr{border-color:rgba(255,255,255,.2);margin:1.4rem 0}
.depth ul{list-style:none;padding:0;margin:0;font-size:.95rem}.depth li{padding:.28rem 0 .28rem 1.3rem;position:relative}
.depth li:before{content:"";position:absolute;left:0;top:.9rem;width:.6rem;height:2px;background:var(--glass)}
/* tide line divider */
.tideline{display:block;width:100%;height:36px;color:var(--tide)}
/* action tiles */
.actions{padding:0;margin-top:-1px}
.act{display:block;text-decoration:none;color:#fff;padding:1.8rem 1.6rem;height:100%;transition:filter .2s}
.act:hover{filter:brightness(1.12);color:#fff}
.act .t{font-family:var(--display);font-size:1.5rem;display:block}.act .d{font-size:.88rem;opacity:.9}
.act.a1{background:var(--buoy)}.act.a2{background:var(--tide)}.act.a3{background:var(--tide2)}.act.a4{background:var(--glass)}
/* about */
.about{background:var(--sand)}
.pillars{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line)}
.pillars div{padding:1.1rem 1rem 1.1rem 0;border-bottom:1px solid var(--line);font-family:var(--display);font-size:1.2rem}
.pillars span{display:block;font-family:var(--body);font-size:.66rem;letter-spacing:.2em;color:var(--glass);margin-bottom:.15rem}
/* programs */
.programs{background:#fff}
.prog{background:var(--sand);height:100%;border:1px solid var(--line)}
.prog img{width:100%;aspect-ratio:528/240;object-fit:cover}
.prog .b{padding:1.4rem 1.4rem 1.6rem}
.prog .tag{font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--glass)}
.prog h3{margin:.3rem 0 .5rem;font-size:1.3rem}.prog p{font-size:.94rem;color:var(--mute);margin:0}
.quote{border-left:3px solid var(--buoy);padding:.4rem 0 .4rem 1.6rem;margin:3rem 0 0;max-width:48rem}
.quote p{font-family:var(--display);font-size:1.5rem;font-style:italic;line-height:1.35;margin-bottom:.6rem}
.quote cite{font-style:normal;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.cann{background:var(--sand2);padding:1.4rem 1.6rem;margin-top:2.5rem;display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap;justify-content:space-between}
/* services */
.services{background:var(--tide);color:#e6edf2}
.services h2,.services h3{color:#fff}.services .eyebrow{color:#8fd0ca}
.svc{border-top:1px solid rgba(255,255,255,.25);padding:1.4rem 0 .6rem;height:100%}
.svc p{color:#c2cfd9;font-size:.96rem}
.svc ul{padding-left:1.1rem;color:#c2cfd9;font-size:.94rem}
/* customers */
.cust{background:var(--sand)}
.card-l{background:#fff;border:1px solid var(--line);padding:1.8rem;height:100%}
.card-l h3{font-size:1.35rem}.card-l p,.card-l li{font-size:.95rem;color:var(--mute)}
.card-l ul{padding-left:1.1rem}
.card-l.alert{border-top:4px solid var(--buoy)}
/* agents */
.agents{background:#fff}
.agents ul.cols{columns:2;padding-left:1.1rem;font-size:.95rem}
/* news */
.news{background:var(--sand2)}
.news ul{list-style:none;padding:0;columns:2;column-gap:3rem}
.news li{padding:.55rem 0;border-bottom:1px solid var(--line);break-inside:avoid;font-family:var(--display);font-size:1.12rem}
/* careers + contact */
.contact{background:var(--tide);color:#e6edf2}
.contact h2,.contact h3{color:#fff}.contact .eyebrow{color:#8fd0ca}.contact a{color:#fff}
.contact dl{margin:0}.contact dt{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:#8fd0ca;margin-top:1.2rem;font-weight:500}.contact dd{margin:.2rem 0 0;font-size:1.05rem}
.careers{border:1px solid rgba(255,255,255,.25);padding:1.8rem}
footer{background:#0c1a28;color:#9fb0be;padding:2.2rem 0;font-size:.85rem}
footer a{color:#fff}
@media(max-width:991px){section{padding:68px 0}.hero .contours{width:120%;right:-40%;opacity:.5}.agents ul.cols,.news ul{columns:1}}
@media(max-width:575px){.pillars{grid-template-columns:1fr}.depth .big{font-size:3.6rem}}
