/* ============================================================
   M-D Stukadoorswerken — Mobile responsive overrides
   Layered on top of the React app's inline styles via
   attribute selectors. Loads AFTER colors_and_type.css.
   ============================================================ */


/* -----------------------------------------------------------
   TABLET LANDSCAPE & BELOW (≤ 980px)
   Collapse the densest 4–6 col grids early; they get cramped
   well before the regular tablet breakpoint.
   ----------------------------------------------------------- */
@media (max-width: 980px) {
  /* Werkwijze horizontal: 4 cards → 2 cards, hide the dotted connector
     line (it's positioned for a 4-col layout). */
  [data-werkwijze-horizontal] {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 32px !important;
  }
  [data-werkwijze-connector] {
    display: none !important;
  }

  /* Diensten index: 6 mini cards → 3-col. */
  [data-dienst-index] {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}


/* -----------------------------------------------------------
   TABLET PORTRAIT & BELOW (≤ 880px)
   Header switches to mobile mode, 2-col layouts stack.
   ----------------------------------------------------------- */
@media (max-width: 880px) {
  /* Dampen the big display headings via the global type-scale. */
  :root {
    --type-scale: 0.62 !important;
  }

  /* ---------- HEADER ---------- */
  [data-app-header] {
    height: 68px !important;
  }
  [data-app-header-logo] {
    height: 38px !important;
  }
  [data-desktop-nav] {
    display: none !important;
  }
  [data-mobile-nav-toggle] {
    display: inline-flex !important;
  }

  /* ---------- MAINTENANCE BANNER ---------- */
  [data-maintenance-banner] {
    gap: 10px !important;
    padding: 10px 20px !important;
  }
  [data-maintenance-banner-badge] {
    font-size: 10px !important;
    padding: 3px 8px !important;
  }
  [data-maintenance-banner-msg] {
    font-size: 13px !important;
    flex-basis: 100% !important;
    order: 2 !important;
  }
  [data-maintenance-banner-links] {
    flex-basis: 100% !important;
    order: 3 !important;
    display: flex !important;
    gap: 8px !important;
  }
  [data-maintenance-banner-links] a {
    flex: 1 1 0 !important;
    font-size: 13px !important;
    padding: 10px 10px !important;
    border-radius: 8px !important;
    background: rgba(255,255,255,0.06) !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    justify-content: center !important;
    min-height: 44px !important;
    box-sizing: border-box !important;
  }

  /* ---------- CONTAINER PADDING ---------- */
  [style*="padding: 0px 32px"],
  [style*="padding:0px 32px"],
  [style*="padding: 0 32px"] {
    padding: 0 20px !important;
  }

  /* ---------- 2-COL GRIDS (fr-based) → 1-COL ---------- */
  [style*="grid-template-columns: 1.4fr"],
  [style*="grid-template-columns: 1.3fr"],
  [style*="grid-template-columns: 1.1fr"],
  [style*="grid-template-columns: 1.15fr"],
  [style*="grid-template-columns: 0.9fr"],
  [style*="grid-template-columns: 1fr 1.15fr"],
  [style*="grid-template-columns: 1fr 1.3fr"],
  [style*="grid-template-columns: 1fr 1.4fr"],
  [style*="grid-template-columns: 1fr 1.6fr"],
  [style*="grid-template-columns: 1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }

  /* Diensten detail card: text always before image on mobile. */
  [data-dienst-text] {
    order: 1 !important;
  }
  [data-dienst-media] {
    order: 2 !important;
  }
  /* Feature checklist inside diensten detail → 1 col (was 1fr 1fr). */
  [data-dienst-features] {
    grid-template-columns: 1fr !important;
  }

  /* ---------- 3+ COL GRIDS WITH DATA ATTRS ---------- */
  /* Footer 4-col → 2-col. */
  [data-footer-grid] {
    grid-template-columns: 1fr 1fr !important;
    gap: 32px !important;
  }
  /* Services preview 3-col → 2-col. */
  [data-services-grid] {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  /* Waarom-M-D values: 3 → 2, and reset cross-cell borders. */
  [data-values-grid] {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  [data-value-tile] {
    border-right: none !important;
    border-bottom: none !important;
    padding: 32px 28px !important;
  }

  /* ---------- STICKY ---------- */
  /* Sticky in a stacked layout means content sticks above the next section. */
  [style*="position: sticky"] {
    position: static !important;
  }

  /* ---------- SECTION PADDING ---------- */
  section[style*="padding: 128px 0"],
  [style*="padding: 128px 0px"] {
    padding-top: 64px !important;
    padding-bottom: 64px !important;
  }
  section[style*="padding: 120px 0"],
  [style*="padding: 120px 0px"] {
    padding-top: 64px !important;
    padding-bottom: 64px !important;
  }
  section[style*="padding: 96px 0"],
  [style*="padding: 96px 0px"] {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }
  section[style*="padding: 88px"],
  [style*="padding: 88px 32px"] {
    padding-top: 48px !important;
    padding-bottom: 64px !important;
  }
  [style*="padding: 80px 0"] {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
  [style*="padding: 32px 0px 96px"] {
    padding: 24px 0 64px !important;
  }

  /* ---------- HERO IMAGE / DECORATION HEIGHTS ---------- */
  [style*="height: 720px"] {
    height: auto !important;
    min-height: 520px !important;
  }
  [style*="height: 560px"],
  [style*="height: 620px"],
  [style*="height: 520px"] {
    height: 320px !important;
  }
  [style*="height: 420px"],
  [style*="height: 280px"] {
    height: 240px !important;
  }

  /* Pull-out absolute decorations come back into flow. */
  [style*="position: absolute"][style*="left: -28px"],
  [style*="position: absolute"][style*="left: -16px"],
  [style*="position: absolute"][style*="right: -16px"],
  [style*="position: absolute"][style*="right: -28px"] {
    position: static !important;
    transform: none !important;
    margin-top: 16px !important;
    max-width: none !important;
  }

  /* Trowel cluster: hide to save vertical space. */
  [data-trowel-cluster] {
    display: none !important;
  }

  /* ---------- OFFERTE MAINTENANCE CARD ---------- */
  [data-offerte-maintenance-header] {
    padding: 28px 20px 24px !important;
  }
  [data-offerte-maintenance-title] {
    font-size: 26px !important;
  }
  [data-offerte-row] {
    padding: 18px 16px !important;
    gap: 16px !important;
  }
  [data-offerte-row] > svg:last-child {
    display: none !important;
  }
  [data-offerte-row-icon] {
    width: 48px !important;
    height: 48px !important;
  }
  [data-offerte-row-title] {
    font-size: 22px !important;
  }
  [data-offerte-maintenance-footer] {
    padding: 14px 20px !important;
  }

  /* ---------- ONDERSCHEIDT ROW (over.jsx) ----------
     The 48px / 1fr / auto layout is fine, but the check icon
     can wrap awkwardly on narrow screens, so we hide it. */
  [data-onderscheidt-row] > svg {
    display: none !important;
  }
  [data-onderscheidt-row] {
    grid-template-columns: 40px 1fr !important;
    gap: 14px !important;
    padding: 20px 0 !important;
  }
}


/* Above 880px: hide the hamburger / drawer (desktop nav drives). */
@media (min-width: 881px) {
  [data-mobile-nav-toggle] {
    display: none !important;
  }
  [data-mobile-nav-drawer] {
    display: none !important;
  }
}


/* -----------------------------------------------------------
   SMALL PHONE (≤ 560px)
   Stack repeat() grids further, tighten cards.
   ----------------------------------------------------------- */
@media (max-width: 560px) {
  :root {
    --type-scale: 0.5 !important;
  }

  /* Werkwijze, services, values: full stack. */
  [data-werkwijze-horizontal],
  [data-services-grid],
  [data-values-grid] {
    grid-template-columns: 1fr !important;
  }
  /* Diensten index: 3-col → 2-col. */
  [data-dienst-index] {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  /* Proof strip + timeline + stat row → 1-col. */
  [data-proof-strip] {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    padding: 24px 0 !important;
  }
  [data-timeline] {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  [data-stat-row] {
    grid-template-columns: 1fr !important;
  }
  [data-stat-row] > div {
    padding-left: 0 !important;
    border-left: none !important;
    padding-bottom: 14px !important;
    border-bottom: 1px solid var(--border-subtle) !important;
  }
  [data-stat-row] > div:last-child {
    border-bottom: none !important;
    padding-bottom: 0 !important;
  }
  [data-klanten-grid] {
    grid-template-columns: 1fr !important;
  }

  /* Other repeat-3+ grids fall back to 2-col default. */
  [style*="grid-template-columns: repeat(3"],
  [style*="grid-template-columns: repeat(4"],
  [style*="grid-template-columns: repeat(5"],
  [style*="grid-template-columns: repeat(6"] {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 24px !important;
  }

  /* Footer 2-col → 1-col. */
  [data-footer-grid] {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  /* Container side padding even tighter. */
  [style*="padding: 0 20px"] {
    padding: 0 16px !important;
  }

  /* Card paddings. */
  article[style*="padding: 40px"] {
    padding: 28px !important;
  }
  article[style*="padding: 28px"] {
    padding: 20px !important;
  }

  /* Buttons: full-width primary / secondary so they stack cleanly. */
  button[style*="padding: 16px 28px"],
  a[style*="padding: 16px 28px"],
  button[style*="padding: 14px 26px"],
  a[style*="padding: 14px 26px"] {
    width: 100% !important;
  }

  /* Maintenance banner contact-links: stack rather than side-by-side. */
  [data-maintenance-banner-links] {
    flex-direction: column !important;
  }
  [data-maintenance-banner-links] a {
    justify-content: flex-start !important;
  }
  [data-maintenance-banner-msg] {
    font-size: 12.5px !important;
  }

  /* OfferteMaintenance title shrinks further. */
  [data-offerte-maintenance-title] {
    font-size: 22px !important;
  }
  [data-offerte-row-title] {
    font-size: 19px !important;
  }
  [data-offerte-row] {
    padding: 16px 14px !important;
  }
}


/* -----------------------------------------------------------
   TINY (≤ 400px)
   ----------------------------------------------------------- */
@media (max-width: 400px) {
  [data-dienst-index] {
    grid-template-columns: 1fr !important;
  }
  [style*="grid-template-columns: repeat(2"] {
    grid-template-columns: 1fr !important;
  }
}
