/* ═══════════════════════════════════════════════════════════════════
   Whoops Transport — single site stylesheet
   Design source of truth: whoops-homepage-mockup.html (do not drift).
   Tokens per CLAUDE-CODE-BUILD-SPEC.md §2.
   ═══════════════════════════════════════════════════════════════════ */

:root{
  --navy:#0d1b2a;    /* primary dark — heroes, map, mission, footer */
  --navy2:#162236;   /* utility bar, industries strip */
  --steel:#1e3a5f;   /* secondary blue — inland lanes, tags */
  --orange:#e8621a;  /* primary accent — CTAs, ocean lanes, key highlights */
  --orange2:#f07c38; /* accent on dark backgrounds */
  --cream:#f7f4ef;   /* alternating section background */
  --white:#ffffff;
  --muted:#7a7469;   /* secondary text on light */
  --rule:#d4cfc6;    /* borders on light */
  --ink:#22201c;     /* body text */
}
*{margin:0; padding:0; box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Barlow',sans-serif; color:var(--ink); background:var(--white); line-height:1.6; -webkit-font-smoothing:antialiased;}
img{max-width:100%; height:auto;}
a{text-decoration:none; color:inherit;}
.container{max-width:1180px; margin:0 auto; padding:0 28px;}
.eyebrow{font-family:'Barlow Condensed',sans-serif; font-size:12px; font-weight:600; letter-spacing:.28em; text-transform:uppercase;}
.btn{display:inline-block; font-family:'Barlow Condensed',sans-serif; font-size:15px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; padding:14px 30px; border:1.5px solid transparent; cursor:pointer; transition:all .2s ease;}
.btn-orange{background:var(--orange); color:var(--white);}
.btn-orange:hover{background:var(--orange2);}
.btn-ghost{border-color:rgba(255,255,255,.4); color:var(--white);}
.btn-ghost:hover{border-color:var(--white); background:rgba(255,255,255,.06);}
.btn-navy-ghost{border-color:var(--navy); color:var(--navy);}
.btn-navy-ghost:hover{background:var(--navy); color:var(--white);}
:focus-visible{outline:2px solid var(--orange); outline-offset:2px;}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important; transition:none!important;}
  html{scroll-behavior:auto;}
}
.visually-hidden{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;}
.skip-link{position:absolute; left:-9999px; top:0; background:var(--orange); color:var(--white); padding:10px 18px; z-index:200; font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; letter-spacing:.1em;}
.skip-link:focus{left:0;}

/* ── Utility bar ── */
.utility{background:var(--navy2); color:rgba(255,255,255,.75); font-size:13px;}
.utility .container{display:flex; justify-content:space-between; align-items:center; height:36px;}
.utility a:hover{color:var(--white);}
.utility .lang span{cursor:pointer; padding:0 4px;}
.utility .lang .active{color:var(--orange2); font-weight:600;}

/* ── Nav ── */
header.nav{background:var(--white); border-bottom:1px solid var(--rule); position:sticky; top:0; z-index:100;}
header.nav .container{display:flex; justify-content:space-between; align-items:center; height:78px; gap:24px;}
.wordmark{line-height:1;}
.wordmark img{display:block; height:auto;}
nav.menu{display:flex; gap:34px; align-items:center;}
nav.menu > a, nav.menu .has-drop > a{font-family:'Barlow Condensed',sans-serif; font-size:15px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--navy); padding:6px 0; border-bottom:2px solid transparent; display:inline-block;}
nav.menu > a:hover, nav.menu > a[aria-current="page"],
nav.menu .has-drop > a:hover{border-bottom-color:var(--orange);}
.nav-cta{white-space:nowrap;}

/* Services dropdown (interior build) */
.has-drop{position:relative;}
.has-drop .drop{position:absolute; top:100%; left:50%; transform:translateX(-50%); background:var(--white); border:1px solid var(--rule); border-top:2px solid var(--orange); min-width:250px; padding:10px 0; display:none; box-shadow:0 18px 40px rgba(13,27,42,.14);}
.has-drop:hover .drop, .has-drop:focus-within .drop{display:block;}
.has-drop .drop a{display:block; padding:10px 22px; font-family:'Barlow Condensed',sans-serif; font-size:14px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--navy);}
.has-drop .drop a:hover{background:var(--cream); color:var(--orange);}

/* Mobile nav */
.nav-toggle{display:none; background:none; border:1.5px solid var(--navy); color:var(--navy); font-family:'Barlow Condensed',sans-serif; font-size:13px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; padding:8px 14px; cursor:pointer;}

/* ── Hero (home) ── */
.hero{background:var(--navy); color:var(--white); position:relative; overflow:hidden;}
.hero::before{content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size:72px 72px;}
.hero .container{position:relative; display:grid; grid-template-columns:1.15fr .85fr; gap:60px; align-items:center; padding-top:96px; padding-bottom:104px;}
.hero h1{font-family:'Playfair Display',serif; font-weight:900; font-size:clamp(2.4rem,4.6vw,3.9rem); line-height:1.08; margin:18px 0 22px;}
.hero h1 em{font-style:normal; color:var(--orange2);}
.hero .eyebrow{color:var(--orange2);}
.hero p.lead{font-size:1.13rem; color:rgba(255,255,255,.72); max-width:520px; margin-bottom:34px;}
.hero .ctas{display:flex; gap:14px; flex-wrap:wrap;}

/* ── Page banner (interior) ── */
.page-banner{background:var(--navy); color:var(--white); position:relative; overflow:hidden;}
.page-banner::before{content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size:72px 72px;}
.page-banner .container{position:relative; padding-top:72px; padding-bottom:76px; max-width:1180px;}
.page-banner .eyebrow{color:var(--orange2); margin-bottom:14px;}
.page-banner .eyebrow a:hover{color:var(--white);}
.page-banner h1{font-family:'Playfair Display',serif; font-weight:900; font-size:clamp(2.1rem,4vw,3.2rem); line-height:1.1; max-width:820px;}
.page-banner h1 em{font-style:normal; color:var(--orange2);}
.page-banner p.lead{font-size:1.1rem; color:rgba(255,255,255,.72); max-width:640px; margin-top:18px;}

/* ── Stats strip ── */
.stats{background:var(--cream); border-bottom:1px solid var(--rule);}
.stats .container{display:grid; grid-template-columns:repeat(4,1fr); gap:0;}
.stat{padding:34px 26px; border-left:1px solid var(--rule); text-align:left;}
.stat:first-child{border-left:none;}
.stat .n{font-family:'Playfair Display',serif; font-weight:900; font-size:2.6rem; color:var(--navy); line-height:1;}
.stat .n sup{font-size:1.2rem; color:var(--orange);}
.stat .l{font-family:'Barlow Condensed',sans-serif; font-size:13px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-top:8px;}

/* ── Section scaffolding ── */
section{padding:96px 0;}
.sec-head{max-width:640px; margin-bottom:52px;}
.sec-head .eyebrow{color:var(--orange); margin-bottom:12px;}
.sec-head h2{font-family:'Playfair Display',serif; font-weight:700; font-size:clamp(1.8rem,3vw,2.5rem); color:var(--navy); line-height:1.15; margin-bottom:14px;}
.sec-head p{color:#4a4540; font-size:1.02rem;}

/* ── Services pillars ── */
.services{background:var(--white);}
.pillars{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.pillar{background:var(--white); border:1px solid var(--rule); display:flex; flex-direction:column; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;}
.pillar:hover{transform:translateY(-4px); box-shadow:0 18px 40px rgba(13,27,42,.12); border-color:var(--navy);}
.pillar .body{padding:24px 26px 28px; display:flex; flex-direction:column; flex:1;}
.pillar h3{font-family:'Playfair Display',serif; font-weight:700; font-size:1.22rem; color:var(--navy); margin-bottom:10px;}
.pillar p{font-size:.95rem; color:#4a4540; margin-bottom:16px;}
.tags{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:20px;}
.tag{font-family:'Barlow Condensed',sans-serif; font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--steel); border:1px solid var(--rule); padding:3px 10px;}
.pillar .more{margin-top:auto; font-family:'Barlow Condensed',sans-serif; font-size:14px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--orange);}
.pillar .more:hover{color:var(--navy);}

/* ── Industries strip ── */
.industries{background:var(--navy2); padding:30px 0;}
.industries .container{display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;}
.industries .label{font-family:'Barlow Condensed',sans-serif; font-size:12px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--orange2); flex-shrink:0;}
.industries ul{display:flex; gap:34px; list-style:none; flex-wrap:wrap;}
.industries li{font-family:'Barlow Condensed',sans-serif; font-size:15px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.66);}

/* ── Network / map (signature) ── */
.network{background:var(--navy); color:var(--white); position:relative; overflow:hidden;}
.network .sec-head h2{color:var(--white);}
.network .sec-head p{color:rgba(255,255,255,.65);}
.network-grid{display:grid; grid-template-columns:1.5fr 1fr; gap:56px; align-items:center;}
.chart{position:relative;}
.chart svg{width:100%; height:auto; display:block;}
.loc-list{list-style:none;}
.loc{display:flex; align-items:baseline; gap:16px; padding:15px 18px; border-left:2px solid rgba(255,255,255,.14); cursor:default; transition:all .18s ease;}
.loc:hover, .loc.hl{border-left-color:var(--orange); background:rgba(255,255,255,.045);}
.loc .city{font-family:'Playfair Display',serif; font-weight:700; font-size:1.05rem;}
.loc .role{font-family:'Barlow Condensed',sans-serif; font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-left:auto; text-align:right;}
.loc.terminal{border-left-color:var(--orange); background:rgba(232,98,26,.1); margin-top:10px;}
.loc.terminal .role{color:var(--orange2);}
.routes path{stroke-dasharray:5 7; animation:flow 22s linear infinite;}
@keyframes flow{to{stroke-dashoffset:-600;}}
.pin-pulse{animation:pulse 2.6s ease-out infinite; transform-origin:center;}
@keyframes pulse{0%{opacity:.8; r:6;} 70%{opacity:0; r:20;} 100%{opacity:0; r:20;}}
/* full-width variant on /network/ */
.network-full .chart{max-width:100%;}
.network-full .chart svg{max-height:none;}

/* ── Photo slots: replace with production photography (see BUILD SPEC §8 asset list) ── */
.photo{position:relative; overflow:hidden; background:
  linear-gradient(135deg, #16283e 0%, #1e3a5f 55%, #2a4a72 100%);}
.photo::before{content:""; position:absolute; inset:0;
  background:repeating-linear-gradient(45deg, rgba(255,255,255,.045) 0 2px, transparent 2px 14px);}
.photo::after{content:""; position:absolute; inset:0;
  background:radial-gradient(ellipse at 30% 30%, rgba(240,124,56,.16), transparent 60%);}
.photo .shot{position:absolute; inset:auto 0 0 0; padding:10px 14px; z-index:2;
  font-family:'Barlow Condensed',sans-serif; font-size:11px; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.65);
  background:linear-gradient(transparent, rgba(13,27,42,.85));}
.photo .shot b{color:var(--orange2); margin-right:8px;}
/* Real photography: image + navy multiply overlay ~25% (spec §8 keeps text contrast). */
.photo > img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; z-index:0;}
.photo.has-img::before{background:rgba(13,27,42,.26); z-index:1;}
.photo.has-img::after{display:none;}
.photo.no-tint::before{display:none;}

.icon-badge{position:absolute; top:14px; left:14px; z-index:2; background:rgba(13,27,42,.75);
  border:1px solid rgba(255,255,255,.2); padding:9px; line-height:0;}
.icon-badge svg{width:30px; height:30px; stroke:var(--white); fill:none; stroke-width:1.5;}

/* ── Caribbean spotlight / lane card ── */
.carib-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
.lane-card{background:var(--navy); color:var(--white); padding:8px 36px;}
.lane-row{padding:30px 0; border-bottom:1px solid rgba(255,255,255,.1);}
.lane-row:last-child{border-bottom:none;}
.lane-dir{font-family:'Barlow Condensed',sans-serif; font-size:12px; font-weight:600; letter-spacing:.26em; text-transform:uppercase; color:var(--orange2); margin-bottom:10px;}
.lane-path{display:flex; align-items:center; gap:14px; font-family:'Playfair Display',serif; font-weight:700; font-size:1.08rem; margin-bottom:10px; flex-wrap:wrap;}
.lane-path .arrow{color:var(--orange); font-size:.8rem; letter-spacing:-1px;}
.lane-row p{font-size:.9rem; color:rgba(255,255,255,.6);}

/* ── Why grid ── */
.why-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:0; border:1px solid var(--rule);}
.why-card{padding:34px 28px; border-left:1px solid var(--rule); background:var(--white);}
.why-card:first-child{border-left:none;}
.why-card h3{font-family:'Playfair Display',serif; font-weight:700; font-size:1.1rem; color:var(--navy); margin-bottom:10px;}
.why-card p{font-size:.93rem; color:#4a4540;}

/* ── People / customer service ── */
.people{background:var(--white);}
.people-grid{display:grid; grid-template-columns:1fr 1.05fr; gap:64px; align-items:center;}
.people .photo.main{aspect-ratio:4/4.6;}
.people-duo{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px;}
.people-duo .photo{aspect-ratio:16/10;}
.promise{list-style:none; margin:26px 0 30px;}
.promise li{display:flex; gap:14px; padding:13px 0; border-bottom:1px solid var(--rule); font-size:.98rem; color:#3c3833;}
.promise li:first-child{border-top:1px solid var(--rule);}
.promise .tick{color:var(--orange); font-weight:700; flex-shrink:0;}
.avatar{width:38px; height:38px; border-radius:50%; background:var(--navy); color:var(--white);
  display:inline-flex; align-items:center; justify-content:center;
  font-family:'Barlow Condensed',sans-serif; font-weight:600; font-size:14px; letter-spacing:.05em;}
.quote-foot{display:flex; align-items:center; gap:12px;}

/* ── How it works ── */
.how-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.how-step{background:var(--white); border:1px solid var(--rule); padding:32px 30px; position:relative;}
.step-n{font-family:'Playfair Display',serif; font-weight:900; font-size:2.8rem; color:var(--orange); line-height:1; margin-bottom:14px;}
.how-step h3{font-family:'Playfair Display',serif; font-weight:700; font-size:1.1rem; color:var(--navy); margin-bottom:8px;}
.how-step p{font-size:.93rem; color:#4a4540;}

/* ── Mission band ── */
.mission{background:var(--navy);}
.mission-line{font-family:'Playfair Display',serif; font-weight:900; font-size:clamp(1.9rem,4vw,3.1rem); line-height:1.25; color:var(--white);}
.mission-line em{font-style:normal; color:var(--orange2);}

/* ── Quotes ── */
.quotes-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.quote{background:var(--cream); border-left:3px solid var(--orange); padding:28px 30px;}
.quote blockquote{font-family:'Playfair Display',serif; font-size:1.02rem; color:var(--navy); line-height:1.55; margin-bottom:14px;}
.quote figcaption{font-family:'Barlow Condensed',sans-serif; font-size:13px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--muted);}

/* ── CTA band ── */
.cta-band{background:var(--orange); color:var(--white); padding:80px 0;}
.cta-band h2{font-family:'Playfair Display',serif; font-weight:900; font-size:clamp(1.9rem,3.4vw,2.7rem); margin-bottom:10px;}
.cta-band p{color:rgba(255,255,255,.85); font-size:1.05rem;}
.cta-band .btn:hover{opacity:.9;}
.btn-on-orange{background:var(--white); color:var(--orange);}

/* ── Footer ── */
footer{background:var(--navy); color:var(--white); padding:70px 0 0;}
.foot-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:40px; padding-bottom:50px;}
footer h4{font-family:'Barlow Condensed',sans-serif; font-size:13px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--orange2); margin-bottom:16px;}
footer .foot-grid a{display:block; font-size:.92rem; color:rgba(255,255,255,.7); margin-bottom:10px;}
footer .foot-grid a:hover{color:var(--white);}
footer .foot-grid .foot-note{color:rgba(255,255,255,.45); font-size:.88rem;}
.foot-legal{display:flex; justify-content:space-between; align-items:center; border-top:1px solid rgba(255,255,255,.12); padding-top:22px; padding-bottom:26px; font-size:.82rem; color:rgba(255,255,255,.45); flex-wrap:wrap; gap:10px;}
.foot-legal a{color:rgba(255,255,255,.45);}
.foot-legal a:hover{color:var(--white);}

/* ═══ Interior-only components ═══ */

/* Alternating pillar rows (services hub) */
.alt-rows .alt-row{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; padding:56px 0; border-top:1px solid var(--rule);}
.alt-rows .alt-row:first-child{border-top:none;}
.alt-row .photo{aspect-ratio:16/10;}
.alt-row h2{font-family:'Playfair Display',serif; font-weight:700; font-size:clamp(1.5rem,2.4vw,2rem); color:var(--navy); line-height:1.15; margin-bottom:12px;}
.alt-row p{color:#4a4540; margin-bottom:16px;}
.alt-row .ctas{display:flex; gap:12px; flex-wrap:wrap; margin-top:8px;}

/* Prose (service body copy, legal pages) */
.prose{max-width:720px;}
.prose h2{font-family:'Playfair Display',serif; font-weight:700; font-size:1.5rem; color:var(--navy); line-height:1.2; margin:38px 0 14px;}
.prose h2:first-child{margin-top:0;}
.prose h3{font-family:'Playfair Display',serif; font-weight:700; font-size:1.15rem; color:var(--navy); margin:28px 0 10px;}
.prose p{color:#4a4540; margin-bottom:16px;}
.prose ul, .prose ol{margin:0 0 16px 22px; color:#4a4540;}
.prose li{margin-bottom:8px;}
.prose a{color:var(--orange); font-weight:500;}
.prose a:hover{color:var(--navy);}
.prose strong{color:var(--ink);}

/* Service detail two-column layout */
.svc-layout{display:grid; grid-template-columns:1.25fr .75fr; gap:64px; align-items:start;}
.svc-aside{position:sticky; top:110px; display:flex; flex-direction:column; gap:26px;}
.svc-aside .photo{aspect-ratio:16/11;}
.aside-card{border:1px solid var(--rule); background:var(--cream); padding:26px 28px;}
.aside-card h3{font-family:'Barlow Condensed',sans-serif; font-size:13px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--orange); margin-bottom:14px;}
.aside-card ul{list-style:none;}
.aside-card li{padding:9px 0; border-bottom:1px solid var(--rule); font-size:.95rem; color:#3c3833;}
.aside-card li:last-child{border-bottom:none;}
.aside-card p{font-size:.95rem; color:#4a4540;}
.aside-card .btn{margin-top:14px;}
.aside-card a{color:var(--orange); font-weight:500;}
.aside-card a:hover{color:var(--navy);}

/* FAQ accordion (native details/summary) */
.faq{border-top:1px solid var(--rule);}
.faq details{border-bottom:1px solid var(--rule);}
.faq summary{display:flex; justify-content:space-between; align-items:center; gap:20px; cursor:pointer; padding:22px 4px; font-family:'Playfair Display',serif; font-weight:700; font-size:1.08rem; color:var(--navy); list-style:none;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+"; font-family:'Barlow',sans-serif; font-weight:400; font-size:1.5rem; color:var(--orange); line-height:1; flex-shrink:0; transition:transform .2s ease;}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq .faq-a{padding:0 4px 24px; color:#4a4540; max-width:680px;}

/* Facility cards (/network/) */
.facility-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.facility{border:1px solid var(--rule); background:var(--white); padding:28px 28px 26px; display:flex; flex-direction:column;}
.facility.terminal-card{border:2px solid var(--orange); background:var(--cream);}
.facility .kicker{font-family:'Barlow Condensed',sans-serif; font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--orange); margin-bottom:8px;}
.facility h3{font-family:'Playfair Display',serif; font-weight:700; font-size:1.25rem; color:var(--navy); margin-bottom:10px;}
.facility p{font-size:.94rem; color:#4a4540; margin-bottom:18px;}
.facility .tags{margin-top:auto; margin-bottom:0;}

/* Contact page */
.contact-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start;}
.form-card{border:1px solid var(--rule); padding:36px 38px; background:var(--white);}
.mode-toggle{display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--navy); margin-bottom:28px;}
.mode-toggle label{position:relative; text-align:center;}
.mode-toggle input{position:absolute; opacity:0; inset:0; cursor:pointer;}
.mode-toggle span{display:block; padding:12px 10px; font-family:'Barlow Condensed',sans-serif; font-size:14px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--navy); cursor:pointer; transition:all .15s ease;}
.mode-toggle input:checked + span{background:var(--navy); color:var(--white);}
.mode-toggle input:focus-visible + span{outline:2px solid var(--orange); outline-offset:-2px;}
.f-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.f-field{margin-bottom:18px;}
.f-field label{display:block; font-family:'Barlow Condensed',sans-serif; font-size:13px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--steel); margin-bottom:6px;}
.f-field label .req{color:var(--orange);}
.f-field input, .f-field select, .f-field textarea{width:100%; border:1px solid var(--rule); background:var(--white); padding:12px 14px; font-family:'Barlow',sans-serif; font-size:1rem; color:var(--ink);}
.f-field input:focus, .f-field select:focus, .f-field textarea:focus{outline:2px solid var(--orange); outline-offset:0; border-color:var(--orange);}
.f-field textarea{min-height:120px; resize:vertical;}
.f-error{display:none; color:#b03a12; font-size:.88rem; margin-top:5px;}
.f-field.invalid .f-error{display:block;}
.f-field.invalid input, .f-field.invalid textarea, .f-field.invalid select{border-color:#b03a12;}
.form-success{display:none; background:var(--cream); border-left:3px solid var(--orange); padding:22px 26px; margin-top:6px;}
.form-success h3{font-family:'Playfair Display',serif; color:var(--navy); font-size:1.15rem; margin-bottom:6px;}
.form-success p{color:#4a4540; font-size:.95rem;}
.contact-direct h3{font-family:'Playfair Display',serif; font-weight:700; font-size:1.3rem; color:var(--navy); margin-bottom:18px;}
.contact-direct .line{display:flex; gap:14px; padding:14px 0; border-bottom:1px solid var(--rule); font-size:.98rem; color:#3c3833;}
.contact-direct .line:first-of-type{border-top:1px solid var(--rule);}
.contact-direct .line .k{font-family:'Barlow Condensed',sans-serif; font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); width:74px; flex-shrink:0; padding-top:3px;}
.contact-direct .line a:hover{color:var(--orange);}
.contact-direct .photo{aspect-ratio:16/10; margin-top:26px;}

/* Legal pages */
.legal-body{padding:72px 0 96px;}
.legal-body .prose p, .legal-body .prose li{font-size:.98rem;}
.legal-updated{font-family:'Barlow Condensed',sans-serif; font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:30px;}

/* Cross-link band between service pages */
.xlinks{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:44px;}
.xlink{border:1px solid var(--rule); padding:24px 26px; transition:border-color .2s ease, transform .2s ease;}
.xlink:hover{border-color:var(--navy); transform:translateY(-2px);}
.xlink .kicker{font-family:'Barlow Condensed',sans-serif; font-size:11px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--orange); margin-bottom:6px; display:block;}
.xlink .t{font-family:'Playfair Display',serif; font-weight:700; font-size:1.08rem; color:var(--navy);}

/* ── Responsive ── */
@media(max-width:960px){
  .hero .container{grid-template-columns:1fr; padding-top:70px; padding-bottom:76px;}
  .pillars,.why-grid{grid-template-columns:1fr 1fr;}
  .why-card{border-top:1px solid var(--rule);}
  .network-grid,.carib-grid,.people-grid,.svc-layout,.contact-grid,.alt-rows .alt-row{grid-template-columns:1fr; gap:40px;}
  .svc-aside{position:static;}
  .stats .container{grid-template-columns:1fr 1fr;}
  .stat{border-top:1px solid var(--rule);}
  .facility-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:640px){
  nav.menu{display:none; position:absolute; top:78px; left:0; right:0; background:var(--white); border-bottom:1px solid var(--rule); flex-direction:column; gap:0; padding:10px 28px 18px; box-shadow:0 18px 30px rgba(13,27,42,.12);}
  nav.menu.open{display:flex; align-items:stretch;}
  nav.menu > a, nav.menu .has-drop > a{padding:12px 0; border-bottom:1px solid var(--rule);}
  .has-drop .drop{position:static; transform:none; display:block; border:none; box-shadow:none; padding:0 0 0 16px;}
  .has-drop .drop a{padding:10px 0; font-size:13px; color:var(--muted);}
  .nav-toggle{display:block;}
  .nav-cta{display:none;}
  .pillars,.why-grid,.how-grid,.quotes-grid,.stats .container,.facility-grid,.f-row,.xlinks{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  section{padding:64px 0;}
  .form-card{padding:26px 22px;}
}
