/* ============================================================
   CAS — Responsive layer
   Mobile first overrides applied at common breakpoints.
   ============================================================ */

/* ---- Tablet ---- */
@media (max-width: 1100px) {
  .grid-4 { grid-template-columns: repeat(3, 1fr) !important; }
  .grid-3 { grid-template-columns: repeat(2, 1fr) !important; }
}

@media (max-width: 860px) {
  /* Hero variants → single column */
  .hero-asym,
  .hero-split,
  .ex-intro,
  .ed-grid,
  .corp-grid,
  .corp-hero,
  .pdp-hero,
  .artist-grid,
  .ap-hero,
  .bio-grid,
  .about-grid,
  .prov-grid,
  .press-grid,
  .proc-grid,
  .form-grid,
  .list-hero,
  .sub-grid,
  .nl-grid,
  .stat-grid,
  .case-row {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }

  .case-row > * { order: unset !important; }

  /* Grids */
  .grid-4 { grid-template-columns: repeat(2, 1fr) !important; gap: 24px !important; }
  .grid-3 { grid-template-columns: 1fr !important; }
  .rooms-grid { grid-template-columns: 1fr !important; gap: 32px !important; }

  /* Stats: 2 cols */
  .stat-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* PDP side panel can't be sticky on mobile */
  .pdp-side { position: static !important; }

  /* Hero scale */
  .display { line-height: 1.02; }

  /* Make footer + sections sit closer */
  section { padding-bottom: 64px !important; }

  /* Curator note */
  .curator-note { grid-template-columns: 1fr !important; }
  .curator-note > *:last-child { text-align: left !important; }

  /* Section rule keeps two columns */
  .section-rule { margin-bottom: 32px; }

  main[data-screen-label="01 Home"] > section:first-child {
    padding-top: 30px !important;
    padding-bottom: 56px !important;
  }

  .hero-asym {
    align-items: start !important;
    gap: 26px !important;
  }

  .hero-asym > div:first-child > div:first-child {
    margin-bottom: 22px !important;
  }

  .hero-asym .hero-meta {
    margin-top: 28px !important;
  }

  .hero-asym .hero-meta svg {
    width: 34px !important;
    height: 34px !important;
  }

  .hero-asym > div:first-child > div:last-child {
    margin-top: 30px !important;
    gap: 12px !important;
  }

  .hero-asym .btn {
    flex: 1 1 210px;
    justify-content: center;
  }

  .hero-asym > div:last-child > div:first-child {
    padding: 10px !important;
  }
}

@media (max-width: 520px) {
  .grid-4 { grid-template-columns: 1fr !important; gap: 32px !important; }

  /* Bigger touch targets, more padding bottom for PDP sticky */
  body { padding-bottom: 0; }

  /* PDP form / fonts */
  .pdp-icons { flex-wrap: wrap; gap: 8px !important; }

  /* Section-rule: smaller right side wraps */
  .section-rule {
    grid-template-columns: 1fr !important;
    gap: 6px !important;
  }
  .section-rule .right {
    justify-self: start;
  }

  /* Smaller headings */
  :root {
    --fs-h1: clamp(38px, 10.8vw, 48px);
    --fs-h2: clamp(32px, 9vw, 42px);
    --fs-h3: clamp(24px, 7vw, 30px);
    --gutter: 20px;
  }

  /* Chrome */
  .chrome-inner { padding-block: 12px; gap: 12px; }
  .brand .word { font-size: 20px; }
  .brand .sub { font-size: 8px; letter-spacing: 0.26em; }
  .chrome-right .btn { display: none; }

  /* Hero meta column */
  .hero-meta { grid-template-columns: 1fr !important; gap: 16px !important; }

  .hero-asym h1.display {
    max-width: 10ch;
  }

  .hero-asym .hero-meta p {
    font-size: 19px !important;
    line-height: 1.35 !important;
  }

  .hero-asym .btn {
    flex-basis: 100%;
    width: 100%;
    padding-inline: 16px;
  }

  .art-card .frame {
    padding: 8px;
  }

  .footer .lower {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  /* Press grid */
  .press-grid { grid-template-columns: 1fr !important; }
}

/* ---- PDP sticky bottom bar reserves room ---- */
@media (max-width: 860px) {
  main[data-screen-label="04 PDP"] { padding-bottom: 96px; }
}

/* Generic flex-grid for "more from artist" -- collapse to 2 cols on mobile */
@media (max-width: 860px) {
  .grid-flex { grid-template-columns: repeat(2, 1fr) !important; gap: 24px !important; }
}
@media (max-width: 520px) {
  .grid-flex { grid-template-columns: 1fr !important; gap: 32px !important; }
}
