:root{--deep:#0c3446;--river:#0f6a82;--sky:#dceef0;--sun:#f2a900;--sun-d:#8a5d00;--sand:#f8f3e9;--ink:#17323d;--white:#fff}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{font-family:'Nunito Sans',system-ui,sans-serif;color:var(--ink);background:var(--sand);font-size:1.05rem;line-height:1.65}
h1,h2,h3,h4{font-family:'Fraunces',Georgia,serif;font-weight:600;line-height:1.1;color:var(--deep)}
a{color:var(--river)}
.eyebrow{font-family:'Nunito Sans',sans-serif;font-size:.78rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--river)}
/* utility bar + nav */
.utility{background:var(--deep);color:#d6e9ee;font-size:.88rem;padding:.4rem 0}
.utility a{color:#fff;text-decoration:none;font-weight:700}.utility a:hover{color:var(--sun)}
.navbar{background:rgba(248,243,233,.97);backdrop-filter:blur(8px);border-bottom:1px solid rgba(12,52,70,.12)}
.navbar-brand{display:flex;align-items:center;gap:.7rem;font-family:'Fraunces',serif;font-weight:700;color:var(--deep);font-size:1.25rem;line-height:1.05}
.navbar-brand img{width:52px;height:52px}
.navbar-brand small{display:block;font-family:'Nunito Sans',sans-serif;font-size:.68rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--river)}
.nav-link{font-weight:700;color:var(--deep)!important;font-size:.95rem}
.nav-link:hover{color:var(--river)!important}
.btn-sun{background:var(--sun);color:#1b1500;font-weight:800;border:2px solid var(--sun);border-radius:6px;padding:.7rem 1.5rem}
.btn-sun:hover{background:#ffc233;border-color:#ffc233;color:#1b1500}
.btn-line{border:2px solid var(--deep);color:var(--deep);font-weight:800;border-radius:6px;padding:.7rem 1.5rem;background:transparent}
.btn-line:hover{background:var(--deep);color:#fff}
/* hero */
.hero{position:relative;background:var(--sky);padding:3.5rem 0 5rem;overflow:hidden}
.hero h1{font-size:clamp(2.5rem,5.6vw,4.7rem);letter-spacing:-.01em}
.hero h1 em{font-style:italic;color:var(--river);font-weight:500}
.hero .lead{font-size:1.2rem;max-width:34rem}
.hero-photo{position:relative}
.hero-photo img{width:100%;aspect-ratio:4/3;max-height:min(66vh,480px);object-fit:cover;object-position:50% 25%;border-radius:8px;box-shadow:14px 14px 0 var(--sun)}
.rays{position:absolute;right:-90px;top:-120px;width:420px;opacity:.14;pointer-events:none}
.river-edge{position:absolute;left:0;bottom:-1px;width:100%;height:70px;display:block}
/* stat strip */
.stats{background:var(--deep);color:#fff;padding:2rem 0}
.stat b{display:block;font-family:'Fraunces',serif;font-size:clamp(2rem,4vw,3rem);color:var(--sun);line-height:1}
.stat span{font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;color:#cfe6eb}
section{padding:5rem 0}
.sec-head{max-width:46rem;margin-bottom:2.5rem}
.sec-head h2{font-size:clamp(2rem,4vw,3.1rem)}
/* program index */
.prog{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:center;padding:2.5rem 0;border-top:2px solid var(--deep)}
.prog:last-child{border-bottom:2px solid var(--deep)}
.prog img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px}
.prog:nth-child(even) .prog-img{order:2}
.prog h3{font-size:clamp(1.7rem,3vw,2.3rem)}
.tag{display:inline-block;background:var(--sky);color:var(--deep);font-weight:800;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;border-radius:99px;padding:.25rem .8rem;margin:0 .35rem .6rem 0}
.sails-note{font-size:.95rem}
/* services */
.services{background:var(--white)}
.svc{border-left:5px solid var(--sun);padding:.4rem 0 .4rem 1.1rem;height:100%}
.svc h3{font-size:1.35rem}
.svc p{margin:0;font-size:.98rem}
.photo-pair img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px}
/* more */
.more{background:var(--river);color:#fff}
.more h2,.more h3{color:#fff}.more .eyebrow{color:var(--sun)}
.more-tile{border:1px solid rgba(255,255,255,.35);border-radius:8px;padding:1.3rem 1.4rem;height:100%;background:rgba(255,255,255,.06)}
.more-tile h3{font-size:1.3rem;margin-bottom:.35rem}
.more-tile p{margin:0;font-size:.97rem;color:#e3f1f4}
/* gallery */
.strip{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(120px,15vw,200px);gap:10px}
.strip img{width:100%;height:100%;object-fit:cover;border-radius:6px}
.strip .w2{grid-column:span 2}.strip .w3{grid-column:span 3}.strip .w4{grid-column:span 4}
/* districts */
.districts{background:var(--sky)}
.chips{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;padding:0;margin:0}
.chips li{background:var(--white);border:2px solid var(--deep);border-radius:99px;padding:.35rem 1.1rem;font-weight:800;color:var(--deep)}
/* contact */
.contact dt{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--river);font-weight:800;margin-top:1rem}
.contact dd{margin:0;font-size:1.15rem}
.contact iframe{width:100%;height:100%;min-height:360px;border:0;border-radius:8px}
footer{background:var(--deep);color:#cfe6eb;padding:2.5rem 0;font-size:.95rem}
footer a{color:#fff}
footer .logo-foot{width:90px;background:#fff;border-radius:50%;padding:4px}
@media(max-width:767px){
 section{padding:3.5rem 0}.hero{padding:2rem 0 4rem}
 .prog{grid-template-columns:1fr;gap:1.2rem;padding:1.8rem 0}.prog:nth-child(even) .prog-img{order:0}
 .strip{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}.strip .w2,.strip .w3,.strip .w4{grid-column:span 2}
 .hero-photo img{box-shadow:8px 8px 0 var(--sun)}
 .navbar-brand{font-size:1.05rem}.navbar-brand img{width:44px;height:44px}
 .utility .hide-sm{display:none}
}
