/* ============================================================
   Sea and Shore Group — Global Stylesheet
   iOS / Apple HIG inspired: SF system font, 8pt spacing grid,
   large rounded cards, frosted glass, soft shadows, motion.
   ============================================================ */

:root {
  /* Brand */
  --blue:        #2BA2DC;   /* light brand blue  */
  --blue-600:    #1C86C4;
  --navy:        #1A3969;   /* dark brand blue   */
  --navy-700:    #142c52;
  --navy-900:    #0d1e3a;

  /* Neutrals (iOS greys) */
  --ink:         #0b1b2b;
  --text:        #1d2530;
  --text-soft:   #5b6676;
  --line:        #e6eaf0;
  --bg:          #ffffff;
  --bg-soft:     #f5f8fb;
  --bg-tint:     #eef5fb;

  /* Gradients */
  --grad-brand:  linear-gradient(135deg, #2BA2DC 0%, #1A3969 100%);
  --grad-deep:   linear-gradient(160deg, #1A3969 0%, #0d1e3a 100%);
  --grad-sky:    linear-gradient(180deg, #eaf4fb 0%, #ffffff 100%);

  /* Radius (iOS continuous-ish) */
  --r-sm: 12px;
  --r-md: 18px;
  --r-lg: 26px;
  --r-xl: 34px;

  /* Shadows */
  --sh-1: 0 1px 2px rgba(16,42,74,.06), 0 4px 14px rgba(16,42,74,.06);
  --sh-2: 0 10px 30px rgba(16,42,74,.10);
  --sh-3: 0 24px 60px rgba(16,42,74,.16);

  /* Spacing (8pt grid) */
  --s1: 8px;  --s2: 16px; --s3: 24px; --s4: 32px;
  --s5: 48px; --s6: 64px; --s7: 96px; --s8: 128px;

  --nav-h: 86px;
  --maxw: 1200px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text",
               "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: var(--text);
  background: var(--bg);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

img { max-width: 100%; display: block; }
a { color: var(--blue-600); text-decoration: none; transition: color .2s var(--ease); }
a:hover { color: var(--navy); }

/* ---------- Typography (iOS large-title scale) ---------- */
h1,h2,h3,h4 { color: var(--navy); letter-spacing: -0.02em; line-height: 1.08; margin: 0 0 var(--s2); font-weight: 700; }
h1 { font-size: clamp(2.4rem, 5.2vw, 4rem); letter-spacing: -0.03em; }
h2 { font-size: clamp(1.8rem, 3.4vw, 2.6rem); }
h3 { font-size: clamp(1.2rem, 2vw, 1.5rem); }
p  { margin: 0 0 var(--s2); color: var(--text-soft); font-size: 1.05rem; }
.lead { font-size: clamp(1.1rem, 1.7vw, 1.32rem); color: var(--text-soft); line-height: 1.6; }

.eyebrow {
  display: inline-block; font-size: .78rem; font-weight: 600; letter-spacing: .22em;
  text-transform: uppercase; color: var(--blue);
  padding: 0 0 4px; margin-bottom: var(--s2);
  position: relative;
}
.eyebrow--light { color: rgba(255,255,255,.72); }

/* ---------- Layout ---------- */
.container { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 var(--s3); }
.section  { padding: var(--s7) 0; }
.section--tight { padding: var(--s5) 0; }
.center { text-align: center; }
.section-head { max-width: 720px; margin: 0 auto var(--s5); }
.section-head.left { margin-left: 0; text-align: left; }

/* ---------- Buttons (iOS pill) ---------- */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 600; font-size: 1rem;
  padding: 13px 26px; border-radius: 100px;
  border: 1px solid transparent; cursor: pointer;
  transition: transform .2s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
  will-change: transform;
}
.btn:active { transform: scale(.97); }
.btn-primary { background: var(--grad-brand); color: #fff; box-shadow: 0 4px 14px rgba(43,162,220,.22); }
.btn-primary:hover { color:#fff; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(43,162,220,.3); }
.btn-ghost { background: rgba(255,255,255,.14); color:#fff; border-color: rgba(255,255,255,.4); backdrop-filter: blur(6px); }
.btn-ghost:hover { color:#fff; background: rgba(255,255,255,.24); transform: translateY(-2px); }
.btn-light { background:#fff; color: var(--navy); box-shadow: var(--sh-1); }
.btn-light:hover { color: var(--navy); transform: translateY(-2px); box-shadow: var(--sh-2); }
.btn-outline { background: transparent; color: var(--navy); border-color: var(--line); }
.btn-outline:hover { border-color: var(--blue); color: var(--blue-600); }

/* ---------- Navbar (minimal, transparent over hero) ---------- */
.nav {
  position: fixed; top: 0; left: 0; right: 0; height: var(--nav-h);
  display: flex; align-items: center; z-index: 100;
  background: transparent; border-bottom: 1px solid transparent;
  transition: background .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);
}
/* Solid state: on scroll, and on light-background pages */
.nav.scrolled, .nav--solid {
  background: rgba(255,255,255,.9);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border-bottom-color: var(--line);
  box-shadow: 0 2px 24px rgba(16,42,74,.07);
}
.nav .container { display: flex; align-items: center; justify-content: space-between; }
.brand { display: flex; align-items: center; gap: 10px; }
.brand > img { height: 34px; width: auto; }
/* wordmark cross-fades white -> navy, stacked in one spot so it never shows twice */
.brand-wordwrap { position: relative; display: inline-block; line-height: 0; }
.brand-word { height: 15px; width: auto; display: block; transition: opacity .35s var(--ease); }
.brand-word--dark { position: absolute; top: 0; left: 0; opacity: 0; }
.nav.scrolled .brand-word--light, .nav--solid .brand-word--light { opacity: 0; }
.nav.scrolled .brand-word--dark,  .nav--solid .brand-word--dark  { opacity: 1; }

.nav-links { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.nav-links a {
  position: relative; color: rgba(255,255,255,.82);
  font-weight: 500; font-size: .76rem; letter-spacing: .13em; text-transform: uppercase;
  padding: 10px 16px; transition: color .25s var(--ease);
}
.nav-links a::after {
  content: ""; position: absolute; left: 16px; right: 16px; bottom: 6px; height: 1.5px;
  background: currentColor; transform: scaleX(0); transform-origin: left;
  transition: transform .3s var(--ease);
}
.nav-links a:hover::after, .nav-links a.active::after { transform: scaleX(1); }
.nav-links a:hover, .nav-links a.active { color: #fff; }
.nav.scrolled .nav-links a, .nav--solid .nav-links a { color: var(--text-soft); }
.nav.scrolled .nav-links a:hover, .nav.scrolled .nav-links a.active,
.nav--solid .nav-links a:hover, .nav--solid .nav-links a.active { color: var(--navy); }

/* Slim, outlined CTA — replaces the heavy pill */
.nav-cta { margin-left: 14px; }
.nav-cta .btn {
  padding: 9px 20px; font-size: .74rem; font-weight: 600; letter-spacing: .11em; text-transform: uppercase;
  background: transparent; border: 1px solid rgba(255,255,255,.55); color: #fff; box-shadow: none;
}
.nav-cta .btn:hover { background: #fff; color: var(--navy); border-color: #fff; transform: none; box-shadow: none; }
.nav.scrolled .nav-cta .btn, .nav--solid .nav-cta .btn { border-color: var(--navy); color: var(--navy); }
.nav.scrolled .nav-cta .btn:hover, .nav--solid .nav-cta .btn:hover { background: var(--navy); color: #fff; border-color: var(--navy); }

.nav-toggle {
  display: none; width: 42px; height: 42px; border: none; background: transparent;
  cursor: pointer; border-radius: 12px; position: relative;
}
.nav-toggle span { position:absolute; left:11px; right:11px; height:2px; background:#fff; border-radius:2px; transition: all .3s var(--ease); }
.nav.scrolled .nav-toggle span, .nav--solid .nav-toggle span { background: var(--navy); }
.nav-toggle span:nth-child(1){ top:15px; } .nav-toggle span:nth-child(2){ top:21px; } .nav-toggle span:nth-child(3){ top:27px; }
.nav-toggle.open span { background: var(--navy); }
.nav-toggle.open span:nth-child(1){ transform: translateY(6px) rotate(45deg); }
.nav-toggle.open span:nth-child(2){ opacity:0; }
.nav-toggle.open span:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }

/* ---------- Hero ---------- */
.hero {
  position: relative; min-height: 92vh; display: flex; align-items: center;
  padding-top: var(--nav-h); overflow: hidden;
  background: var(--grad-deep); color: #fff;
}
.hero__inner { position: relative; z-index: 3; max-width: 780px; padding: var(--s6) 0; }
.hero h1 { color: #fff; margin-bottom: var(--s3); }
.hero .lead { color: rgba(255,255,255,.86); margin-bottom: var(--s4); max-width: 620px; }
.hero__actions { display: flex; gap: var(--s2); flex-wrap: wrap; }
.hero--page { min-height: 56vh; }
.hero--page .hero__inner { max-width: 820px; }

/* Animated waves at hero bottom */
.waves { position: absolute; left: 0; right: 0; bottom: -2px; z-index: 2; width: 100%; height: 22vh; min-height: 140px; }
.waves use { animation: waveMove 14s cubic-bezier(.55,.5,.45,.5) infinite; }
.waves use:nth-child(1){ animation-delay:-2s; animation-duration:9s;  }
.waves use:nth-child(2){ animation-delay:-3s; animation-duration:12s; }
.waves use:nth-child(3){ animation-delay:-4s; animation-duration:16s; }
@keyframes waveMove { 0%{ transform: translate3d(-90px,0,0);} 100%{ transform: translate3d(85px,0,0);} }

/* Floating blobs / particles in hero bg */
.hero__bg { position:absolute; inset:0; z-index:1; overflow:hidden; }
.blob { position:absolute; border-radius:50%; filter: blur(30px); opacity:.55; animation: float 18s ease-in-out infinite; }
.blob.b1 { width:420px; height:420px; background: radial-gradient(circle,#2BA2DC,transparent 70%); top:-80px; right:-60px; }
.blob.b2 { width:360px; height:360px; background: radial-gradient(circle,#3fb0e8,transparent 70%); bottom:40px; left:-100px; animation-delay:-6s; }
.blob.b3 { width:280px; height:280px; background: radial-gradient(circle,#1C86C4,transparent 70%); top:40%; left:45%; animation-delay:-11s; }
@keyframes float { 0%,100%{ transform: translate(0,0) scale(1);} 33%{ transform: translate(30px,-30px) scale(1.08);} 66%{ transform: translate(-25px,20px) scale(.95);} }

/* ---------- Cards & grids ---------- */
.grid { display: grid; gap: var(--s3); }
.grid-2 { grid-template-columns: repeat(2,1fr); }
.grid-3 { grid-template-columns: repeat(3,1fr); }
.grid-4 { grid-template-columns: repeat(4,1fr); }

.card {
  background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: var(--s4); box-shadow: var(--sh-1);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.card:hover { transform: translateY(-6px); box-shadow: var(--sh-3); border-color: transparent; }
.card .icon {
  width: 58px; height: 58px; border-radius: 16px; display: grid; place-items: center;
  background: var(--grad-brand); color: #fff; margin-bottom: var(--s3); box-shadow: 0 8px 20px rgba(43,162,220,.3);
}
.card .icon svg { width: 28px; height: 28px; }
.card h3 { margin-bottom: 10px; }
.card p { margin-bottom: 0; font-size: 1rem; }

.card--link { display:flex; flex-direction:column; }
.card--link .card__foot { margin-top: var(--s3); font-weight:600; color: var(--blue-600); display:inline-flex; align-items:center; gap:6px; }
.card--link:hover .card__foot span { transform: translateX(4px); }
.card__foot span { transition: transform .25s var(--ease); }

/* Division cards (bigger, gradient top) */
.division {
  position: relative; overflow: hidden; border-radius: var(--r-lg);
  background: #fff; border: 1px solid var(--line); box-shadow: var(--sh-1);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.division:hover { transform: translateY(-8px); box-shadow: var(--sh-3); }
.division__top {
  height: 130px; position: relative; overflow:hidden;
  background:
    linear-gradient(135deg, rgba(43,162,220,.80), rgba(26,57,105,.90)),
    var(--photo, none) center/cover no-repeat,
    var(--grad-brand);
}
/* per-division photo (heavily blue-tinted via the gradient overlay above) */
.division.d1 .division__top { --photo: url('https://images.unsplash.com/photo-1494412574643-ff11b0a5c1c3?auto=format&fit=crop&w=1200&q=60'); }
.division.d2 .division__top { --photo: url('https://images.unsplash.com/photo-1605902711622-cfb43c4437b5?auto=format&fit=crop&w=1200&q=60'); }
.division.d3 .division__top { --photo: url('https://images.unsplash.com/photo-1517400508447-f8dd518b86db?auto=format&fit=crop&w=1200&q=60'); }
.division__top svg { position:absolute; bottom:-1px; width:100%; }
.division__badge {
  position:absolute; top: 96px; left: var(--s4); width:64px; height:64px; border-radius:18px;
  background:#fff; display:grid; place-items:center; box-shadow: var(--sh-2); color: var(--blue-600);
}
.division__body { padding: var(--s5) var(--s4) var(--s4); }
.division__body h3 { margin-bottom: 8px; }

/* Feature list chips */
.chips { display:flex; flex-wrap:wrap; gap:10px; list-style:none; padding:0; margin:0; }
.chips li {
  padding: 9px 16px; background: var(--bg-soft); border:1px solid var(--line);
  border-radius: 100px; font-size: .92rem; font-weight:500; color: var(--text);
  transition: all .25s var(--ease);
}
.chips li:hover { background: var(--grad-brand); color:#fff; border-color:transparent; transform: translateY(-2px); }

/* Expertise columns */
.matrix { display:grid; grid-template-columns: repeat(4,1fr); gap: var(--s3); }
.matrix__col h4 { font-size: .82rem; text-transform:uppercase; letter-spacing:.1em; color: var(--blue); margin-bottom: var(--s2); }
.matrix__col ul { list-style:none; padding:0; margin:0; }
.matrix__col li { padding: 7px 0; color: var(--text-soft); border-bottom:1px solid var(--line); font-size:.98rem; }
.matrix__col li:last-child { border-bottom:none; }

/* ---------- Stats / counters ---------- */
.stats { background: var(--grad-deep); color:#fff; border-radius: var(--r-xl); padding: var(--s6) var(--s4); position:relative; overflow:hidden; }
.stats::before { content:""; position:absolute; inset:0; background:
  radial-gradient(600px 200px at 15% 0%, rgba(43,162,220,.35), transparent 60%),
  radial-gradient(500px 220px at 90% 100%, rgba(43,162,220,.25), transparent 60%); }
.stats .grid { position:relative; z-index:2; }
.stat { text-align:center; }
.stat__num { font-size: clamp(2.4rem,5vw,3.6rem); font-weight:800; letter-spacing:-.03em; color:#fff; line-height:1; }
.stat__num small { font-size:.42em; font-weight:700; margin-left:4px; color: var(--blue); vertical-align: super; }
.stat__label { margin-top: 10px; color: rgba(255,255,255,.78); font-size:1rem; letter-spacing:.02em; }

/* ---------- Split feature ---------- */
.split { display:grid; grid-template-columns: 1fr 1fr; gap: var(--s6); align-items:center; }
.split--rev .split__media { order: 2; }
.split__media {
  border-radius: var(--r-xl); overflow:hidden; box-shadow: var(--sh-2); position:relative;
  min-height: 340px;
  background:
    linear-gradient(150deg, rgba(43,162,220,.70), rgba(20,44,82,.88)),
    var(--photo, none) center/cover no-repeat,
    var(--grad-brand);
}
/* photo replaces the illustration in each split block (blue-tinted) */
.split__art { display: none; }
.sm-port { --photo: url('https://images.unsplash.com/photo-1601584115197-04ecc0da31d7?auto=format&fit=crop&w=1200&q=60'); }
.sm-fw   { --photo: url('https://images.unsplash.com/photo-1494412574643-ff11b0a5c1c3?auto=format&fit=crop&w=1200&q=60'); }
.sm-wh   { --photo: url('https://images.unsplash.com/photo-1605902711622-cfb43c4437b5?auto=format&fit=crop&w=1200&q=60'); }
.sm-tr   { --photo: url('https://images.unsplash.com/photo-1517400508447-f8dd518b86db?auto=format&fit=crop&w=1200&q=60'); }
.split ul.ticks { list-style:none; padding:0; margin: var(--s2) 0 var(--s3); }
.split ul.ticks li { position:relative; padding: 8px 0 8px 32px; color: var(--text); }
.split ul.ticks li::before {
  content:""; position:absolute; left:0; top:11px; width:20px; height:20px; border-radius:50%;
  background: var(--grad-brand);
  -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 16.2l-3.5-3.5L4 14.2 9 19l11-11-1.5-1.4z'/></svg>") center/13px 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 16.2l-3.5-3.5L4 14.2 9 19l11-11-1.5-1.4z'/></svg>") center/13px no-repeat;
}

/* ---------- CTA band ---------- */
.cta {
  background: var(--grad-brand); color:#fff; border-radius: var(--r-xl);
  padding: var(--s6) var(--s5); text-align:center; position:relative; overflow:hidden;
}
.cta h2 { color:#fff; }
.cta p { color: rgba(255,255,255,.9); max-width:560px; margin: 0 auto var(--s4); }
.cta::after { content:""; position:absolute; width:340px; height:340px; border-radius:50%;
  background: rgba(255,255,255,.12); top:-140px; right:-80px; }

/* ---------- Contact ---------- */
.contact-grid { display:grid; grid-template-columns: 1.1fr .9fr; gap: var(--s5); align-items:start; }
.form-card { background:#fff; border:1px solid var(--line); border-radius: var(--r-lg); padding: var(--s5); box-shadow: var(--sh-1); }
.field { margin-bottom: var(--s3); }
.field label { display:block; font-weight:600; font-size:.9rem; color: var(--navy); margin-bottom: 8px; }
.field input, .field textarea {
  width:100%; padding: 14px 16px; font: inherit; color: var(--text);
  background: var(--bg-soft); border:1px solid var(--line); border-radius: var(--r-sm);
  transition: border-color .2s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease);
}
.field input:focus, .field textarea:focus {
  outline:none; border-color: var(--blue); background:#fff;
  box-shadow: 0 0 0 4px rgba(43,162,220,.14);
}
.field textarea { min-height: 140px; resize: vertical; }
.form-note { font-size:.85rem; color: var(--text-soft); margin-top: 6px; }

.info-card { background: var(--grad-deep); color:#fff; border-radius: var(--r-lg); padding: var(--s5); box-shadow: var(--sh-2); }
.info-card h3 { color:#fff; }
.info-row { display:flex; gap:14px; align-items:flex-start; padding: 14px 0; border-bottom:1px solid rgba(255,255,255,.12); }
.info-row:last-child { border-bottom:none; }
.info-row .ic { flex:0 0 40px; width:40px; height:40px; border-radius:12px; background: rgba(255,255,255,.12); display:grid; place-items:center; }
.info-row .ic svg { width:20px; height:20px; }
.info-row a { color:#cfe8fa; } .info-row a:hover { color:#fff; }
.info-row span.lbl { display:block; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color: rgba(255,255,255,.6); margin-bottom:2px; }
.map-wrap { border-radius: var(--r-lg); overflow:hidden; box-shadow: var(--sh-1); border:1px solid var(--line); margin-top: var(--s4); }
.map-wrap iframe { width:100%; height:360px; border:0; display:block; }

.form-success {
  display:none; padding: var(--s3); border-radius: var(--r-sm);
  background: #e8f7ee; border:1px solid #b7e6c9; color:#166a3a; font-weight:500;
}
.form-success.show { display:block; }

/* ---------- Legal (long-form) ---------- */
.legal { max-width: 820px; margin: 0 auto; }
.legal h2 { margin-top: var(--s5); font-size: 1.5rem; }
.legal h3 { margin-top: var(--s4); font-size: 1.15rem; }
.legal p, .legal li { color: var(--text-soft); }
.legal ul { padding-left: 1.2em; }
.legal ul li { margin-bottom: 6px; }
.toc { background: var(--bg-soft); border:1px solid var(--line); border-radius: var(--r-md); padding: var(--s3) var(--s4); margin-bottom: var(--s4); }
.toc a { display:block; padding: 4px 0; }

/* ---------- Footer ---------- */
.footer { background: var(--navy-900); color: rgba(255,255,255,.72); padding: var(--s7) 0 var(--s4); position:relative; overflow:hidden; }
.footer__top { display:grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: var(--s4); }
.footer img.flogo { height: 28px; width: auto; margin-bottom: var(--s3); }
.footer h4 { color:#fff; font-size:.86rem; text-transform:uppercase; letter-spacing:.1em; margin-bottom: var(--s3); }
.footer a { color: rgba(255,255,255,.72); display:block; padding: 5px 0; }
.footer a:hover { color:#fff; }
.footer .fdesc { font-size:.95rem; max-width:300px; }
.footer .divider { height:1px; background: rgba(255,255,255,.12); margin: var(--s5) 0 var(--s3); }
.footer__bottom { display:flex; justify-content:space-between; flex-wrap:wrap; gap: var(--s2); font-size:.86rem; }
.footer__bottom a { display:inline; }

/* ---------- Scroll reveal ---------- */
.reveal { opacity:0; transform: translateY(28px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in { opacity:1; transform: none; }
.reveal.d1{ transition-delay:.08s;} .reveal.d2{ transition-delay:.16s;} .reveal.d3{ transition-delay:.24s;} .reveal.d4{ transition-delay:.32s;}

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
  .grid-3, .grid-4 { grid-template-columns: repeat(2,1fr); }
  .matrix { grid-template-columns: repeat(2,1fr); }
  .split, .contact-grid { grid-template-columns: 1fr; gap: var(--s5); }
  .split--rev .split__media { order: 0; }
  .footer__top { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
  :root { --nav-h: 66px; }
  .section { padding: var(--s6) 0; }
  .nav-links {
    position: fixed; inset: var(--nav-h) 0 auto 0; flex-direction: column; align-items: stretch;
    background: rgba(255,255,255,.96); backdrop-filter: blur(20px);
    padding: var(--s2); gap: 2px; border-bottom:1px solid var(--line);
    transform: translateY(-140%); transition: transform .4s var(--ease); box-shadow: var(--sh-2);
  }
  .nav-links.open { transform: translateY(0); }
  .nav-links a { padding: 15px 16px; font-size: .8rem; letter-spacing: .12em; color: var(--text); border-radius: var(--r-sm); }
  .nav-links a::after { display: none; }
  .nav-links a:hover, .nav-links a.active { color: var(--navy); background: var(--bg-tint); }
  .nav-links .nav-cta { margin: 10px 0 0; }
  .nav-links .nav-cta .btn { width:100%; justify-content:center; border-color: var(--navy); color: var(--navy); }
  .nav-links .nav-cta .btn:hover { background: var(--navy); color: #fff; }
  .nav-toggle { display:block; }
  .grid-2, .grid-3, .grid-4, .matrix { grid-template-columns: 1fr; }
  .footer__top { grid-template-columns: 1fr; gap: var(--s4); }
  .hero { min-height: 88vh; }
  .stats { padding: var(--s5) var(--s3); }
  .cta { padding: var(--s5) var(--s3); }
}

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; scroll-behavior: auto !important; }
  .reveal { opacity:1 !important; transform:none !important; }
}
