/* ==========================================================================
   North by North East Light Sport Aircraft (NXNE)
   Shared stylesheet — design system
   Brand: blue #0255B2 · orange #E88017 · yellow #F4B41A
   Type:  Spectral (serif headings) + Roboto (sans body/labels)
   ========================================================================== */

/* ---------- self-hosted fonts (no external/Google dependency) ---------- */
@font-face{ font-family:"Roboto"; font-style:normal; font-weight:400; font-display:swap; src:url("../fonts/roboto-400.woff2") format("woff2"); }
@font-face{ font-family:"Roboto"; font-style:normal; font-weight:500; font-display:swap; src:url("../fonts/roboto-500.woff2") format("woff2"); }
@font-face{ font-family:"Roboto"; font-style:normal; font-weight:600; font-display:swap; src:url("../fonts/roboto-600.woff2") format("woff2"); }
@font-face{ font-family:"Roboto"; font-style:normal; font-weight:700; font-display:swap; src:url("../fonts/roboto-700.woff2") format("woff2"); }
@font-face{ font-family:"Spectral"; font-style:normal; font-weight:400; font-display:swap; src:url("../fonts/spectral-400.woff2") format("woff2"); }
@font-face{ font-family:"Spectral"; font-style:normal; font-weight:500; font-display:swap; src:url("../fonts/spectral-500.woff2") format("woff2"); }
@font-face{ font-family:"Spectral"; font-style:normal; font-weight:600; font-display:swap; src:url("../fonts/spectral-600.woff2") format("woff2"); }
@font-face{ font-family:"Spectral"; font-style:normal; font-weight:700; font-display:swap; src:url("../fonts/spectral-700.woff2") format("woff2"); }

:root{
  --blue:        #0255B2;
  --blue-700:    #044a97;
  --blue-900:    #04305f;
  --blue-950:    #04244a;
  --orange:      #E88017;
  --orange-600:  #cf6f0e;
  --yellow:      #FFC61A;

  --ink:    #15202e;   /* primary text */
  --slate:  #51607a;   /* muted text   */
  --line:   #e2e7ef;   /* hairlines    */
  --mist:   #f3f6fb;   /* light section bg */
  --mist-2: #eaf0f8;   /* slightly deeper tint */
  --paper:  #ffffff;

  --wrap: 1180px;
  --radius: 14px;
  --radius-sm: 9px;
  --shadow-sm: 0 1px 2px rgba(16,32,52,.06), 0 4px 14px rgba(16,32,52,.06);
  --shadow-md: 0 8px 30px rgba(8,32,68,.12);
  --shadow-lg: 0 22px 60px rgba(8,32,68,.20);

  --ff-serif: "Spectral", Georgia, "Times New Roman", serif;
  --ff-sans:  "Roboto", system-ui, -apple-system, Segoe UI, Helvetica, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--ff-sans);
  color:var(--ink);
  background:var(--paper);
  font-size:18px;
  font-weight:400;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
a:hover{ color:var(--orange-600); }
/* component links that should NOT look like inline text links */
.btn, .nav__link, .nav__logo, .nav__dropdown a, .svc-card, .svc-card__more, .svc-list a{ text-decoration:none; }

h1,h2,h3,h4{ font-family:var(--ff-serif); font-weight:600; color:var(--ink); line-height:1.12; margin:0 0 .5em; letter-spacing:-.01em; }
p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }
strong{ font-weight:700; }

/* ---------- layout helpers ---------- */
.wrap{ width:100%; max-width:var(--wrap); margin:0 auto; padding:0 24px; }
.wrap--narrow{ max-width:780px; }
.section{ padding:84px 0; }
.section--tight{ padding:56px 0; }
.section--mist{ background:var(--mist); }
.section--blue{ background:var(--blue); color:#fff; }
.lead{ font-size:1.32rem; line-height:1.55; color:var(--slate); }
.center{ text-align:center; }
.eyebrow{
  font-family:var(--ff-sans);
  font-weight:600;
  font-size:.78rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--orange);
  margin:0 0 14px;
  display:flex; align-items:center; gap:11px;
}
.eyebrow::before{ content:""; width:30px; height:2px; background:var(--orange); display:inline-block; }
.eyebrow.center{ justify-content:center; }
.eyebrow--light{ color:var(--yellow) !important; }
.eyebrow--light::before{ background:var(--yellow) !important; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.55em;
  font-family:var(--ff-sans); font-weight:600; font-size:1rem;
  padding:.85em 1.55em; border-radius:999px; border:2px solid transparent;
  cursor:pointer; transition:.18s ease; line-height:1;
}
.btn svg{ width:1.05em; height:1.05em; }
.btn-primary{ background:var(--orange); color:#fff; box-shadow:0 6px 18px rgba(232,128,23,.32); }
.btn-primary:hover{ background:var(--orange-600); color:#fff; transform:translateY(-2px); }
.btn-blue{ background:var(--blue); color:#fff; }
.btn-blue:hover{ background:var(--blue-700); color:#fff; transform:translateY(-2px); }
.btn-ghost{ background:transparent; color:var(--orange); border-color:var(--orange); }
.btn-ghost:hover{ background:var(--orange); border-color:var(--orange); color:#fff; transform:translateY(-2px); }
.btn-onblue{ background:#fff; color:var(--blue-900); }
.btn-onblue:hover{ background:var(--yellow); color:var(--blue-950); transform:translateY(-2px); }
.btn-outline-light{ background:transparent; color:#fff; border-color:var(--orange); }
.btn-outline-light:hover{ background:var(--orange); border-color:var(--orange); color:#fff; transform:translateY(-2px); }
.btn-row{ display:flex; flex-wrap:wrap; gap:14px; }
/* outline buttons inside the blue CTA band read better as white */
.cta-band .btn-outline-light{ border-color:#fff; color:#fff; }
.cta-band .btn-outline-light:hover{ background:#fff; border-color:#fff; color:var(--blue-900); }

/* ==========================================================================
   HEADER / NAV
   ========================================================================== */
.site-header{
  position:sticky; top:0; z-index:200;
  background:rgba(255,255,255,.94);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--line);
}
.nav{ display:flex; align-items:center; justify-content:space-between; gap:24px; height:92px; }
.nav__logo{ display:flex; align-items:center; flex:0 0 auto; }
.nav__logo img{ width:210px; height:auto; }
.nav__menu{ display:flex; align-items:center; gap:4px; list-style:none; margin:0; padding:0; }
.nav__menu > li{ position:relative; }
.nav__link{
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--ff-sans); font-weight:600; font-size:.95rem;
  color:var(--ink); padding:10px 14px; border-radius:8px; transition:.15s;
  letter-spacing:.01em;
}
.nav__link:hover{ color:var(--blue); background:var(--mist); }
.nav__link[aria-current="page"]{ color:var(--blue); }
.nav__link[aria-current="page"]::after{
  content:""; position:absolute; left:14px; right:14px; bottom:2px; height:2px; background:var(--orange); border-radius:2px;
}
.nav__caret{ width:11px; height:11px; transition:transform .2s; }

/* dropdown */
.has-drop > .nav__dropdown{
  position:absolute; top:calc(100% + 6px); left:0; min-width:288px;
  background:#fff; border:1px solid var(--line); border-radius:12px;
  box-shadow:var(--shadow-md); padding:8px;
  opacity:0; visibility:hidden; transform:translateY(8px); transition:.18s ease;
  list-style:none; margin:0;
}
.has-drop:hover > .nav__dropdown,
.has-drop:focus-within > .nav__dropdown,
.has-drop.open > .nav__dropdown{ opacity:1; visibility:visible; transform:translateY(0); }
.has-drop:hover .nav__caret,
.has-drop.open .nav__caret{ transform:rotate(180deg); }
.nav__dropdown a{
  display:block; padding:11px 14px; border-radius:8px;
  font-family:var(--ff-sans); font-weight:500; font-size:.96rem; color:var(--ink); line-height:1.3;
}
.nav__dropdown a:hover{ background:var(--mist); color:var(--blue); }
.nav__dropdown a span{ display:block; font-size:.8rem; font-weight:400; color:var(--slate); margin-top:1px; }
.nav__cta{ margin-left:8px; }
.nav__toggle{ display:none; background:none; border:0; cursor:pointer; padding:8px; }
.nav__toggle svg{ width:28px; height:28px; color:var(--ink); }

/* ==========================================================================
   HEADER TYPE 1 — HERO (big image + text)
   ========================================================================== */
.hero{ position:relative; min-height:80vh; display:flex; align-items:flex-end; overflow:hidden; padding: 75px 0 25px 0; }
.hero__bg{ position:absolute; inset:0; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; }
.hero::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(4,36,74,.20) 0%, rgba(4,36,74,.42) 42%, rgba(4,36,74,.84) 78%, rgba(4,36,74,.94) 100%);
}
.hero__inner{ position:relative; z-index:2; padding:0 0 70px; color:#fff; max-width:1050px; }
.hero h1{ color:#fff; font-size:clamp(2.5rem, 5.4vw, 4.1rem); font-weight:600; margin-bottom:.34em; text-shadow:0 2px 24px rgba(4,30,60,.4); }
.hero__sub{ font-size:clamp(1.1rem,1.7vw,1.4rem); color:rgba(255,255,255,.92); max-width:620px; margin-bottom:1.7em; line-height:1.5; }
.hero .eyebrow{ color:var(--yellow); }
.hero .eyebrow::before{ background:var(--yellow); }

/* ==========================================================================
   HEADER TYPE 2 — TIGHT FULL-WIDTH COLORED BAND
   ========================================================================== */
.pagehead{ position:relative; background:var(--blue); color:#fff; padding:78px 0 70px; overflow:hidden; text-align:center; }
.pagehead--deep{ background:var(--blue-900); }
.pagehead--grad{ background:linear-gradient(to top right, var(--blue-950) 0%, var(--blue-900) 48%, var(--blue) 100%); }
.splithead.splithead--grad{ background:linear-gradient(to top right, var(--blue-950) 0%, var(--blue-900) 48%, var(--blue) 100%); }
.pagehead::before{
  content:""; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:440px; height:440px; opacity:.08; z-index:1; pointer-events:none;
  background:url("../images/compass-mark-white.svg") no-repeat center/contain;
}
.pagehead__inner{ position:relative; z-index:2; max-width:820px; margin:0 auto; }
.pagehead h1{ color:#fff; font-size:clamp(2.1rem,4vw,3.25rem); margin-bottom:.3em; }
.pagehead__sub{ font-size:clamp(1.05rem,1.5vw,1.3rem); color:rgba(255,255,255,.9); line-height:1.5; max-width:680px; margin:0 auto; }
.pagehead .eyebrow{ color:var(--yellow); justify-content:center; }
.pagehead .eyebrow::before{ background:var(--yellow); }
.pagehead--center{ text-align:center; }

/* ==========================================================================
   HEADER TYPE 3 — 50/50 SPLIT (text + image on full-width colored band)
   ========================================================================== */
.splithead{ position:relative; overflow:hidden; }
.splithead--blue{ background:var(--blue); color:#fff; }
.splithead--blue::before{
  content:""; position:absolute; left:-70px; top:50%; transform:translateY(-50%);
  width:340px; height:340px; opacity:.08; z-index:0; pointer-events:none;
  background:url("../images/compass-mark-white.svg") no-repeat center/contain;
}
.splithead--blue .splithead__text{ position:relative; z-index:2; }
.splithead--soft{ background:var(--mist-2); color:var(--ink); }
.splithead__grid{ display:grid; grid-template-columns:1fr 1fr; gap:54px; align-items:center; min-height:440px; }
.splithead__text{ padding:74px 0; max-width:560px; }
.splithead--blue h1{ color:#fff; }
.splithead h1{ font-size:clamp(2rem,3.6vw,3rem); margin-bottom:.34em; }
.splithead__sub{ font-size:clamp(1.05rem,1.4vw,1.26rem); line-height:1.5; }
.splithead--blue .splithead__sub{ color:rgba(255,255,255,.9); }
.splithead--soft .splithead__sub{ color:var(--slate); }
.splithead--blue .eyebrow{ color:var(--yellow); }
.splithead--blue .eyebrow::before{ background:var(--yellow); }
.splithead__media{ position:relative; align-self:stretch; min-height:440px; }
.splithead__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
/* contained / smaller image variant (e.g. Contact bird) */
.splithead--contain .splithead__media{ display:flex; align-items:center; justify-content:center; padding:48px 0; min-height:auto; }
.splithead--contain .splithead__media img{
  position:static; width:auto; max-width:380px; height:auto; border-radius:var(--radius);
  box-shadow:var(--shadow-md);
}

/* ==========================================================================
   ARTICLE / CONTENT
   ========================================================================== */
.prose{ font-size:1.12rem; color:#2a3647; }
.prose p{ margin-bottom:1.25em; }
.prose h2{ font-size:1.9rem; margin-top:1.6em; }
.prose h3{ font-size:1.4rem; margin-top:1.4em; }
.prose a{ text-decoration:underline; text-underline-offset:3px; }

/* checklist / feature list */
.checklist{ list-style:none; margin:1.4em 0; padding:0; display:grid; gap:14px; }
.checklist li{ position:relative; padding-left:40px; font-size:1.06rem; line-height:1.5; }
.checklist li::before{
  content:""; position:absolute; left:0; top:1px; width:26px; height:26px; border-radius:50%;
  background:var(--orange); 
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9.6 16.2 5.4 12l-1.4 1.4 5.6 5.6 12-12-1.4-1.4z'/></svg>") center/16px no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9.6 16.2 5.4 12l-1.4 1.4 5.6 5.6 12-12-1.4-1.4z'/></svg>") center/16px no-repeat;
}
.checklist--two{ grid-template-columns:1fr 1fr; gap:14px 36px; }
.checklist--onblue li::before{ background:var(--yellow); }

/* small floated portrait inside prose */
.float-photo{ float:left; width:230px; max-width:40%; border-radius:12px; box-shadow:var(--shadow-md); margin:5px 28px 14px 0; }

/* ==========================================================================
   SERVICES GRID (cards)
   ========================================================================== */
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.svc-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; display:flex; flex-direction:column; box-shadow:var(--shadow-sm);
  transition:.2s ease; color:inherit;
}
.svc-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-md); border-color:#d4ddec; color:inherit; }
.svc-card__img{ aspect-ratio:16/10; overflow:hidden; background:var(--mist); }
.svc-card__img img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.svc-card:hover .svc-card__img img{ transform:scale(1.05); }
.svc-card__body{ padding:24px 24px 26px; display:flex; flex-direction:column; flex:1; }
.svc-card h3{ font-size:1.32rem; margin-bottom:.4em; }
.svc-card p{ color:var(--slate); font-size:1rem; margin-bottom:1.1em; }
.svc-card p.eyebrow--light{ color:var(--yellow); margin-bottom:14px; }
.svc-card__more{ margin-top:auto; font-family:var(--ff-sans); font-weight:600; font-size:.92rem; color:var(--orange); display:inline-flex; align-items:center; gap:7px; }
.svc-card:hover .svc-card__more{ gap:11px; }

/* simple service link list (variant) */
.svc-list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:0 48px; }
.svc-list li{ border-bottom:1px solid var(--line); }
.svc-list a{ display:flex; align-items:center; justify-content:space-between; padding:22px 4px; font-family:var(--ff-serif); font-size:1.3rem; color:var(--ink); font-weight:600; transition:.15s; }
.svc-list a:hover{ color:var(--blue); padding-left:12px; }
.svc-list .arr{ color:var(--orange); font-size:1.1rem; }

/* ==========================================================================
   MEDIA ROW (text + image, alternating)
   ========================================================================== */
.media-row{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.media-row + .media-row{ margin-top:72px; }
.media-row__media img{ width:100%; border-radius:var(--radius); box-shadow:var(--shadow-md); }
.media-row--flip .media-row__media{ order:-1; }
.media-row h2{ font-size:1.95rem; }

/* image strip / detail thumbs */
.img-strip{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:14px; }
.img-strip img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius-sm); box-shadow:var(--shadow-sm); }

/* ==========================================================================
   CALLOUT BANDS — class dates etc.
   ========================================================================== */
.callout{
  background:#fff; border:2px solid var(--yellow);
  border-radius:var(--radius); padding:28px 30px; box-shadow:var(--shadow-md);
}
.callout h3{ font-size:1.3rem; margin-bottom:.5em; }
.dates{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:14px; }
.dates li{
  background:var(--mist); border:1px solid var(--line); border-radius:10px;
  padding:14px 20px; font-family:var(--ff-sans); font-weight:600; color:var(--ink); font-size:1rem;
}
.dates li span{ display:block; font-weight:400; font-size:.82rem; color:var(--slate); letter-spacing:.04em; text-transform:uppercase; margin-bottom:3px; }

/* split feature band (cta) */
.cta-band{ background:linear-gradient(120deg,var(--blue) 0%, var(--blue-900) 100%); color:#fff; border-radius:18px; padding:54px 56px; position:relative; overflow:hidden; }
.cta-band h2{ color:#fff; font-size:2.1rem; margin-bottom:.35em; }
.cta-band p{ color:rgba(255,255,255,.9); font-size:1.15rem; max-width:560px; }
.cta-band__inner{ position:relative; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:36px; flex-wrap:wrap; }

/* trust strip (Home B) */
.trust-strip{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.trust-strip div{ background:#fff; padding:26px 22px; text-align:center; }
.trust-strip .t-k{ font-family:var(--ff-serif); font-weight:700; font-size:1.5rem; color:var(--blue); display:block; line-height:1.1; }
.trust-strip .t-l{ font-size:.92rem; color:var(--slate); margin-top:5px; display:block; }

/* ==========================================================================
   JOTFORM PLACEHOLDER
   ========================================================================== */
.jotform-slot{
  border:2px dashed #b9c6db; border-radius:var(--radius); background:var(--mist);
  padding:52px 24px; text-align:center; color:var(--slate);
}
.jotform-slot__tag{ font-family:var(--ff-sans); font-weight:700; letter-spacing:.04em; color:var(--blue); font-size:1.15rem; }
.jotform-slot p{ margin:.5em 0 0; font-size:.95rem; }

/* form-fields reference list (so client sees intended fields) */
.field-ref{ list-style:none; margin:18px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:9px; justify-content:center; }
.field-ref li{ background:#fff; border:1px solid var(--line); border-radius:999px; padding:7px 15px; font-size:.85rem; color:var(--slate); font-family:var(--ff-sans); }

/* JotForm embed */
#jbox {
  position: relative;
  width: 100%;
  display: block;
  padding: 10px 0 0 0;
}
#jbox:after {
  content: "";
  display: block;
  width: 105%;
  background: white;
  opacity: 1;
  position: absolute;
  left: -10px;
  bottom: -10px;
  height: 90px;
  z-index: 5;
}

/* ==========================================================================
   PHOTOS — masonry + lightbox
   ========================================================================== */
.gallery{ columns:4; column-gap:16px; }
.gallery__item{ break-inside:avoid; margin:0 0 16px; border-radius:var(--radius-sm); overflow:hidden; cursor:zoom-in; box-shadow:var(--shadow-sm); position:relative; background:var(--mist); }
.gallery__item img{ width:100%; transition:transform .5s ease, filter .3s; }
.gallery__item:hover img{ transform:scale(1.04); filter:brightness(.92); }
.gallery__cap{ position:absolute; left:0; right:0; bottom:0; padding:26px 14px 10px; color:#fff; font-family:var(--ff-sans); font-size:.85rem; font-weight:600; background:linear-gradient(transparent, rgba(4,30,60,.78)); opacity:0; transition:.25s; }
.gallery__item:hover .gallery__cap{ opacity:1; }

.lightbox{ position:fixed; inset:0; z-index:1000; background:rgba(6,16,32,.94); display:none; align-items:center; justify-content:center; }
.lightbox.open{ display:flex; }
.lightbox img{ max-width:90vw; max-height:84vh; border-radius:8px; box-shadow:0 30px 80px rgba(0,0,0,.5); }
.lightbox__cap{ position:absolute; bottom:26px; left:0; right:0; text-align:center; color:rgba(255,255,255,.85); font-family:var(--ff-sans); font-size:.95rem; padding:0 20px; }
.lb-btn{ position:absolute; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); color:#fff; width:52px; height:52px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:.15s; }
.lb-btn:hover{ background:rgba(255,255,255,.22); }
.lb-btn svg{ width:24px; height:24px; }
.lb-close{ top:24px; right:24px; }
.lb-prev{ left:24px; top:50%; transform:translateY(-50%); }
.lb-next{ right:24px; top:50%; transform:translateY(-50%); }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer{ background:var(--blue-950); color:rgba(255,255,255,.74); padding:64px 0 28px; font-size:.95rem; }
.footer-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:48px; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.12); }
.site-footer img.foot-logo{ height:52px; width:auto; margin-bottom:18px; }
.site-footer h4{ color:#fff; font-family:var(--ff-sans); font-size:.82rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600; margin:0 0 16px; }
.foot-links{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.foot-links a{ color:var(--yellow); text-decoration:underline; text-underline-offset:3px; }
.foot-links a:hover{ color:#fff; }
.foot-about{ max-width:340px; line-height:1.6; }
.foot-creds{ display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.foot-creds span{ border:1px solid rgba(255,255,255,.22); border-radius:999px; padding:4px 12px; font-size:.78rem; color:rgba(255,255,255,.82); font-family:var(--ff-sans); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; padding-top:24px; font-size:.85rem; color:rgba(255,255,255,.55); }
.footer-bottom a{ color:rgba(255,255,255,.7); }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1024px){
  .svc-grid{ grid-template-columns:repeat(2,1fr); }
  .gallery{ columns:3; }
  .footer-grid{ grid-template-columns:1fr 1fr; gap:36px; }
}
@media (max-width:860px){
  body{ font-size:17px; }
  .section{ padding:60px 0; }
  .nav__toggle{ display:block; }
  .nav__menu{
    position:fixed; inset:92px 0 auto 0; flex-direction:column; align-items:stretch; gap:0;
    background:#fff; border-bottom:1px solid var(--line); box-shadow:var(--shadow-md);
    padding:10px 16px 18px; transform:translateY(-130%); transition:transform .28s ease; max-height:calc(100vh - 92px); overflow:auto;
  }
  .nav__menu.open{ transform:translateY(0); }
  .nav__link{ padding:14px 8px; font-size:1.05rem; border-radius:8px; }
  .nav__link[aria-current="page"]::after{ display:none; }
  .has-drop > .nav__dropdown{
    position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:0;
    background:var(--mist); margin:4px 0 8px; padding:4px; display:none; min-width:0;
  }
  .has-drop.open > .nav__dropdown{ display:block; }
  .nav__cta{ margin:8px 0 0; }
  .nav__cta .btn{ width:100%; justify-content:center; }

  .splithead__grid{ grid-template-columns:1fr; gap:0; }
  .splithead__text{ padding:52px 0 44px; max-width:none; }
  .splithead__media{ min-height:300px; order:-1; }
  .splithead--contain .splithead__media{ order:0; padding:28px 0 0; }
  .media-row{ grid-template-columns:1fr; gap:30px; }
  .media-row--flip .media-row__media{ order:0; }
  .checklist--two,.svc-list{ grid-template-columns:1fr; }
  .trust-strip{ grid-template-columns:1fr 1fr; }
  .cta-band{ padding:40px 30px; }
  .cta-band h2{ font-size:1.7rem; }
  .gallery{ columns:2; }
  .hero{ min-height:72vh; }
  .pagehead::before{ width:280px; height:280px; }
  .splithead--blue::before{ display:none; }
  .float-photo{ float:none; width:62%; max-width:none; margin:0 auto 18px; display:block; }
}
@media (max-width:520px){
  .svc-grid{ grid-template-columns:1fr; }
  .gallery{ columns:1; }
  .footer-grid{ grid-template-columns:1fr; }
  .img-strip{ grid-template-columns:1fr 1fr; }
  .btn{ width:100%; justify-content:center; }
  .hero__inner .btn{ width:auto; }
  .btn-row .btn{ width:100%; }
}

/* reduced motion */
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
