/* Mobile storefront: one reading column, comfortable controls, no desktop changes. */
@media (max-width: 760px) {
  .store-page {
    --store-gutter: clamp(18px, 5vw, 28px);
    font-size: 16px;
    line-height: 1.6;
    -webkit-text-size-adjust: 100%;
  }

  .store-page main,
  .store-page section,
  .store-page aside,
  .store-page form,
  .store-page fieldset,
  .store-page [class$="-layout"],
  .store-page [class$="-panel"] { min-width: 0; }
  .store-page main [id] { scroll-margin-top: 92px; }
  .store-page button,
  .store-page a,
  .store-page input,
  .store-page select,
  .store-page textarea { touch-action: manipulation; }
  .store-page input,
  .store-page select,
  .store-page textarea { font-size: 16px; }
  .store-page p,
  .store-page li,
  .store-page label { overflow-wrap: break-word; }
  .store-page h1,
  .store-page h2,
  .store-page h3 {
    word-break: normal;
    overflow-wrap: normal;
  }

  /* The three utility buttons remain reachable without crowding the logo. */
  .store-header-inner { height: 74px; gap: 10px; }
  .store-logo { width: clamp(122px, 38vw, 166px); }
  .store-actions { gap: 6px; flex: none; }
  .store-icon-link { width: 44px; height: 44px; }
  .store-menu-toggle {
    display: inline-flex;
    min-width: 44px;
    min-height: 44px;
    padding: 10px;
  }
  .store-menu-toggle span { display: none; }
  .store-menu-toggle svg { width: 21px; height: 21px; }
  .store-nav { display: none; }
  .store-mobile-menu { padding: 8px var(--store-gutter) 18px; }
  .store-mobile-menu a { min-height: 52px; font-size: 19px; padding: 13px 0; }
  .store-breadcrumb {
    padding-block: 20px;
    font-size: 16px;
    line-height: 1.5;
    gap: 7px 10px;
  }
  .store-title { font-size: clamp(40px, 10.7vw, 52px); line-height: 1.02; letter-spacing: -.025em; }
  .store-subtitle { font-size: 17px; line-height: 1.6; }
  .store-button,
  .store-button-secondary {
    min-height: 52px;
    padding: 13px 18px;
    gap: 14px;
    font-size: 16px;
    line-height: 1.45;
    white-space: normal;
  }
  .store-link { min-height: 44px; font-size: 16px; line-height: 1.5; }
  .store-field { gap: 8px; font-size: 16px; line-height: 1.5; }
  .store-field input,
  .store-field select,
  .store-field textarea { min-height: 52px; padding: 13px 14px; line-height: 1.5; }
  .store-empty { padding: 38px 0 48px; }
  .store-empty h2 { font-size: 36px; line-height: 1.1; }
  .store-empty p { font-size: 16px; line-height: 1.7; }
  .store-empty .store-button { width: 100%; }

  /* Product photographs keep their whole subject; the two thumbnails are usable. */
  .product-page { padding-top: 0; }
  .product-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-bottom: 44px; }
  .product-gallery { position: static; min-width: 0; }
  .product-page .product-photo-button { aspect-ratio: 4 / 3; border-radius: 8px; }
  .product-photo-button > img { object-fit: contain; object-position: center; }
  .product-photo-button:hover > img { transform: none; }
  .product-zoom-label { left: 12px; bottom: 12px; padding: 8px 11px; font-size: 16px; line-height: 1.4; }
  .store-product .product-thumbnails { grid-template-columns: repeat(2, minmax(0, 88px)) !important; gap: 10px; margin-top: 12px; }
  .product-thumbnails button { min-height: 64px; padding: 3px; border-radius: 5px; }
  .product-thumbnails img { width: 100%; height: 64px; object-fit: contain; }
  .product-gallery-note { font-size: 14px; line-height: 1.55; margin-top: 12px; }
  .product-purchase { padding-top: 0; }
  .product-purchase h1 { font-size: clamp(42px, 10.7vw, 54px); line-height: 1.02; letter-spacing: -.025em; margin-bottom: 16px; }
  .product-name { font-size: 18px; line-height: 1.45; margin-bottom: 22px; }
  .product-price-row { align-items: flex-start; flex-wrap: wrap; gap: 12px 18px; padding-top: 20px; }
  .product-live-price { gap: 8px 12px; }
  .product-live-price > strong { font-size: 32px; line-height: 1.2; }
  .product-price-row > span { font-size: 16px; line-height: 1.5; padding-top: 4px; }
  .product-intro { max-width: none; font-size: 16px; line-height: 1.7; margin-block: 20px; }
  .product-benefits { display: grid; gap: 10px; margin-bottom: 26px; font-size: 16px; line-height: 1.5; }
  .product-benefits > li,
  .product-benefits > li + li { border: 0; padding: 0; }
  .product-benefits > li::before { content: '✓'; padding-right: 10px; color: #526745; }
  .product-included { grid-template-columns: 64px minmax(0, 1fr); gap: 6px 14px; padding: 18px 16px; border-radius: 8px; }
  .product-included > img { grid-row: 1 / 3; width: 64px; height: 72px; }
  .product-included h2 { font-size: 17px; line-height: 1.4; margin-bottom: 6px; }
  .product-included p { font-size: 16px; line-height: 1.5; }
  .product-included > strong { grid-column: 2; font-size: 17px; line-height: 1.5; }
  .product-gift-heading { align-items: baseline; flex-wrap: wrap; gap: 8px 16px; margin-top: 28px; }
  .product-gift-heading h2 { font-size: 22px; line-height: 1.3; }
  .product-gift-heading > span { font-size: 16px; line-height: 1.5; white-space: normal; }
  .product-gift-intro { font-size: 16px; line-height: 1.6; margin-block: 10px 16px; }
  .product-gifts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .product-gift { padding: 38px 10px 16px; border-radius: 9px; }
  .product-gift-visual,
  .product-gift-visual.has-product-photo { width: 100%; max-width: none; height: 120px; margin-bottom: 12px; background: transparent; }
  .product-gift > strong { font-size: 16px; line-height: 1.4; min-height: 45px; }
  .product-gift-price { font-size: 16px; line-height: 1.5; gap: 4px 8px; }
  .product-gift-check { top: 11px; right: 11px; width: 25px; height: 25px; font-size: 16px; }
  .product-gift .gift-pack-note { font-size: 16px; line-height: 1.4; margin-block: 4px 7px; }
  .product-gift-status { font-size: 16px; line-height: 1.6; margin-block: 16px; }
  .product-purchase .product-add { min-height: 58px !important; padding: 15px 16px !important; font-size: 16px !important; gap: 14px; }
  .product-add > span:last-child { gap: 10px; }
  .product-360-link { font-size: 16px; line-height: 1.5; padding-block: 18px; text-align: center; }
  .product-purchase-note { font-size: 16px; line-height: 1.65; text-align: left; }
  .product-help-link { font-size: 16px; }
  .product-details-section { padding-block: 40px 48px; }
  .product-details-layout { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .product-details-intro h2 { font-size: 39px; line-height: 1.08; }
  .product-accordion summary { font-size: 18px; line-height: 1.45; padding-block: 20px; gap: 16px; }
  .product-accordion summary > span { flex: none; }
  .product-accordion details > p,
  .product-accordion details > ul { font-size: 16px; line-height: 1.75; max-width: none; }

  /* Full-width bag and review panels replace the desktop sidebars. */
  .bag-page,
  .payment-page { padding-top: 0; padding-bottom: 52px; }
  .bag-heading,
  .payment-heading { display: block; padding-block: 16px 28px; }
  .bag-heading > .store-link { display: inline-flex; margin-top: 18px; white-space: normal; font-size: 16px; }
  .bag-layout,
  .payment-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .bag-items-heading { align-items: baseline; gap: 14px; padding-bottom: 16px; }
  .bag-items-heading h2 { font-size: 22px; line-height: 1.35; }
  .bag-items-heading > span { font-size: 16px; line-height: 1.5; }
  .bag-line { padding-block: 22px; }
  .bag-line-top { grid-template-columns: 88px minmax(0, 1fr); gap: 16px; }
  .bag-line-info { min-width: 0; }
  .bag-product-image { border-radius: 7px; }
  .bag-product-image > img { padding: 5px; }
  .bag-line-title { font-size: 29px; line-height: 1.1; margin-bottom: 10px; }
  .bag-line-description { font-size: 16px; line-height: 1.5; margin-bottom: 12px; }
  .bag-line-price { flex-wrap: wrap; gap: 6px 10px; margin-bottom: 14px; }
  .bag-line-price > strong { font-size: 22px; }
  .bag-line-price > del,
  .bag-line-price > small { font-size: 16px; line-height: 1.5; }
  .bag-line-controls { flex-wrap: wrap; justify-content: flex-start; gap: 8px 20px; }
  .bag-quantity { height: 46px; }
  .bag-quantity > button { width: 44px; height: 44px; }
  .bag-quantity > output { min-width: 28px; font-size: 16px; }
  .bag-remove { min-height: 44px; font-size: 16px; }
  .bag-line-gifts { margin: 22px 0 0; }
  .bag-included { gap: 6px; align-items: center; font-size: 16px; line-height: 1.5; }
  .bag-included > .gift-info-inline { flex: 0 0 44px; }
  .bag-gift-chips { gap: 8px; margin-bottom: 14px; }
  .bag-gift-chips > li { max-width: 100%; padding: 6px 11px; font-size: 16px; line-height: 1.5; }
  .bag-edit-gifts { font-size: 16px; min-height: 44px; text-align: left; }
  .bag-gift-editor { padding: 14px; }
  .bag-gift-editor-head { gap: 8px 12px; margin-bottom: 16px; }
  .bag-gift-editor-head > strong { font-size: 18px; line-height: 1.4; }
  .bag-gift-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .bag-gift-option { padding: 38px 9px 14px; gap: 8px; min-height: 208px; }
  .bag-gift-option > img.gift-product-photo { height: 96px; margin: 0 auto 5px; }
  .bag-gift-option > span:not(.product-sprite),
  .bag-gift-option > small { font-size: 16px; line-height: 1.4; }
  .bag-gift-option > b { top: 11px; right: 11px; font-size: 20px; }
  .bag-offer-note { max-width: none; font-size: 16px; line-height: 1.65; }
  .bag-summary,
  .payment-summary { position: static; top: auto; padding: 22px 20px; border-radius: 9px; }
  .bag-summary h2,
  .payment-summary-heading h2 { font-size: 34px; line-height: 1.1; }
  .bag-totals > div,
  .payment-totals > div { align-items: baseline; gap: 14px; font-size: 16px; line-height: 1.5; margin-bottom: 16px; }
  .bag-totals dt,
  .payment-totals dt { min-width: 0; flex: 1; }
  .bag-totals dd,
  .payment-totals dd { max-width: 52%; white-space: normal; line-height: 1.5; }
  .bag-totals .bag-total,
  .payment-totals .payment-total { align-items: baseline; font-size: 23px; }
  .bag-total dd,
  .payment-total dd { white-space: nowrap; max-width: none; }
  .bag-checkout { min-height: 56px; font-size: 16px; padding-inline: 15px; gap: 12px; }
  .bag-preview-note,
  .bag-support-link { font-size: 16px; line-height: 1.65; }

  /* A single form column avoids narrow labels and text-entry zoom. */
  .payment-heading > p { margin-top: 18px; font-size: 16px; }
  .payment-progress { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding-bottom: 16px; margin-bottom: 28px; font-size: 16px; }
  .payment-progress li,
  .payment-progress a { gap: 0; min-height: 44px; }
  .payment-section-heading { align-items: baseline; flex-wrap: wrap; gap: 8px 16px; margin-bottom: 22px; }
  .payment-section-heading h2 { font-size: 34px; line-height: 1.1; }
  .payment-fields { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .payment-full { grid-column: auto; }
  .payment-fields .store-field label { font-size: 16px; line-height: 1.45; }
  .payment-fields .store-field label > span { font-size: 16px; }
  .payment-fields .store-field input,
  .payment-fields .store-field select { min-height: 52px; font-size: 16px; }
  .payment-address-title { font-size: 22px; line-height: 1.35; margin-block: 32px 20px; }
  .payment-delivery-note { gap: 10px; margin-block: 24px; }
  .payment-delivery-note > span { flex: none; }
  .payment-delivery-note p,
  .payment-local-note { font-size: 16px; line-height: 1.65; }
  .payment-summary-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px; padding-bottom: 18px; }
  .payment-summary-heading > a { font-size: 16px; margin: 0; min-height: 44px; }
  .payment-line { grid-template-columns: 72px minmax(0, 1fr); gap: 14px; padding-block: 22px; }
  .payment-line > div { min-width: 0; }
  .payment-line h3 { font-size: 18px; line-height: 1.4; }
  .payment-line p:not(.payment-line-label) { font-size: 16px; line-height: 1.6; }
  .payment-line strong { font-size: 20px; line-height: 1.4; }
  .payment-review > h2,
  .payment-saved h2 { font-size: 39px; line-height: 1.07; }
  .payment-review-card { padding: 20px; }
  .payment-review-card-heading { flex-wrap: wrap; align-items: center; gap: 6px 16px; }
  .payment-review-card h3 { margin: 0; font-size: 19px; }
  .payment-review-card p { overflow-wrap: anywhere; font-size: 16px; line-height: 1.7; }
  .payment-review-card-heading + p { margin-top: 16px; }
  .payment-method-panel { gap: 14px; }
  .payment-method-panel p,
  .payment-review-note { font-size: 16px; line-height: 1.65; }
  .payment-saved-actions { display: grid; gap: 16px; }
  .payment-saved-actions > .store-link { justify-self: start; margin-top: 0; }

  /* Account panels follow the same calm, readable vertical rhythm. */
  .member-page,
  .policy-page { padding-top: 0; padding-bottom: 50px; }
  .member-page-heading { margin-block: 18px 32px; }
  .member-layout { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .member-sidebar { position: static; }
  .member-identity { padding-bottom: 18px; gap: 12px; }
  .member-identity > div { min-width: 0; }
  .member-identity strong { font-size: 17px; line-height: 1.4; }
  .member-identity div > span { font-size: 16px; line-height: 1.5; }
  .member-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
  .member-tabs button { min-height: 60px; padding: 12px 7px; font-size: 16px; line-height: 1.35; white-space: normal; }
  .member-welcome h2,
  .member-section-heading h2,
  .member-panel > h2 { font-size: 36px; line-height: 1.1; overflow-wrap: normal; }
  .member-stat-grid { gap: 12px; margin-bottom: 24px; }
  .member-stat { padding: 18px 16px; }
  .member-stat > strong { font-size: 50px; line-height: 1.1; margin-bottom: 10px; }
  .member-stat > small { font-size: 16px; line-height: 1.4; gap: 10px; }
  .member-reward { grid-template-columns: minmax(0, 1fr); margin-bottom: 24px; }
  .member-reward-art { padding: 16px; min-height: 0; }
  .member-reward-art > img { width: 100%; max-width: 290px; height: 200px; margin: auto; }
  .member-reward-copy { padding: 24px 22px 28px; }
  .member-reward-copy h3 { font-size: 36px; line-height: 1.1; }
  .member-reward-copy > p { max-width: none; font-size: 16px; line-height: 1.65; }
  .member-reward-copy .store-button { width: 100%; min-height: 52px; }
  .member-device-note,
  .member-form-note,
  .member-order-footer { font-size: 16px; line-height: 1.65; }
  .member-section-heading { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: baseline; }
  .member-order-card { padding: 20px 18px; }
  .member-order-card > header { display: block; }
  .member-order-card time { font-size: 16px; line-height: 1.5; }
  .member-preview-badge { font-size: 16px; }
  .member-order-lines p { gap: 6px 14px; }
  .member-order-lines p > span:first-child { flex-basis: 170px; }
  .member-profile-form { max-width: none; margin-top: 24px; }
  .member-form-actions { gap: 16px; }
  .member-form-actions > .store-button { width: 100%; }
  .member-empty { padding: 32px 18px; }
  .member-empty h3 { font-size: 32px; line-height: 1.1; }
  .member-clear-prompt { padding: 18px; }

  /* Support questions expand in-place with generous text columns. */
  .help-hero { height: 420px; }
  .help-hero > img { object-position: 65% center; }
  .help-hero-copy { justify-content: flex-start; padding-top: 38px; }
  .help-hero h1 { font-size: clamp(44px, 12vw, 58px); line-height: 1.02; margin-bottom: 20px; }
  .help-hero-copy > p:last-child { font-size: 18px; line-height: 1.6; }
  .help-topics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 16px; padding-block: 20px; }
  .help-topics a { min-height: 52px; font-size: 16px; line-height: 1.45; padding-block: 12px; }
  .help-group { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-block: 36px; }
  .help-group > div:first-child h2,
  .help-order h2 { font-size: 38px; line-height: 1.08; }
  .help-faqs summary { min-height: 64px; font-size: 18px; line-height: 1.45; padding-block: 18px; gap: 14px; }
  .help-faqs summary > span { flex: none; }
  .help-faqs details > p { max-width: none; padding: 0 0 22px; font-size: 16px; line-height: 1.75; }
  .help-order { grid-template-columns: minmax(0, 1fr); gap: 26px; padding-top: 38px; }
  .help-order-intro > p:not(.store-kicker) { max-width: none; }
  .help-note-card { min-width: 0; padding: 24px 20px; }
  .help-note-card h3 { font-size: 32px; line-height: 1.1; }
  .help-note-card > p { max-width: none; font-size: 16px; line-height: 1.65; }
  .help-note-card label,
  .help-note-card label > span,
  .member-profile-form label > span { font-size: 16px; line-height: 1.5; }
  .help-note-card textarea { font-size: 16px; }
  .policy-heading { padding-block: 18px 30px; }
  .policy-heading > p:last-child { font-size: 17px; line-height: 1.65; }
  .policy-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-top: 20px; }
  .policy-nav { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
  .policy-nav a { min-height: 56px; padding-block: 13px; font-size: 16px; line-height: 1.5; }
  .policy-content { min-width: 0; max-width: none; }
  .policy-content h2 { font-size: 35px; line-height: 1.12; margin-bottom: 20px; }
  .policy-content section > p:not(.store-kicker) { font-size: 16px; line-height: 1.75; }

  /* Shared gift overlays are scrollable; text never sits beneath the close button. */
  button.gift-info-button { width: 44px; height: 44px; min-width: 44px; font-size: 20px; }
  .gift-info-button::before { inset: 8px; }
  .gift-info-dialog { width: calc(100vw - 24px); max-height: calc(100dvh - 32px); border-radius: 12px; }
  .gift-info-content { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .gift-info-visual { width: min(260px, calc(100% - 48px)); margin: 50px auto 0; aspect-ratio: 1; }
  .gift-info-copy { padding: 24px 22px 26px; }
  .gift-info-copy h2 { font-size: 34px; line-height: 1.1; }
  .gift-info-eyebrow,
  .gift-info-offer,
  .gift-info-price { font-size: 16px; line-height: 1.5; }
  .gift-info-description,
  .gift-info-tips { font-size: 16px; line-height: 1.7; }
  .gift-info-specs { font-size: 16px; line-height: 1.5; }
  .gift-info-specs > div { grid-template-columns: 84px minmax(0, 1fr); gap: 12px; }
  .gift-info-specs dd { min-width: 0; overflow-wrap: break-word; }
  .gift-info-dialog .gift-info-close { width: 44px; height: 44px; top: 10px; right: 10px; }
  .gift-info-dialog .gift-info-back { min-height: 52px; font-size: 16px; }
  .gift-reward-dialog { width: calc(100vw - 24px); max-height: calc(100dvh - 32px); padding: 52px 20px 24px; border-radius: 12px; }
  .gift-reward-close { width: 44px; height: 44px; top: 7px; right: 8px; }
  .gift-reward-dialog h2 { font-size: 36px; line-height: 1.08; }
  .gift-reward-dialog #gift-reward-description { font-size: 16px; line-height: 1.65; }
  .gift-reward-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 14px; }
  .gift-reward-gallery img { height: 78px; }
  .gift-reward-gallery span { font-size: 16px; line-height: 1.4; }
  .gift-reward-total { flex-wrap: wrap; gap: 6px 14px; font-size: 16px; }
  .gift-reward-continue { min-height: 54px; font-size: 16px; }
  .store-page .coupon-inline { gap: 12px; padding: 16px; font-size: 16px; line-height: 1.55; border-radius: 7px; }
  .store-page .coupon-inline > [id$="-coupon-copy"],
  .store-page .coupon-inline > #product-reward-copy { flex-basis: 100%; }
  .store-page .coupon-inline > .coupon-claim { min-height: 48px; font-size: 16px; padding: 11px 18px; }
  .store-page .coupon-inline > [data-coupon-countdown] { font-size: 21px; }

  .store-page #store-toast { width: max-content; max-width: calc(100vw - 32px); bottom: 20px; padding: 14px 18px; font-size: 16px; line-height: 1.5; }
  .store-footer { padding: 36px var(--store-gutter, 20px) 24px; }
  .store-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
  .store-footer-brand { grid-column: 1 / -1; }
  .store-footer-brand img { max-width: 100%; width: 200px; }
  .store-footer-grid > div:last-child { grid-column: 1 / -1; }
  .store-footer h2 { font-size: 17px; line-height: 1.4; margin-bottom: 12px; }
  .store-footer a { font-size: 16px; line-height: 1.5; min-height: 44px; }
  .store-footer-links { gap: 4px; }
  .store-footer-bottom { display: block; margin-top: 30px; padding-top: 20px; }
  .store-footer-bottom,
  .store-footer-bottom p,
  .store-footer-bottom span { font-size: 14px; line-height: 1.65; }
  .store-footer-bottom p + p { margin-top: 14px; }
}

@media (max-width: 360px) {
  .store-page { --store-gutter: 16px; }
  .store-header-inner { gap: 6px; }
  .store-logo { width: 122px; }
  .store-actions { gap: 4px; }
  .product-purchase h1 { font-size: 40px; }
  .product-gifts { gap: 10px; }
  .product-gift { padding-inline: 8px; }
  .product-gift-visual,
  .product-gift-visual.has-product-photo { height: 104px; }
  .bag-line-top { grid-template-columns: 72px minmax(0, 1fr); gap: 12px; }
  .bag-line-title { font-size: 27px; }
  .bag-summary,
  .payment-summary { padding-inline: 16px; }
  .product-add > span:last-child { gap: 7px; }
  .member-stat-grid { gap: 10px; }
  .member-stat { padding-inline: 12px; }
  .member-stat > small { font-size: 16px; }
  .gift-info-copy { padding-inline: 18px; }
  .gift-info-copy h2 { font-size: 32px; }
}
