:root{
  --sea:#0b4a66; --sea-d:#073449; --sea-l:#d8ecf2;
  --sub:#ffc928; --sub-d:#e0a800;
  --coral:#ea6a4f;
  --sand:#fff9ec; --paper:#ffffff;
  --ink:#10222c; --muted:#4b5f69;
  --rule:rgba(16,34,44,.16);
  --display:'Fraunces',Georgia,serif;
  --body:'Nunito Sans',system-ui,sans-serif;
}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{font-family:var(--body);color:var(--ink);background:var(--sand);font-size:1.0625rem;line-height:1.65}
h1,h2,h3,h4{font-family:var(--display);font-weight:800;line-height:1.1;letter-spacing:-.01em}
a{color:var(--sea)}
.skip{position:absolute;left:-999px}
.eyebrow{font-weight:800;text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;color:var(--coral)}
.on-sea .eyebrow{color:var(--sub)}
.section{padding:5.5rem 0;position:relative}
.on-sea{background:var(--sea);color:#fff}
.on-sea a{color:var(--sub)}
.sec-title{font-size:clamp(2rem,4.4vw,3.2rem)}

/* utility bar + nav */
.util{background:var(--sea-d);color:#fff;font-size:.9rem;padding:.4rem 0}
.util a{color:var(--sub);text-decoration:none;font-weight:700}
.util .sep{opacity:.4;margin:0 .6rem}
.site-nav{background:var(--sand);border-bottom:3px solid var(--sub);padding:.5rem 0}
.site-nav .navbar-brand{font-family:var(--display);font-weight:800;color:var(--sea);font-size:1.3rem;line-height:1.1;display:flex;align-items:center;gap:.6rem}
.site-nav .navbar-brand svg{width:46px;height:26px;flex:none}
.site-nav .nav-link{font-weight:700;color:var(--ink);padding:.5rem .7rem}
.site-nav .nav-link:hover{color:var(--coral)}
.btn-sub{background:var(--sub);color:var(--sea-d);font-weight:800;border:0;border-radius:999px;padding:.7rem 1.4rem;box-shadow:0 4px 0 var(--sub-d)}
.btn-sub:hover{background:#ffd75a;color:var(--sea-d);transform:translateY(1px);box-shadow:0 3px 0 var(--sub-d)}
.btn-ghost{border:2px solid currentColor;border-radius:999px;font-weight:800;padding:.65rem 1.3rem;color:#fff}
.btn-ghost:hover{background:#fff;color:var(--sea)}

/* hero */
.hero{background:var(--sea);color:#fff;padding:4.5rem 0 6rem;position:relative;overflow:hidden}
.hero h1{font-size:clamp(2.6rem,6.2vw,5rem);color:#fff}
.hero h1 em{font-style:italic;color:var(--sub)}
.hero .lead{font-size:1.2rem;max-width:34rem;color:#e8f4f8}
.hero-bubbles{position:absolute;inset:0;pointer-events:none;opacity:.5}
.hero-bubbles circle{fill:none;stroke:#8fd0e6;stroke-width:2}
.porthole{border-radius:50%;border:12px solid var(--sub);box-shadow:0 0 0 6px var(--sea-d),0 18px 40px rgba(0,0,0,.35);overflow:hidden;aspect-ratio:1;background:var(--sea-d)}
.porthole img{width:100%;height:100%;object-fit:cover;display:block}
.hero-port{max-width:440px;margin-inline:auto}
.hero-sub{position:absolute;width:150px;right:6%;bottom:-8px;animation:bob 6s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-10px)}}
@media (prefers-reduced-motion:reduce){.hero-sub{animation:none}}
.wave{display:block;width:100%;height:50px;position:absolute;bottom:-1px;left:0}

/* welcome */
.pull{font-family:var(--display);font-size:clamp(1.4rem,2.6vw,2rem);font-weight:600;line-height:1.3;border-left:6px solid var(--sub);padding-left:1.2rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;list-style:none}
.chips li{background:var(--paper);border:2px solid var(--sea-l);border-radius:999px;padding:.3rem .9rem;font-weight:700;font-size:.95rem}
.mission-card{background:var(--sea);color:#fff;border-radius:1.5rem;padding:2rem;transform:rotate(-1.2deg)}
.mission-card h3{color:var(--sub)}

/* services index */
.svc-list{list-style:none;padding:0;margin:0;columns:2;column-gap:3rem}
.svc-list li{break-inside:avoid;padding:.75rem 0;border-bottom:2px dotted var(--rule);font-weight:700;font-size:1.1rem;display:flex;gap:.7rem;align-items:baseline}
.svc-list li:before{content:"";flex:none;width:.7rem;height:.7rem;border-radius:50%;background:var(--sub);box-shadow:0 0 0 3px var(--sea);transform:translateY(1px)}
.on-sea .svc-list li{border-color:rgba(255,255,255,.22)}
.svc-photo{border-radius:1.2rem;border:6px solid #fff;box-shadow:0 10px 24px rgba(0,0,0,.25);width:100%;height:100%;object-fit:cover}
.topic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.6rem;list-style:none;padding:0}
.topic-grid li{background:rgba(255,255,255,.1);border-radius:.8rem;padding:.5rem .8rem;font-size:.95rem}

/* visits timeline */
.visits{display:flex;flex-wrap:wrap;gap:.7rem;list-style:none;padding:0}
.visits li{background:var(--paper);border:3px solid var(--sub);border-radius:1rem;padding:.55rem 1rem;font-weight:800;text-align:center;min-width:6.2rem}
.visits li small{display:block;font-weight:600;color:var(--muted)}
.note-card{background:var(--sea-l);border-radius:1.2rem;padding:1.5rem}

/* team */
.team-card{text-align:center}
.team-card .porthole{border-width:9px;max-width:210px;margin:0 auto 1rem}
.team-card h3{font-size:1.25rem;margin-bottom:.1rem}
.team-card .role{font-weight:800;color:var(--coral);font-size:.9rem;text-transform:uppercase;letter-spacing:.06em}
.team-card p{font-size:.97rem;color:var(--muted)}
.team-lead{background:var(--paper);border-radius:1.6rem;padding:2rem;box-shadow:0 12px 30px rgba(11,74,102,.12)}
.team-lead .porthole{max-width:300px;margin-inline:auto}
.award{display:inline-block;background:var(--sub);color:var(--sea-d);font-weight:800;border-radius:999px;padding:.3rem .9rem;font-size:.9rem}

/* gallery */
.gal{columns:3 220px;column-gap:1rem}
.gal figure{break-inside:avoid;margin:0 0 1rem;background:#fff;padding:.5rem .5rem .8rem;border-radius:.4rem;box-shadow:0 8px 18px rgba(0,0,0,.25)}
.gal figure:nth-child(odd){transform:rotate(-1.2deg)}
.gal figure:nth-child(even){transform:rotate(1deg)}
.gal img{width:100%;height:auto;display:block;border-radius:.2rem}
.gal figcaption{color:var(--ink);font-size:.85rem;font-weight:700;padding-top:.4rem;text-align:center}

/* faq */
.accordion{--bs-accordion-bg:var(--paper);--bs-accordion-border-color:var(--rule);--bs-accordion-active-bg:var(--sub);--bs-accordion-active-color:var(--sea-d);--bs-accordion-btn-focus-box-shadow:0 0 0 .2rem rgba(11,74,102,.25)}
.accordion-button{font-weight:800;font-family:var(--display);font-size:1.12rem}

/* voices */
.quote{background:var(--paper);border-radius:1.3rem;padding:1.6rem;height:100%;position:relative;box-shadow:0 8px 22px rgba(11,74,102,.1)}
.quote:before{content:"\201C";font-family:var(--display);font-size:4rem;line-height:.6;color:var(--sub-d);display:block;margin-bottom:.4rem}
.quote cite{font-style:normal;font-weight:800;color:var(--sea)}
.notice{border:3px dashed var(--sub);border-radius:1.2rem;padding:1.3rem 1.5rem;background:rgba(255,255,255,.08)}

/* community */
.res-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}
.res{background:var(--paper);border-radius:1rem;padding:1rem 1.2rem;border-left:6px solid var(--sub)}
.res b{display:block;font-family:var(--display)}
.res span{font-size:.92rem;color:var(--muted)}

/* hours */
.hours{width:100%;border-collapse:collapse}
.hours td{padding:.55rem 0;border-bottom:2px dotted rgba(255,255,255,.28)}
.hours td:last-child{text-align:right;font-weight:800;color:var(--sub)}
.map{border:0;width:100%;height:100%;min-height:380px;border-radius:1.2rem}
.ph{font-family:var(--display);font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;color:var(--sub);text-decoration:none}

footer{background:var(--sea-d);color:#cfe3ea;padding:2.5rem 0}
footer a{color:var(--sub)}
.foot-logo{background:#fff;border-radius:.7rem;padding:.4rem .7rem;height:64px;width:auto}
.powered a{font-weight:800}

@media (max-width:991.98px){
  .svc-list{columns:1}
  .section{padding:4rem 0}
  .hero-sub{width:110px}
}
@media (max-width:575.98px){
  .util .hide-sm{display:none}
  .util{text-align:center}
  .site-nav .navbar-brand{font-size:1.05rem}
  .gal{columns:2 140px}
  .team-lead{padding:1.2rem}
}
