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

/* ── Tablet (≤960px) ── */
@media (max-width: 960px) {
  .container { width: min(1200px, 94vw); }
  .page-main { overflow-x: clip; }

  .a45-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(.a45-mobile-cat-grid):not(.a45-mobile-link-grid):not(.a45-footer-columns):not(.a45-footer-main) {
    max-width: 100%;
  }

  /* Home — Botanical Atelier */
  .a45-hero {
    min-height: min(68vh, 520px);
    padding: clamp(3.5rem, 8vw, 5rem) 0 2.75rem;
  }
  .page-home-atelier .a45-hero,
  .page-home-verdant .a45-hero {
    min-height: min(68vh, 520px);
    padding: clamp(3.5rem, 8vw, 5rem) 0 2.75rem;
  }
  .a45-hero > .container.a45-hero-grid,
  .a45-story-grid,
  .a45-top-grid,
  .a45-banner-grid { grid-template-columns: 1fr !important; }
  .a45-cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .a45-cat-card:nth-child(1),
  .a45-cat-card:nth-child(7) { grid-column: span 2; }
  .page-home-atelier .a45-cat-card:nth-child(1),
  .page-home-atelier .a45-cat-card:nth-child(7) { grid-column: span 1; }
  .a45-best-grid { grid-template-columns: 1fr !important; }
  .a45-best-products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .a45-hero-visual { min-height: 260px; order: -1; }
  .a45-hero-float { display: none; }
  .a45-carousel-nav { display: none; }
  .a45-carousel-wrap::before,
  .a45-carousel-wrap::after { display: none; }
  .a45-top-products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .a45-category-rail { overflow-x: auto; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  .a45-conserv-dock { flex-direction: column; text-align: center; }
  .a45-seal-dock-inner,
  .a45-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); }

  .a45-cat-grid { grid-template-columns: 1fr !important; }
  .a45-cat-card:nth-child(1),
  .a45-cat-card:nth-child(7) { grid-column: auto; }
  .a45-best-products-grid { grid-template-columns: 1fr 1fr !important; }
  .a45-product-grid { grid-template-columns: 1fr 1fr !important; gap: 0.85rem; }

  .a45-top-products-grid,
  .a45-shop-product-grid,
  .a45-pano-mosaic { grid-template-columns: 1fr !important; }
  .a45-pano-block,
  .a45-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"],
  .a45-bloom-stage.auth-page,
  .a45-grove-stage.auth-page {
    margin-top: -1.5rem !important;
    padding-bottom: 4.5rem;
  }

  .page-cart-crate .a45-crate-stage,
  .page-checkout-gate .a45-gate-stage,
  .page-product-pick .a45-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,
  .a45-specimen-spec-table,
  .a45-pick-spec-table,
  [class*="-spec-table"] {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Single-column docks / runways */
  .a45-bloom-dock,
  .a45-grove-runway,
  .a45-ledger-runway,
  .a45-gate-runway,
  .a45-signal-runway,
  .a45-relay-runway,
  .a45-clear-runway,
  .a45-roots-runway,
  .a45-pano-runway,
  .a45-crate-runway,
  .a45-petal-dock-grid,
  .a45-florist-dock,
  .a45-celebrate-dock,
  .a45-beacon-dock,
  .a45-trace-dock-grid,
  .a45-dispatch-runway-grid,
  .a45-specimen-dock,
  .a45-basket-dock,
  .a45-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 */
  .a45-pick-spec-grid { grid-template-columns: 1fr; }
  .a45-pick-actions,
  .a45-pick-buy-row,
  .a45-specimen-buy-row {
    flex-direction: column;
    align-items: stretch;
  }
  .a45-pick-actions .a45-pick-btn,
  .a45-specimen-buy-row .a45-specimen-btn { width: 100%; }
  .a45-pick-mobile-bar,
  .a45-specimen-ribbon,
  .a45-gate-mobile-bar,
  .a45-seal-mobile-bar {
    display: flex;
  }
  .a45-pick-mobile-inner,
  .a45-specimen-ribbon-inner,
  .a45-gate-mobile-inner,
  .a45-seal-dock-inner {
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
  }
  .a45-pick-mobile-actions,
  .a45-specimen-ribbon-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
  }

  /* Cart lines */
  .a45-basket-line,
  .a45-crate-line {
    grid-template-columns: 28px 72px 1fr;
    grid-template-rows: auto auto;
    gap: 0.65rem;
  }
  .a45-basket-line-controls,
  .a45-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 */
  .a45-gate-form-row,
  .a45-seal-form-row,
  .a45-grove-form-row,
  .a45-relay-form-row,
  [class*="-form-row"] {
    grid-template-columns: 1fr !important;
  }

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

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

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

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

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

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

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

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

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

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

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

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

@media (prefers-reduced-motion: reduce) {
  .a45-mobile-panel,
  .a45-mobile-backdrop,
  .a45-menu-toggle span {
    transition: none !important;
  }
  .a45-mobile-nav.is-open .a45-mobile-panel {
    transform: none;
  }
}
