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

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

  .a47-header-shell { padding: 0.75rem 0; }
  .a47-footer-grid { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
  .a47-newsletter-form { flex-direction: column; border-radius: 16px; }
  .a47-newsletter-form input,
  .a47-newsletter-form button { width: 100%; border-left: none; border-top: 1px dashed var(--a47-border); }
  .a47-footer-base-inner { flex-direction: column; text-align: center; }

  /* Home */
  .a47-hero > .container.a47-hero-grid,
  .a47-story-grid,
  .a47-top-grid { grid-template-columns: 1fr; }
  .a47-hero-visual { min-height: 280px; order: -1; }
  .a47-hero-float { display: none; }
  .a47-carousel-nav { display: none; }
  .a47-carousel-wrap::before,
  .a47-carousel-wrap::after { display: none; }
  .a47-banner-grid { grid-template-columns: 1fr; }
  .a47-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; }
  .page-hero { padding: 1.75rem 0 1.25rem; }

  /* Policy & payment */
  .a47-policy-nav { gap: 0.35rem; flex-wrap: wrap; }
  .a47-policy-nav a { font-size: 0.74rem; padding: 0.42rem 0.75rem; }
  .a47-policy-stage { grid-template-columns: 1fr !important; }
  .a47-policy-nav { position: static; }
  .a47-pay-actions { flex-direction: column; align-items: stretch; }
  .a47-pay-btn { width: 100%; }

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

  [class*="-hero"]:not(.a47-header) {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

  /* Bloom docks — two columns on tablet */
  .a47-bloom-dock,
  .a47-lounge-bento,
  .a47-petal-dock-grid,
  .a47-ledger-bento,
  .a47-florist-dock,
  .a47-signal-bento,
  .a47-celebrate-dock,
  .a47-cleared-bento,
  .a47-studio-bento,
  .a47-beacon-dock,
  .a47-trace-bento,
  .a47-dispatch-bento,
  .a47-specimen-dock,
  .a47-atelier-perks,
  .a47-lanes-dock-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .a47-lanes-dock {
    flex-direction: column;
    text-align: center;
  }

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

  /* Checkout sticky summary */
  .a47-seal-layout,
  .a47-co-workspace,
  .a47-trace-workspace,
  .a47-atelier-workspace,
  .a47-signal-workspace,
  .a47-cleared-workspace,
  .a47-studio-workspace,
  .a47-studio-registry-wrap,
  .a47-lounge-stage,
  .a47-bloom-stage,
  .a47-petal-stage,
  .a47-ledger-stage,
  .a47-basket-stage,
  .a47-hold-stage {
    grid-template-columns: 1fr !important;
  }

  /* Side rails become static on tablet */
  [class*="-rail"],
  .a47-lanes-rail,
  .a47-lounge-rail,
  .a47-bloom-rail,
  .a47-petal-rail,
  .a47-ledger-rail,
  .a47-specimen-rail,
  .a47-atelier-rail,
  .a47-signal-rail,
  .a47-trace-rail,
  .a47-co-rail,
  .a47-seal-rail {
    position: static !important;
    top: auto !important;
  }

  /* Shop grid */
  .a47-shop-grid,
  .a47-shop-products,
  .product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

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

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

  .a47-passport-medallion { --med-size: 34px; }
  .a47-passport-medallion--sm { --med-size: 28px; }

  .a47-footer { margin-top: 2rem; padding-top: 2rem; }
  .a47-footer-grid { grid-template-columns: 1fr; }
  .a47-footer-base { font-size: 0.72rem; padding: 0.85rem 0; }
  .a47-scroll-top { bottom: 1rem; right: 1rem; width: 40px; height: 40px; }

  .a47-top-products-grid,
  .a47-shop-grid,
  .a47-shop-products,
  .product-grid {
    grid-template-columns: 1fr !important;
  }

  .a47-section-head { margin-bottom: 1.35rem; }
  .a47-section-head h2 { font-size: clamp(1.45rem, 6vw, 1.85rem); }

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

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

  /* Bloom docks single column */
  .a47-bloom-dock,
  .a47-lounge-bento,
  .a47-petal-dock-grid,
  .a47-ledger-bento,
  .a47-florist-dock,
  .a47-signal-bento,
  .a47-celebrate-dock,
  .a47-cleared-bento,
  .a47-studio-bento,
  .a47-beacon-dock,
  .a47-trace-bento,
  .a47-dispatch-bento,
  .a47-specimen-dock,
  .a47-atelier-perks,
  .a47-lanes-dock-grid {
    grid-template-columns: 1fr !important;
  }

  .a47-petal-dock-tile--wide,
  .a47-ledger-tile--wide,
  .a47-dispatch-tile--wide,
  .a47-dispatch-tile--email,
  .a47-lounge-tile--wide {
    grid-column: span 1 !important;
  }

  /* Stage overlap tighten on phones */
  .a47-bloom-stage.auth-page,
  .a47-lounge-stage.auth-page,
  [class*="-stage"] {
    margin-top: -1.25rem;
    padding-left: 0;
    padding-right: 0;
  }

  /* Ribbon / sticky bars */
  .a47-specimen-ribbon-inner,
  .a47-atelier-dock-inner,
  .a47-lanes-masthead-inner,
  .a47-shop-masthead-inner {
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
  }
  .a47-specimen-ribbon-actions,
  .a47-atelier-dock-actions,
  .a47-lanes-masthead-actions,
  .a47-shop-toolbar {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
  }
  .a47-specimen-ribbon-actions .a47-specimen-btn,
  .a47-atelier-dock-actions .a47-atelier-btn,
  .a47-lanes-masthead-actions .a47-btn,
  .a47-shop-toolbar .a47-btn { width: 100%; }

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

  /* Catalog lanes deck */
  .a47-lanes-deck {
    grid-template-columns: 1fr !important;
  }
  .a47-lanes-rail-nav {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 0.45rem;
  }

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

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

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

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

  /* Payment / policy cards */
  .a47-policy-card,
  .a47-pay-card,
  .a47-policy-contact-grid {
    padding: 1.25rem;
    border-radius: 18px;
    grid-template-columns: 1fr !important;
  }

  /* Contact / studio forms */
  .a47-signal-grid,
  .a47-florist-grid,
  .a47-dispatch-grid,
  .a47-studio-contact-grid {
    grid-template-columns: 1fr !important;
  }

  /* Checkout & cart summaries */
  .a47-co-summary,
  .a47-seal-summary,
  .a47-basket-summary,
  .a47-hold-summary {
    position: static !important;
    top: auto !important;
  }

  /* Auth tabs */
  .a47-lounge-tabs,
  .auth-tabs {
    flex-direction: column;
  }
}

/* ── Small phone ── */
@media (max-width: 480px) {
  .a47-atlas-stats,
  .a47-studio-stats,
  .a47-lanes-stats { grid-template-columns: 1fr; }

  .a47-specimen-ribbon-actions,
  .a47-atelier-dock-actions,
  .a47-lanes-masthead-actions,
  .a47-shop-toolbar {
    grid-template-columns: 1fr;
  }

  .a47-lounge-sidebar-actions {
    flex-direction: column;
  }
  .a47-lounge-sidebar-actions .a47-lounge-btn { width: 100%; }

  .page-account-lounge .profile-grid.a47-lounge-profile {
    grid-template-columns: 1fr;
  }

  .a47-mobile-link {
    padding: .7rem .75rem;
    gap: .55rem;
  }

  .a47-btn,
  .a47-specimen-btn,
  .a47-atelier-btn,
  .a47-petal-btn,
  .a47-ledger-btn,
  .a47-bloom-btn,
  .a47-lounge-btn,
  .a47-basket-btn,
  .a47-hold-btn,
  .a47-seal-btn,
  .a47-co-btn {
    width: 100%;
    justify-content: center;
  }
}

/* Touch targets */
@media (max-width: 960px) {
  .a47-btn,
  .a47-specimen-btn,
  .a47-atelier-btn,
  .a47-petal-btn,
  .a47-ledger-btn,
  .a47-bloom-btn,
  .a47-lounge-btn,
  .a47-basket-btn,
  .a47-hold-btn,
  .a47-seal-btn,
  .a47-co-btn,
  .a47-signal-submit,
  .a47-cleared-btn,
  .a47-studio-tile,
  .a47-signal-topic,
  .a47-pay-btn,
  .a47-mobile-link,
  .a47-mobile-quick-btn,
  .a47-menu-toggle,
  .a47-tool,
  button {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .a47-mobile-panel,
  .a47-mobile-backdrop,
  .a47-menu-toggle span {
    transition: none !important;
  }
  .a47-mobile-link:hover {
    transform: none;
  }
}
