/**
 * Appily Fifty-Two — global responsive system
 * Loaded after page CSS; complements per-page media queries.
 */

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
img,
svg,
video {
  max-width: 100%;
  height: auto;
}
.page-wrap,
.page-main {
  min-width: 0;
}

/* ── Tablet (≤960px) ── */
@media (max-width: 960px) {
  .container { width: min(1200px, 94vw); }
  .page-main { overflow-x: clip; }
  .a52-pier-header,
  .a52-canopy-header,
  .a52-manifest-bar,
  .a52-skybar {
    position: relative;
    z-index: 40;
  }

  .a52-section-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }

  /* Shared hero stacks */
  [class*="-hero-inner"],
  [class*="-hero-grid"],
  [class*="-stage"] > .container > [class*="-deck"],
  [class*="-workspace"],
  [class*="-layout"],
  [class*="-grid"]:not(.a52-mobile-cat-grid):not(.a52-mobile-link-list):not(.a52-mobile-link-grid):not(.a52-footer-columns):not(.a52-footer-main) {
    max-width: 100%;
  }

  /* Redesigned Fieldcrest page shells */
  .a52-vault-hero-grid,
  .a52-bay-hero-grid,
  .a52-seal-hero-grid,
  .a52-folio-hero-grid,
  .a52-wire-hero-grid,
  .a52-stall-hero-grid,
  .a52-index-hero-grid,
  .a52-charter-hero-grid,
  .a52-route-hero-grid,
  .a52-signal-hero-grid,
  .a52-lock-hero-grid,
  .a52-pulse-hero-grid,
  .a52-seal-layout,
  .a52-bay-layout,
  .a52-vault-layout,
  .a52-folio-layout,
  .a52-wire-layout,
  .a52-stall-layout,
  .a52-index-layout,
  .a52-charter-layout,
  .a52-route-layout,
  .a52-signal-layout {
    grid-template-columns: 1fr !important;
  }

  .a52-bay-meters,
  .a52-seal-meters,
  .a52-vault-meters,
  .a52-folio-meters,
  .a52-wire-meters,
  .a52-stall-meters,
  .a52-index-meters,
  .a52-charter-meters,
  .a52-route-meters,
  .a52-signal-meters,
  .a52-lock-meters,
  .a52-pulse-meters {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .a52-folio-stages-row {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .a52-seal-ribbon-row,
  .a52-bay-ribbon-row,
  .a52-vault-ribbon-row {
    flex-wrap: wrap;
    gap: 0.45rem;
  }

  .a52-seal-ticket,
  .a52-bay-summary,
  .a52-vault-aside,
  .a52-stall-buy,
  .a52-wire-aside {
    position: static !important;
  }

  .a52-bay-mobile-bar,
  .a52-seal-mobile-bar,
  .a52-stall-mobile-bar {
    display: flex;
  }

  /* Home — Verdant */
  .a52-hero > .container.a52-hero-grid,
  .a52-story-grid,
  .a52-top-grid,
  .a52-banner-grid { grid-template-columns: 1fr !important; }
  .a52-hero-visual { min-height: 260px; order: -1; }
  .a52-hero-float { display: none; }
  .a52-carousel-nav { display: none; }
  .a52-carousel-wrap::before,
  .a52-carousel-wrap::after { display: none; }
  .a52-top-products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .a52-category-rail { overflow-x: auto; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; }

  /* Shop */
  .a52-shop-layout,
  .a52-shop-grid-wrap { grid-template-columns: 1fr !important; }
  .a52-shop-sidebar { display: none; }
  .a52-shop-toolbar { flex-wrap: wrap; gap: 0.65rem; }
  .a52-shop-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

  /* Catalog — Panorama */
  .a52-pano-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .a52-pano-block--wide { grid-column: span 2 !important; }
  .a52-pano-dock { flex-wrap: wrap; overflow: visible; }
  .a52-pano-dock-wrap { position: static; }

  /* Product — Farm Pick */
  .a52-pick-layout,
  .a52-pick-deck { grid-template-columns: 1fr !important; }
  .a52-pick-gallery { position: static; }
  .a52-pick-tower { position: static; order: -1; }
  .a52-pick-spec-grid { grid-template-columns: 1fr 1fr; }

  /* Cart — Produce Crate */
  .a52-crate-deck { grid-template-columns: 1fr !important; }
  .a52-crate-tower { position: static; order: -1; }
  .a52-crate-runway { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .a52-crate-mobile-bar { display: flex; }

  /* Checkout — Cold Chain Gate */
  .a52-gate-deck,
  .a52-seal-layout { grid-template-columns: 1fr !important; }
  .a52-gate-tower,
  .a52-seal-summary { position: static; order: -1; }
  .a52-gate-runway,
  .a52-seal-dock { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

  /* Account — Grove Passport */
  .a52-grove-layout,
  .a52-grove-deck { grid-template-columns: 1fr !important; }
  .a52-grove-sidebar { position: static; }
  .a52-grove-runway,
  .a52-grove-nav { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

  /* Orders — Harvest Ledger */
  .a52-ledger-deck { grid-template-columns: 1fr !important; }
  .a52-ledger-runway { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

  /* Track — Cold Chain Dispatch */
  .a52-dispatch-deck,
  .a52-dispatch-workspace { grid-template-columns: 1fr !important; }
  .a52-dispatch-runway-grid,
  .a52-dispatch-runway { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

  /* Help — Harvest Desk */
  .a52-harvest-workspace,
  .a52-harvest-grid,
  .a52-help-grid,
  .a52-help-lanes { grid-template-columns: 1fr !important; }
  .a52-harvest-dock { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

  /* Contact — Produce Relay */
  .a52-relay-deck,
  .a52-relay-layout { grid-template-columns: 1fr !important; }
  .a52-relay-runway { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

  /* Order status — Cold Chain Signal */
  .a52-signal-deck,
  .a52-signal-layout { grid-template-columns: 1fr !important; }
  .a52-signal-runway { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

  /* Order success — Harvest Clear */
  .a52-clear-deck { grid-template-columns: 1fr !important; }
  .a52-clear-runway { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

  /* Company — Farm Roots */
  .a52-roots-deck,
  .a52-atlas-layout { grid-template-columns: 1fr !important; }
  .a52-roots-runway,
  .a52-atlas-dock { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

  /* Policy / payment */
  .a52-policy-nav { flex-wrap: wrap; gap: 0.35rem; }
  .a52-policy-nav a { font-size: 0.74rem; padding: 0.42rem 0.75rem; }
  .a52-pay-actions { flex-direction: column; align-items: stretch; }
  .a52-pay-btn { width: 100%; }

  /* Legacy shared */
  .catalog-layout { grid-template-columns: 1fr; }
  .filter-panel { display: none; }
  .product-detail-grid { grid-template-columns: 1fr; }

  /* Footer */
  .a52-newsletter-form { flex-direction: column; }
  .a52-newsletter-form input,
  .a52-newsletter-form button { width: 100%; }
  .a52-footer-cats { gap: 0.45rem 0.75rem; }

  /* Sticky / dock grids (legacy bloom names) */
  .a52-bloom-dock,
  .a52-grove-runway,
  .a52-ledger-runway,
  .a52-gate-runway,
  .a52-signal-runway,
  .a52-relay-runway,
  .a52-clear-runway,
  .a52-roots-runway,
  .a52-pano-runway,
  .a52-petal-dock-grid,
  .a52-florist-dock,
  .a52-celebrate-dock,
  .a52-beacon-dock,
  .a52-trace-dock-grid,
  .a52-dispatch-runway-grid,
  .a52-specimen-dock,
  .a52-basket-dock {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .a52-conserv-dock { flex-direction: column; text-align: center; }
  .a52-seal-dock-inner,
  .a52-gate-mobile-inner { flex-direction: column; align-items: stretch; text-align: center; }

  /* Generic two-column → one on tablet when needed */
  [class*="-metrics"],
  [class*="-stats"] {
    flex-wrap: wrap;
  }
}

/* ── Phone (≤640px) ── */
@media (max-width: 640px) {
  .container { width: min(1200px, 92vw); }

  h1 { font-size: clamp(1.55rem, 6vw, 2.2rem); }
  h2 { font-size: clamp(1.25rem, 5vw, 1.65rem); }

  .a52-top-products-grid,
  .a52-shop-product-grid,
  .a52-pano-mosaic { grid-template-columns: 1fr !important; }
  .a52-pano-block,
  .a52-pano-block--wide { grid-column: auto !important; grid-template-columns: 1fr !important; }

  /* Hero metrics / counters */
  [class*="-metrics"],
  [class*="-hero-metrics"] {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.65rem;
  }

  /* Stage overlap tighten */
  [class*="-stage"],
  .a52-bloom-stage.auth-page,
  .a52-grove-stage.auth-page {
    margin-top: -1.5rem !important;
    padding-bottom: 4.5rem;
  }

  .page-cart-crate .a52-crate-stage,
  .page-checkout-gate .a52-gate-stage,
  .page-product-pick .a52-pick-stage {
    padding-bottom: 5.5rem;
  }

  /* Forms — prevent iOS zoom */
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="tel"],
  input[type="search"],
  input[type="number"],
  select,
  textarea,
  [class*="-form"] input,
  [class*="-form"] select,
  [class*="-form"] textarea {
    font-size: 16px;
  }

  /* Tables scroll */
  table,
  .a52-specimen-spec-table,
  .a52-pick-spec-table,
  [class*="-spec-table"] {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Single-column docks / runways */
  .a52-bloom-dock,
  .a52-grove-runway,
  .a52-ledger-runway,
  .a52-gate-runway,
  .a52-signal-runway,
  .a52-relay-runway,
  .a52-clear-runway,
  .a52-roots-runway,
  .a52-pano-runway,
  .a52-crate-runway,
  .a52-petal-dock-grid,
  .a52-florist-dock,
  .a52-celebrate-dock,
  .a52-beacon-dock,
  .a52-trace-dock-grid,
  .a52-dispatch-runway-grid,
  .a52-specimen-dock,
  .a52-basket-dock,
  .a52-harvest-dock {
    grid-template-columns: 1fr !important;
  }

  [class*="-tile--wide"],
  [class*="-dock-tile--wide"],
  [class*="-dock-tile--email"] {
    grid-column: span 1 !important;
  }

  /* Product page */
  .a52-pick-spec-grid { grid-template-columns: 1fr; }
  .a52-pick-actions,
  .a52-pick-buy-row,
  .a52-specimen-buy-row {
    flex-direction: column;
    align-items: stretch;
  }
  .a52-pick-actions .a52-pick-btn,
  .a52-specimen-buy-row .a52-specimen-btn { width: 100%; }
  .a52-pick-mobile-bar,
  .a52-specimen-ribbon,
  .a52-gate-mobile-bar,
  .a52-seal-mobile-bar {
    display: flex;
  }
  .a52-pick-mobile-inner,
  .a52-specimen-ribbon-inner,
  .a52-gate-mobile-inner,
  .a52-seal-dock-inner {
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
  }
  .a52-pick-mobile-actions,
  .a52-specimen-ribbon-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
  }

  /* Cart lines */
  .a52-basket-line,
  .a52-crate-line {
    grid-template-columns: 28px 72px 1fr;
    grid-template-rows: auto auto;
    gap: 0.65rem;
  }
  .a52-basket-line-controls,
  .a52-crate-line-controls {
    grid-column: 1 / -1;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding-top: 0.5rem;
    border-top: 1px dashed rgba(27, 58, 26, 0.12);
  }

  /* Checkout / account forms */
  .a52-gate-form-row,
  .a52-seal-form-row,
  .a52-grove-form-row,
  .a52-relay-form-row,
  [class*="-form-row"] {
    grid-template-columns: 1fr !important;
  }

  /* Stats grids */
  .a52-atlas-stats,
  .a52-roots-metrics,
  [class*="-metrics-grid"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  /* Order timeline */
  .a52-petal-vine-item,
  [class*="-timeline-item"] {
    grid-template-columns: auto 1fr;
  }

  /* Cards padding */
  .a52-policy-card,
  .a52-pay-card,
  [class*="-card"]:not(.a52-mobile-user-card):not(.a52-mobile-link) {
    padding: 1.15rem;
    border-radius: 18px;
  }

  /* Account profile */
  .page-account-grove .profile-grid,
  .page-account-bloom .profile-grid,
  .a52-grove-member,
  .a52-bloom-member {
    grid-template-columns: 1fr !important;
  }
  .a52-grove-member-actions,
  .a52-bloom-member-actions {
    grid-column: 1 / -1;
    flex-direction: column;
  }
  .a52-grove-member-actions .a52-grove-btn,
  .a52-bloom-member-actions .a52-bloom-btn { width: 100%; }

  /* Help FAQ */
  .a52-harvest-lanes,
  .a52-help-accordions { grid-template-columns: 1fr !important; }

  /* Footer */
  .a52-footer { margin-top: 2rem; }
  .a52-footer-base { font-size: 0.72rem; text-align: center; }
  .a52-support-callout { flex-direction: column; text-align: center; }
}

/* ── Small phone (≤480px) ── */
@media (max-width: 480px) {
  .a52-atlas-stats,
  .a52-roots-metrics,
  [class*="-metrics-grid"] {
    grid-template-columns: 1fr !important;
  }

  .a52-pick-mobile-actions,
  .a52-specimen-ribbon-actions {
    grid-template-columns: 1fr;
  }

  .a52-bloom-lanes,
  .a52-bloom-member,
  .a52-grove-nav,
  .a52-grove-member {
    grid-template-columns: 1fr;
  }

  .a52-crate-hero-metrics,
  .a52-crate-counter {
    display: none;
  }

  .a52-crate-hero-lede {
    font-size: 0.88rem;
  }
}

/* Touch targets */
@media (max-width: 960px) {
  .a52-btn,
  [class*="-btn"]:not(.a52-mobile-close):not(.a52-menu-toggle),
  button:not(.a52-mobile-close):not(.a52-menu-toggle),
  .a52-subnav-link,
  .a52-mobile-link,
  .a52-mobile-cat-chip,
  .a52-mobile-quick-btn,
  .a52-mobile-user-card {
    min-height: 44px;
  }
}

/* Phone polish for Fieldcrest shells */
@media (max-width: 640px) {
  .a52-bay-meters,
  .a52-seal-meters,
  .a52-vault-meters,
  .a52-folio-meters,
  .a52-wire-meters,
  .a52-stall-meters,
  .a52-index-meters,
  .a52-charter-meters,
  .a52-route-meters,
  .a52-signal-meters,
  .a52-lock-meters,
  .a52-pulse-meters,
  .a52-seal-fields--duo,
  .a52-seal-fields--route,
  .a52-bay-fields,
  .a52-vault-fields,
  .a52-wire-fields {
    grid-template-columns: 1fr !important;
  }

  .a52-seal-ribbon,
  .a52-bay-ribbon,
  .a52-vault-ribbon {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .a52-seal-ribbon-row,
  .a52-bay-ribbon-row {
    flex-wrap: nowrap;
    width: max-content;
    min-width: 100%;
  }

  .a52-seal-film-track,
  .a52-bay-film-track,
  .a52-index-rail {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .a52-partner-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem;
  }

  .a52-footer-grid {
    grid-template-columns: 1fr !important;
  }

  .a52-mobile-panel {
    width: min(100vw, 420px);
  }
}

@media (max-width: 480px) {
  .a52-utility { font-size: 0.72rem; }
  .a52-brand-est { font-size: 0.58rem; }
  .a52-brand-name { font-size: clamp(1.05rem, 5.5vw, 1.35rem); }
  .a52-search-rail { padding-bottom: 0.75rem; }
  .a52-partner-row { grid-template-columns: 1fr; }
  .a52-mobile-quick { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .a52-mobile-panel,
  .a52-mobile-backdrop,
  .a52-menu-toggle span,
  .a52-mobile-link,
  .a52-mobile-cat-chip {
    transition: none !important;
  }
  .a52-mobile-nav.is-open .a52-mobile-panel {
    transform: none;
  }
  .a52-mobile-nav.is-open .a52-mobile-link,
  .a52-mobile-nav.is-open .a52-mobile-cat-chip {
    opacity: 1;
    transform: none;
    transition-delay: 0s !important;
  }
}
