/* ═══════════════════════════════════════════════════════════════════
   CROWN STUDIO DESIGN — Mobile Fix / Override Layer v1.0
   Purpose: Resolve all mobile conflicts from layered style.css rules.
   This file is loaded AFTER style.css and is purely additive.
   ═══════════════════════════════════════════════════════════════════ */

/* ── 1. CSS CUSTOM PROPERTIES (mobile) ──────────────────────────── */
@media (max-width: 768px) {
  :root {
    --offer-h:       40px;   /* updated dynamically via JS */
    --nav-h:         64px;
    --sticky-bar-h:  68px;
    --section-pad:   52px;
    --section-pad-sm: 40px;
    --radius:        4px;
  }
}

/* ── 2. BODY / HTML RESET ────────────────────────────────────────── */
@media (max-width: 768px) {
  html {
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    overflow-x: hidden;
  }
  body {
    overflow-x: hidden;
    /* Bottom padding accounts for sticky CTA bar + safe area */
    padding-bottom: calc(var(--sticky-bar-h) + env(safe-area-inset-bottom, 0px)) !important;
  }
  * { box-sizing: border-box !important; }
  img, video, svg { max-width: 100%; height: auto; }
  .container {
    padding-left: 18px !important;
    padding-right: 18px !important;
    max-width: 100% !important;
  }
  .section    { padding: var(--section-pad) 0 !important; }
  .section--sm { padding: var(--section-pad-sm) 0 !important; }
}

/* ── 3. OFFER BAR (JS-injected at top) ──────────────────────────── */
@media (max-width: 768px) {
  .offer-bar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 10001 !important;
    background: var(--navy, #1B2F5E) !important;
    border-bottom: 1px solid rgba(201,169,77,0.3) !important;
    padding: 0 !important;
    backdrop-filter: none !important;
  }
  .offer-bar__inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 9px 18px !important;
    gap: 10px !important;
  }
  .offer-bar__msg {
    font-size: 12px !important;
    font-weight: 600 !important;
    color: rgba(255,255,255,0.9) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    flex: 1 !important;
    min-width: 0 !important;
  }
  .offer-bar__msg .muted { display: none !important; }
  .offer-bar__actions {
    display: flex !important;
    gap: 7px !important;
    flex-shrink: 0 !important;
  }
  /* Override any btn styles inside offer bar */
  .offer-bar .btn,
  .offer-bar__actions .btn {
    padding: 7px 12px !important;
    font-size: 10px !important;
    letter-spacing: 0.12em !important;
    min-height: 32px !important;
    white-space: nowrap !important;
    border-radius: 3px !important;
    line-height: 1 !important;
  }
  .offer-bar .btn.secondary,
  .offer-bar__actions .btn:first-child {
    background: rgba(255,255,255,0.12) !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,0.25) !important;
  }
  .offer-bar .btn.primary,
  .offer-bar__actions .btn:last-child {
    background: var(--gold, #C9A94D) !important;
    color: var(--navy-dark, #111E3E) !important;
    border: none !important;
    font-weight: 700 !important;
  }
}
@media (max-width: 380px) {
  .offer-bar__actions .btn:first-child { display: none !important; }
}

/* ── 4. NAVIGATION ───────────────────────────────────────────────── */
@media (max-width: 768px) {
  .nav {
    position: fixed !important;
    /* JS sets top dynamically via --offer-h */
    top: var(--offer-h, 40px) !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 9999 !important;
    height: var(--nav-h) !important;
    background: rgba(255,255,255,0.97) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    box-shadow: 0 2px 16px rgba(27,47,94,0.12) !important;
  }
  /* Force white nav even on hero pages */
  .nav--hero,
  .nav--hero.scrolled {
    background: rgba(255,255,255,0.97) !important;
    box-shadow: 0 2px 16px rgba(27,47,94,0.12) !important;
  }
  .nav-inner {
    height: var(--nav-h) !important;
    padding: 0 16px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    max-width: 100% !important;
    gap: 0 !important;
  }
  .nav-logo {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    flex-shrink: 0 !important;
  }
  .nav-logo img,
  .nav.scrolled .nav-logo img {
    height: 42px !important;
    width: auto !important;
  }
  .nav-links { display: none !important; }
  .nav-cta   { display: none !important; }
  .nav-wa    { display: none !important; }

  /* Hamburger */
  .hamburger {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
  }
  .hamburger span {
    display: block !important;
    width: 22px !important;
    height: 2px !important;
    background: var(--navy) !important;
    border-radius: 2px !important;
    transition: transform 0.25s ease, opacity 0.2s ease !important;
    transform-origin: center !important;
  }
  /* X animation */
  .hamburger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg) !important; }
  .hamburger.is-open span:nth-child(2) { opacity: 0 !important; transform: scaleX(0) !important; }
  .hamburger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg) !important; }

  /* nav--hero text color fix */
  .nav--hero .hamburger span { background: var(--navy) !important; }
  .nav--hero .nav-links a    { color: var(--navy) !important; }
}

/* ── 5. MOBILE DRAWER (full-screen slide-in) ─────────────────────── */
@media (max-width: 768px) {
  /* Single, definitive drawer definition — resolves translateY vs translateX conflict */
  .mobile-drawer {
    display: flex !important;   /* always in DOM; visibility/transform control appearance */
    flex-direction: column !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: var(--white, #fff) !important;
    z-index: 9998 !important;
    padding-top: calc(var(--offer-h, 40px) + var(--nav-h, 64px) + 8px) !important;
    padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    /* Hidden state */
    transform: translateX(100%) !important;
    transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1) !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
  .mobile-drawer.open {
    transform: translateX(0) !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
  /* Drawer links */
  .mobile-drawer a {
    font-family: var(--font-head, sans-serif) !important;
    font-size: 14px !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: var(--navy, #1B2F5E) !important;
    padding: 16px 24px !important;
    border-bottom: 1px solid rgba(27,47,94,0.07) !important;
    display: flex !important;
    align-items: center !important;
    text-decoration: none !important;
    min-height: 52px !important;
    font-weight: 600 !important;
    transition: background 0.15s !important;
    background: transparent !important;
  }
  .mobile-drawer a:hover,
  .mobile-drawer a:active { background: rgba(201,169,77,0.08) !important; color: var(--gold-dark, #A8882A) !important; }

  /* Divider */
  .drawer-divider {
    border: none !important;
    border-top: 2px solid rgba(27,47,94,0.08) !important;
    margin: 6px 20px !important;
  }

  /* WhatsApp link */
  .drawer-wa,
  .mobile-drawer a.drawer-wa {
    color: #25d366 !important;
    font-weight: 700 !important;
    gap: 10px !important;
  }

  /* CTA button in drawer */
  .mobile-drawer .btn-gold,
  .mobile-drawer a.btn-gold {
    background: var(--gold, #C9A94D) !important;
    color: var(--navy-dark, #111E3E) !important;
    margin: 14px 20px 0 !important;
    width: calc(100% - 40px) !important;
    justify-content: center !important;
    padding: 16px 20px !important;
    font-size: 11px !important;
    letter-spacing: 0.18em !important;
    border-radius: 6px !important;
    min-height: 52px !important;
    border-bottom: none !important;
  }
}

/* ── 6. HERO SECTION ─────────────────────────────────────────────── */
@media (max-width: 768px) {
  .hero {
    min-height: 100svh !important;
    min-height: 100vh !important; /* fallback */
    align-items: flex-end !important;
  }
  /* Darker overlay for legibility on mobile */
  .hero__overlay {
    background: linear-gradient(180deg, rgba(17,30,62,0.5) 0%, rgba(17,30,62,0.88) 100%) !important;
  }
  /* Old class compatibility */
  .hero-bg .hero-overlay,
  .hero-content + .hero__overlay {
    background: linear-gradient(180deg, rgba(17,30,62,0.5) 0%, rgba(17,30,62,0.88) 100%) !important;
  }
  .hero__content,
  .hero-content {
    padding: calc(var(--nav-h, 64px) + var(--offer-h, 40px) + 20px) 18px 140px !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  .hero__title,
  .hero h1 {
    font-size: clamp(1.9rem, 9vw, 2.8rem) !important;
    line-height: 1.08 !important;
    margin-bottom: 14px !important;
    word-break: break-word !important;
  }
  .hero__sub,
  .hero-sub {
    font-size: 15px !important;
    line-height: 1.6 !important;
    margin-bottom: 24px !important;
    max-width: 100% !important;
    color: rgba(255,255,255,0.84) !important;
  }
  /* CTA buttons in hero — make visible on dark background */
  .hero__ctas,
  .hero .btn-row {
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
  }
  .hero__ctas .btn,
  .hero .btn-row .btn {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
    padding: 16px 20px !important;
    min-height: 50px !important;
    font-size: 11px !important;
    letter-spacing: 0.16em !important;
  }
  /* Fix btn-primary on hero (navy on dark = invisible) */
  .hero__ctas .btn-primary,
  .hero .btn-primary {
    background: var(--gold, #C9A94D) !important;
    color: var(--navy-dark, #111E3E) !important;
  }
  /* Fix btn-ghost on hero (navy text = invisible on dark) */
  .hero__ctas .btn-ghost,
  .hero .btn-ghost {
    background: rgba(255,255,255,0.1) !important;
    color: #ffffff !important;
    border: 1px solid rgba(255,255,255,0.4) !important;
  }
  .hero__ctas .btn-ghost:hover,
  .hero .btn-ghost:hover {
    background: rgba(255,255,255,0.18) !important;
  }
  /* Eyebrow / urgency pill in hero */
  .hero .urgency-pill,
  .hero .eyebrow {
    font-size: 10px !important;
    letter-spacing: 0.22em !important;
  }
  /* Hide scroll hint on mobile */
  .hero__scroll,
  .hero-scroll { display: none !important; }
  /* Dots and progress */
  .hero__dots {
    right: 50% !important;
    transform: translateX(50%) !important;
    bottom: calc(80px + env(safe-area-inset-bottom, 0px)) !important;
  }
  .hero__progress { height: 3px !important; }
}

/* ── 7. PAGE HERO (inner pages) ──────────────────────────────────── */
@media (max-width: 768px) {
  .page-hero {
    padding-top: calc(var(--nav-h, 64px) + var(--offer-h, 40px) + 28px) !important;
    padding-bottom: 48px !important;
    min-height: auto !important;
  }
  .page-hero h1 {
    font-size: clamp(22px, 7vw, 32px) !important;
    line-height: 1.15 !important;
    margin-top: 10px !important;
    word-break: break-word !important;
  }
  .page-hero .lead { font-size: 14px !important; line-height: 1.6 !important; }
  .page-hero .eyebrow { font-size: 9px !important; }
  .breadcrumb {
    font-size: 10px !important;
    line-height: 1.5 !important;
    word-break: break-word !important;
  }
}

/* ── 8. TRUST BAR ────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .trust-bar { display: none !important; }
  /* trust-strip (newer class) — keep visible */
  .trust-strip { padding: 14px 0 !important; overflow: hidden !important; }
  .trust-strip__inner {
    flex-wrap: nowrap !important;
    gap: 28px !important;
    animation: ticker 22s linear infinite !important;
    width: max-content !important;
    padding: 0 18px !important;
    will-change: transform !important;
  }
  .trust-strip__item { font-size: 11px !important; white-space: nowrap !important; }
}

/* ── 9. TYPOGRAPHY ───────────────────────────────────────────────── */
@media (max-width: 768px) {
  .display-xl { font-size: clamp(30px, 9vw, 46px) !important; line-height: 1.05 !important; }
  .display-lg { font-size: clamp(24px, 7vw, 36px) !important; line-height: 1.08 !important; }
  .display-md { font-size: clamp(20px, 6vw, 29px) !important; line-height: 1.12 !important; }
  .display-sm { font-size: clamp(17px, 5vw, 23px) !important; line-height: 1.18 !important; }
  .lead { font-size: clamp(14px, 4vw, 17px) !important; line-height: 1.65 !important; }
  h1, h2, h3, h4 { word-break: break-word !important; overflow-wrap: break-word !important; }
  p { font-size: 15px !important; }
  .label { font-size: 10px !important; letter-spacing: 0.24em !important; }
  .eyebrow { font-size: 10px !important; letter-spacing: 0.22em !important; }
}

/* ── 10. SECTION HEADER ──────────────────────────────────────────── */
@media (max-width: 768px) {
  .section-hdr,
  .section-header,
  .section-head {
    text-align: center !important;
    margin-bottom: 32px !important;
  }
  .section-hdr h2,
  .section-header h2 { font-size: clamp(20px, 6vw, 28px) !important; }
  .section-hdr p,
  .section-header p { font-size: 14px !important; line-height: 1.6 !important; }
  .gold-rule {
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* ── 11. STATS BAR ───────────────────────────────────────────────── */
@media (max-width: 768px) {
  .stats-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 0 !important;
  }
  .stat-item {
    padding: 24px 12px !important;
    border-right: 1px solid rgba(255,255,255,0.08) !important;
    border-bottom: 1px solid rgba(255,255,255,0.08) !important;
  }
  .stat-item:nth-child(even)   { border-right: none !important; }
  .stat-item:nth-child(3),
  .stat-item:nth-child(4)      { border-bottom: none !important; }
  .stat-num { font-size: clamp(32px, 8vw, 48px) !important; }
  .stat-label { font-size: 10px !important; }
}

/* ── 12. SERVICE GRID ────────────────────────────────────────────── */
@media (max-width: 768px) {
  .svc-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 1px !important;
  }
  .svc-card { padding: 18px 14px !important; }
  .svc-card h3 { font-size: 14px !important; }
  .svc-card p  { font-size: 12px !important; }
}
@media (max-width: 400px) {
  .svc-grid { grid-template-columns: 1fr !important; }
}

/* ── 13. SERVICE INDEX GRID ──────────────────────────────────────── */
@media (max-width: 768px) {
  .svc-index-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 1px !important;
    background: rgba(27,47,94,0.06) !important;
    border: 1px solid rgba(27,47,94,0.06) !important;
    border-radius: 12px !important;
    overflow: hidden !important;
  }
  .svc-index-card {
    padding: 16px 12px !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }
  .svc-index-card:hover { transform: none !important; }
  .svc-index-num  { font-size: 9px !important; }
  .svc-index-card h3 { font-size: 13px !important; line-height: 1.3 !important; }
  .svc-index-card p  { font-size: 11px !important; }
}
@media (max-width: 360px) {
  .svc-index-grid { grid-template-columns: 1fr !important; }
}

/* ── 14. SPLIT GRID ──────────────────────────────────────────────── */
@media (max-width: 768px) {
  .split-grid {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
  .split-img { height: 260px !important; object-fit: cover !important; }
  .years-badge {
    bottom: -12px !important;
    right: 12px !important;
    width: 90px !important;
    padding: 16px !important;
  }
  .years-num { font-size: 28px !important; }
}

/* ── 15. FEATURES GRID ───────────────────────────────────────────── */
@media (max-width: 768px) {
  .features-grid { grid-template-columns: 1fr 1fr !important; gap: 6px !important; }
  .feature-item  { padding: 10px 12px !important; }
  .feature-item h4 { font-size: 10px !important; line-height: 1.4 !important; }
}
@media (max-width: 375px) {
  .features-grid { grid-template-columns: 1fr !important; }
}

/* ── 16. PROCESS GRID ────────────────────────────────────────────── */
@media (max-width: 768px) {
  .process-grid { grid-template-columns: 1fr !important; gap: 2px !important; }
  .process-step { padding: 22px 18px !important; }
  .process-num  { font-size: 40px !important; }
  .process-step h3 { font-size: 10px !important; }
  .process-step p  { font-size: 13px !important; }
}
@media (max-width: 768px) {
  .process-steps { grid-template-columns: 1fr 1fr !important; gap: 2px !important; }
}
@media (max-width: 400px) {
  .process-steps { grid-template-columns: 1fr !important; }
}

/* ── 17. REVIEWS / TESTIMONIALS ──────────────────────────────────── */
@media (max-width: 768px) {
  .reviews-grid { grid-template-columns: 1fr !important; gap: 12px !important; }
  .review-card  { padding: 20px 16px !important; }
  .review-text  { font-size: 15px !important; line-height: 1.55 !important; }
  .review-author { font-size: 10px !important; }
  .pull-quote   { font-size: clamp(16px, 4.5vw, 22px) !important; line-height: 1.5 !important; }
}

/* ── 18. GALLERY GRID ────────────────────────────────────────────── */
@media (max-width: 768px) {
  .gallery-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 2px !important;
  }
  .gallery-item:first-child { grid-column: span 1 !important; grid-row: span 1 !important; }
  .gallery-item { aspect-ratio: 4/3 !important; }
}

/* ── 19. LOCATIONS GRID ──────────────────────────────────────────── */
@media (max-width: 768px) {
  .locations-grid { grid-template-columns: 1fr !important; gap: 14px !important; }
  .location-card  { padding: 20px 16px !important; }
  .location-card h3 { font-size: 20px !important; }
  .location-svc-links a { font-size: 10px !important; padding: 5px 9px !important; }
}

/* ── 20. FOOTER ──────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .footer { padding: 44px 0 0 !important; }
  .footer-grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    padding: 0 18px 44px !important;
  }
  .footer-logo   { height: 44px !important; }
  .footer-tagline { font-size: 14px !important; }
  .footer-col h5  { font-size: 10px !important; letter-spacing: 0.2em !important; margin-bottom: 12px !important; }
  .footer-col ul  { gap: 6px !important; }
  .footer-col a   { font-size: 14px !important; min-height: 36px !important; display: inline-flex !important; align-items: center !important; }
  .footer-bottom {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 8px !important;
    padding: 16px 18px calc(16px + env(safe-area-inset-bottom, 0px)) !important;
  }
  .footer-legal { gap: 12px !important; flex-wrap: wrap !important; justify-content: center !important; }
  .footer-legal a { font-size: 12px !important; }
}

/* ── 21. CONTACT / FORM ──────────────────────────────────────────── */
@media (max-width: 768px) {
  .contact-grid { grid-template-columns: 1fr !important; gap: 32px !important; }
  .contact-form .form-row { grid-template-columns: 1fr !important; }
  .form-group input,
  .form-group select,
  .form-group textarea {
    font-size: 16px !important; /* CRITICAL: prevents iOS auto-zoom */
    padding: 14px !important;
    border-radius: 6px !important;
  }
  .form-group textarea { min-height: 110px !important; }
  .appt-grid  { grid-template-columns: 1fr !important; gap: 14px !important; }
  .appt-type  { padding: 22px 18px !important; }
  .appt-num   { font-size: 36px !important; }
}

/* ── 22. THREE-COL / MISC GRIDS ──────────────────────────────────── */
@media (max-width: 768px) {
  .three-col    { grid-template-columns: 1fr !important; gap: 12px !important; }
  .mini-grid    { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
  .resources-grid { grid-template-columns: 1fr !important; gap: 12px !important; }
  .appt-grid    { grid-template-columns: 1fr !important; }
  .giveaway-steps { grid-template-columns: 1fr !important; }
  .giveaway-hero { padding: 40px 20px !important; }
  .giveaway-hero h2 { font-size: 32px !important; }
  .ba-grid      { grid-template-columns: 1fr !important; }
  .ba-cols      { grid-template-columns: 1fr !important; }
  .comparison-grid { grid-template-columns: 1fr !important; gap: 12px !important; }
}
@media (max-width: 400px) {
  .mini-grid { grid-template-columns: 1fr !important; }
}

/* ── 23. CITY INDEX / AREAS ──────────────────────────────────────── */
@media (max-width: 768px) {
  .city-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1px !important;
    background: rgba(27,47,94,0.08) !important;
    border-radius: 12px !important;
    overflow: hidden !important;
  }
  .city-card {
    background: rgba(255,255,255,0.04) !important;
    padding: 16px 12px !important;
    border: none !important;
    border-radius: 0 !important;
  }
  .city-card h3 { font-size: 13px !important; }
  .city-card p  { font-size: 11px !important; }
  .city-stats-box {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 0 !important;
    border-radius: 8px !important;
    overflow: hidden !important;
  }
  .city-stat { padding: 14px 8px !important; }
  .city-stat-n { font-size: 20px !important; }
  .city-stat-l { font-size: 9px !important; }
  .city-tags   { gap: 6px !important; }
  .city-svc-tag { font-size: 10px !important; padding: 7px 10px !important; min-height: 32px !important; }
  .svc-tag      { font-size: 10px !important; padding: 6px 10px !important; }
  .area-tag     { font-size: 11px !important; padding: 5px 10px !important; }
}
@media (max-width: 360px) {
  .city-grid { grid-template-columns: 1fr !important; }
}

/* ── 24. CTA SECTION / BANNER ────────────────────────────────────── */
@media (max-width: 768px) {
  .cta-section { padding: 56px 0 !important; }
  .cta-banner[data-block] { padding: 52px 0 !important; }
  .cta-banner[data-block] h2 { font-size: clamp(20px, 7vw, 28px) !important; }
  .cta-banner[data-block] p  { font-size: 14px !important; margin: 10px 0 24px !important; }
  .cta-group {
    flex-direction: column !important;
    gap: 10px !important;
    padding: 0 18px !important;
  }
  .cta-group .btn,
  .cta-actions a {
    width: 100% !important;
    justify-content: center !important;
    min-height: 50px !important;
  }
  /* Generic cta-banner without data attribute */
  .cta-banner {
    flex-direction: column !important;
    align-items: stretch !important;
    padding: 20px 18px !important;
    gap: 14px !important;
  }
  .cta-actions { flex-direction: column !important; gap: 10px !important; }
  .cta-actions a { width: 100% !important; justify-content: center !important; }
}

/* ── 25. FAQ ──────────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .faq-btn h3,
  .faq-question { font-size: 13px !important; line-height: 1.45 !important; }
  .faq-answer p { font-size: 14px !important; line-height: 1.65 !important; }
  .faq-btn { gap: 14px !important; }
  .faq-cta { padding: 28px 18px !important; }
  .faq-question { min-height: 52px !important; }
}

/* ── 26. BUTTON ROWS ─────────────────────────────────────────────── */
@media (max-width: 768px) {
  .btn-row {
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
    margin-top: 20px !important;
  }
  .btn-row .btn {
    width: 100% !important;
    justify-content: center !important;
    min-height: 50px !important;
    font-size: 11px !important;
  }
}

/* ── 27. FEATURE SPLIT (showroom / service pages) ────────────────── */
@media (max-width: 768px) {
  .feature-split {
    grid-template-columns: 1fr !important;
    min-height: auto !important;
  }
  .feature-split__img { height: 240px !important; overflow: hidden !important; }
  .feature-split__img img {
    width: 100% !important;
    height: 240px !important;
    object-fit: cover !important;
    object-position: center 30% !important;
  }
  .feature-split__content {
    padding: 30px 18px !important;
  }
  .feature-split__content h2 { font-size: clamp(20px, 6vw, 26px) !important; }
}

/* ── 28. SERVICE AREAS / CHIPS ───────────────────────────────────── */
@media (max-width: 768px) {
  .svc-areas-grid { grid-template-columns: 1fr !important; }
  .svc-list-grid  { grid-template-columns: 1fr !important; }
  .svc-list-row   { padding: 14px 16px !important; }
  .svc-list-name  { font-size: 12px !important; }
  .svc-list-desc  { font-size: 12px !important; }
  .chip-row       { gap: 7px !important; }
  .chip           { font-size: 12px !important; padding: 8px 12px !important; }
  .nearby-links   { gap: 8px !important; }
}

/* ── 29. MOBILE STICKY CTA BAR ────────────────────────────────────── */
@media (max-width: 768px) {
  .mobile-sticky-cta {
    display: block !important;
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 9990 !important;
    background: rgba(255,255,255,0.98) !important;
    border-top: 2px solid rgba(27,47,94,0.1) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    padding: 10px 0 calc(10px + env(safe-area-inset-bottom, 0px)) !important;
    box-shadow: 0 -4px 20px rgba(27,47,94,0.12) !important;
  }
  .mobile-sticky-cta__inner,
  .mobile-sticky-cta .mobile-sticky-cta__inner {
    display: flex !important;
    gap: 8px !important;
    align-items: stretch !important;
    padding: 0 18px !important;
  }
  .mobile-sticky-cta .btn-wa {
    background: #25D366 !important;
    color: #fff !important;
    border: none !important;
    flex: 0 0 auto !important;
    padding: 13px 18px !important;
    font-size: 11px !important;
    min-height: 48px !important;
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
    border-radius: 6px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
  }
  .mobile-sticky-cta .btn-schedule,
  .mobile-sticky-cta .btn:last-child {
    background: var(--navy, #1B2F5E) !important;
    color: #fff !important;
    border: none !important;
    flex: 1 !important;
    padding: 13px 16px !important;
    font-size: 11px !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    font-weight: 700 !important;
    min-height: 48px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 6px !important;
    text-decoration: none !important;
  }
  /* Hide old wa-fab since we have sticky bar */
  .wa-fab,
  .wa-float { display: none !important; }
}

/* ── 30. WHY BOX / DIFF LIST ─────────────────────────────────────── */
@media (max-width: 768px) {
  .why-box  { padding: 20px 16px !important; }
  .why-item { gap: 10px !important; }
  .why-item p { font-size: 13px !important; }
  .diff-item p { font-size: 13px !important; }
  .diff-item h4 { font-size: 10px !important; }
  .local-tip-box { padding: 14px 16px !important; }
  .local-tip-box p { font-size: 13px !important; }
  .showroom-box { padding: 14px 16px !important; }
  .nbhd-box { padding: 14px !important; }
}

/* ── 31. BACK TO TOP ─────────────────────────────────────────────── */
@media (max-width: 768px) {
  .back-to-top,
  #backToTop {
    bottom: calc(var(--sticky-bar-h, 68px) + 14px + env(safe-area-inset-bottom, 0px)) !important;
    right: 14px !important;
    width: 40px !important;
    height: 40px !important;
    font-size: 14px !important;
  }
}

/* ── 32. SCROLLABLE HORIZONTAL CARDS ─────────────────────────────── */
@media (max-width: 768px) {
  /* Portfolio / project cards - horizontal scroll */
  .section--navy-deep .grid-3 {
    display: flex !important;
    flex-direction: row !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    gap: 12px !important;
    padding: 4px 18px 16px !important;
    margin: 0 -18px !important;
    scrollbar-width: none !important;
  }
  .section--navy-deep .grid-3::-webkit-scrollbar { display: none !important; }
  .section--navy-deep .grid-3 > * {
    flex: 0 0 82vw !important;
    max-width: 310px !important;
    scroll-snap-align: start !important;
  }
}

/* ── 33. TOUCH TARGETS (WCAG 2.5.5 minimum 44x44) ───────────────── */
@media (max-width: 768px) {
  .btn       { min-height: 44px !important; }
  a.btn      { display: inline-flex !important; align-items: center !important; justify-content: center !important; }
  .svc-tag, .city-svc-tag, .city-tag, .area-pill {
    min-height: 34px !important;
    display: inline-flex !important;
    align-items: center !important;
  }
  .hamburger     { min-width: 44px !important; min-height: 44px !important; }
  .faq-btn       { min-height: 52px !important; }
  .mobile-drawer a { min-height: 52px !important; }
  .footer-col a  { min-height: 36px !important; }
  .nav-logo      { min-height: 44px !important; display: flex !important; align-items: center !important; }
}

/* ── 34. OVERFLOW PREVENTION ─────────────────────────────────────── */
@media (max-width: 768px) {
  .footer-grid, .split-grid, .features-grid,
  .why-box, .city-stats-box, .nbhd-box,
  .showroom-box, .local-tip-box, .svc-tag-cloud,
  .city-tags, .section-hdr, .contact-grid {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }
  table { display: block !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch !important; }
  pre   { overflow-x: auto !important; max-width: 100% !important; }
}

/* ── 35. SMALL PHONES (≤375px) ───────────────────────────────────── */
@media (max-width: 375px) {
  html { font-size: 15px !important; }
  .container { padding: 0 14px !important; }
  .hero__title { font-size: clamp(1.7rem, 9vw, 2.1rem) !important; }
  .display-md  { font-size: clamp(17px, 6vw, 22px) !important; }
  .svc-index-card h3 { font-size: 12px !important; }
  .features-grid { grid-template-columns: 1fr !important; }
  .offer-bar__inner { padding: 8px 14px !important; }
}

/* ── 36. TABLET / iPAD (769–1024px) ──────────────────────────────── */
@media (min-width: 769px) and (max-width: 1024px) {
  .container       { padding: 0 28px !important; }
  .section         { padding: 72px 0 !important; }
  .svc-index-grid  { grid-template-columns: repeat(3, 1fr) !important; }
  .footer-grid     { grid-template-columns: 1fr 1fr 1fr !important; gap: 32px !important; }
  .split-grid      { gap: 48px !important; }
  .reviews-grid    { grid-template-columns: 1fr 1fr !important; }
  .city-grid       { grid-template-columns: repeat(3, 1fr) !important; }
  .features-grid   { grid-template-columns: repeat(2, 1fr) !important; }
  .stats-grid      { grid-template-columns: repeat(2, 1fr) !important; }
  .locations-grid  { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ── 37. REDUCED MOTION ───────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .trust-strip__inner { animation: none !important; }
  .trust-bar-inner    { animation: none !important; }
  .hero__slide        { transition: opacity 0.3s ease !important; transform: scale(1) !important; }
  .mobile-drawer      { transition: none !important; }
  .reveal             { transition: none !important; opacity: 1 !important; transform: none !important; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
