/* ═══════ Seamless photo integration — jaw-drop edition ═══════ */
/* ── HERO backdrop: clean pro blue (photo backdrop disabled) ── */
#home { position:relative; overflow:hidden; isolation:isolate; }
.cwc-hero-photo,
.cwc-hero-photo::after {
  display:none !important; background-image:none !important; animation:none !important;
}
#home > .h-bg, #home > .h-wrap { position:relative; z-index:1; }
/* ── Service cards: photo backdrop with gradient mask ── */
.svc-card { position:relative; overflow:hidden; }
.cwc-svc-photo {
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background-size:cover; background-position:center;
  opacity:.10; transition:opacity .5s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1);
  transform:scale(1.04);
}
.svc-card.dk .cwc-svc-photo { opacity:.18; }
.svc-card::before {
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(145deg, rgba(16,22,34,.0) 0%, rgba(16,22,34,.0) 45%, rgba(16,22,34,.55) 100%);
  opacity:0; transition:opacity .5s ease;
}
.svc-card:hover .cwc-svc-photo { opacity:.28; transform:scale(1.0); }
.svc-card.dk:hover .cwc-svc-photo { opacity:.42; }
.svc-card:hover::before { opacity:1; }
.svc-card > * { position:relative; z-index:2; }
.svc-card.cwc-bundle .cwc-svc-photo { opacity:.15; mix-blend-mode:screen; }
.svc-card.cwc-bundle:hover .cwc-svc-photo { opacity:.28; }
/* A permanent subtle backdrop for the bundle (blue) card */
.svc-card[style*="background:var(--blue)"] .cwc-svc-photo { mix-blend-mode:screen; opacity:.18; }
/* ── WHY section: photo strip accent ── */
.cwc-why-photo {
  position:relative; margin:56px auto 0; max-width:1160px; border-radius:28px; overflow:hidden;
  aspect-ratio: 21/6; box-shadow:0 40px 80px -24px rgba(0,0,0,.55);
  isolation:isolate;
}
.cwc-why-photo img {
  width:100%; height:100%; object-fit:cover; display:block;
  transform:scale(1.02); transition:transform 8s ease;
}
.cwc-why-photo:hover img { transform:scale(1.10); }
.cwc-why-photo::before {
  content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
  background:linear-gradient(90deg, rgba(8,11,18,.75) 0%, rgba(8,11,18,.25) 40%, rgba(8,11,18,0) 70%);
}
.cwc-why-photo .cwc-why-cap {
  position:absolute; left:48px; top:50%; transform:translateY(-50%); z-index:3;
  color:#fff; max-width:44%;
}
.cwc-why-photo .cwc-why-cap .eyebrow {
  font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; opacity:.85;
  font-weight:600; color:#7fb3ff;
}
.cwc-why-photo .cwc-why-cap .ttl {
  font-family:var(--fd,'Playfair Display',serif); font-size:clamp(1.5rem, 3.2vw, 2.6rem);
  line-height:1.05; margin-top:10px; font-weight:600;
}
.cwc-why-photo .cwc-why-cap .ttl em { color:#7fb3ff; font-style:italic; }
@media (max-width: 720px) {
  .cwc-why-photo { aspect-ratio: 4/3; border-radius:18px; }
  .cwc-why-photo .cwc-why-cap { left:22px; right:22px; max-width:none; }
}
/* ── PROCESS section: action-shot accent card ── */
.cwc-process-photo {
  max-width:1160px; margin:42px auto 0; display:grid;
  grid-template-columns: 1.3fr 1fr; gap:24px; align-items:stretch;
}
.cwc-process-photo .pp-img {
  border-radius:22px; overflow:hidden; aspect-ratio:4/3;
  box-shadow:0 28px 60px -20px rgba(0,0,0,.45);
}
.cwc-process-photo .pp-img img { width:100%; height:100%; object-fit:cover; display:block; }
.cwc-process-photo .pp-copy {
  background:linear-gradient(155deg, #0d1423 0%, #131c30 100%);
  color:#e5ebf5; border-radius:22px; padding:32px; display:flex; flex-direction:column; justify-content:center;
  border:1px solid rgba(127,179,255,.12);
}
.cwc-process-photo .pp-copy .kbd {
  display:inline-block; font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:#7fb3ff; font-weight:700;
  padding:6px 12px; border:1px solid rgba(127,179,255,.35); border-radius:999px; align-self:flex-start; margin-bottom:16px;
}
.cwc-process-photo .pp-copy h3 {
  font-family:var(--fd,'Playfair Display',serif); font-size:1.8rem; line-height:1.15; font-weight:600; margin:0 0 14px;
}
.cwc-process-photo .pp-copy p { color:#9aa6ba; line-height:1.65; margin:0 0 18px; }
.cwc-process-photo .pp-stats { display:grid; grid-template-columns:repeat(3, 1fr); gap:14px; margin-top:4px; }
.cwc-process-photo .pp-stats > div { text-align:center; padding:14px 8px; background:rgba(127,179,255,.05); border:1px solid rgba(127,179,255,.14); border-radius:12px; }
.cwc-process-photo .pp-stats .n { font-family:var(--fd,'Playfair Display',serif); font-size:1.4rem; color:#fff; font-weight:700; line-height:1; }
.cwc-process-photo .pp-stats .l { font-size:.65rem; color:#7fb3ff; letter-spacing:.14em; text-transform:uppercase; margin-top:6px; }
@media (max-width: 820px) {
  .cwc-process-photo { grid-template-columns:1fr; }
}
/* ═══════ JAW-DROP EDITORIAL GALLERY ═══════ */
#gallery { position:relative; padding: 96px 0 120px; }
#gallery .gal-head { max-width:960px; margin:0 auto 52px; padding:0 24px; text-align:center; }
#gallery .gal-head .s-sub { margin:0 auto; }
#gallery .gal-head .s-lbl { text-align:center; }
/* Hero pair (2 oversized side-by-side leads) — EQUAL HEIGHTS */
.cwc-ed-lead {
  max-width:1280px; margin:0 auto 48px; padding:0 24px;
  display:grid; grid-template-columns: 1.5fr 1fr; gap:18px;
  grid-auto-rows: clamp(380px, 42vw, 560px);
}
.cwc-ed-lead .ed-tile {
  position:relative; border-radius:20px; overflow:hidden; cursor:zoom-in;
  box-shadow:0 30px 60px -22px rgba(0,0,0,.55);
  aspect-ratio:auto; height:100%;
  background:#141c2c;
}
.cwc-ed-lead .ed-tile.tall  { aspect-ratio:auto; height:100%; }
.cwc-ed-lead .ed-tile img {
  width:100%; height:100%; object-fit:cover; display:block;
  transition: transform 1.1s cubic-bezier(.22,1,.36,1), filter .5s ease;
  transform:scale(1.02); filter:saturate(1.05);
}
.cwc-ed-lead .ed-tile:hover img { transform:scale(1.08); filter:saturate(1.15); }
.cwc-ed-lead .ed-tile::after {
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.55) 100%);
  opacity:.85; transition:opacity .3s ease;
}
.cwc-ed-lead .ed-tile:hover::after { opacity:1; }
.cwc-ed-lead .ed-cap {
  position:absolute; left:22px; bottom:18px; right:22px; z-index:2; color:#fff;
  display:flex; justify-content:space-between; align-items:flex-end; gap:12px;
}
.cwc-ed-lead .ed-cap .l {
  font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; font-weight:700;
  color:#fff; opacity:.96; text-shadow:0 2px 6px rgba(0,0,0,.4);
}
.cwc-ed-lead .ed-cap .r {
  font-size:.7rem; letter-spacing:.14em; color:#fff; opacity:.75;
  padding:4px 10px; background:rgba(0,0,0,.35); border-radius:999px;
  backdrop-filter: blur(6px);
}
@media (max-width: 820px) {
  .cwc-ed-lead { grid-template-columns: 1fr; gap:14px; }
  .cwc-ed-lead .ed-tile, .cwc-ed-lead .ed-tile.tall { aspect-ratio: 4/5; }
}
/* Editorial meta row */
.cwc-ed-meta {
  max-width:1280px; margin:0 auto 36px; padding:0 24px;
  display:flex; justify-content:space-between; align-items:center; gap:20px;
  color:#6b7790; font-size:.82rem; letter-spacing:.04em;
  border-top:1px solid rgba(255,255,255,.06); border-bottom:1px solid rgba(255,255,255,.06);
  padding-top:14px; padding-bottom:14px;
}
.cwc-ed-meta strong { color:#fff; font-weight:700; }
.cwc-ed-meta .dot { width:4px; height:4px; border-radius:50%; background:#2a3550; display:inline-block; margin:0 10px; vertical-align:middle; }
.cwc-ed-meta .kbhint { color:#7fb3ff; font-weight:600; letter-spacing:.12em; text-transform:uppercase; font-size:.7rem; }
@media (max-width: 680px) {
  .cwc-ed-meta { flex-direction:column; gap:6px; align-items:flex-start; font-size:.75rem; padding:12px 24px; }
}
/* Editorial masonry (CSS columns) */
.cwc-ed-masonry {
  max-width:1280px; margin:0 auto; padding:0 24px;
  column-count: 4;
  column-gap: 14px;
}
/* Show-more: hide cells after the first 12 until expanded */
.cwc-ed-masonry:not(.expanded) .cwc-ed-cell.is-extra { display:none; }
/* Show-more button */
.cwc-ed-more-wrap {
  max-width:1280px; margin:36px auto 0; padding:0 24px;
  display:flex; justify-content:center;
}
.cwc-ed-more-btn {
  appearance:none; border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.04); color:#fff;
  font:600 .88rem/1 var(--fs, system-ui);
  letter-spacing:.08em; text-transform:uppercase;
  padding:16px 32px; border-radius:999px; cursor:pointer;
  transition: background .2s ease, border-color .2s ease, transform .15s ease;
  backdrop-filter: blur(6px);
}
.cwc-ed-more-btn:hover { background:rgba(96,179,245,.14); border-color:rgba(96,179,245,.4); }
.cwc-ed-more-btn:active { transform:scale(.98); }
.cwc-ed-more-btn .count { opacity:.65; margin-left:6px; font-weight:500; }
@media (max-width: 1120px) { .cwc-ed-masonry { column-count: 3; } }
@media (max-width: 820px)  { .cwc-ed-masonry { column-count: 2; column-gap: 10px; } }
@media (max-width: 420px)  { .cwc-ed-masonry { column-count: 2; column-gap: 8px; } }
.cwc-ed-cell {
  break-inside: avoid; margin-bottom:14px; position:relative;
  border-radius:14px; overflow:hidden; cursor:zoom-in;
  display:block; background:#0f1626;
  box-shadow:0 12px 30px -14px rgba(0,0,0,.45);
  transform: translateY(12px); opacity:0;
  transition: transform .7s cubic-bezier(.22,1,.36,1), opacity .6s ease, box-shadow .35s ease;
}
.cwc-ed-cell.inview { transform:translateY(0); opacity:1; }
.cwc-ed-cell:hover { box-shadow:0 22px 45px -14px rgba(0,0,0,.6); }
.cwc-ed-cell img {
  width:100%; height:auto; display:block;
  transition: transform 1s cubic-bezier(.22,1,.36,1), filter .35s ease;
  filter: saturate(1.05);
}
.cwc-ed-cell:hover img { transform:scale(1.06); }
.cwc-ed-cell::after {
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(0,0,0,0) 60%, rgba(0,0,0,.45) 100%);
  opacity:0; transition:opacity .3s ease;
}
.cwc-ed-cell:hover::after { opacity:1; }
.cwc-ed-cell .badge {
  position:absolute; top:10px; left:10px; z-index:2;
  font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; font-weight:700;
  color:#fff; padding:4px 8px; background:rgba(0,0,0,.38); border-radius:999px;
  backdrop-filter: blur(6px);
  opacity:0; transform:translateY(-4px); transition: opacity .3s, transform .3s;
}
.cwc-ed-cell:hover .badge { opacity:1; transform:translateY(0); }
.cwc-ed-cell.featured::before {
  content:"✦"; position:absolute; top:10px; right:10px; z-index:2;
  width:26px; height:26px; border-radius:50%;
  background:#1a6fc4; color:#fff; font-size:.9rem;
  display:grid; place-items:center;
  box-shadow:0 4px 12px rgba(26,111,196,.5);
}
/* Lightbox */
#cwc-ed-lb {
  position:fixed; inset:0; z-index:9000; background:rgba(6,9,16,.96);
  display:none; align-items:center; justify-content:center;
  backdrop-filter: blur(14px);
}
#cwc-ed-lb.show { display:flex; }
#cwc-ed-lb .lb-stage { position:relative; width:100%; height:100%; display:grid; place-items:center; padding:24px; box-sizing:border-box; }
#cwc-ed-lb img { max-width:92vw; max-height:85vh; border-radius:10px; box-shadow:0 40px 80px -20px rgba(0,0,0,.7); }
#cwc-ed-lb .lb-nav {
  position:absolute; top:50%; transform:translateY(-50%);
  width:54px; height:54px; border-radius:50%; border:1px solid rgba(255,255,255,.18);
  background:rgba(20,28,44,.6); color:#fff; display:grid; place-items:center;
  cursor:pointer; backdrop-filter: blur(10px); font-size:1.3rem;
  transition: background .2s, border-color .2s, transform .15s;
}
#cwc-ed-lb .lb-nav:hover { background:rgba(26,111,196,.55); border-color:#7fb3ff; transform:translateY(-50%) scale(1.06); }
#cwc-ed-lb .lb-prev { left:28px; }
#cwc-ed-lb .lb-next { right:28px; }
#cwc-ed-lb .lb-close {
  position:absolute; top:20px; right:24px;
  width:46px; height:46px; border-radius:50%; border:1px solid rgba(255,255,255,.18);
  background:rgba(20,28,44,.6); color:#fff; display:grid; place-items:center;
  cursor:pointer; backdrop-filter: blur(10px); font-size:1.1rem;
  transition: background .2s, border-color .2s, transform .15s;
}
#cwc-ed-lb .lb-close:hover { background:rgba(220,60,80,.7); transform:scale(1.08); }
#cwc-ed-lb .lb-meta {
  position:absolute; bottom:18px; left:0; right:0; text-align:center;
  color:#9aa6ba; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600;
}
#cwc-ed-lb .lb-meta strong { color:#fff; }
#cwc-ed-lb .lb-counter { color:#7fb3ff; margin-right:10px; }
@media (max-width:640px) {
  #cwc-ed-lb .lb-nav { width:44px; height:44px; }
  #cwc-ed-lb .lb-prev { left:10px; }
  #cwc-ed-lb .lb-next { right:10px; }
  #cwc-ed-lb .lb-meta { font-size:.68rem; letter-spacing:.12em; }
}
/* ============================================================
   CWC MOBILE POLISH LAYER v2 — comprehensive mobile cleanup
   Higher specificity / later in document = wins cascade
   ============================================================ */
/* Prevent any horizontal overflow + iOS rubber-band weirdness */
html, body { max-width:100%; overflow-x:clip; }
* { -webkit-tap-highlight-color: rgba(26,111,196,.18); }
/* Fix iOS input zoom — anything ≥16px on inputs/selects */
@media (max-width:820px) {
  input, select, textarea, button { font-size:16px !important; }
}
/* ─── TABLET / LARGE PHONES (≤820px) ─── */
@media (max-width:820px) {
  /* tighten section vertical rhythm */
  section { padding:54px 18px !important; }
  .container { padding:0 4px; }
  /* hero — pure-blue mobile, dial in spacing */
  #home { padding:80px 16px 56px !important; min-height:auto; }
  .cwc-hero-card, .hero-card, .hero-inner { padding:28px 22px !important; border-radius:18px !important; }
  .hero h1, #home h1 { font-size:clamp(1.85rem, 7.2vw, 2.6rem) !important; line-height:1.15 !important; margin:0 0 14px !important; }
  .hero p, #home .hero-sub, #home p { font-size:clamp(1rem, 4vw, 1.12rem) !important; line-height:1.55 !important; }
  /* CTA buttons — full width feel, big touch targets */
  .btn, .cta-btn, .hero-ctas a, #home a.btn {
    min-height:50px; padding:14px 22px !important;
    font-size:1.02rem !important; letter-spacing:.02em;
    display:inline-flex; align-items:center; justify-content:center;
  }
  .hero-ctas, .cta-row { gap:12px !important; flex-wrap:wrap; }
  .hero-ctas a, .cta-row a { flex:1 1 100%; min-width:0; }
  /* section titles */
  h2, .section-title { font-size:clamp(1.55rem, 6.4vw, 2.1rem) !important; line-height:1.2 !important; margin-bottom:14px !important; }
  .section-sub, .section-intro { font-size:.98rem !important; }
  /* Service cards — tighter */
  .service, .service-card, .svc, .svc-card {
    padding:24px 20px !important; border-radius:16px !important;
  }
  .services-grid, .svc-grid, .grid-3, .grid-4 { gap:14px !important; }
  /* Reviews cards */
  .review, .review-card, .testimonial, .reviews-grid > * {
    padding:22px 20px !important; border-radius:16px !important;
  }
  .reviews-grid { gap:14px !important; }
  /* Areas served — keep 2 cols on phones */
  .areas-grid, .areas-list, #areas .grid {
    grid-template-columns:repeat(2, 1fr) !important;
    gap:10px !important;
  }
  .area, .area-card, .areas-grid > * {
    padding:14px 12px !important;
    font-size:.95rem !important;
    text-align:center;
    min-height:54px;
    display:flex; align-items:center; justify-content:center;
  }
  /* Quote / contact form */
  #quote, #contact, .quote-form { padding:48px 16px !important; }
  .quote-form-card, .form-card, form { padding:22px 18px !important; border-radius:16px !important; }
  .form-row, .form-grid { grid-template-columns:1fr !important; gap:12px !important; }
  input, select, textarea {
    padding:13px 14px !important; border-radius:10px !important;
    min-height:48px; box-sizing:border-box; width:100%;
  }
  textarea { min-height:110px; }
  label { font-size:.92rem !important; margin-bottom:6px !important; }
  /* Footer */
  footer { padding:36px 18px 24px !important; }
  .footer-grid, footer .grid { grid-template-columns:1fr !important; gap:24px !important; text-align:center; }
  /* Trust bar — keep horizontal scroll smooth */
  .trust-bar, .badges, .trust-row {
    -webkit-overflow-scrolling:touch; scroll-snap-type:x mandatory;
    padding:12px 16px !important; gap:18px !important;
  }
  .trust-bar > *, .badges > * { scroll-snap-align:start; flex:0 0 auto; }
  /* Top nav — better touch */
  #mainNav, nav#mainNav { padding:10px 14px !important; }
  .hamb, .hamburger, #cwc-hamb, .menu-toggle {
    width:44px !important; height:44px !important;
    display:flex !important; align-items:center; justify-content:center;
  }
  .nav-logo img, .logo img { max-height:38px !important; }
  /* Mobile sticky bar — safe-area aware */
  .mob-stk, #mob-stk, .sticky-cta {
    padding:10px 12px calc(10px + env(safe-area-inset-bottom)) !important;
    gap:8px !important;
  }
  .mob-stk a, #mob-stk a, .sticky-cta a {
    padding:13px 10px !important; font-size:.92rem !important; min-height:48px;
    display:flex; align-items:center; justify-content:center;
  }
  /* leave room above sticky bar so content isn't hidden */
  body { padding-bottom:72px; }
  /* portfolio / gallery thumbs */
  .cwc25-grid, .gal-grid, .gallery-grid {
    grid-template-columns:repeat(2, 1fr) !important;
    gap:8px !important;
  }
  .cwc25-item, .gal-item { border-radius:12px !important; }
}
/* ─── PHONES (≤480px) ─── */
@media (max-width:480px) {
  section { padding:44px 14px !important; }
  #home { padding:72px 14px 48px !important; }
  .cwc-hero-card, .hero-card, .hero-inner { padding:22px 18px !important; }
  .hero h1, #home h1 { font-size:clamp(1.7rem, 7.8vw, 2.2rem) !important; }
  .hero p, #home p { font-size:1rem !important; }
  h2, .section-title { font-size:clamp(1.45rem, 7vw, 1.85rem) !important; }
  .service, .service-card, .svc, .svc-card { padding:20px 16px !important; }
  .review, .review-card, .testimonial { padding:18px 16px !important; }
  /* Areas — go full width on the smallest phones for legibility */
  .area, .area-card, .areas-grid > * { font-size:.9rem !important; padding:12px 10px !important; }
  .btn, .cta-btn { padding:13px 18px !important; font-size:1rem !important; }
  .mob-stk a, #mob-stk a { font-size:.86rem !important; padding:12px 8px !important; }
}
/* ─── SMALL PHONES (≤380px) ─── */
@media (max-width:380px) {
  section { padding:38px 12px !important; }
  .cwc-hero-card, .hero-card { padding:20px 16px !important; }
  .hero h1, #home h1 { font-size:1.6rem !important; }
  h2, .section-title { font-size:1.4rem !important; }
  .areas-grid, .areas-list { grid-template-columns:1fr !important; }
  .area, .area-card { text-align:left !important; justify-content:flex-start !important; padding:12px 14px !important; }
  .btn, .cta-btn { font-size:.95rem !important; padding:12px 16px !important; }
  .mob-stk a, #mob-stk a { font-size:.8rem !important; padding:11px 6px !important; }
}
/* Landscape phones — keep hero compact */
@media (max-height:500px) and (orientation:landscape) and (max-width:920px) {
  #home { min-height:auto !important; padding:70px 16px 40px !important; }
  .cwc-hero-card { padding:20px 22px !important; }
}
/* Reduce motion respect */
@media (prefers-reduced-motion: reduce) {
  .cwc-hero-photo { animation:none !important; }
  * { scroll-behavior:auto !important; }
}
/* ── Mobile layout — keep Free Quote visible, shrink things that fit ── */
@media (max-width: 768px) {
  /* Shrink logo so the pill fits everything on narrow screens */
  #mainNav .nav-logo svg:not(.logo-mark-svg) { max-width: 110px !important; width: 110px !important; height: auto !important; }
  #mainNav .nav-logo-mark { width: 28px !important; height: 28px !important; }
  /* Shrink the nav-cta contents so Free Quote button stays visible without pushing hamburger off */
  #mainNav .nav-cta {
    display: flex !important;
    padding-left: 6px !important;
    margin-left: 0 !important;
    border-left: 0 !important;
    gap: 6px !important;
    flex-shrink: 1 !important;
    min-width: 0 !important;
  }
  #mainNav .nav-ph { display: none !important; } /* hide just the phone text, keep Free Quote */
  #mainNav .nav-cta .btn-p,
  #mainNav .nav-cta .btn-sm {
    padding: 7px 10px !important;
    font-size: .78rem !important;
    white-space: nowrap !important;
    line-height: 1.1 !important;
    min-width: 0 !important;
  }
  /* Nav layout — ensure hamburger stays pinned inside the pill, never clipped */
  #mainNav .nav-in {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    padding: 0 10px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  #mainNav .nav-logo { flex-shrink: 0 !important; }
  #mainNav .nav-cta { margin-left: auto !important; }
  #mainNav .hamburger {
    flex-shrink: 0 !important;
    width: 40px !important;
    height: 40px !important;
    align-self: center !important;
    padding: 6px !important;
    position: relative !important;
    z-index: 1101 !important; /* above everything inside the pill */
  }
  /* Keep nav pinned — remove will-change:transform iOS bug */
  #mainNav, nav#mainNav {
    position: fixed !important;
    top: 8px !important;
    left: 50% !important;
    transform: translate3d(-50%, 0, 0) !important;
    -webkit-transform: translate3d(-50%, 0, 0) !important;
    will-change: auto !important;
    width: calc(100% - 16px) !important;
    max-width: calc(100% - 16px) !important;
  }
  /* Bottom sticky bar — hardware-accelerated, safe-area aware, follows viewport */
  .mob-stk {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    top: auto !important;
    transform: translateZ(0) !important;
    -webkit-transform: translateZ(0) !important;
    will-change: auto !important;
    padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)) !important;
    z-index: 999 !important;
  }
  body { padding-bottom: 74px !important; }
}
/* ≤380px — really narrow phones, go smaller still */
@media (max-width: 380px) {
  #mainNav .nav-logo svg:not(.logo-mark-svg) { max-width: 92px !important; width: 92px !important; }
  #mainNav .nav-cta .btn-p { padding: 6px 8px !important; font-size: .72rem !important; }
}
.mob-nav.open { opacity: 1 !important; pointer-events: auto !important; }
