/**
 * Appily Fortyfour — global responsive overrides
 * Complements page-specific bloom CSS media queries.
 */

/* ── Tablet / small laptop ── */
@media (max-width: 960px) {
  .container { width: min(1200px, 94vw); }

  .a44-header-shell {
    grid-template-columns: 42px 1fr auto;
    padding: 0.75rem 0;
    gap: 0.5rem;
  }
  .a44-header--dock .a44-menu-toggle {
    display: flex;
    grid-column: 1;
    justify-self: start;
  }
  .a44-logo {
    grid-column: 2;
    justify-self: center;
  }
  .a44-header-end {
    grid-column: 3;
    justify-self: end;
  }
  .a44-nav-dock { display: none; }
  .a44-search-dock { display: none; }
  .a44-header-end { gap: 0.5rem; }
  .a44-header-tools .a44-tool-label,
  .a44-passport-meta,
  .a44-cart-meta { display: none; }
  .a44-header--dock .a44-menu-toggle { display: flex; }

  .a44-footer-grid { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
  .a44-newsletter-form { flex-direction: column; border-radius: 16px; }
  .a44-newsletter-form input,
  .a44-newsletter-form button { width: 100%; border-left: none; border-top: 1px dashed var(--a44-border); }

  /* Product — Seed Dossier */
  .a44-dossier-plate { grid-template-columns: 1fr; }
  .a44-dossier-ledger { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .a44-dossier-promises,
  .a44-dossier-split { grid-template-columns: 1fr; }

  /* Legacy home selectors (safe no-ops if unused) */
  .a44-hero > .container.a44-hero-grid,
  .a44-story-grid,
  .a44-top-grid { grid-template-columns: 1fr; }
  .a44-hero-visual { min-height: 280px; order: -1; }
  .a44-hero-float { display: none; }
  .a44-carousel-nav { display: none; }
  .a44-carousel-wrap::before,
  .a44-carousel-wrap::after { display: none; }
  .a44-banner-grid { grid-template-columns: 1fr; }
  .a44-top-products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

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

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

  /* Bloom heroes — stack copy + side cards */
  [class*="-hero-grid"]:not(.a44-header-grid) {
    grid-template-columns: 1fr !important;
  }

  /* Bloom docks — two columns on tablet */
  .a44-bloom-dock,
  .a44-petal-dock-grid,
  .a44-florist-dock,
  .a44-celebrate-dock,
  .a44-beacon-dock,
  .a44-trace-dock-grid,
  .a44-specimen-dock {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .a44-conserv-dock {
    flex-direction: column;
    text-align: center;
  }

  .a44-seal-dock-inner {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
  }

  /* Checkout sticky summary */
  .a44-seal-layout {
    grid-template-columns: 1fr !important;
  }
}

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

  .a44-promo-inner {
    justify-content: center;
    text-align: center;
    padding: 0.5rem 0;
  }
  .a44-promo-inner p { font-size: 0.72rem; line-height: 1.45; }

  .a44-logo-text { font-size: clamp(1.15rem, 5vw, 1.4rem); }
  .a44-tool--account,
  .a44-tool--cart { padding: 0.2rem; }
  .a44-passport-medallion,
  .a44-cart-medallion { width: 36px; height: 36px; }

  .a44-footer { margin-top: 2rem; padding-top: 2rem; }
  .a44-footer-grid { grid-template-columns: 1fr; }
  .a44-footer-base { font-size: 0.72rem; padding: 0.85rem 0; }

  .a44-top-products-grid { grid-template-columns: 1fr; }
  .a44-field-pulse-track { grid-template-columns: 1fr 1fr; gap: 0.75rem; }
  .a44-field-ledger-stack { grid-template-columns: 1fr; }

  /* Forms — prevent iOS zoom on focus */
  .a44-bloom-field input,
  .a44-bloom-field textarea,
  .a44-bloom-field select,
  .a44-specimen-form input,
  .a44-specimen-form select,
  .a44-petal-form input,
  .a44-petal-form select,
  .a44-basket-form input,
  .a44-seal-form input,
  .a44-seal-form select,
  .a44-florist-form input,
  .a44-florist-form textarea,
  input[type="email"],
  input[type="password"],
  input[type="tel"],
  input[type="search"],
  select,
  textarea {
    font-size: 16px;
  }

  /* Tables scroll on small screens */
  .a44-specimen-spec-table,
  table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }

  /* Bloom docks single column */
  .a44-bloom-dock,
  .a44-petal-dock-grid,
  .a44-florist-dock,
  .a44-celebrate-dock,
  .a44-beacon-dock,
  .a44-trace-dock-grid,
  .a44-specimen-dock {
    grid-template-columns: 1fr !important;
  }

  .a44-petal-dock-tile--wide,
  .a44-trace-dock-tile--wide,
  .a44-trace-dock-tile--email {
    grid-column: span 1 !important;
  }

  /* Stage overlap tighten on phones */
  .a44-bloom-stage.auth-page,
  [class*="-stage"] {
    margin-top: -1.75rem;
  }

  /* Ribbon / sticky bars */
  .a44-specimen-ribbon-inner {
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
  }
  .a44-specimen-ribbon-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
  }
  .a44-specimen-ribbon-actions .a44-specimen-btn { width: 100%; }

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

  /* Catalog compass / timeline */
  .a44-conserv-compass,
  .a44-conserv-vine {
    display: none;
  }

  /* Company atlas stats */
  .a44-atlas-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  /* Order timeline */
  .a44-petal-vine-item {
    grid-template-columns: auto 1fr;
  }

  /* Cart line items */
  .a44-basket-line {
    grid-template-columns: 72px 1fr;
    gap: 0.75rem;
  }
  .a44-basket-line-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  /* Product gallery */
  .a44-specimen-gallery-main {
    aspect-ratio: 1;
  }
  .a44-specimen-buy-row {
    flex-direction: column;
    align-items: stretch;
  }
  .a44-specimen-buy-row .a44-specimen-btn {
    width: 100%;
  }

  /* Payment / policy cards */
  .a44-policy-card,
  .a44-pay-card {
    padding: 1.25rem;
    border-radius: 18px;
  }
}

/* ── Small phone ── */
@media (max-width: 480px) {
  .a44-header-shell { gap: 0.5rem; }
  .a44-mobile-panel { width: 100vw; }
  .a44-mobile-quick { grid-template-columns: 1fr; }

  .a44-atlas-stats { grid-template-columns: 1fr; }

  .a44-specimen-ribbon-actions {
    grid-template-columns: 1fr;
  }

  .a44-bloom-lanes,
  .a44-bloom-member {
    grid-template-columns: 1fr;
  }

  .a44-bloom-member-actions {
    grid-column: 1 / -1;
    flex-direction: column;
  }
  .a44-bloom-member-actions .a44-bloom-btn { width: 100%; }

  .page-account-bloom .profile-grid.a44-bloom-profile {
    grid-template-columns: 1fr;
  }
}

/* Touch targets */
@media (max-width: 960px) {
  .a44-btn,
  .a44-specimen-btn,
  .a44-petal-btn,
  .a44-bloom-btn,
  .a44-basket-btn,
  .a44-seal-btn,
  .a44-pay-btn,
  button,
  .a44-mobile-link,
  .a44-mobile-quick-btn {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .a44-mobile-panel,
  .a44-mobile-backdrop { transition: none !important; }
}
