/* Customer storefront theme. Keep the legacy structural hooks and all JS states. */
.storefront.storefront-theme {
    --brand-primary: #244b39;
    --brand-dark: #183a2a;
    --brand-green: #244b39;
    --store-bg: #f7f6f0;
    --store-surface: #fffefa;
    --store-text: #203d32;
    --store-muted: #656e63;
    --store-border: #dddfd4;
    --theme-accent: #b53d2d;
    --theme-soft: #eaf0e6;
    margin: 0;
    background: var(--store-bg);
    color: var(--store-text);
    font: 400 15px/1.55 "DM Sans", Georgia, serif;
    -webkit-font-smoothing: antialiased;
}
/* Explicit font rules override the many legacy component font declarations. */
.storefront.storefront-theme :where(button, input, select, textarea, label, p, span, a, strong, b, small, time, li, div, fieldset, legend, h3, h4, summary) {
    font-family: "DM Sans", Georgia, serif !important;
}
.storefront.storefront-theme :where(h1, h2),
.storefront.storefront-theme :where(h1, h2) em {
    font-family: "Playfair Display", Georgia, serif !important;
    font-weight: 400;
    letter-spacing: -.025em;
    line-height: 1.16;
    color: var(--store-text);
}
.storefront.storefront-theme :where(h1, h2) em { font-weight: 500; }
.storefront.storefront-theme :where(a) { text-decoration: none; }
.storefront.storefront-theme :where(a, button, input, select, textarea):focus-visible {
    outline: 3px solid var(--theme-accent);
    outline-offset: 3px;
}
.storefront.storefront-theme :where(button, a) { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
.storefront.storefront-theme :where(button:disabled, .is-disabled) { opacity: .48; cursor: not-allowed; }
.storefront.storefront-theme :where(img) { max-width: 100%; }
.storefront.storefront-theme .eyebrow { color: var(--theme-accent); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.storefront.storefront-theme :is(.btn-primary, .button, .pickup-confirm-button, .client-message-button, :where(#product-option-confirm, .promo-box button, .bug-report-form > button, .delivery-address-check button, .sms-verification-modal button[type="submit"])) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 48px;
    border: 1px solid var(--brand-primary);
    border-radius: 10px;
    background: var(--brand-primary);
    color: #fffefa;
    padding: 12px 22px;
    box-shadow: none;
    font-size: 14px;
    font-weight: 650;
    line-height: 1.3;
    text-transform: none;
    text-decoration: none;
    transition: background .15s, border-color .15s;
    cursor: pointer;
}
.storefront.storefront-theme :is(.btn-primary, .button, .pickup-confirm-button, .client-message-button, :where(#product-option-confirm, .promo-box button, .bug-report-form > button, .delivery-address-check button)):hover:not(:disabled) {
    background: var(--brand-dark); border-color: var(--brand-dark); color: #fffefa; box-shadow: none; transform: none;
}
.storefront.storefront-theme :is(.btn-add, .confirmation-actions .button, .subpage-account-link, .header-cart, .account-nudge-actions a, .account-link-primary) {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 42px; border: 1px solid #bac6b7; border-radius: 9px;
    background: transparent; color: var(--store-text); padding: 10px 16px;
    box-shadow: none; text-decoration: none; text-transform: none; font-size: 13px; font-weight: 600;
}
.storefront.storefront-theme :is(.btn-add, .confirmation-actions .button, .subpage-account-link, .header-cart, .account-nudge-actions a):hover {
    background: var(--theme-soft); color: var(--store-text); box-shadow: none; transform: none;
}
.storefront.storefront-theme :is(.btn-primary, .button, .btn-add, .account-link) svg { flex-shrink: 0; }
.storefront.storefront-theme :where(input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]), select, textarea) {
    min-width: 0; max-width: 100%; min-height: 46px; border: 1px solid #cdd4c7;
    border-radius: 7px; background: #fff; color: var(--store-text); padding: 12px 14px;
    font-size: 15px; font-weight: 400; box-shadow: none;
}
.storefront.storefront-theme :where(input, select, textarea):focus { border-color: var(--brand-primary); box-shadow: 0 0 0 2px #244b3910; }
.storefront.storefront-theme :where(input[type="radio"], input[type="checkbox"]) { accent-color: var(--brand-primary); }
.storefront.storefront-theme :where(label) { color: var(--store-text); font-size: 13px; font-weight: 600; }
.storefront.storefront-theme :where(.field-help, .secure-note) { color: var(--store-muted); font-size: 12px; }
.storefront.storefront-theme .alert { border: 1px solid #e6cdbb; border-radius: 9px; background: #fbefe8; color: #833b25; box-shadow: none; }
.storefront.storefront-theme .alert.success { border-color: #b8cbb0; background: var(--theme-soft); color: var(--brand-dark); }

/* Navigation */
.storefront.storefront-theme .site-header { padding: 0; background: var(--store-surface); border-bottom: 1px solid var(--store-border); box-shadow: none; backdrop-filter: none; color: var(--store-text); }
.storefront.storefront-theme .header-inner { display: flex; width: min(1200px, calc(100% - 48px)); min-height: 90px; padding: 12px 0; gap: 22px; }
.storefront.storefront-theme .brand img { width: 176px; max-height: 64px; }
.storefront.storefront-theme .store-header-details { flex: 1; min-width: 0; gap: 6px; }
.storefront.storefront-theme .store-header-details > :is(span, a) { background: transparent; border: 0; border-radius: 0; color: var(--store-muted); padding: 0; font-size: 12px; box-shadow: none; }
.storefront.storefront-theme .store-header-details > :is(span, a)::before { display: none; }
.storefront.storefront-theme .nav-actions { gap: 12px; }
.storefront.storefront-theme .welcome { max-width: 200px; overflow: hidden; text-overflow: ellipsis; }
.storefront.storefront-theme.account-page .nav-actions { display: flex; width: auto; flex-wrap: wrap; }
.storefront.storefront-theme.account-page .mobile-account-actions { display: none; }
.storefront.storefront-theme .account-link { border-radius: 8px; color: var(--store-text); font-size: 13px; font-weight: 600; box-shadow: none; }
.storefront.storefront-theme .account-link-danger { color: var(--theme-accent); background: transparent; border-color: var(--store-border); }
.storefront.storefront-theme .selected-pickup-button { min-height: 48px; border: 1px solid var(--store-border); border-radius: 9px; background: var(--store-bg); color: var(--store-text); padding: 8px 14px; box-shadow: none; }
.storefront.storefront-theme .selected-pickup-button span { color: var(--store-muted); font-size: 11px; font-weight: 400; }
.storefront.storefront-theme .selected-pickup-button strong { color: var(--store-text); font-size: 12px; font-weight: 650; }
.storefront.storefront-theme .header-cart { min-width: 100px; }
.storefront.storefront-theme .header-cart span { background: var(--theme-soft); color: var(--store-text); }
.storefront.storefront-theme .fulfillment-switch { border: 1px solid var(--store-border); border-radius: 8px; background: transparent; }
.storefront.storefront-theme :is(.fulfillment-switch, .mobile-fulfillment-switch) strong { background: var(--brand-primary); color: white; border-radius: 6px; }
.storefront.storefront-theme .back-link { color: var(--store-muted); font-size: 13px; font-weight: 500; }

/* Menu hero, practical information and product catalogue */
.storefront.storefront-theme .container { width: min(1152px, calc(100% - 48px)); }
.storefront.storefront-theme .hero { display: grid; grid-template-columns: 1fr 1.05fr; align-items: stretch; width: min(1152px, calc(100% - 48px)); min-height: 350px; margin: 32px auto 0; border: 1px solid var(--store-border); border-radius: 16px; background: var(--store-surface); }
.storefront.storefront-theme .hero-media { position: relative; inset: auto; grid-column: 2; grid-row: 1; background-position: center; transform: none; }
.storefront.storefront-theme .hero-overlay { display: none; }
.storefront.storefront-theme .hero-content { width: auto; max-width: none; margin: 0; padding: 42px 40px; grid-column: 1; grid-row: 1; color: var(--store-text); }
.storefront.storefront-theme .hero-content h1 { margin: 16px 0 20px; font-size: clamp(36px, 4.2vw, 54px); letter-spacing: -.035em; line-height: 1.08; }
.storefront.storefront-theme .hero-content h1 em { color: var(--theme-accent); font-style: italic; }
.storefront.storefront-theme .hero-content > p { max-width: 360px; color: var(--store-muted); font-size: 15px; line-height: 1.6; }
.storefront.storefront-theme .hero-badge { border: 0; border-radius: 0; background: transparent; color: var(--theme-accent); padding: 0; font-size: 10px; font-weight: 700; letter-spacing: .16em; backdrop-filter: none; }
.storefront.storefront-theme .hero-actions { margin-top: 24px; flex-wrap: wrap; gap: 16px; }
.storefront.storefront-theme .opening-status { color: var(--store-muted); font-size: 11px; }
.storefront.storefront-theme .opening-status :is(strong, small) { color: var(--store-muted); font-size: 11px; font-weight: 500; }
.storefront.storefront-theme .opening-status .status-dot { background: var(--brand-primary); box-shadow: none; }
.storefront.storefront-theme .store-information { width: min(1152px, calc(100% - 48px)); margin: 0 auto; padding: 20px 0; border: 0; border-bottom: 1px solid var(--store-border); border-radius: 0; background: transparent; box-shadow: none; }
.storefront.storefront-theme .store-information article { border-color: var(--store-border); }
.storefront.storefront-theme .store-info-icon { width: 30px; height: 30px; color: var(--brand-primary); background: var(--theme-soft); border-radius: 7px; }
.storefront.storefront-theme .store-information small { color: var(--store-muted); font-size: 10px; }
.storefront.storefront-theme .store-information strong { color: var(--store-text); font-size: 12px; font-weight: 600; }
.storefront.storefront-theme :is(.opening-section, .featured-section) { background: transparent; padding: 30px 0; border: 0; }
.storefront.storefront-theme .opening-hours-list { background: var(--store-surface); border: 1px solid var(--store-border); border-radius: 10px; box-shadow: none; }
.storefront.storefront-theme .opening-hours-list > div { border-color: var(--store-border); font-size: 12px; }
.storefront.storefront-theme :is(.opening-heading, .menu-heading) h2 { font-size: 30px; }
.storefront.storefront-theme .menu-heading > p { color: var(--store-muted); font-size: 13px; font-weight: 400; }
.storefront.storefront-theme .menu-section { padding: 30px 0 64px; }
.storefront.storefront-theme .order-layout { grid-template-columns: minmax(0, 1fr) 308px; gap: 34px; align-items: start; }
.storefront.storefront-theme .category-heading h3 { font-size: 21px; font-weight: 650; color: var(--store-text); }
.storefront.storefront-theme .category-heading p { color: var(--store-muted); font-size: 13px; }
.storefront.storefront-theme .product-category .cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; overflow: visible; border: 0; border-radius: 0; background: transparent; }
.storefront.storefront-theme .product-category .card { display: flex; flex-direction: column; gap: 0; min-width: 0; min-height: 0; border: 1px solid var(--store-border); border-radius: 12px; overflow: hidden; padding: 0; background: var(--store-surface); box-shadow: none; }
.storefront.storefront-theme .product-category .card:nth-child(2n) { border-right: 1px solid var(--store-border); }
.storefront.storefront-theme .product-category .card:hover { background: var(--store-surface); transform: none; box-shadow: 0 5px 20px #203d3208; }
.storefront.storefront-theme .product-category .product-image { width: 100%; height: auto; aspect-ratio: 1.7; border-radius: 0; align-self: stretch; }
.storefront.storefront-theme .product-category .product-image img { width: 100%; height: 100%; object-fit: cover; transform: none; }
.storefront.storefront-theme .product-category .card-body { padding: 20px 20px 8px; }
.storefront.storefront-theme .product-category .card h3 { margin: 0 0 7px; color: var(--store-text); font-size: 19px; font-weight: 650; }
.storefront.storefront-theme .product-category .card p { min-height: 40px; color: var(--store-muted); font-size: 13px; line-height: 1.5; -webkit-line-clamp: 3; }
.storefront.storefront-theme .product-category .card-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding: 12px 20px 20px; border: 0; }
.storefront.storefront-theme .product-category .price { margin: 0; color: var(--store-text); font-size: 17px; font-weight: 800; }
.storefront.storefront-theme :is(.card, .featured-card) .btn-add { display: inline-flex !important; position: static; width: auto; height: auto; min-width: 0; overflow: visible; clip: auto; clip-path: none; white-space: nowrap; opacity: 1; padding: 9px 14px; font-size: 13px; }
.storefront.storefront-theme .featured-card { border: 1px solid var(--store-border); border-radius: 12px; background: var(--store-surface); box-shadow: none; }
.storefront.storefront-theme .featured-card > div { padding: 18px; }
.storefront.storefront-theme .featured-card > div > span { color: var(--theme-accent); background: transparent; font-weight: 600; }
.storefront.storefront-theme .featured-card h3 { color: var(--store-text); font-size: 18px; font-weight: 650; }
.storefront.storefront-theme .featured-arrow { border-radius: 8px; background: var(--store-surface); color: var(--store-text); box-shadow: none; }

/* Basket and checkout */
.storefront.storefront-theme .cart { top: 112px; border: 1px solid var(--store-border); border-radius: 12px; background: var(--store-surface); padding: 24px; color: var(--store-text); box-shadow: none; }
.storefront.storefront-theme .cart h2 { margin: 0; font-size: 25px; }
.storefront.storefront-theme .cart-count { background: var(--theme-soft); color: var(--store-text); }
.storefront.storefront-theme .cart-pickup-summary { border: 1px solid var(--store-border); border-radius: 8px; background: var(--store-bg); color: var(--store-text); }
.storefront.storefront-theme .cart-pickup-summary button { color: var(--theme-accent); background: transparent; font-weight: 600; }
.storefront.storefront-theme .cart-item { border-color: var(--store-border); padding-block: 18px; }
.storefront.storefront-theme .cart-item strong { color: var(--store-text); font-weight: 650; }
.storefront.storefront-theme .cart-item-options { color: var(--store-muted); }
.storefront.storefront-theme .cart-quantity button { border: 1px solid var(--store-border); border-radius: 6px; background: var(--store-bg); color: var(--store-text); box-shadow: none; }
.storefront.storefront-theme .cart-total { border-top: 1px solid var(--store-border); background: transparent; color: var(--store-text); border-radius: 0; padding: 20px 0; }
.storefront.storefront-theme .cart-total :is(span, strong) { color: var(--store-text); }
.storefront.storefront-theme .cart-total strong { font-size: 24px; }
.storefront.storefront-theme #checkout-button { border-radius: 10px; background: var(--brand-primary); color: #fff; box-shadow: none; font-size: 14px; }
.storefront.storefront-theme .cart-reassurance { color: var(--store-muted); font-size: 11px; }
.storefront.storefront-theme .promo-box { padding: 16px 0; border: 0; border-top: 1px solid var(--store-border); border-radius: 0; background: transparent; }
.storefront.storefront-theme .promo-box label { color: var(--store-muted); font-weight: 600; font-size: 11px; }
.storefront.storefront-theme .promo-box > div { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.storefront.storefront-theme .promo-box button { min-height: 44px; padding: 10px 12px; font-size: 12px; }
.storefront.storefront-theme .page-shell { width: min(1152px, calc(100% - 48px)); margin: 0 auto; padding: 36px 0 64px; }
.storefront.storefront-theme .page-heading { margin-bottom: 30px; }
.storefront.storefront-theme .page-heading h1 { margin: 0 0 12px; font-size: clamp(34px, 4vw, 44px); }
.storefront.storefront-theme .page-heading > p:not(.eyebrow) { color: var(--store-muted); font-size: 15px; }
.storefront.storefront-theme .checkout-layout { grid-template-columns: minmax(0, 1fr) 340px; gap: 36px; align-items: start; }
.storefront.storefront-theme :is(.checkout-panel, .checkout-summary-card) { border: 1px solid var(--store-border); border-radius: 12px; background: var(--store-surface); padding: 30px; box-shadow: none; }
.storefront.storefront-theme .checkout-summary-card { top: 112px; padding: 26px; grid-row: auto; }
.storefront.storefront-theme .checkout-summary-card h2 { font-size: 25px; }
.storefront.storefront-theme .panel-heading { margin-bottom: 28px; }
.storefront.storefront-theme .panel-heading > span { width: 30px; height: 30px; background: var(--theme-soft); color: var(--store-text); font-family: Georgia, serif !important; font-weight: 400; font-size: 17px; }
.storefront.storefront-theme .panel-heading h2 { font-family: "DM Sans", Georgia, serif !important; font-size: 18px; font-weight: 650; letter-spacing: 0; }
.storefront.storefront-theme .panel-heading p { color: var(--store-muted); font-size: 13px; }
.storefront.storefront-theme .account-nudge { border: 1px solid var(--store-border); border-radius: 9px; background: var(--store-bg); padding: 16px; grid-template-columns: 1fr; gap: 10px; }
.storefront.storefront-theme .account-nudge strong { color: var(--store-text); font-size: 13px; font-weight: 650; }
.storefront.storefront-theme .account-nudge span { color: var(--store-muted); font-size: 12px; }
.storefront.storefront-theme .account-nudge-actions { justify-content: start; }
.storefront.storefront-theme .account-nudge-actions a:last-child { background: transparent; color: var(--store-text); box-shadow: none; }
.storefront.storefront-theme .form-grid { gap: 20px 18px; }
.storefront.storefront-theme .checkout-item { border-color: var(--store-border); color: var(--store-text); font-size: 14px; }
.storefront.storefront-theme .checkout-total { border-radius: 0; border-top: 1px solid var(--store-border); background: transparent; color: var(--store-text); padding: 20px 0; }
.storefront.storefront-theme .checkout-total :is(strong, span) { color: var(--store-text); }
.storefront.storefront-theme .payment-mode { border: 0; border-top: 1px solid var(--store-border); border-radius: 0; background: transparent; padding: 24px 0 0; }
.storefront.storefront-theme .payment-mode > strong { font-size: 16px; font-weight: 650; }
.storefront.storefront-theme .payment-mode label { grid-template-columns: 22px minmax(0, 1fr); border-radius: 8px; border-color: var(--store-border); background: var(--store-surface); box-shadow: none; }
.storefront.storefront-theme .payment-mode label:has(input:checked) { border-color: var(--brand-primary); background: var(--theme-soft); box-shadow: none; }
.storefront.storefront-theme .payment-mode label b { font-size: 14px; font-weight: 650; }
.storefront.storefront-theme .payment-mode label small { color: var(--store-muted); font-size: 12px; }
.storefront.storefront-theme .stripe-card-wrapper { border-radius: 10px; border-color: var(--store-border); background: var(--store-bg); box-shadow: none; }
.storefront.storefront-theme .stripe-payment-head { background: transparent; }
.storefront.storefront-theme .checkout-submit { width: 100%; margin-top: 8px; }
.storefront.storefront-theme .checkout-steps { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 26px; color: var(--store-muted); font-size: 12px; }
.storefront.storefront-theme .checkout-steps b { color: var(--brand-primary); font-weight: 650; }
.storefront.storefront-theme .checkout-steps i { width: 24px; height: 1px; background: var(--store-border); }

/* Receipt and order tracking */
.storefront.storefront-theme.confirmation-page { background: var(--store-bg); }
.storefront.storefront-theme .confirmation-shell { width: min(740px, calc(100% - 40px)); margin: 0 auto; padding: 40px 0 28px; }
.storefront.storefront-theme .confirmation-shell > .auth-logo { display: none; }
.storefront.storefront-theme .confirmation-intro { text-align: center; padding: 10px 0 30px; }
.storefront.storefront-theme .confirmation-check { display: grid; width: 56px; height: 56px; place-items: center; margin: 0 auto 20px; border-radius: 50%; background: #e5ecdf; color: var(--brand-primary); box-shadow: none; }
.storefront.storefront-theme .confirmation-intro .eyebrow { color: var(--brand-primary); }
.storefront.storefront-theme .confirmation-intro h1 { margin: 12px 0 16px; font-size: clamp(32px, 4vw, 46px); }
.storefront.storefront-theme .confirmation-intro > p:not(.eyebrow) { color: var(--store-muted); font-size: 14px; line-height: 1.6; }
.storefront.storefront-theme .confirmation-card { width: 100%; border: 1px solid var(--store-border); border-radius: 14px; background: var(--store-surface); padding: 30px; box-shadow: none; }
.storefront.storefront-theme .confirmation-card h1 { font-size: clamp(32px, 4vw, 44px); }
.storefront.storefront-theme .confirmation-reference { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 0 -30px 28px; padding: 0 30px 22px; border: 0; border-bottom: 1px solid var(--store-border); border-radius: 0; background: transparent; color: var(--store-text); text-align: left; }
.storefront.storefront-theme .confirmation-reference > div > span { display: block; color: var(--store-muted); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.storefront.storefront-theme .confirmation-reference strong { display: block; color: var(--store-text); font-size: 21px; font-weight: 800; }
.storefront.storefront-theme .confirmation-status { display: inline-flex; margin: 0; padding: 7px 12px; border-radius: 6px; background: #f5edda; color: #6b5424; font-size: 12px; font-weight: 500; }
.storefront.storefront-theme .confirmation-status strong { display: inline; font-size: inherit; font-weight: 600; color: inherit; }
.storefront.storefront-theme .confirmation-details { gap: 18px; margin-bottom: 12px; text-align: left; }
.storefront.storefront-theme .confirmation-details > div { border: 0; border-radius: 8px; background: var(--store-bg); padding: 20px; }
.storefront.storefront-theme .confirmation-details span { color: var(--store-muted); font-size: 11px; }
.storefront.storefront-theme .confirmation-details strong { color: var(--store-text); font-size: 14px; font-weight: 650; }
.storefront.storefront-theme .confirmation-items { text-align: left; }
.storefront.storefront-theme .confirmation-items > div { border-color: var(--store-border); font-size: 14px; padding: 18px 0; }
.storefront.storefront-theme .confirmation-total { padding: 20px 0; margin-bottom: 22px; color: var(--store-text); }
.storefront.storefront-theme .confirmation-total strong { font-size: 24px; }
.storefront.storefront-theme .confirmation-actions { display: flex; gap: 12px; margin-top: 24px; }
.storefront.storefront-theme .confirmation-actions > a { flex: 1; width: auto; }
.storefront.storefront-theme .confirmation-help { margin: 22px 0 0; color: var(--store-muted); font-size: 12px; text-align: center; }
.storefront.storefront-theme .receipt-progress { display: flex; align-items: start; gap: 16px; list-style: none; margin: 0 0 28px; padding: 0; text-align: left; }
.storefront.storefront-theme .receipt-progress li { display: flex; flex: 1; align-items: center; gap: 7px; color: var(--store-muted); font-size: 12px; }
.storefront.storefront-theme .receipt-step-number { display: inline-grid; place-items: center; width: 23px; height: 23px; flex-shrink: 0; border: 1px solid var(--store-border); border-radius: 50%; font-family: Georgia, serif !important; }
.storefront.storefront-theme .receipt-progress .is-done { color: var(--brand-primary); }
.storefront.storefront-theme .receipt-progress .is-done .receipt-step-number { color: white; background: var(--brand-primary); border-color: var(--brand-primary); }
.storefront.storefront-theme .order-status-card > p:not(.eyebrow) { color: var(--store-muted); font-size: 14px; }
.storefront.storefront-theme .order-progress article.is-done:not(:last-child)::before { background: var(--brand-primary); }
.storefront.storefront-theme .order-progress article.is-done i { border-color: var(--brand-primary); background: var(--brand-primary); }
.storefront.storefront-theme .order-progress article.is-current strong { color: var(--brand-primary); }
.storefront.storefront-theme .order-progress strong { font-size: 15px; font-weight: 650; }
.storefront.storefront-theme .order-progress :is(span, time) { color: var(--store-muted); font-size: 12px; }
.storefront.storefront-theme .order-progress article { animation: store-step-appear .5s ease both; }
.storefront.storefront-theme .order-progress article:nth-child(2) { animation-delay: .08s; }
.storefront.storefront-theme .order-progress article:nth-child(3) { animation-delay: .16s; }
.storefront.storefront-theme .order-progress article:nth-child(4) { animation-delay: .24s; }
.storefront.storefront-theme .order-progress article:nth-child(5) { animation-delay: .32s; }
.storefront.storefront-theme .order-progress article::before { transform-origin: top; transition: background-color .4s ease; }
.storefront.storefront-theme .order-progress article.is-done:not(.is-current):not(:last-child)::before { animation: store-step-line .7s ease-out both; }
.storefront.storefront-theme .order-progress article.is-current:not(:last-child)::before { background: var(--store-border); }
.storefront.storefront-theme .order-progress i { transition: background-color .4s ease, border-color .4s ease, box-shadow .4s ease; }
.storefront.storefront-theme .order-progress article.is-current i { box-shadow: 0 0 0 5px rgb(36 75 57 / .08); }
.storefront.storefront-theme .order-progress:not([data-status="completed"]) article.is-current i::before {
    content: ''; position: absolute; inset: -5px; border: 1px solid var(--brand-primary);
    border-radius: 50%; pointer-events: none; animation: store-step-halo 2.6s ease-out infinite;
}
@keyframes store-step-appear { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes store-step-line { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes store-step-halo { 0% { transform: scale(.9); opacity: .4; } 75%, 100% { transform: scale(1.65); opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
    .storefront.storefront-theme .order-progress article,
    .storefront.storefront-theme .order-progress article::before,
    .storefront.storefront-theme .order-progress i,
    .storefront.storefront-theme .order-progress article.is-current i::before { animation: none !important; transition: none !important; }
    .storefront.storefront-theme .order-progress article.is-current i::before { display: none; }
}
.storefront.storefront-theme :is(.delivery-status-panel, .uber-live-tracking, .uber-tracking-hero, .uber-tracking-side > div, .uber-tracking-map-card) { border: 1px solid var(--store-border); border-radius: 12px; background: var(--store-surface); box-shadow: none; color: var(--store-text); }
.storefront.storefront-theme :is(.delivery-status-panel, .uber-live-tracking) :is(p, b, strong, span) { color: inherit; }
.storefront.storefront-theme :is(.delivery-status-panel, .uber-live-tracking) a { background: var(--brand-primary); border-radius: 9px; }
.storefront.storefront-theme .uber-tracking-steps article.is-done i,
.storefront.storefront-theme .uber-tracking-steps article.is-done:not(:last-child)::before { background: var(--brand-primary); border-color: var(--brand-primary); }

/* Account, sign in and registration */
.storefront.storefront-theme.auth-page { padding: 32px 0 0; }
.storefront.storefront-theme .auth-layout { width: min(1152px, calc(100% - 48px)); min-height: 650px; margin: 0 auto 40px; overflow: hidden; border: 1px solid var(--store-border); border-radius: 16px; box-shadow: none; background: var(--store-surface); }
.storefront.storefront-theme .auth-visual { background: var(--theme-soft); padding: 40px; color: var(--store-text); }
.storefront.storefront-theme .auth-visual::before { display: none; }
.storefront.storefront-theme .auth-visual :is(h1, p) { position: relative; color: var(--store-text); }
.storefront.storefront-theme .auth-visual h1 { font-size: clamp(36px, 4vw, 48px); }
.storefront.storefront-theme .auth-visual .eyebrow { color: var(--theme-accent); }
.storefront.storefront-theme .auth-logo img { width: 176px; filter: none; }
.storefront.storefront-theme .auth-form-panel { background: var(--store-surface); padding: 40px; }
.storefront.storefront-theme .auth-form-content h2 { font-size: 34px; }
.storefront.storefront-theme :is(.auth-form-content > p, .auth-switch) { color: var(--store-muted); font-size: 14px; }
.storefront.storefront-theme .auth-switch a { color: var(--theme-accent); }
.storefront.storefront-theme :is(.account-profile-card, .account-order-card, .account-empty) { border: 1px solid var(--store-border); border-radius: 12px; background: var(--store-surface); box-shadow: none; }
.storefront.storefront-theme .account-profile-card h2 { font-size: 26px; }
.storefront.storefront-theme .account-order-card h2 { font-size: 23px; }
.storefront.storefront-theme .account-order-card header > strong { color: var(--store-text); font-weight: 800; }
.storefront.storefront-theme .account-progress span.is-active { background: var(--brand-primary); }
.storefront.storefront-theme :is(.account-pickup, .account-order-card footer) { border-color: var(--store-border); background: var(--store-bg); color: var(--store-text); }

/* Modal surfaces, including dynamically generated verification forms */
.storefront.storefront-theme :is(.pickup-modal-card, .client-message-card, .product-option-card, .sms-verification-modal) { border: 1px solid var(--store-border); border-radius: 14px; background: var(--store-surface); box-shadow: 0 20px 70px #203d3228; }
.storefront.storefront-theme .pickup-modal-card { padding: 34px; }
.storefront.storefront-theme :is(.pickup-modal-icon, .client-message-icon, .sms-verification-icon) { background: var(--theme-soft); color: var(--brand-primary); border-radius: 10px; }

/* Email and phone code dialogs share the storefront's quiet green focus state. */
.storefront.storefront-theme .sms-verification-overlay { background: rgb(24 44 35 / .48); backdrop-filter: blur(4px); padding: 20px; }
.storefront.storefront-theme .sms-verification-modal { width: min(440px, 100%); padding: 32px; border-radius: 16px; }
.storefront.storefront-theme .sms-verification-icon { width: 48px; height: 48px; margin: 0 auto 18px; font-size: 24px; }
.storefront.storefront-theme .sms-verification-modal h2 { margin: 0 0 12px; font-size: 28px; line-height: 1.2; }
.storefront.storefront-theme .sms-verification-modal p { margin: 0 0 24px; font-size: 14px; line-height: 1.6; color: var(--store-muted); overflow-wrap: anywhere; }
.storefront.storefront-theme .sms-verification-modal p strong { color: var(--store-text); font-weight: 600; }
.storefront.storefront-theme .sms-verification-modal input {
    min-height: 60px; padding: 14px 16px; border: 1px solid #cdd4c7;
    border-radius: 10px; background: #fffefa; color: var(--store-text);
    text-align: center; font-size: 24px; font-weight: 500; line-height: 1.2;
    letter-spacing: .28em; text-indent: .28em; font-variant-numeric: tabular-nums;
    transition: border-color .15s, box-shadow .15s; caret-color: var(--brand-primary);
}
.storefront.storefront-theme .sms-verification-modal input::placeholder { color: #959f93; opacity: 1; font-weight: 400; }
.storefront.storefront-theme .sms-verification-modal input:focus,
.storefront.storefront-theme .sms-verification-modal input:focus-visible {
    border-color: var(--brand-primary); outline: none; outline-offset: 0;
    box-shadow: 0 0 0 3px rgb(36 75 57 / .12); background: #fff;
}
.storefront.storefront-theme .sms-verification-modal > div { gap: 12px; margin-top: 24px; }
.storefront.storefront-theme .sms-verification-modal button { min-height: 48px; border-radius: 10px; font-size: 14px; font-weight: 600; }
.storefront.storefront-theme .sms-verification-modal button[data-cancel] { border: 1px solid #bac6b7; background: transparent; color: var(--store-text); }
.storefront.storefront-theme .sms-verification-modal button[data-cancel]:hover { background: var(--theme-soft); }
.storefront.storefront-theme .sms-verification-modal button[type=submit]:hover:not(:disabled) { background: var(--brand-dark); }
.storefront.storefront-theme .sms-verification-error { font-size: 12px; font-weight: 500; line-height: 1.5; }
.storefront.storefront-theme .sms-verification-error[hidden] { display: none; }
@media (max-width: 480px) {
    .storefront.storefront-theme .sms-verification-modal { padding: 28px 22px; }
    .storefront.storefront-theme .sms-verification-modal h2 { font-size: 25px; }
    .storefront.storefront-theme .sms-verification-modal button { padding-inline: 12px; }
}
.storefront.storefront-theme :is(.pickup-modal-card, .client-message-card) h2 { font-size: 32px; }
.storefront.storefront-theme :is(.product-detail-panel, .product-option-footer) { background: var(--store-surface); border-color: var(--store-border); box-shadow: none; }
.storefront.storefront-theme #product-option-confirm { display: flex; background: var(--brand-primary); border-color: var(--brand-primary); white-space: normal; }
.storefront.storefront-theme #product-option-confirm span { color: white; }
.storefront.storefront-theme :is(.product-option-quantity, .cart-quantity) button { border-radius: 6px; border: 1px solid var(--store-border); background: var(--store-bg); color: var(--store-text); }
.storefront.storefront-theme .product-option-group { border-color: var(--store-border); border-radius: 9px; }
.storefront.storefront-theme .product-option-group legend { color: var(--store-text); font-weight: 650; }
.storefront.storefront-theme .product-option-group input { accent-color: var(--brand-primary); }
.storefront.storefront-theme .product-option-group > label small { color: var(--theme-accent); }
.storefront.storefront-theme :is(.pickup-modal-close, .cart-close-button, .client-message-close) { color: var(--store-text); background: var(--store-bg); border-radius: 7px; box-shadow: none; }
.storefront.storefront-theme .pickup-modal-close { z-index: 3; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--store-border); right: 14px; top: 14px; line-height: 1; }

/* Footer */
.storefront.storefront-theme .site-footer { border-top: 1px solid var(--store-border); background: var(--store-surface); color: var(--store-muted); padding: 34px 0; margin-top: 28px; }
.storefront.storefront-theme .site-footer-inner { width: min(1152px, calc(100% - 48px)); margin: auto; }
.storefront.storefront-theme .site-footer-brand img { width: 140px; filter: none; }
.storefront.storefront-theme .site-footer-brand :is(p, span) { color: var(--store-muted); font-size: 12px; }
.storefront.storefront-theme .site-footer-links a { color: var(--store-muted); font-size: 12px; font-weight: 500; }
.storefront.storefront-theme .bug-report-form { border: 1px solid var(--store-border); border-radius: 10px; background: var(--store-bg); padding: 18px; }
.storefront.storefront-theme .bug-report-form :is(strong, label) { color: var(--store-text); font-weight: 600; }
.storefront.storefront-theme .bug-report-form > button { min-height: 40px; font-size: 12px; }
.storefront.storefront-theme .bug-report-form :is(input, textarea) { font-size: 13px; }

@media (max-width: 980px) {
    .storefront.storefront-theme .site-footer-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .storefront.storefront-theme .bug-report-form { grid-column: 1 / -1; min-width: 0; }
}

@media (min-width: 761px) and (max-width: 1100px) {
    .storefront.storefront-theme .store-header-details { display: none; }
    .storefront.storefront-theme .header-inner { gap: 16px; }
    .storefront.storefront-theme .hero-content { padding: 32px; }
    .storefront.storefront-theme .order-layout { grid-template-columns: minmax(0, 1fr) 280px; gap: 22px; }
    .storefront.storefront-theme .checkout-layout { grid-template-columns: minmax(0, 1fr) 290px; gap: 22px; }
    .storefront.storefront-theme .product-category .card-footer { flex-wrap: wrap; }
}
@media (max-width: 760px) {
    .storefront.storefront-theme { font-size: 14px; padding-bottom: 90px; }
    .storefront.storefront-theme :where(input:not([type="hidden"]), select, textarea) { font-size: 16px; }
    .storefront.storefront-theme .header-inner { width: calc(100% - 36px); min-height: 76px; gap: 12px; }
    .storefront.storefront-theme:is(.subpage, .confirmation-page, .delivery-tracking-page) .site-header .header-inner { display: flex !important; }
    .storefront.storefront-theme .brand img { width: 128px; }
    .storefront.storefront-theme .subpage-header-actions { gap: 10px; }
    .storefront.storefront-theme .subpage-header-actions .back-link { padding: 0; min-height: 40px; font-size: 12px; }
    .storefront.storefront-theme .subpage-account-link { display: inline-flex; font-size: 12px; padding: 9px 12px; }
    .storefront.storefront-theme .mobile-store-header { background: var(--store-surface); padding: 14px 18px; border: 0; }
    .storefront.storefront-theme .mobile-store-brand img { width: 140px; }
    .storefront.storefront-theme .mobile-store-brand { width: 140px; max-width: none; }
    .storefront.storefront-theme.account-page .nav-actions { flex-wrap: nowrap; gap: 8px; }
    .storefront.storefront-theme.account-page .nav-actions > .account-link { display: inline-flex; min-height: 40px; font-size: 11px; padding: 0 10px; }
    .storefront.storefront-theme .mobile-store-account a { color: var(--store-text); background: transparent; border: 1px solid var(--store-border); border-radius: 8px; box-shadow: none; }
    .storefront.storefront-theme .mobile-pickup-button { border: 1px solid var(--store-border); border-radius: 8px; background: var(--store-bg); color: var(--store-text); box-shadow: none; }
    .storefront.storefront-theme .mobile-pickup-button :is(span, strong) { color: var(--store-text); }
    .storefront.storefront-theme .hero { grid-template-columns: 1fr; width: calc(100% - 36px); margin-top: 22px; min-height: 0; }
    .storefront.storefront-theme .hero-content { grid-column: 1; grid-row: 1; padding: 28px; }
    .storefront.storefront-theme .hero-content h1 { font-size: 42px; }
    .storefront.storefront-theme .hero-content > p { font-size: 14px; }
    .storefront.storefront-theme .hero-media { grid-column: 1; grid-row: 2; height: 210px; min-height: 0; }
    .storefront.storefront-theme .hero-actions { gap: 14px; }
    .storefront.storefront-theme .store-information { width: calc(100% - 36px); grid-template-columns: 1fr; gap: 12px; padding: 18px 0; }
    .storefront.storefront-theme .store-information article { border: 0; padding: 0; }
    .storefront.storefront-theme .container { width: calc(100% - 36px); }
    .storefront.storefront-theme :is(.opening-section, .featured-section) { padding: 24px 0; }
    .storefront.storefront-theme .menu-heading { align-items: start; gap: 12px; }
    .storefront.storefront-theme .menu-heading h2 { font-size: 28px; }
    .storefront.storefront-theme .menu-heading > p { font-size: 12px; }
    .storefront.storefront-theme .order-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .storefront.storefront-theme .product-category .cards { gap: 12px; }
    .storefront.storefront-theme .product-category .product-image { aspect-ratio: 1.2; }
    .storefront.storefront-theme .product-category .card-body { padding: 14px 14px 4px; }
    .storefront.storefront-theme .product-category .card h3 { font-size: 16px; }
    .storefront.storefront-theme .product-category .card p { font-size: 12px; min-height: 54px; }
    .storefront.storefront-theme .product-category .card-footer { flex-wrap: wrap; gap: 8px; padding: 10px 14px 14px; }
    .storefront.storefront-theme .product-category .price { font-size: 16px; }
    .storefront.storefront-theme .product-category .btn-add { width: 100%; }
    .storefront.storefront-theme .cart { top: auto; border-radius: 14px 14px 0 0; padding: 28px 22px calc(22px + env(safe-area-inset-bottom)); }
    .storefront.storefront-theme .cart.is-open { top: auto; }
    .storefront.storefront-theme .mobile-cart-link { background: var(--brand-primary); color: #fff; border-radius: 10px; border: 1px solid var(--brand-primary); box-shadow: 0 6px 25px #203d3220; bottom: calc(14px + env(safe-area-inset-bottom)); }
    .storefront.storefront-theme .mobile-cart-link strong { color: #fff; }
    .storefront.storefront-theme .page-shell { width: calc(100% - 36px); padding: 24px 0 36px; }
    .storefront.storefront-theme .page-heading h1 { font-size: 36px; }
    .storefront.storefront-theme .page-heading > p:not(.eyebrow) { font-size: 13px; }
    .storefront.storefront-theme .checkout-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .storefront.storefront-theme :is(.checkout-panel, .checkout-summary-card) { padding: 22px 18px; }
    .storefront.storefront-theme .checkout-summary-card { position: static; }
    .storefront.storefront-theme .checkout-panel { order: 0; }
    .storefront.storefront-theme .checkout-summary-card { order: 1; }
    .storefront.storefront-theme .checkout-steps { font-size: 11px; gap: 8px; }
    .storefront.storefront-theme .checkout-steps i { width: 12px; }
    .storefront.storefront-theme .form-grid { gap: 18px 12px; }
    .storefront.storefront-theme .confirmation-shell { width: calc(100% - 36px); padding-top: 24px; }
    .storefront.storefront-theme .confirmation-intro { padding-top: 0; }
    .storefront.storefront-theme .confirmation-intro h1 { font-size: 36px; }
    .storefront.storefront-theme .confirmation-card { padding: 22px 18px; }
    .storefront.storefront-theme .confirmation-reference { margin: 0 -18px 22px; padding: 0 18px 20px; }
    .storefront.storefront-theme .confirmation-reference strong { font-size: 19px; }
    .storefront.storefront-theme .confirmation-status { font-size: 11px; }
    .storefront.storefront-theme .confirmation-details { grid-template-columns: 1fr; gap: 10px; }
    .storefront.storefront-theme .confirmation-actions { flex-direction: column; }
    .storefront.storefront-theme .confirmation-actions > a { width: 100%; }
    .storefront.storefront-theme .receipt-progress { gap: 8px; }
    .storefront.storefront-theme .receipt-progress li { font-size: 10px; gap: 5px; }
    .storefront.storefront-theme.auth-page { padding-top: 20px; }
    .storefront.storefront-theme .auth-layout { width: calc(100% - 36px); min-height: 0; grid-template-columns: 1fr; }
    .storefront.storefront-theme .auth-visual { padding: 26px; min-height: 260px; }
    .storefront.storefront-theme .auth-visual h1 { font-size: 36px; }
    .storefront.storefront-theme .auth-form-panel { padding: 26px 22px; }
    .storefront.storefront-theme .auth-form-content h2 { font-size: 30px; }
    .storefront.storefront-theme .product-option-card { border: 0; border-radius: 0; }
    .storefront.storefront-theme .product-option-footer { background: var(--store-surface); }
    .storefront.storefront-theme .pickup-modal-card { max-height: calc(100dvh - 32px); overflow-y: auto; padding: 30px 22px; }
    .storefront.storefront-theme .pickup-selectors { grid-template-columns: 1fr; }
    .storefront.storefront-theme .site-footer-inner { width: calc(100% - 36px); }
    .storefront.storefront-theme .site-footer-inner { grid-template-columns: minmax(0, 1fr); }
    .storefront.storefront-theme .bug-report-form { padding: 10px; }
    .storefront.storefront-theme .site-footer { padding-bottom: 32px; }
}
@media (prefers-reduced-motion: reduce) {
    .storefront.storefront-theme *, .storefront.storefront-theme *::before, .storefront.storefront-theme *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Compact shared footer. The support form expands only when requested. */
.storefront.storefront-theme .site-footer { padding: 30px 0 24px; }
.storefront.storefront-theme .site-footer-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 40px; align-items: center; padding: 0; min-height: 0; }
.storefront.storefront-theme .site-footer-brand { gap: 10px; }
.storefront.storefront-theme .site-footer-brand img { width: 136px; }
.storefront.storefront-theme .site-footer-brand p { margin: 8px 0 0; font-size: 12px; line-height: 1.5; }
.storefront.storefront-theme .site-footer-links { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: flex-end; gap: 12px 22px; max-width: 560px; }
.storefront.storefront-theme .site-footer-links a { font-size: 11px; line-height: 1.5; color: var(--store-muted); }
.storefront.storefront-theme .site-footer-links a:hover { color: var(--brand-primary); text-decoration: underline; text-underline-offset: 4px; }
.storefront.storefront-theme .site-footer-bottom { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 18px; padding-top: 18px; border-top: 1px solid var(--store-border); }
.storefront.storefront-theme .site-footer-copyright { font-size: 11px; line-height: 1.5; padding-top: 11px; }
.storefront.storefront-theme .footer-support { min-width: 0; justify-self: end; }
.storefront.storefront-theme .footer-support > summary { display: inline-flex; align-items: center; gap: 9px; padding: 10px 14px; border: 1px solid #cdd4c7; border-radius: 8px; background: transparent; color: var(--store-text); font-size: 12px; line-height: 1.5; cursor: pointer; list-style: none; }
.storefront.storefront-theme .footer-support > summary::-webkit-details-marker { display: none; }
.storefront.storefront-theme .footer-support > summary::marker { content: ''; }
.storefront.storefront-theme .footer-support > summary:hover { background: var(--theme-soft); }
.storefront.storefront-theme .footer-support > summary:focus-visible { outline: 2px solid var(--brand-primary); outline-offset: 3px; }
.storefront.storefront-theme .footer-support-chevron { transition: transform .2s; }
.storefront.storefront-theme .footer-support[open] .footer-support-chevron { transform: rotate(180deg); }
.storefront.storefront-theme .footer-support[open] { width: min(420px, 100%); }
.storefront.storefront-theme .footer-support .bug-report-form { width: 100%; min-width: 0; margin-top: 14px; padding: 22px; gap: 16px; }
.storefront.storefront-theme .footer-support-intro strong { font-size: 15px; }
.storefront.storefront-theme .footer-support-intro p { margin: 6px 0 0; font-size: 12px; line-height: 1.6; color: var(--store-muted); }
.storefront.storefront-theme .footer-support .bug-report-form label { gap: 7px; }
.storefront.storefront-theme .footer-support .bug-report-form > button { min-height: 44px; }
.storefront.storefront-theme .bug-report-status:empty { display: none; }
@media (max-width: 760px) {
    .storefront.storefront-theme .site-footer-inner { grid-template-columns: minmax(0, 1fr); gap: 22px; }
    .storefront.storefront-theme .site-footer-links { justify-content: flex-start; max-width: none; gap: 12px 18px; }
    .storefront.storefront-theme .site-footer-bottom { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .storefront.storefront-theme .site-footer-copyright { padding-top: 0; }
    .storefront.storefront-theme .footer-support { width: 100%; justify-self: start; }
    .storefront.storefront-theme .footer-support[open] { width: 100%; }
    .storefront.storefront-theme .footer-support .bug-report-form { padding: 10px; }
}

.storefront.storefront-theme .footer-support-trigger { justify-self: end; display: inline-flex; align-items: center; gap: 9px; padding: 10px 14px; border: 1px solid #cdd4c7; border-radius: 8px; background: transparent; color: var(--store-text); font-size: 12px; line-height: 1.5; cursor: pointer; }
.storefront.storefront-theme .footer-support-trigger:hover { background: var(--theme-soft); }
.storefront.storefront-theme .footer-support-trigger:focus-visible { outline: 2px solid var(--brand-primary); outline-offset: 3px; }
.storefront.storefront-theme:has(.support-dialog[open]) { overflow: hidden; }
.storefront.storefront-theme .support-dialog { position: fixed; inset: 0; width: min(480px, calc(100% - 24px)); max-height: calc(100dvh - 32px); margin: auto; padding: 32px; overflow-y: auto; box-sizing: border-box; border: 1px solid var(--store-border); border-radius: 16px; background: var(--store-surface); color: var(--store-text); box-shadow: 0 24px 80px rgb(24 44 35 / .2); }
.storefront.storefront-theme .support-dialog::backdrop { background: rgb(24 44 35 / .48); backdrop-filter: blur(4px); }
.storefront.storefront-theme .support-dialog[open] { animation: support-dialog-appear .2s ease-out; }
.storefront.storefront-theme .support-dialog-close { position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 36px; height: 36px; border: 0; border-radius: 50%; background: transparent; color: var(--store-muted); cursor: pointer; }
.storefront.storefront-theme .support-dialog-close:hover { background: var(--theme-soft); color: var(--store-text); }
.storefront.storefront-theme .support-dialog .bug-report-form { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; justify-items: stretch; width: 100%; min-width: 0; padding: 0; margin: 0; gap: 18px; border: 0; background: transparent; }
.storefront.storefront-theme .support-dialog .footer-support-intro { padding-top: 8px; }
.storefront.storefront-theme .support-dialog .footer-support-intro .eyebrow { margin: 0 0 12px; font-size: 10px; color: #5e7763; }
.storefront.storefront-theme .support-dialog h2 { margin: 0 0 12px; padding-right: 12px; font-size: 30px; line-height: 1.2; }
.storefront.storefront-theme .support-dialog .footer-support-intro p:not(.eyebrow) { margin: 0; font-size: 13px; line-height: 1.6; color: var(--store-muted); }
.storefront.storefront-theme .support-dialog .bug-report-form label { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; min-width: 0; margin: 0; justify-self: stretch; gap: 7px; font-size: 12px; text-align: left; }
.storefront.storefront-theme .support-dialog .bug-report-form > button { min-height: 46px; font-size: 13px; }
.storefront.storefront-theme .support-dialog input:focus-visible,
.storefront.storefront-theme .support-dialog textarea:focus-visible { outline: none; border-color: var(--brand-primary); box-shadow: 0 0 0 3px rgb(36 75 57 / .12); }
@keyframes support-dialog-appear { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 480px) {
    .storefront.storefront-theme .support-dialog { padding: 28px 16px 20px; }
    .storefront.storefront-theme .support-dialog h2 { font-size: 27px; }
}
@media (max-width: 760px) { .storefront.storefront-theme .footer-support-trigger { justify-self: start; } }

/* Customer sign-in and registration: balanced panels without viewport-sized gaps. */
.storefront.storefront-theme.auth-refined { padding-top: 32px; }
.storefront.storefront-theme.auth-refined .auth-layout { display: grid; grid-template-columns: .9fr 1.1fr; width: min(1020px, calc(100% - 48px)); height: auto; min-height: 0; margin: 0 auto 32px; align-items: stretch; }
.storefront.storefront-theme.auth-refined .auth-visual { display: flex; flex-direction: column; justify-content: flex-start; gap: 28px; min-height: 0; padding: 34px; }
.storefront.storefront-theme.auth-refined .auth-logo { margin: 0; align-self: start; }
.storefront.storefront-theme.auth-refined .auth-logo img { display: block; width: 160px; height: auto; }
.storefront.storefront-theme.auth-refined .auth-visual .eyebrow { margin: 0 0 14px; color: #5e7763; font-size: 10px; }
.storefront.storefront-theme.auth-refined .auth-visual h1 { font-size: 38px; line-height: 1.15; margin: 0 0 16px; max-width: 340px; }
.storefront.storefront-theme.auth-refined .auth-visual h1 + p { margin: 0; font-size: 14px; line-height: 1.7; color: #5f7063; }
.storefront.storefront-theme.auth-refined .auth-benefits { display: grid; gap: 12px; margin: 24px 0 0; padding: 0; list-style: none; }
.storefront.storefront-theme.auth-refined .auth-benefits li { display: flex; align-items: center; gap: 10px; font-size: 12px; line-height: 1.5; }
.storefront.storefront-theme.auth-refined .auth-benefits li::before { content: ''; width: 6px; height: 10px; margin: 0 5px 3px 3px; border-right: 1.5px solid #49754b; border-bottom: 1.5px solid #49754b; transform: rotate(40deg); flex-shrink: 0; }
.storefront.storefront-theme.auth-refined .auth-photo { margin-top: auto; overflow: hidden; border-radius: 10px; height: 160px; flex-shrink: 0; }
.storefront.storefront-theme.auth-refined .auth-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.storefront.storefront-theme.auth-refined .auth-form-panel { display: flex; flex-direction: column; justify-content: flex-start; min-height: 0; padding: 32px 40px; }
.storefront.storefront-theme.auth-refined .auth-form-panel > .back-link { display: inline-flex; align-self: start; margin: 0 0 28px; font-size: 12px; }
.storefront.storefront-theme.auth-refined .auth-form-content { flex: 1; display: flex; flex-direction: column; justify-content: center; width: 100%; max-width: none; margin: 0; }
.storefront.storefront-theme.auth-refined .auth-form-content h2 { margin: 0 0 10px; font-size: 34px; line-height: 1.2; }
.storefront.storefront-theme.auth-refined .auth-form-content > p:not(.auth-switch):not(.auth-guest) { margin: 0 0 26px; font-size: 13px; line-height: 1.6; }
.storefront.storefront-theme.auth-refined .checkout-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; margin: 0; }
.storefront.storefront-theme.auth-refined .checkout-form > div { min-width: 0; }
.storefront.storefront-theme.auth-refined .checkout-form label { display: block; font-size: 12px; font-weight: 600; margin-bottom: 7px; }
.storefront.storefront-theme.auth-refined .checkout-form input { width: 100%; min-height: 48px; margin: 0; font-size: 14px; }
.storefront.storefront-theme.auth-refined .checkout-form input::placeholder { color: #969e92; opacity: 1; }
.storefront.storefront-theme.auth-refined .checkout-form input:focus-visible { outline: none; border-color: var(--brand-primary); box-shadow: 0 0 0 3px rgb(36 75 57 / .12); }
.storefront.storefront-theme.auth-refined .auth-fields-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.storefront.storefront-theme.auth-refined .auth-optional { color: var(--store-muted); font-weight: 400; font-size: 11px; }
.storefront.storefront-theme.auth-refined .auth-password-field { position: relative; display: block; }
.storefront.storefront-theme.auth-refined .auth-password-field input { padding-right: 86px; }
.storefront.storefront-theme.auth-refined .auth-password-field button { position: absolute; right: 7px; top: 50%; transform: translateY(-50%); padding: 8px; border: 0; border-radius: 5px; background: transparent; color: var(--brand-primary); font-size: 12px; font-weight: 600; cursor: pointer; }
.storefront.storefront-theme.auth-refined .auth-password-field button:hover { background: var(--theme-soft); }
.storefront.storefront-theme.auth-refined .checkout-form small { display: block; margin-top: 7px; color: var(--store-muted); font-size: 11px; }
.storefront.storefront-theme.auth-refined .checkout-form > .btn-primary { margin-top: 4px; min-height: 48px; width: 100%; }
.storefront.storefront-theme.auth-refined .auth-switch { margin: 24px 0 0; padding-top: 20px; border-top: 1px solid var(--store-border); text-align: center; font-size: 13px; }
.storefront.storefront-theme.auth-refined .auth-switch a { color: var(--brand-primary); font-weight: 600; }
.storefront.storefront-theme.auth-refined .auth-guest { margin: 12px 0 0; text-align: center; color: var(--store-muted); font-size: 11px; }
.storefront.storefront-theme.auth-refined .auth-guest a { color: var(--store-muted); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 900px) {
    .storefront.storefront-theme.auth-refined .auth-visual { padding: 28px; }
    .storefront.storefront-theme.auth-refined .auth-form-panel { padding: 28px; }
    .storefront.storefront-theme.auth-refined .auth-visual h1 { font-size: 34px; }
}
@media (max-width: 760px) {
    .storefront.storefront-theme.auth-refined { padding-top: 20px; }
    .storefront.storefront-theme.auth-refined .auth-layout { width: calc(100% - 36px); grid-template-columns: minmax(0, 1fr); margin-bottom: 24px; }
    .storefront.storefront-theme.auth-refined .auth-visual { flex-direction: row; align-items: center; padding: 22px 24px; gap: 16px; min-height: 0; }
    .storefront.storefront-theme.auth-refined .auth-logo img { width: 120px; }
    .storefront.storefront-theme.auth-refined .auth-visual h1 { font-size: 30px; max-width: none; margin-bottom: 12px; }
    .storefront.storefront-theme.auth-refined .auth-visual h1 + p { font-size: 13px; }
    .storefront.storefront-theme.auth-refined .auth-visual > div:not(.auth-photo) { margin-left: auto; }
    .storefront.storefront-theme.auth-refined .auth-visual .eyebrow { margin: 0; font-size: 9px; text-align: right; }
    .storefront.storefront-theme.auth-refined .auth-visual h1,
    .storefront.storefront-theme.auth-refined .auth-visual h1 + p { display: none; }
    .storefront.storefront-theme.auth-refined .auth-benefits,
    .storefront.storefront-theme.auth-refined .auth-photo { display: none; }
    .storefront.storefront-theme.auth-refined .auth-form-panel { padding: 26px 24px; }
    .storefront.storefront-theme.auth-refined .auth-form-panel > .back-link { margin-bottom: 24px; }
    .storefront.storefront-theme.auth-refined .auth-form-content h2 { font-size: 30px; }
    .storefront.storefront-theme.auth-refined .auth-fields-row { gap: 12px; }
}
