/* Consistent commerce components, with each store's exact brand colors retained. */
:root {
  --store-action: color-mix(in srgb, var(--store-primary) 90%, black);
  --store-shadow: 0 3px 7px color-mix(in srgb, var(--store-text) 3%, transparent), 0 20px 43px -28px color-mix(in srgb, var(--store-primary) 24%, transparent);
}
body { font-family: var(--z-font); }
.burger-page { --store-action: var(--store-primary); --store-shadow: 0 8px 20px #0003, 0 23px 42px -28px color-mix(in srgb, var(--store-primary) 16%, transparent); }
.demo-strip { background: color-mix(in srgb, var(--store-secondary) 82%, black); padding-block: 9px; }
.store-header { background: color-mix(in srgb, var(--store-surface) 97%, transparent); backdrop-filter: blur(15px); box-shadow: 0 4px 20px -12px color-mix(in srgb, var(--store-text) 14%, transparent); }
.header-inner { padding-block: 15px; }
.header-brand { gap: 17px; }
.header-brand > img { height: 80px; width: 94px; }
.header-brand h1 { font-size: 22px; letter-spacing: -.6px; }
.powered-by { font-size: 11px; }
.header-back { font-size: 12px; font-weight: 700; color: var(--store-action); }
.store-location { padding: 11px 15px; border: 1px solid var(--store-border); border-radius: 12px; background: var(--store-background); font-size: 12px; }
.store-location small { font-size: 10px; }
.button, .cart-button, .store-search button, .add-product, .coupon-form button, .mobile-cart-bar, .success-symbol, .toast { background: var(--store-action); }
.button.secondary { background: transparent; box-shadow: none; }
.button, .cart-button { border-radius: 13px; min-height: 48px; box-shadow: 0 4px 9px -5px color-mix(in srgb, var(--store-primary) 32%, transparent); }
.button { transition: transform .18s, filter .18s; }
.button:hover:not(:disabled) { transform: translateY(-2px); }
.sticky-search { background: var(--store-surface); }
.store-search { padding-block: 14px; gap: 20px; }
.store-search > label { font-size: 13px; }
.store-search > div { padding: 10px 12px 10px 16px; border-radius: 14px; box-shadow: inset 0 1px 3px color-mix(in srgb, var(--store-text) 3%, transparent); }
.store-search > div:focus-within { border-color: var(--store-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--store-primary) 10%, transparent); }
.store-search input { font-size: 14px; }
.store-search button { height: 35px; width: 35px; }
.category-rail { padding-block: 17px; gap: 9px; }
.category-rail button { min-height: 44px; padding-inline: 17px; font-size: 12px; background: var(--store-background); border-radius: 12px; }
.category-rail button.active { background: var(--store-action); border-color: var(--store-action); }
.store-layout { padding-top: 27px; }
#store-main { min-width: 0; outline: none; }
.store-hero { margin-bottom: 38px; }
.store-breadcrumb { display: flex; align-items: center; gap: 12px; font-size: 11px; line-height: 1.8; color: var(--store-muted); margin-bottom: 19px; }
.store-breadcrumb a { color: var(--store-action); font-weight: 700; }
.store-breadcrumb small { margin-left: auto; font-size: 8px; letter-spacing: 1.2px; border: 1px solid var(--store-border); border-radius: 7px; padding: 7px 10px; }
.store-hero-grid { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(300px, 1fr); gap: 22px; align-items: stretch; }
.store-cover { min-width: 0; border-radius: 23px; display: flex; align-items: center; background: var(--store-surface); box-shadow: var(--store-shadow); }
.store-cover img { width: 100%; height: auto; aspect-ratio: 1672 / 941; object-fit: contain; }
.store-intro { display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; padding: 26px; border: 1px solid var(--store-border); border-radius: 23px; background: var(--store-surface); box-shadow: var(--store-shadow); }
.store-identity { display: flex; align-items: center; gap: 15px; }
.store-identity > img { height: 66px; width: 66px; padding: 3px; object-fit: contain; flex-shrink: 0; border: 1px solid var(--store-border); border-radius: 15px; background: var(--store-surface); }
.store-identity .eyebrow { font-size: 8px; letter-spacing: 1px; }
.store-identity h2 { font-size: 21px; line-height: 1.3; letter-spacing: -.6px; margin-top: 7px; }
.store-identity p { font-size: 11px; color: var(--store-muted); line-height: 1.6; margin-top: 5px; }
.store-context { display: flex; align-items: center; justify-content: flex-start; gap: 9px; font-size: 11px; margin-top: 20px; }
.store-context > span { padding: 7px 9px; border-radius: 8px; background: color-mix(in srgb, var(--store-primary) 5%, var(--store-surface)); line-height: 1.4; }
.context-open { color: color-mix(in srgb, var(--store-secondary) 87%, var(--store-text)); }
.rating { color: var(--store-action); }
.store-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px 14px; border-block: 1px solid var(--store-border); padding-block: 20px; margin-block: 20px; }
.store-facts > div { min-width: 0; }
.store-facts small { display: block; font-size: 8px; letter-spacing: .55px; color: var(--store-muted); line-height: 1.7; }
.store-facts strong { display: block; font-size: 20px; letter-spacing: -.6px; line-height: 1.5; margin-top: 5px; }
.store-facts strong span { font-size: 10px; font-weight: 400; letter-spacing: 0; }
.store-catalog-cta { width: 100%; margin-top: auto; font-size: 13px; }
.store-intro-note { font-size: 10px; text-align: center; line-height: 1.6; color: var(--store-muted); margin-top: 12px; }
.hero-caption { font-size: 10px; margin-top: 14px; margin-bottom: 0; max-width: 900px; line-height: 1.8; }
.section-heading { margin-block: 41px 23px; }
.section-heading h2 { font-size: 30px; letter-spacing: -1px; line-height: 1.2; }
.section-heading p { font-size: 13px; line-height: 1.8; }
.section-heading button { min-height: 42px; font-size: 12px; color: var(--store-action); display: flex; align-items: center; }
.products-grid { gap: 21px; align-items: stretch; }
.product-card { display: flex; flex-direction: column; border-radius: 22px; box-shadow: var(--store-shadow); transition: transform .2s, border-color .2s; }
.product-card:hover { border-color: color-mix(in srgb, var(--store-primary) 32%, var(--store-border)); transform: translateY(-3px); }
.product-photo { height: 190px; flex-shrink: 0; border-bottom: 1px solid var(--store-border); }
.product-photo > img { opacity: 1; transition: transform .3s; }
.product-photo:hover > img { transform: scale(1.035); }
.product-photo .item-emoji { border: 1px solid color-mix(in srgb, var(--store-text) 8%, transparent); box-shadow: 0 5px 13px color-mix(in srgb, var(--store-text) 5%, transparent); }
.product-details { display: flex; flex-direction: column; flex: 1; padding: 19px; }
.product-details .product-brand { font-size: 10px; }
.product-details h3 { font-size: 16px; line-height: 1.45; min-height: 46px; }
.product-details h3 button { min-height: 44px; }
.product-unit { font-size: 12px; margin-top: 8px; }
.product-price-row { margin-top: auto; padding-top: 21px; }
.product-price-row strong { font-size: 23px; }
.product-price-row del { font-size: 11px; }
.product-discount { background: color-mix(in srgb, var(--store-secondary) 83%, black); font-size: 10px; padding: 8px 10px; }
.add-product { width: 42px; height: 42px; min-width: 42px; border-radius: 12px; }
.quantity-stepper button { color: var(--store-action); min-height: 40px; }
.weight-quick { min-height: 44px; font-size: 12px; }
.restricted-state { font-size: 11px; }
.restricted-state button { min-height: 42px; color: var(--store-action); }
.wellness-grid { gap: 21px; margin-block: 18px 35px; }
.wellness-tile { padding: 25px; border-radius: 22px; gap: 17px; min-height: 176px; box-shadow: var(--store-shadow); transition: transform .2s, border-color .2s; }
.wellness-tile:hover { transform: translateY(-3px); border-color: var(--store-primary); }
.wellness-tile > span { height: 53px; width: 53px; display: grid; place-items: center; background: var(--store-surface); border-radius: 15px; font-size: 30px; box-shadow: 0 4px 10px color-mix(in srgb, var(--store-text) 4%, transparent); }
.wellness-tile strong { font-size: 19px; line-height: 1.3; }
.wellness-tile small { font-size: 11px; }
.burger-page .product-photo { height: 260px; }
.burger-page .product-details { padding: 23px; }
.burger-page .product-details h3 { font-size: 24px; }
.burger-page .product-description { font-size: 13px; line-height: 1.85; }
.burger-page .product-price-row { margin-top: auto; padding-top: 25px; }
.burger-page .product-price-row strong { font-size: 27px; }
.burger-callout { padding: 39px; margin-top: 42px; border-radius: 25px; background: radial-gradient(ellipse at 85% 40%, color-mix(in srgb, var(--store-primary) 12%, var(--store-surface)), var(--store-surface)); box-shadow: var(--store-shadow); }
.burger-callout h2 { font-size: 55px; }
.burger-callout img { height: 290px; box-shadow: 0 12px 24px #0003; }
.burger-callout p { font-size: 14px; }
.market-page .product-photo { height: 173px; }
.market-page .product-details { padding: 17px; }
.market-page .product-details h3 { font-size: 15px; }
.market-page .product-price-row strong { font-size: 22px; }
.department-sidebar { box-shadow: var(--store-shadow); }
.department-sidebar button { min-height: 45px; font-size: 12px; border: 1px solid transparent; }
.department-sidebar button.active { background: color-mix(in srgb, var(--store-primary) 8%, var(--store-surface)); border-color: color-mix(in srgb, var(--store-primary) 16%, var(--store-border)); color: var(--store-action); }
.department-sidebar button:hover { color: var(--store-action); }
.store-dialog { box-shadow: 0 22px 75px #0004; border-radius: 26px; }
.store-dialog::backdrop { background: #0009; backdrop-filter: blur(6px); }
.dialog-close { height: 40px; width: 40px; }
.product-detail-image { border: 1px solid var(--store-border); height: 275px; }
.product-dialog h2 { font-size: 32px; }
.product-dialog p { font-size: 13px; }
.product-meta strong { color: var(--store-action); font-size: 27px; }
.customization-group { background: var(--store-background); border: 1px solid var(--store-border); border-radius: 16px; padding: 20px; }
.customization-group h3 { font-size: 16px; }
.option-row { border-bottom: 1px solid var(--store-border); padding-block: 13px; }
.option-row:last-child { border-bottom: 0; }
.option-row b { color: var(--store-action); }
.option-pill { background: var(--store-surface); min-height: 44px; }
.product-action-bar { box-shadow: 0 -4px 15px color-mix(in srgb, var(--store-text) 4%, transparent); }
.cart-dialog { border-radius: 26px 0 0 26px; width: 490px; }
.cart-dialog .dialog-heading { position: sticky; top: -28px; z-index: 4; background: var(--store-surface); padding-block: 17px; border-bottom: 1px solid var(--store-border); margin-top: -15px; margin-bottom: 5px; }
.cart-line { grid-template-columns: 65px minmax(0, 1fr); padding-block: 22px; }
.cart-line > img { width: 65px; height: 65px; border-radius: 14px; border: 1px solid var(--store-border); }
.cart-line h3 { font-size: 14px; }
.cart-line small { font-size: 11px; }
.cart-line-tools > strong { font-size: 15px; }
.remove-line { font-size: 11px; min-height: 34px; }
.cart-completion { background: var(--store-background); border: 1px solid var(--store-border); border-radius: 18px; padding: 22px; margin-top: 23px; }
.cart-completion .summary-lines { margin-top: 17px; }
.summary-lines > div { font-size: 13px; }
.summary-lines > div.total { font-size: 22px; padding-top: 18px; margin-top: 17px; }
.coupon-form input { min-height: 47px; }
.coupon-status { color: var(--store-action); }
.checkout-layout { gap: 30px; }
.checkout-box, .success-card, .history-card, .profile-card, .empty-state { box-shadow: var(--store-shadow); }
.checkout-box { padding: 31px; border-radius: 24px; }
.checkout-heading h2 { font-size: 35px; }
.checkout-heading p { font-size: 13px; }
.checkout-progress { gap: 11px; }
.checkout-progress > span { font-size: 12px; padding-bottom: 15px; }
.checkout-progress > span.active { color: var(--store-action); border-color: var(--store-action); }
.store-form label { font-size: 12px; }
.store-form input, .store-form select { min-height: 49px; font-size: 14px; background: var(--store-surface); box-shadow: inset 0 1px 3px color-mix(in srgb, var(--store-text) 3%, transparent); }
.mode-options button { min-height: 53px; font-size: 13px; }
.mode-options button.active { color: var(--store-action); }
.payment-option { padding: 21px; border-radius: 15px; }
.payment-option > span { font-size: 14px; }
.payment-option small { font-size: 11px; }
.success-card { padding: 40px; }
.success-card h2 { font-size: 36px; }
.order-info-grid { background: var(--store-background); padding: 23px; border: 1px solid var(--store-border); border-radius: 17px; }
.timeline li { font-size: 13px; padding-block: 12px; }
.timeline li.done > span { background: var(--store-action); border-color: var(--store-action); }
.store-footer { padding-block: 46px; font-size: 12px; }
.store-footer a { font-size: 16px; letter-spacing: -.4px; color: var(--store-action); }
@media (min-width: 1101px) {
  .market-page .store-layout { grid-template-columns: 198px minmax(0, 1fr); gap: 25px; }
  .market-page .store-hero-grid { grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr); gap: 18px; }
  .market-page .store-intro { padding: 23px; }
  .market-page .department-sidebar { top: 210px; border-radius: 20px; padding: 23px 13px; }
  .market-page .department-sidebar h2 { font-size: 18px; }
}
@media (max-width: 1100px) {
  .store-hero-grid { grid-template-columns: minmax(0, 1.5fr) minmax(290px, 1fr); gap: 18px; }
  .store-intro { padding: 23px; }
  .store-identity { gap: 11px; }
  .store-identity > img { height: 57px; width: 57px; }
  .store-identity h2 { font-size: 19px; }
  .header-brand h1 { font-size: 20px; }
  .header-tools { gap: 12px; }
  .header-back { font-size: 10px; }
  .store-location { font-size: 11px; padding-inline: 11px; }
  .checkout-box { padding: 25px; }
}
@media (max-width: 800px) {
  .header-inner { padding-block: 12px; }
  .header-brand h1 { font-size: 18px; }
  .header-brand > img { height: 68px; width: 74px; }
  .store-search > label { display: none; }
  .store-hero-grid { grid-template-columns: 1fr; gap: 16px; }
  .store-cover { border-radius: 22px; }
  .store-intro { padding: 25px; }
  .store-identity > img { height: 70px; width: 70px; }
  .store-identity h2 { font-size: 24px; }
  .store-context { margin-top: 17px; }
  .store-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-block: 18px; padding-block: 19px; gap: 13px; }
  .store-facts strong { font-size: 21px; }
  .store-catalog-cta { width: fit-content; min-width: 245px; }
  .store-intro-note { text-align: left; }
  .cart-dialog { width: 100%; height: auto; border-radius: 26px 26px 0 0; }
  .burger-callout { padding: 29px; }
  .burger-callout h2 { font-size: 43px; }
  .burger-callout img { height: 250px; }
}
@media (max-width: 600px) {
  .header-inner { padding-block: 10px; }
  .header-brand { gap: 10px; }
  .header-brand > img { height: 62px; width: 67px; }
  .header-brand h1 { font-size: 15px; }
  .powered-by { font-size: 9px; }
  .cart-button { min-height: 42px; padding: 10px; gap: 7px; }
  .store-search { padding-block: 11px; }
  .store-search > div { padding: 9px 10px 9px 13px; border-radius: 12px; }
  .store-search input { font-size: 16px; }
  .store-search input::placeholder { font-size: 12px; }
  .category-rail { padding-block: 14px; gap: 8px; }
  .category-rail button { min-height: 44px; font-size: 11px; padding-inline: 13px; border-radius: 11px; }
  .store-layout { padding-top: 20px; }
  .store-breadcrumb { font-size: 10px; gap: 9px; margin-bottom: 14px; flex-wrap: wrap; }
  .store-breadcrumb small { display: none; }
  .store-hero { margin-bottom: 27px; }
  .store-hero-grid { gap: 14px; }
  .store-cover { border-radius: 17px; }
  .store-intro { padding: 21px; border-radius: 20px; }
  .store-identity { gap: 14px; }
  .store-identity > img { height: 66px; width: 66px; border-radius: 14px; }
  .store-identity h2 { font-size: 21px; }
  .store-identity p { font-size: 11px; }
  .store-context { font-size: 10px; margin-top: 17px; }
  .store-context > span { padding: 7px 9px; }
  .store-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 17px; padding-block: 18px; margin-block: 18px; }
  .store-facts small { font-size: 8px; }
  .store-facts strong { font-size: 21px; }
  .store-catalog-cta { width: 100%; font-size: 12px; padding: 14px 17px; min-height: 47px; }
  .store-intro-note { text-align: center; font-size: 10px; }
  .hero-caption { font-size: 9px; margin-top: 12px; }
  .section-heading { margin-block: 33px 18px; gap: 15px; }
  .section-heading h2 { font-size: 25px; letter-spacing: -.8px; }
  .section-heading p { font-size: 12px; }
  .section-heading button { font-size: 11px; min-height: 42px; }
  .products-grid { gap: 13px; }
  .product-card { border-radius: 18px; }
  .product-photo { height: 142px; }
  .product-details { padding: 14px 12px; }
  .product-details .product-brand { font-size: 9px; }
  .product-details h3 { font-size: 14px; line-height: 1.4; min-height: 40px; }
  .product-details h3 button { min-height: 40px; }
  .product-unit { font-size: 11px; }
  .product-price-row { padding-top: 16px; gap: 8px; }
  .product-price-row strong { font-size: 20px; }
  .product-price-row del { font-size: 10px; }
  .add-product { width: 44px; height: 44px; min-width: 44px; }
  .quantity-stepper, .quantity-stepper button { min-height: 44px; }
  .quantity-stepper button { width: 39px; }
  .product-discount { font-size: 8px; padding: 7px 8px; }
  .weight-quick { font-size: 11px; padding-inline: 8px; }
  .restricted-state { font-size: 10px; padding: 12px; }
  .wellness-grid { gap: 13px; margin-block: 15px 26px; }
  .wellness-tile { padding: 20px; border-radius: 18px; min-height: 172px; gap: 15px; }
  .wellness-tile > span { width: 44px; height: 44px; border-radius: 12px; font-size: 27px; }
  .wellness-tile strong { font-size: 17px; }
  .wellness-tile small { font-size: 10px; }
  .burger-page .product-photo { height: 235px; }
  .burger-page .product-details { padding: 21px; }
  .burger-page .product-details h3 { font-size: 24px; }
  .burger-page .product-description { font-size: 12px; }
  .burger-page .product-price-row { padding-top: 22px; }
  .burger-page .product-price-row strong { font-size: 26px; }
  .burger-callout { padding: 25px; margin-top: 32px; }
  .burger-callout h2 { font-size: 46px; }
  .burger-callout p { font-size: 13px; }
  .burger-callout img { height: 230px; }
  .market-page .product-photo { height: 137px; }
  .market-page .product-details { padding: 14px 11px; }
  .market-page .product-details h3 { font-size: 14px; }
  .market-page .product-price-row strong { font-size: 20px; }
  .store-dialog { border-radius: 26px 26px 0 0; }
  .cart-dialog .dialog-heading { top: -26px; padding-block: 16px; }
  .cart-line { grid-template-columns: 54px minmax(0, 1fr); gap: 13px; padding-block: 20px; }
  .cart-line > img { height: 54px; width: 54px; border-radius: 11px; }
  .cart-line h3 { font-size: 14px; }
  .cart-line small { font-size: 10px; }
  .cart-line-tools > strong { font-size: 14px; }
  .cart-completion { padding: 19px; border-radius: 16px; }
  .product-detail-image { height: 225px; }
  .product-dialog h2 { font-size: 29px; }
  .product-dialog p { font-size: 12px; }
  .customization-group { padding: 17px; margin-top: 19px; border-radius: 14px; }
  .customization-group h3 { font-size: 15px; }
  .option-row { font-size: 12px; }
  .product-action-bar .button { min-height: 47px; font-size: 11px; }
  .checkout-box { padding: 23px; border-radius: 21px; }
  .checkout-heading h2 { font-size: 30px; }
  .checkout-heading p { font-size: 12px; }
  .checkout-progress { gap: 9px; }
  .checkout-progress > span { font-size: 10px; padding-block: 10px 13px; }
  .store-form input, .store-form select { font-size: 16px; }
  .store-form label { font-size: 12px; }
  .mode-options button { font-size: 12px; min-height: 49px; }
  .payment-option { padding: 18px; }
  .payment-option small { font-size: 10px; }
  .success-card { padding: 27px; }
  .success-card h2 { font-size: 29px; }
  .order-info-grid { padding: 18px; }
  .timeline li { font-size: 12px; }
  .store-footer { font-size: 11px; padding-top: 33px; padding-bottom: calc(180px + env(safe-area-inset-bottom)); }
  .store-bottom-nav { box-shadow: 0 -7px 22px #0001; }
  .store-bottom-nav button.active { color: var(--store-action); }
}
@media (max-width: 360px) {
  .header-brand h1 { font-size: 13px; }
  .header-brand > img { height: 57px; width: 56px; }
  .store-intro { padding: 18px; }
  .store-identity > img { width: 56px; height: 56px; }
  .store-identity h2 { font-size: 19px; }
  .product-details, .market-page .product-details { padding: 12px 10px; }
  .product-details h3, .market-page .product-details h3 { font-size: 13px; }
  .product-photo, .market-page .product-photo { height: 120px; }
  .product-price-row strong, .market-page .product-price-row strong { font-size: 18px; }
  .products-grid { gap: 11px; }
  .wellness-tile { padding: 16px; }
  .wellness-tile strong { font-size: 15px; }
  .checkout-progress > span { font-size: 9px; }
}
