picture{display:contents}img{height:auto}
@font-face { font-family: "Libre Baskerville"; src: url("fonts/libre-baskerville-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Libre Baskerville"; src: url("fonts/libre-baskerville-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url("fonts/inter-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url("fonts/inter-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }

:root{
  --navy:#0B2A4A;
  --blue:#0B6FB8;
  --sky:#2E9BD6;
  --pale:#9CCFEA;
  --red:#C8102E;
  --red-dk:#A50D26;
  --paper:#F2F7FA;
  --rule:#C9DEEB;
  --muted:#3F5F7C;
  --wrap:1180px;
  --serif:"Libre Baskerville",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,Segoe UI,Helvetica,Arial,sans-serif;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--navy);
  font-family:var(--sans);font-size:1.0625rem;line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%}
a{color:var(--blue);text-underline-offset:3px}
a:hover{color:var(--navy)}
p{margin:0 0 1rem}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(1.1rem,4vw,2.5rem)}

.skip{position:absolute;left:-9999px;top:0;background:#fff;color:var(--navy);padding:.7rem 1rem;z-index:99}
.skip:focus{left:.6rem;top:.6rem}

/* ---------- masthead ---------- */
.mast{position:sticky;top:0;z-index:40;background:var(--navy);color:#fff;border-bottom:1px solid rgba(156,207,234,.28)}
.mast-in{max-width:var(--wrap);margin:0 auto;padding:.9rem clamp(1.1rem,4vw,2.5rem);display:flex;align-items:center;gap:1.2rem 1.6rem;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.85rem;text-decoration:none;color:#fff;margin-right:auto;flex:0 0 auto}
.brand img{width:160px;max-width:100%;height:auto;display:block}
.mast nav{display:flex;gap:1.15rem;flex-wrap:wrap;flex:1 1 0%;min-width:0}
.mast nav a{color:#fff;text-decoration:none;font-size:.82rem;letter-spacing:.13em;text-transform:uppercase;padding:.3rem 0;border-bottom:2px solid transparent}
.mast nav a:hover{border-color:var(--sky);color:#fff}
.mast nav a[aria-current="page"]{border-color:var(--red)}
.mast-tel{margin:0;text-align:right}
.mast-tel span{display:block;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--pale)}
.mast-tel strong{font-family:var(--serif);font-weight:700;font-size:1.02rem;color:#fff;white-space:nowrap}
@media (max-width:980px){
  .mast-in{gap:.9rem 1.4rem}
  .brand{margin-right:0}
  .mast-tel{text-align:left;flex:1 1 100%;border-top:1px solid rgba(156,207,234,.22);padding-top:.6rem}
}

/* ---------- type ---------- */
h1{font-family:var(--serif);font-weight:700;line-height:1.07;letter-spacing:-.012em;margin:.35rem 0 0;font-size:clamp(1.85rem,4.6vw,3.5rem)}
.eyebrow{font-size:.78rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--blue);margin:0}
.eyebrow-light{color:var(--pale)}
.lede{font-size:clamp(1.02rem,1.5vw,1.22rem);max-width:58ch;margin:1.1rem 0 0;color:var(--muted)}
.pagehead-navy .lede,.plate .lede{color:#D9EAF5}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--navy)}
.hero .frames{aspect-ratio:3/2}
@media (max-width:700px){ .hero .frames{aspect-ratio:4/3} }
.hero-type{position:absolute;left:0;right:0;top:0;padding:clamp(1.3rem,3.6vw,2.6rem) 0 clamp(3rem,7vw,5rem);
  background:linear-gradient(180deg,rgba(11,42,74,.86) 0%,rgba(11,42,74,.52) 48%,rgba(11,42,74,0) 100%);pointer-events:none}
.hero-type h1{color:#fff;max-width:26ch;text-shadow:0 2px 26px rgba(11,42,74,.45)}

/* ---------- dispatch plate ---------- */
.plate{background:var(--navy);color:#fff;border-top:3px solid var(--red)}
.plate-in{display:flex;flex-wrap:wrap;align-items:center;gap:1.4rem 2.6rem;padding-top:clamp(1.4rem,3vw,2.1rem);padding-bottom:clamp(1.4rem,3vw,2.1rem)}
.plate .lede{flex:1 1 26rem;margin:0;font-size:1.04rem}
.dispatch{margin:0}
.dispatch .lab{margin:0 0 .2rem;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--pale)}
.dispatch .num{margin:0;font-family:var(--serif);font-weight:700;line-height:1.1;color:#fff;font-size:clamp(1.15rem,2.4vw,1.7rem)}
.dispatch-lg .num{font-size:clamp(1.35rem,3.4vw,2.2rem)}
.dispatch-xl{margin-top:1.8rem}
.dispatch-xl .num{font-size:clamp(1.6rem,5.4vw,3rem)}

/* ---------- buttons ---------- */
.btn{display:inline-block;font-family:var(--sans);font-weight:600;font-size:.82rem;line-height:1;letter-spacing:.14em;
  text-transform:uppercase;text-decoration:none;padding:1rem 1.5rem;border:1px solid transparent}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-dk);color:#fff}
.btn-line{border-color:rgba(255,255,255,.55);color:#fff;background:transparent}
.btn-line:hover{background:#fff;color:var(--navy);border-color:#fff}
.btn-line-navy{border-color:var(--navy);color:var(--navy);background:transparent}
.btn-line-navy:hover{background:var(--navy);color:#fff}
.actions{margin:1.6rem 0 0;display:flex;flex-wrap:wrap;gap:.8rem}

/* ---------- figure row ---------- */
.figs{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--rule)}
.figs div{padding:1.9rem 1.2rem 1.7rem;border-left:1px solid var(--rule)}
.figs div:first-child{border-left:0;padding-left:0}
.figs b{display:block;font-family:var(--serif);font-weight:700;font-size:clamp(1.7rem,3.6vw,2.6rem);color:var(--blue);line-height:1}
.figs span{display:block;margin-top:.55rem;font-size:.82rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);line-height:1.45}
@media (max-width:760px){
  .figs{grid-template-columns:1fr 1fr}
  .figs div{border-left:0;border-top:1px solid var(--rule);padding-left:0}
  .figs div:nth-child(2){border-left:1px solid var(--rule);padding-left:1.2rem}
  .figs div:nth-child(4){border-left:1px solid var(--rule);padding-left:1.2rem}
  .figs div:first-child{border-top:0}
  .figs div:nth-child(2){border-top:0}
}

/* ---------- page heads ---------- */
.pagehead{padding:clamp(2.6rem,6vw,4.6rem) 0 clamp(2rem,4vw,3rem)}
.pagehead-navy{background:var(--navy);color:#fff}
.pagehead-navy h1{color:#fff}
.tags{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem;margin:1.8rem 0 0;padding:0}
.tags li{font-size:.82rem;letter-spacing:.08em;padding:.5rem .85rem;border:1px solid rgba(156,207,234,.5);color:#EAF4FA}

/* ---------- file sections (left rail) ---------- */
.file{display:grid;grid-template-columns:11.5rem minmax(0,1fr);gap:1rem 3.2rem;padding:clamp(2.3rem,4.6vw,3.6rem) 0;border-top:1px solid var(--rule)}
.file:first-of-type{border-top:0}
.f-rail .num{display:block;font-family:var(--serif);font-weight:700;font-size:1rem;color:var(--sky);letter-spacing:.06em;margin-bottom:.3rem}
.f-rail h2{margin:0;font-family:var(--sans);font-weight:600;font-size:.86rem;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);line-height:1.5}
.f-body h3{font-family:var(--serif);font-weight:700;font-size:clamp(1.28rem,2.5vw,1.85rem);line-height:1.2;margin:0 0 1rem;max-width:32ch}
.f-body p{max-width:64ch}
.f-body p:last-child{margin-bottom:0}
.src{font-size:.9rem;color:var(--muted);border-left:2px solid var(--sky);padding-left:1rem;margin-top:1.6rem}
@media (max-width:780px){
  .file{grid-template-columns:1fr;gap:.5rem}
  .f-rail{display:flex;align-items:baseline;gap:.6rem}
  .f-rail .num{margin:0}
}

/* ---------- ledger ---------- */
.ledger{list-style:none;margin:1.5rem 0 0;padding:0;border-top:1px solid var(--rule)}
.ledger li{display:grid;grid-template-columns:12.5rem minmax(0,1fr);gap:.3rem 1.8rem;padding:.9rem 0;border-bottom:1px solid var(--rule)}
.ledger b{font-family:var(--serif);font-weight:700;font-size:1rem;line-height:1.35}
.ledger span{color:var(--muted);font-size:.97rem}
@media (max-width:620px){ .ledger li{grid-template-columns:1fr} }

/* ---------- statement band ---------- */
.statement{background:var(--navy);color:#fff}
.statement .wrap{padding-top:clamp(3rem,7vw,5.4rem);padding-bottom:clamp(3rem,7vw,5.4rem)}
.statement .mark{width:58px;height:3px;background:var(--sky);margin-bottom:1.7rem}
.statement p{font-family:var(--serif);font-weight:400;font-size:clamp(1.24rem,2.9vw,1.95rem);line-height:1.38;max-width:36ch;margin:0;color:#fff}

/* ---------- sliders ---------- */
.slider{position:relative}
.frames{list-style:none;margin:0;padding:0;position:relative;background:#0B2A4A;overflow:hidden}
.frame{position:absolute;inset:0;opacity:0}
.frame:first-child{opacity:1}
.frame img{display:block;width:100%;height:100%;object-fit:cover}
.frame .cap{position:absolute;left:0;right:0;bottom:0;margin:0;padding:1.6rem 1.1rem .8rem;
  font-size:.8rem;letter-spacing:.06em;color:#EAF4FA;
  background:linear-gradient(180deg,rgba(11,42,74,0),rgba(11,42,74,.78))}

@media (prefers-reduced-motion: no-preference){
  .n3 .frame{animation:xf3 16.5s linear infinite;animation-delay:calc((var(--i) - 3) * 5.5s)}
  .n4 .frame{animation:xf4 22s linear infinite;animation-delay:calc((var(--i) - 4) * 5.5s)}
  .n5 .frame{animation:xf5 27.5s linear infinite;animation-delay:calc((var(--i) - 5) * 5.5s)}
  .n3 .frame:first-child,.n4 .frame:first-child,.n5 .frame:first-child{opacity:0}
  .slider:hover .frame,.slider:focus-within .frame{animation-play-state:paused}
}
@keyframes xf3{0%,29%{opacity:1}33.5%,96%{opacity:0}100%{opacity:1}}
@keyframes xf4{0%,21.5%{opacity:1}25%,97%{opacity:0}100%{opacity:1}}
@keyframes xf5{0%,17%{opacity:1}20%,97.5%{opacity:0}100%{opacity:1}}

.slider.js .frame{animation:none;opacity:0;transition:opacity .55s ease}
.slider.js .frame.on{opacity:1}

.sl-nav{display:flex;align-items:center;justify-content:center;gap:.7rem;padding-top:.8rem}
.sl-arrow{background:none;border:1px solid var(--rule);color:var(--navy);width:2.2rem;height:2.2rem;font-size:1.05rem;line-height:1;cursor:pointer;padding:0}
.sl-arrow:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.sl-dots{display:flex;gap:.45rem}
.sl-dot{width:.64rem;height:.64rem;border-radius:50%;border:1px solid var(--blue);background:transparent;padding:0;cursor:pointer}
.sl-dot[aria-current="true"]{background:var(--blue)}
.hero .sl-nav,.band .sl-nav{position:absolute;right:clamp(.8rem,3vw,2rem);bottom:.9rem;padding:0}
.hero .sl-arrow,.band .sl-arrow{border-color:rgba(255,255,255,.6);color:#fff;background:rgba(11,42,74,.45)}
.hero .sl-arrow:hover,.band .sl-arrow:hover{background:#fff;color:var(--navy)}
.hero .sl-dot,.band .sl-dot{border-color:#fff}
.hero .sl-dot[aria-current="true"],.band .sl-dot[aria-current="true"]{background:#fff}

/* gallery variants */
.galband{padding:clamp(2.2rem,5vw,3.6rem) 0 clamp(1.4rem,3vw,2.4rem)}
.frames.wide43{aspect-ratio:4/3;width:min(100%,980px);margin:0 auto}
.gal{padding:clamp(2.4rem,6vw,4.4rem) 0 clamp(2.6rem,6vw,4.4rem)}
.gal-h{font-family:var(--serif);font-weight:700;font-size:clamp(1.3rem,2.7vw,2rem);line-height:1.25;margin:.6rem 0 0;max-width:30ch}
.frames.por{aspect-ratio:3/4;width:min(100%,540px);margin:2.2rem auto 0}
.frames.tall{aspect-ratio:9/16;width:min(100%,360px)}

/* navy band with slider + type */
.band{background:var(--navy);color:#fff;padding:clamp(2.4rem,6vw,4.2rem) 0}
.band-grid{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(1.8rem,4vw,3.6rem);align-items:center}
.band .slider{position:relative}
.band-t h2{font-family:var(--serif);font-weight:700;font-size:clamp(1.3rem,2.8vw,2rem);line-height:1.22;margin:.7rem 0 1rem;max-width:26ch;color:#fff}
.band-t p{color:#D9EAF5;max-width:52ch;margin:0}
@media (max-width:820px){ .band-grid{grid-template-columns:1fr} .frames.tall{margin:0 auto} }

/* wide single shot */
.wide-shot{margin:0;background:var(--navy)}
.wide-shot img{display:block;width:100%;height:auto;max-width:var(--wrap);margin:0 auto}
.wide-shot figcaption{max-width:var(--wrap);margin:0 auto;padding:.7rem clamp(1.1rem,4vw,2.5rem) 1.1rem;font-size:.82rem;letter-spacing:.06em;color:var(--pale)}

/* paired photos */
.pair{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin:2rem 0 0}
.pair figure{margin:0}
.pair img{display:block;width:100%;height:auto}
.pair figcaption{font-size:.82rem;color:var(--muted);padding-top:.5rem}
@media (max-width:620px){ .pair{grid-template-columns:1fr} }

/* ---------- ports ---------- */
.port{padding:clamp(2rem,4vw,2.9rem) 0;border-top:1px solid var(--rule)}
.port:first-of-type{border-top:0}
.port h2{font-family:var(--serif);font-weight:700;font-size:clamp(1.45rem,3.4vw,2.3rem);line-height:1.1;margin:0 0 1.1rem}
.port-in{display:grid;grid-template-columns:minmax(0,1fr) 17rem;gap:1.2rem 3rem}
.port-t p{margin:0;max-width:60ch}
.port-l{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.port-l li{border-bottom:1px solid var(--rule);padding:.6rem 0;font-size:.94rem}
.port-l a{text-decoration:none;border-bottom:1px solid var(--pale)}
.port-l a:hover{border-color:var(--navy)}
@media (max-width:820px){ .port-in{grid-template-columns:1fr} }

/* ---------- q&a, quotes ---------- */
.qa h3{margin-bottom:.7rem}
.qa p{font-size:1.08rem;color:var(--navy);max-width:56ch}
.hoursquote{margin:0;padding:0 0 0 1.4rem;border-left:3px solid var(--sky)}
.hoursquote p{font-family:var(--serif);font-size:clamp(1.05rem,2vw,1.3rem);line-height:1.5;margin:0;max-width:48ch}

/* ---------- cta ---------- */
.cta{background:var(--navy);color:#fff}
.cta-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2.4rem 3.4rem;
  padding-top:clamp(2.6rem,6vw,4.2rem);padding-bottom:clamp(2.6rem,6vw,4.2rem)}
.cta-side h2{font-family:var(--serif);font-weight:700;font-size:clamp(1.2rem,2.4vw,1.6rem);margin:0 0 .8rem;color:#fff}
.cta-side p{color:#D9EAF5;max-width:42ch;margin:0}
@media (max-width:760px){ .cta-in{grid-template-columns:1fr} }

/* ---------- footer ---------- */
.foot{background:var(--navy);color:#CFE4F1;padding:clamp(2.4rem,6vw,3.8rem) 0 1.6rem;border-top:1px solid rgba(156,207,234,.28)}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:2.2rem 2.6rem}
.foot h2{font-size:.8rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--pale);margin:0 0 .9rem}
.foot-strap{font-size:.95rem;color:#CFE4F1;max-width:34ch}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin-bottom:.5rem;font-size:.95rem}
.foot a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(156,207,234,.45)}
.foot a:hover{color:#fff;border-color:#fff}
.foot-note{margin:.9rem 0 0;font-size:.88rem}
.social-row{display:flex;flex-wrap:wrap;gap:.55rem}
.social-row a{border:1px solid rgba(156,207,234,.5);padding:.45rem .85rem;font-size:.82rem;letter-spacing:.08em;color:#fff;text-decoration:none}
.social-row a:hover{background:var(--blue);border-color:var(--blue)}
.legal{margin:2.4rem 0 0;padding-top:1.1rem;border-top:1px solid rgba(156,207,234,.25);font-size:.82rem;color:var(--pale)}

/* mobile header: hamburger + call (added by ops) */
.nav-toggle,.nav-burger,.mast-call{display:none}
@media (max-width:760px){
  .brand img{width:88px;height:auto}
  .brand{margin-right:0}
  .mast-call{display:inline-flex;align-items:center;margin-left:auto;background:var(--red);color:#fff;text-decoration:none;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;padding:.5rem .85rem;border-radius:8px;white-space:nowrap}
  .nav-burger{display:inline-flex;align-items:center;justify-content:center;font-size:1.5rem;line-height:1;color:#fff;margin-left:.55rem;padding:.28rem .5rem;border:1px solid rgba(156,207,234,.4);border-radius:8px;cursor:pointer}
  .mast nav{display:none;flex-basis:100%;flex-direction:column;gap:.15rem;order:5}
  .nav-toggle:checked ~ nav{display:flex}
  .mast nav a{padding:.62rem 0;font-size:.92rem}
  .mast-tel{display:none}
}
