:root {
  --customer-theme: #8f2d23;
  --customer-ink: #241a17;
  --customer-muted: #74665f;
  --customer-bg: #f3f7fa;
  --customer-card: #ffffff;
  --customer-line: rgba(73, 50, 40, .12);
  --customer-safe-bottom: env(safe-area-inset-bottom, 0px);
}

body.customer-pwa {
  margin: 0;
  min-width: 320px;
  background: var(--customer-bg);
  color: var(--customer-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

.customer-pwa *, .customer-pwa *::before, .customer-pwa *::after { box-sizing: border-box; }
.customer-pwa-launch { display: none; }
.customer-pwa-standalone body:not(.customer-pwa-launch-complete) { overflow: hidden; }
.customer-pwa-standalone body:not(.customer-pwa-launch-complete) .customer-pwa-launch {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  place-content: center;
  justify-items: center;
  background: #081d33;
  color: #fff;
}
.customer-pwa-launch img { width: 112px; height: 112px; border-radius: 26px; }
.customer-pwa-launch strong { margin-top: 18px; font-size: 1.7rem; letter-spacing: -.03em; }
.customer-pwa-launch span { margin-top: 3px; color: #8fe8e7; font-size: .78rem; font-weight: 850; letter-spacing: .18em; text-transform: uppercase; }
.customer-pwa-shell { min-height: 100dvh; padding-bottom: calc(76px + var(--customer-safe-bottom)); }
.customer-pwa-main { width: min(100%, 1080px); margin: 0 auto; }
.customer-pwa-main > .flash { margin: 12px 16px; border-radius: 16px; }

.customer-pwa-topbar {
  position: sticky;
  z-index: 80;
  top: 0;
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  padding: calc(8px + env(safe-area-inset-top, 0px)) 16px 8px;
  border-bottom: 1px solid var(--customer-line);
  background: rgba(243, 247, 250, .94);
  backdrop-filter: blur(18px);
}

.customer-pwa-brand { display: flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; }
.customer-pwa-brand > span:first-child { display: grid; width: 38px; height: 38px; place-items: center; overflow: hidden; border-radius: 12px; background: #fff; box-shadow: 0 4px 16px rgba(45, 29, 23, .12); }
.customer-pwa-brand img { width: 100%; height: 100%; object-fit: contain; }
.customer-pwa-brand strong { max-width: 190px; overflow: hidden; font-size: .95rem; text-overflow: ellipsis; white-space: nowrap; }
.customer-pwa-brand-copy { display: grid; gap: 0; }
.customer-pwa-brand-copy small { color: #887770; font-size: .63rem; font-weight: 800; letter-spacing: .12em; line-height: 1; text-transform: uppercase; }
.customer-pwa-active-business { display: flex; min-width: 0; align-items: center; gap: 8px; margin-left: auto; padding: 5px 9px 5px 5px; border: 1px solid var(--customer-line); border-radius: 14px; background: rgba(255,255,255,.72); }
.customer-pwa-active-business img { width: 30px; height: 30px; flex: 0 0 30px; border-radius: 10px; object-fit: contain; background: #fff; }
.customer-pwa-active-business span { display: grid; min-width: 0; }
.customer-pwa-active-business small { color: #887770; font-size: .61rem; font-weight: 750; }
.customer-pwa-active-business strong { max-width: 130px; overflow: hidden; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.customer-pwa-install { border: 0; border-radius: 999px; padding: 9px 13px; background: var(--customer-theme); color: #fff; font: inherit; font-size: .78rem; font-weight: 800; }

.customer-pwa-bottom-nav {
  position: fixed;
  z-index: 100;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  padding: 7px 4px calc(7px + var(--customer-safe-bottom));
  border-top: 1px solid var(--customer-line);
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 -8px 30px rgba(48, 31, 24, .08);
  backdrop-filter: blur(18px);
}
.customer-pwa-bottom-nav a { display: grid; min-width: 0; place-items: center; gap: 3px; color: #887770; font-size: .67rem; font-weight: 750; text-decoration: none; }
.customer-pwa-bottom-nav svg { width: 22px; height: 22px; }
.customer-pwa-bottom-nav a.is-active { color: var(--customer-theme); }
.customer-pwa-bottom-nav a.is-active::before { position: absolute; width: 28px; height: 3px; margin-top: -46px; border-radius: 3px; background: var(--customer-theme); content: ""; }

.public-business-entry__context { margin: 0 0 6px; font-size: .72rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; opacity: .82; }
.customer-home-primary-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-top: 18px; }
.customer-home-primary-actions .primary-button,
.customer-home-primary-actions .ghost-button { min-height: 42px; padding: 10px 17px; }
.customer-home-info-link { padding: 9px 3px; color: inherit; font-size: .82rem; font-weight: 800; text-underline-offset: 4px; }
.customer-restaurant-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 14px 16px; overflow: hidden; border: 1px solid var(--customer-line); border-radius: 18px; background: var(--customer-line); scroll-margin-top: 84px; }
.customer-restaurant-facts article { display: grid; align-content: center; gap: 5px; min-height: 82px; padding: 13px; background: #fffdf9; }
.customer-restaurant-facts span { color: #887770; font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.customer-restaurant-facts strong { color: #2d1d17; font-size: .86rem; line-height: 1.25; }

@media (max-width: 680px) {
  .customer-pwa-active-business span { display: none; }
  .customer-pwa-active-business { padding-right: 5px; }
  .customer-restaurant-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.customer-pwa .public-business-entry,
.customer-pwa .booking-page,
.customer-pwa .commerce-checkout-page,
.customer-pwa .customer-live-tracking { margin: 0; }
.customer-pwa .public-shell { padding: 0; }
.customer-pwa .panel { border-color: var(--customer-line); border-radius: 20px; box-shadow: 0 10px 35px rgba(55, 35, 25, .07); }
.customer-pwa .primary-button { border-color: var(--customer-theme); background: var(--customer-theme); }
.customer-pwa .eyebrow { color: var(--customer-theme); letter-spacing: .11em; }

.customer-home-location { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px; margin: 12px 0 0; font-size: .82rem; }
.customer-home-location span { opacity: .72; }
.customer-resume-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 16px; padding: 16px; border: 1px solid color-mix(in srgb, var(--customer-theme) 24%, transparent); border-radius: 20px; background: color-mix(in srgb, var(--customer-theme) 7%, #fff); }
.customer-resume-card div { display: grid; gap: 3px; }
.customer-resume-card p { margin: 0; font-size: .68rem; }
.customer-resume-card span { color: var(--customer-muted); font-size: .78rem; }
.customer-home-promotions { padding: 10px 16px 22px; }
.customer-home-promotions > div:first-child { margin-bottom: 10px; }
.customer-home-promotions h2, .customer-home-promotions p { margin: 0; }
.customer-home-promotions h2 { font-size: 1.25rem; }
.customer-booking-location { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; margin: 12px 16px; padding: 13px 15px; border: 1px solid var(--customer-line); border-radius: 16px; background: #fff; }
.customer-booking-location span, .customer-booking-location small { color: var(--customer-muted); font-size: .72rem; }
.customer-booking-location strong { grid-row: 2; }
.customer-booking-location small { grid-row: 3; }
.customer-booking-location a { grid-column: 2; grid-row: 1/4; align-self: center; color: var(--customer-theme); font-size: .78rem; font-weight: 800; text-decoration: none; }
.customer-home-promo-rail { display: grid; grid-auto-columns: minmax(230px, 78%); grid-auto-flow: column; gap: 10px; overflow-x: auto; padding: 2px 2px 8px; scroll-snap-type: x mandatory; }
.customer-home-promo-rail a { display: grid; min-height: 120px; align-content: end; gap: 4px; padding: 18px; border-radius: 20px; background: linear-gradient(135deg, var(--customer-theme), #3d1915); color: #fff; text-decoration: none; scroll-snap-align: start; }
.customer-home-promo-rail a > span { width: max-content; padding: 4px 8px; border-radius: 999px; background: rgba(255,255,255,.18); font-size: .67rem; font-weight: 800; text-transform: uppercase; }

.customer-pwa .kakike-store-header { border-radius: 0 0 24px 24px; }
.customer-pwa .kakike-store-layout { padding: 0 12px 18px; }
.customer-pwa .kakike-store-toolbar { top: 58px; z-index: 40; }
.customer-pwa .kakike-product-card__media { color: inherit; text-decoration: none; }
.customer-pwa .kakike-product-card__name { color: inherit; font-weight: 800; text-decoration: none; }
.customer-pwa .kakike-product-card__media[role="link"] { cursor: pointer; }
.customer-product-detail-link { color: var(--customer-theme); font-size: .82rem; font-weight: 800; text-decoration: none; }
.customer-pwa .kakike-mobile-cart { bottom: calc(70px + var(--customer-safe-bottom)); z-index: 90; }

.customer-product-page, .customer-cart-page, .customer-library-page, .customer-account-page { padding: 16px; }
.customer-pwa-product-detail .customer-pwa-install-banner { display: none !important; }
.customer-product-page { --customer-product-accent: #008f95; max-width: 1120px; margin: 0 auto; }
.customer-back-link, .customer-lookup-link { display: inline-flex; align-items: center; min-height: 36px; margin-bottom: 10px; color: #007b80; font-size: .86rem; font-weight: 850; text-decoration: none; }
.customer-product-shell { overflow: hidden; background: #fff; border: 1px solid rgba(7,27,61,.07); border-radius: 22px; box-shadow: 0 18px 55px rgba(7,27,61,.08); }
.customer-product-media { min-width: 0; padding: 14px 14px 0; }
.customer-product-gallery { display: grid; grid-auto-columns: 100%; grid-auto-flow: column; gap: 10px; overflow-x: auto; scrollbar-width: thin; scroll-snap-type: x mandatory; }
.customer-product-gallery img { width: 100%; aspect-ratio: 4/3; border-radius: 17px; object-fit: cover; scroll-snap-align: center; }
.customer-product-image-empty { display: grid; min-height: 260px; place-items: center; align-content: center; gap: 8px; color: #537084; border-radius: 17px; background: radial-gradient(circle at 28% 20%,#fff 0 8%,transparent 9%),linear-gradient(145deg,#eef8f7,#e6eef5); }
.customer-product-image-empty span { font-size: 3.5rem; }
.customer-product-image-empty small { font-size: .78rem; font-weight: 800; }
.customer-product-detail { min-width: 0; padding: 20px; }
.customer-product-detail .eyebrow { margin: 0 0 7px; color: #007b80; font-size: .72rem; font-weight: 900; letter-spacing: .1em; }
.customer-product-detail h1 { margin: 0 0 7px; color: #071b3d; font-size: clamp(2rem, 8vw, 2.8rem); line-height: 1; letter-spacing: -.04em; }
.customer-product-detail > p:not(.eyebrow) { margin: 0; color: #60718d; line-height: 1.45; }
.customer-product-price { display: block; margin: 12px 0 16px; color: #007b80; font-size: 1.55rem; letter-spacing: -.02em; }
.customer-product-form { display: grid; gap: 15px; }
.customer-modifier-group { display: grid; gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
.customer-modifier-group legend { display: flex; align-items: baseline; gap: 6px; width: 100%; margin-bottom: 7px; padding: 0; color: #071b3d; font-size: 1rem; font-weight: 850; }
.customer-modifier-group legend small { color: #66748c; font-size: .72rem; font-weight: 750; }
.customer-choice-card { position: relative; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; min-height: 58px; padding: 10px 13px; border: 1px solid #dbe4ec; border-radius: 13px; background: #fff; cursor: pointer; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.customer-choice-card:hover { border-color: #8bcdd0; }
.customer-choice-card:has(input:checked) { border-color: var(--customer-product-accent); background: #effafa; box-shadow: 0 0 0 1px rgba(0,143,149,.08); }
.customer-choice-card input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.customer-choice-copy { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 10px; }
.customer-choice-copy strong { overflow: hidden; color: #071b3d; font-size: .92rem; text-overflow: ellipsis; white-space: nowrap; }
.customer-choice-copy small { flex: 0 0 auto; padding: 5px 10px; color: #486077; font-size: .7rem; font-weight: 800; background: #eef3f6; border-radius: 999px; }
.customer-choice-indicator { display: grid; width: 23px; height: 23px; margin-left: 12px; place-items: center; border: 2px solid #96a3b8; border-radius: 50%; }
.customer-choice-card:has(input:checked) .customer-choice-indicator { border-color: var(--customer-product-accent); box-shadow: inset 0 0 0 4px #fff; background: var(--customer-product-accent); }
.customer-choice-card:focus-within { outline: 3px solid rgba(0,143,149,.2); outline-offset: 2px; }
.customer-removal-group { padding-top: 2px; }
.customer-removal-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.customer-removal-card { position: relative; display: grid; grid-template-columns: 38px minmax(0,1fr) 22px; align-items: center; gap: 10px; min-height: 64px; padding: 9px 11px; border: 1px solid #dbe4ec; border-radius: 13px; background: #fff; cursor: pointer; }
.customer-removal-card input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.customer-removal-icon { display: grid; width: 36px; height: 36px; place-items: center; color: #9a4f22; font-size: 1.35rem; font-weight: 900; background: #fff2e9; border-radius: 10px; }
.customer-removal-card > span:nth-of-type(2) { display: grid; min-width: 0; }
.customer-removal-card strong { overflow: hidden; color: #071b3d; font-size: .83rem; text-overflow: ellipsis; white-space: nowrap; }
.customer-removal-card small { color: #66748c; font-size: .68rem; }
.customer-removal-check { display: grid; width: 20px; height: 20px; place-items: center; color: transparent; border: 1.5px solid #9ba8ba; border-radius: 5px; }
.customer-removal-card:has(input:checked) { border-color: #d88858; background: #fff8f3; }
.customer-removal-card:has(input:checked) .customer-removal-check { color: #fff; background: #c65f2c; border-color: #c65f2c; }
.customer-removal-card:focus-within { outline: 3px solid rgba(198,95,44,.18); outline-offset: 2px; }
.customer-product-add { display: grid; grid-template-columns: 116px minmax(0,1fr); align-items: end; gap: 10px; padding: 10px; border: 1px solid #d9e3e9; border-radius: 16px; background: #fff; box-shadow: 0 12px 30px rgba(7,27,61,.1); }
.customer-quantity { display: grid; gap: 5px; }
.customer-quantity > span { color: #071b3d; font-size: .7rem; font-weight: 850; }
.customer-quantity > div { display: grid; grid-template-columns: 36px 40px 36px; overflow: hidden; border: 1px solid #d7e2e8; border-radius: 12px; }
.customer-quantity button { min-height: 42px; padding: 0; color: #007b80; font: inherit; font-size: 1.35rem; font-weight: 850; background: #f7fbfb; border: 0; cursor: pointer; }
.customer-quantity input { width: 40px; min-height: 42px; padding: 0; color: #071b3d; text-align: center; border: 0; border-inline: 1px solid #e1e8ed; border-radius: 0; appearance: textfield; }
.customer-quantity input::-webkit-inner-spin-button { appearance: none; }
.customer-add-button { display: inline-flex; min-width: 0; min-height: 46px; align-items: center; justify-content: center; gap: 5px; padding-inline: 15px; border-radius: 12px; background: var(--customer-product-accent) !important; font-size: .91rem; white-space: nowrap; }
.customer-add-button > span:first-child { margin-right: 4px; font-size: 1.25rem; }
.customer-product-suggestions { margin-top: 20px; }
.customer-product-suggestions h2 { margin: 0 0 10px; color: #071b3d; font-size: clamp(1.35rem,5vw,1.75rem); letter-spacing: -.025em; }
.customer-product-suggestions > div { display: grid; grid-auto-columns: minmax(235px,78%); grid-auto-flow: column; gap: 10px; overflow-x: auto; padding: 2px 2px 9px; scroll-snap-type: x mandatory; }
.customer-product-suggestions article { position: relative; overflow: hidden; border: 1px solid rgba(7,27,61,.08); border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(7,27,61,.06); scroll-snap-align: start; }
.customer-product-suggestions a { display: grid; height: 100%; color: inherit; text-decoration: none; }
.customer-product-suggestions img,
.customer-suggestion-placeholder { display: grid; width: 100%; aspect-ratio: 16/9; place-items: center; object-fit: cover; background: linear-gradient(145deg,#edf7f5,#e7eef5); font-size: 2.5rem; }
.customer-product-suggestions article.is-without-image a { grid-template-columns: 58px minmax(0,1fr); align-items: stretch; min-height: 92px; }
.customer-product-suggestions article.is-without-image img[hidden] { display: none; }
.customer-product-suggestions article.is-without-image .customer-suggestion-placeholder { width: 58px; height: 100%; min-height: 92px; aspect-ratio: auto; font-size: 1.45rem; }
.customer-suggestion-body { display: grid; min-width: 0; gap: 7px; padding: 11px 52px 13px 12px; }
.customer-suggestion-body strong { display: -webkit-box; overflow: hidden; color: #071b3d; font-size: .86rem; line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.customer-suggestion-body > span { color: #007b80; font-size: .96rem; font-weight: 900; }
.customer-suggestion-plus { position: absolute; right: 11px; bottom: 12px; display: grid; width: 36px; height: 36px; place-items: center; color: #fff; background: var(--customer-product-accent); border-radius: 50%; font-size: 1.6rem; line-height: 1; }

.customer-cart-page > header, .customer-library-page > header, .customer-account-page > header { margin: 6px 0 22px; }
.customer-cart-page > header h1, .customer-library-page > header h1, .customer-account-page > header h1 { margin: 2px 0 6px; font-size: 2rem; }
.customer-cart-page > header p, .customer-library-page > header p, .customer-account-page > header p { margin: 0; color: var(--customer-muted); }
.customer-cart-list { display: grid; gap: 10px; }
.customer-cart-list article { display: grid; gap: 12px; padding: 15px; border: 1px solid var(--customer-line); border-radius: 18px; background: #fff; }
.customer-cart-list article > div { display: flex; justify-content: space-between; gap: 12px; }
.customer-cart-list form { display: grid; grid-template-columns: 72px 1fr 40px; gap: 8px; }
.customer-cart-list input { width: 100%; min-height: 40px; }
.customer-cart-remove { border: 0; border-radius: 12px; background: #fff0ee; color: #a32a20; font-size: 1.4rem; }
.customer-cart-summary { display: grid; grid-template-columns: 1fr auto; gap: 5px; margin: 18px 0; padding: 18px; border-radius: 18px; background: #f4ebe4; }
.customer-cart-summary strong { font-size: 1.3rem; }
.customer-cart-summary small { grid-column: 1/-1; color: var(--customer-muted); }
.customer-cart-actions { display: grid; grid-template-columns: 1fr 1.25fr; gap: 10px; }

.customer-pwa-state { display: grid; min-height: 310px; place-items: center; align-content: center; gap: 10px; padding: 30px 18px; text-align: center; }
.customer-pwa-state > span { font-size: 2.8rem; }
.customer-pwa-state h1, .customer-pwa-state h2, .customer-pwa-state p { margin: 0; }
.customer-pwa-state p { max-width: 420px; color: var(--customer-muted); line-height: 1.5; }
.customer-pwa-offline { min-height: calc(100dvh - 150px); }

.customer-library-section { margin-bottom: 14px; padding: 16px; border: 1px solid var(--customer-line); border-radius: 20px; background: #fff; }
.customer-library-section > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.customer-library-section h2 { margin: 0 0 10px; font-size: 1.05rem; }
.customer-library-section [data-customer-order-count] { display: grid; min-width: 28px; height: 28px; place-items: center; border-radius: 999px; background: #f1e5dd; font-size: .78rem; font-weight: 850; }
.customer-order-list { display: grid; gap: 8px; }
.customer-order-row, .customer-reservation-row { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--customer-line); }
.customer-order-row div, .customer-reservation-row div { display: grid; gap: 3px; }
.customer-order-row small, .customer-reservation-row small, .customer-empty-copy { color: var(--customer-muted); font-size: .78rem; }

.customer-account-card { display: flex; gap: 14px; padding: 18px; border-radius: 22px; background: linear-gradient(145deg, #f3e7df, #fff); }
.customer-account-card > span { display: grid; flex: 0 0 46px; height: 46px; place-items: center; border-radius: 50%; background: var(--customer-theme); color: #fff; font-size: 1.5rem; }
.customer-account-card h2, .customer-account-card p { margin: 0 0 5px; }
.customer-account-card p { color: var(--customer-muted); line-height: 1.45; }
.customer-account-links { display: grid; gap: 9px; margin: 16px 0; }
.customer-account-links > * { display: grid; gap: 3px; padding: 15px; border: 1px solid var(--customer-line); border-radius: 16px; background: #fff; color: inherit; text-decoration: none; }
.customer-account-links span { color: var(--customer-muted); font-size: .78rem; }

.customer-pwa-install-help { position: fixed; z-index: 160; inset: 0; display: grid; align-items: end; padding: 18px; background: rgba(25,16,12,.48); }
.customer-pwa-install-help > div { position: relative; padding: 24px; border-radius: 24px; background: #fff; box-shadow: 0 20px 60px rgba(0,0,0,.2); }
.customer-pwa-install-help button { position: absolute; top: 10px; right: 12px; border: 0; background: transparent; font-size: 1.5rem; }

@media (min-width: 760px) {
  .customer-pwa-shell { width: min(100%, 1120px); margin: 0 auto; background: var(--customer-bg); box-shadow: 0 0 70px rgba(45,28,20,.08); }
  .customer-pwa-bottom-nav { right: 50%; left: 50%; width: min(100%, 760px); transform: translateX(-50%); border: 1px solid var(--customer-line); border-bottom: 0; border-radius: 20px 20px 0 0; }
  .customer-product-page { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); gap: 28px; }
  .customer-product-suggestions { grid-column: 1/-1; }
  .customer-product-add { position: static; }
  .customer-cart-page, .customer-library-page, .customer-account-page { max-width: 760px; margin: 0 auto; padding-top: 30px; }
  .customer-home-promo-rail { grid-auto-columns: minmax(260px, 32%); }
}

@media (display-mode: standalone) {
  .customer-pwa-topbar { padding-top: calc(8px + env(safe-area-inset-top, 0px)); }
  .customer-pwa-install { display: none !important; }
}

.customer-pwa-install-banner { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; margin: 14px 16px 4px; padding: 14px 42px 14px 14px; border: 1px solid rgba(23, 60, 50, .16); border-radius: 18px; background: linear-gradient(120deg, #f4eee3, #fff 62%); box-shadow: 0 12px 30px rgba(45, 29, 23, .08); }
.customer-pwa-install-banner[hidden] { display: none; }
.customer-pwa-install-banner__mark { display: grid; width: 42px; height: 42px; place-items: center; overflow: hidden; border-radius: 13px; background: #081d33; }
.customer-pwa-install-banner__mark img { width: 100%; height: 100%; object-fit: cover; }
.customer-pwa-install-banner strong { display: block; color: #173c32; }
.customer-pwa-install-banner p { margin: 3px 0 0; color: #6f625d; font-size: .82rem; line-height: 1.35; }
.customer-pwa-install-banner__close { position: absolute; top: 7px; right: 8px; width: 30px; height: 30px; border: 0; color: #756863; background: transparent; font-size: 1.25rem; cursor: pointer; }

@media (max-width: 620px) {
  .customer-pwa-install-banner { grid-template-columns: auto minmax(0, 1fr); }
  .customer-pwa-install-banner .primary-button { grid-column: 1 / -1; width: 100%; }
}

@media (display-mode: standalone) {
  .customer-pwa-install-banner { display: none !important; }
}

/* Autana Cliente · checkout responsive */
.customer-pwa-checkout {
  --checkout-navy: #081d33;
  --checkout-teal: #078a84;
  --checkout-teal-dark: #06736e;
  --checkout-muted: #58708a;
  --checkout-line: #d4e0e8;
  --checkout-surface: #fff;
  background: radial-gradient(circle at 50% 0, #fff 0, #f1f7fa 42%, #edf4f7 100%);
  color: var(--checkout-navy);
  font-size: 16px;
}
.customer-pwa-checkout .customer-pwa-shell { width: min(100%, 1440px); padding-bottom: 36px; box-shadow: none; }
.customer-pwa-checkout .customer-pwa-main { width: min(100% - 32px, 1240px); }
.customer-pwa-checkout .customer-pwa-bottom-nav { display: none; }
.customer-pwa-checkout .customer-pwa-topbar { position: relative; padding-inline: max(16px, calc((100% - 1240px) / 2)); background: rgba(255,255,255,.9); }
.customer-pwa-checkout .customer-pwa-install-banner { margin-inline: 0; }
.customer-checkout-page.panel { margin: 16px 0 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.customer-checkout-desktop-header { margin: 18px 0 16px; padding: 0; }
.customer-checkout-desktop-header h2 { margin: 3px 0 2px; color: var(--checkout-navy); font-size: clamp(1.75rem, 2.5vw, 2.25rem); letter-spacing: -.035em; }
.customer-checkout-desktop-header .ghost-button { min-height: 42px; border-color: var(--checkout-line); background: #fff; color: var(--checkout-navy); }
.customer-checkout-mobile-header,
.customer-checkout-progress { display: none; }
.customer-checkout-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(350px, 390px); align-items: start; gap: 18px; }
.customer-checkout-main { display: grid; min-width: 0; gap: 14px; }
.customer-pwa-checkout .au-checkout-step,
.customer-pwa-checkout .au-checkout-form,
.customer-checkout-summary { border: 1px solid rgba(8,29,51,.08); border-radius: 15px; background: var(--checkout-surface); box-shadow: 0 10px 30px rgba(8,29,51,.055); }
.customer-pwa-checkout .au-checkout-step { padding: 17px 18px; }
.customer-pwa-checkout .au-checkout-step > div:first-child { margin-bottom: 12px; }
.customer-pwa-checkout .au-checkout-step h3,
.customer-pwa-checkout .au-checkout-form h3 { color: var(--checkout-navy); font-size: 1.1rem; }
.customer-pwa-checkout .checkout-service-options { gap: 12px; }
.customer-pwa-checkout .checkout-service-option { grid-template-columns: 44px minmax(0,1fr) 22px; align-items: center; gap: 12px; min-height: 72px; padding: 12px 14px; border-color: var(--checkout-line); border-radius: 9px; background: #fff; }
.customer-pwa-checkout .checkout-service-option > span:not(.customer-checkout-choice-icon) { display: grid; gap: 3px; }
.customer-pwa-checkout .checkout-service-option small { color: var(--checkout-muted); font-size: .76rem; font-weight: 500; line-height: 1.3; }
.customer-checkout-choice-icon { display: grid; width: 40px; height: 40px; place-items: center; color: var(--checkout-navy); }
.customer-checkout-choice-icon--delivery { width: 44px; height: 40px; }
.customer-checkout-choice-icon svg { display: block; width: 100%; height: 100%; overflow: visible; stroke: var(--checkout-navy); stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; }
.customer-checkout-choice-icon .customer-checkout-icon-accent { stroke: var(--checkout-teal); }
.customer-pwa-checkout .checkout-service-option > i { width: 20px; height: 20px; border: 2px solid #9eb0bd; border-radius: 50%; }
.customer-pwa-checkout .checkout-service-option.is-active { border-color: var(--checkout-teal); background: linear-gradient(135deg, #fff 15%, #eaf8f6); box-shadow: inset 0 0 0 1px var(--checkout-teal); }
.customer-pwa-checkout .checkout-service-option.is-active .customer-checkout-choice-icon { color: var(--checkout-teal); }
.customer-pwa-checkout .checkout-service-option.is-active > i { display: grid; place-items: center; border-color: var(--checkout-teal); background: var(--checkout-teal); }
.customer-pwa-checkout .checkout-service-option.is-active > i::after { color: #fff; content: "✓"; font-size: .72rem; font-style: normal; font-weight: 900; }
.customer-pwa-checkout .au-checkout-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; max-width: none; margin: 0; padding: 17px 18px; gap: 10px 12px; }
.customer-pwa-checkout .au-checkout-form > .full { grid-column: 1 / -1; }
.customer-pwa-checkout .au-checkout-form > header { gap: 10px; margin-bottom: 2px; }
.customer-pwa-checkout .au-checkout-form > header > span { color: var(--checkout-teal); background: #e7f7f5; font-size: 1.05rem; }
.customer-pwa-checkout .au-checkout-form > header p { color: var(--checkout-muted); font-size: .78rem; }
.customer-pwa-checkout .au-checkout-form > label { color: #314b62; font-size: .77rem; font-weight: 750; }
.customer-pwa-checkout .au-checkout-form > label:has(input[name="email"]) { grid-column: 1 / -1; }
.customer-pwa-checkout .au-checkout-form input:not([type="radio"]):not([type="checkbox"]) { min-height: 48px; margin-top: 5px; border-color: var(--checkout-line); border-radius: 8px; background: #fff; font-size: .92rem; }
.customer-pwa-checkout .au-checkout-form input:focus { border-color: var(--checkout-teal); box-shadow: 0 0 0 3px rgba(7,138,132,.14); outline: 0; }
.customer-pwa-checkout .checkout-address-validation { margin-top: -2px; }
.customer-pwa-checkout .checkout-address-validation p { font-size: .78rem; }
.customer-pwa-checkout .checkout-payment-step { padding: 0; border: 0; background: transparent; }
.customer-pwa-checkout .checkout-payment-step h3 { margin-bottom: 10px; }
.customer-pwa-checkout .au-payment-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.customer-pwa-checkout .au-payment-option.customer-payment-option { display: grid; grid-template-columns: 48px minmax(0,1fr) 24px; align-items: center; gap: 12px; min-height: 112px; margin: 0; padding: 16px; border: 1px solid var(--checkout-line); border-radius: 12px; background: #fff; cursor: pointer; }
.customer-pwa-checkout .au-payment-option.customer-payment-option:has(input:checked) { border-color: var(--checkout-teal); background: linear-gradient(135deg,#fff 10%,#eaf8f6); box-shadow: inset 0 0 0 1px var(--checkout-teal); }
.customer-payment-icon { display: grid; width: 48px; height: 48px; place-items: center; }
.customer-payment-icon svg { display: block; width: 100%; height: 100%; stroke: var(--checkout-navy); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.customer-payment-icon .customer-payment-icon-accent { stroke: var(--checkout-teal); }
.customer-payment-copy { display: grid !important; gap: 4px; min-width: 0; margin: 0 !important; }
.customer-payment-copy strong { color: var(--checkout-navy); font-size: .92rem; line-height: 1.25; }
.customer-payment-copy small { color: var(--checkout-muted); font-size: .76rem; line-height: 1.35; }
.customer-payment-copy em { width: max-content; margin-top: 3px; padding: 4px 9px; border-radius: 999px; background: #c8f4ef; color: var(--checkout-teal-dark); font-size: .68rem; font-style: normal; font-weight: 850; }
.customer-payment-option > input[type="radio"] { width: 22px; height: 22px; margin: 0; accent-color: var(--checkout-teal); }
.customer-pwa-checkout .checkout-payment-step details { margin-top: 10px; color: var(--checkout-navy); font-size: .8rem; }
.customer-pwa-checkout .checkout-payment-step details summary { cursor: pointer; font-weight: 750; }
.customer-checkout-notes { padding-top: 2px; }
.customer-checkout-notes > strong { display: block; color: var(--checkout-navy); font-size: 1rem; }
.customer-checkout-notes > strong span { color: var(--checkout-muted); font-weight: 500; }
.customer-checkout-summary { position: sticky; top: 16px; overflow: hidden; padding: 0; }
.customer-checkout-summary > details > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px 12px; cursor: pointer; list-style: none; color: var(--checkout-navy); font-size: 1.28rem; font-weight: 850; }
.customer-checkout-summary > details > summary::-webkit-details-marker { display: none; }
.customer-checkout-summary > details > summary i { width: 10px; height: 10px; border-top: 2px solid currentColor; border-left: 2px solid currentColor; transform: rotate(45deg); }
.customer-checkout-summary > details:not([open]) > summary i { transform: rotate(225deg); }
.customer-checkout-summary-content { padding: 0 20px 16px; }
.customer-checkout-products { border-top: 1px solid var(--checkout-line); border-bottom: 1px solid var(--checkout-line); }
.customer-pwa-checkout .au-checkout-product { grid-template-columns: 1fr; gap: 8px; padding: 13px 0; }
.customer-pwa-checkout .checkout-product-summary { grid-template-columns: 58px minmax(0,1fr); }
.customer-pwa-checkout .checkout-product-summary img,
.customer-checkout-product-placeholder { width: 58px; height: 58px; border-radius: 10px; }
.customer-checkout-product-placeholder { display: grid; place-items: center; background: #edf3f6; }
.customer-pwa-checkout .checkout-product-summary strong { color: var(--checkout-navy); font-size: .82rem; line-height: 1.25; }
.customer-pwa-checkout .au-checkout-product-actions { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 7px 10px; padding-left: 70px; }
.customer-pwa-checkout .au-checkout-product-actions > a { grid-column: 2; color: var(--checkout-teal-dark); font-size: .76rem; font-weight: 800; text-decoration: none; }
.customer-pwa-checkout .au-checkout-product-actions > strong { grid-column: 3; grid-row: 1; color: var(--checkout-navy); font-size: .82rem; }
.customer-pwa-checkout .checkout-item-action { grid-column: 1; grid-row: 1 / span 2; }
.customer-pwa-checkout .checkout-item-quantity { width: 52px; min-height: 36px; margin: 0; }
.customer-pwa-checkout .checkout-item-action .ghost-button { min-height: 36px; padding: 7px 9px; }
.customer-checkout-remove { grid-column: 3; width: 28px; height: 28px; border: 0; border-radius: 7px; background: #fff0ee; color: #a32a20; font-size: 1.1rem; }
.customer-checkout-summary dl { display: grid; gap: 9px; margin: 14px 0 0; }
.customer-checkout-summary dl > div { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; font-size: .88rem; }
.customer-checkout-summary dl dd { margin: 0; font-weight: 750; text-align: right; }
.customer-checkout-summary .is-total { color: var(--checkout-navy); font-size: 1.18rem; }
.customer-checkout-coupon { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--checkout-line); }
.customer-checkout-coupon > summary { cursor: pointer; color: var(--checkout-navy); font-size: .8rem; font-weight: 800; }
.customer-checkout-coupon .au-coupon-entry { margin-top: 9px; }
.customer-checkout-coupon .au-coupon-entry input { min-height: 42px; border-color: var(--checkout-line); }
.customer-checkout-points { display: block; margin-top: 10px; color: var(--checkout-muted); }
.customer-checkout-pay-zone { padding: 0 20px 16px; }
.customer-checkout-pay-zone > span { display: none; }
.customer-checkout-pay-zone .primary-button { width: 100%; min-height: 52px; border-radius: 8px; background: linear-gradient(100deg, var(--checkout-teal-dark), #079d96); font-size: .92rem; }
.customer-checkout-pay-zone .primary-button:disabled { cursor: not-allowed; opacity: .48; }
.customer-checkout-secure { display: flex; justify-content: center; gap: 7px; margin: 0 20px 18px !important; padding: 0 !important; border: 0 !important; color: var(--checkout-muted); font-size: .74rem !important; font-weight: 500 !important; }

@media (min-width: 768px) and (max-width: 1023px) {
  .customer-pwa-checkout .customer-pwa-main { width: min(100% - 28px, 940px); }
  .customer-checkout-layout { grid-template-columns: minmax(0,1fr) minmax(300px, .78fr); }
  .customer-pwa-checkout .checkout-service-options { grid-template-columns: 1fr; }
  .customer-pwa-checkout .au-checkout-form { grid-template-columns: 1fr; }
  .customer-pwa-checkout .au-checkout-form > * { grid-column: 1 / -1; }
}

@media (max-width: 767px) {
  .customer-pwa-checkout { font-size: 15px; }
  .customer-pwa-checkout .customer-pwa-shell { padding-bottom: calc(102px + var(--customer-safe-bottom)); }
  .customer-pwa-checkout .customer-pwa-main { width: 100%; }
  .customer-pwa-checkout .customer-pwa-topbar { display: none; }
  .customer-pwa-checkout .customer-pwa-install-banner { display: none !important; }
  .customer-checkout-page.panel { margin: 0; padding: 0 16px; }
  .customer-checkout-desktop-header { display: none; }
  .customer-checkout-mobile-header { display: grid; grid-template-columns: 48px 1fr 48px; align-items: center; min-height: 64px; margin: 0 -16px; padding-top: env(safe-area-inset-top, 0px); border-radius: 0 0 18px 18px; background: #fff; box-shadow: 0 6px 18px rgba(8,29,51,.04); text-align: center; }
  .customer-checkout-mobile-header a { display: grid; height: 48px; place-items: center; color: var(--checkout-navy); font-size: 1.75rem; text-decoration: none; }
  .customer-checkout-mobile-header strong { font-size: 1.25rem; }
  .customer-checkout-mobile-header > span { font-size: 1.2rem; }
  .customer-checkout-progress { display: grid; grid-template-columns: repeat(3,1fr); margin: 18px 2px; padding: 0; list-style: none; }
  .customer-checkout-progress li { position: relative; display: grid; justify-items: center; gap: 5px; color: var(--checkout-muted); font-size: .78rem; font-weight: 500; }
  .customer-checkout-progress li::before { position: absolute; z-index: 0; top: 15px; right: 50%; width: 100%; height: 2px; background: #c8d5de; content: ""; }
  .customer-checkout-progress li:first-child::before { display: none; }
  .customer-checkout-progress li span { z-index: 1; display: grid; width: 32px; height: 32px; place-items: center; border: 2px solid #acbcc8; border-radius: 50%; background: #f3f8fa; font-weight: 800; }
  .customer-checkout-progress li.is-complete::before,
  .customer-checkout-progress li.is-active::before { background: var(--checkout-teal); }
  .customer-checkout-progress li.is-complete span,
  .customer-checkout-progress li.is-active span { border-color: var(--checkout-teal); background: var(--checkout-teal); color: #fff; }
  .customer-checkout-progress li.is-complete,
  .customer-checkout-progress li.is-active { color: var(--checkout-navy); }
  .customer-checkout-layout { display: flex; flex-direction: column; gap: 14px; }
  .customer-checkout-summary { position: static; order: -1; width: 100%; border-radius: 16px; }
  .customer-checkout-summary > details > summary { padding: 18px 20px; font-size: 1.2rem; }
  .customer-checkout-summary-content { padding-bottom: 17px; }
  .customer-checkout-main { width: 100%; gap: 14px; }
  .customer-pwa-checkout .au-checkout-step,
  .customer-pwa-checkout .au-checkout-form { border-radius: 16px; }
  .customer-pwa-checkout .au-checkout-step { padding: 16px 18px; }
  .customer-pwa-checkout .checkout-service-options { grid-template-columns: 1fr; gap: 8px; }
  .customer-pwa-checkout .checkout-service-option { grid-template-columns: 40px minmax(0,1fr) 20px; min-height: 104px; padding: 12px 10px; text-align: left; }
  .customer-pwa-checkout .checkout-service-option .customer-checkout-choice-icon { display: grid; width: 36px; height: 36px; }
  .customer-pwa-checkout .checkout-service-option .customer-checkout-choice-icon--delivery { width: 40px; }
  .customer-pwa-checkout .checkout-service-option small { font-size: .72rem; }
  .customer-pwa-checkout .au-checkout-form { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 17px 18px; }
  .customer-pwa-checkout .au-checkout-form > label:has(input[name="first_name"]),
  .customer-pwa-checkout .au-checkout-form > label:has(input[name="phone"]),
  .customer-pwa-checkout .au-checkout-form > label:has(input[name="email"]),
  .customer-pwa-checkout .au-checkout-form > label:has(input[name="address_line_1"]),
  .customer-pwa-checkout .au-checkout-form > .checkout-payment-step,
  .customer-pwa-checkout .au-checkout-form > .customer-checkout-notes,
  .customer-pwa-checkout .au-checkout-form > header,
  .customer-pwa-checkout .au-checkout-form > .checkout-address-validation { grid-column: 1 / -1; }
  .customer-pwa-checkout .au-payment-options { grid-template-columns: 1fr; }
  .customer-pwa-checkout .au-payment-option.customer-payment-option { grid-template-columns: 44px minmax(0,1fr) 22px; min-height: 96px; padding: 14px; }
  .customer-payment-icon { width: 42px; height: 42px; }
  .customer-pwa-checkout .au-checkout-product-actions { padding-left: 0; }
  .customer-checkout-pay-zone { position: fixed; z-index: 120; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: minmax(105px,.7fr) minmax(0,1.8fr); align-items: center; gap: 12px; padding: 13px 16px calc(13px + var(--customer-safe-bottom)); border-top: 1px solid var(--checkout-line); background: rgba(255,255,255,.97); box-shadow: 0 -10px 30px rgba(8,29,51,.1); backdrop-filter: blur(16px); }
  .customer-checkout-pay-zone > span { display: grid; gap: 1px; }
  .customer-checkout-pay-zone > span small { color: var(--checkout-muted); font-weight: 750; }
  .customer-checkout-pay-zone > span strong { color: var(--checkout-navy); font-size: 1.28rem; }
  .customer-checkout-pay-zone .primary-button { min-height: 54px; }
  .customer-checkout-secure { display: none; }
}

@media (max-width: 390px) {
  .customer-checkout-page.panel { padding-inline: 12px; }
  .customer-checkout-mobile-header { margin-inline: -12px; }
  .customer-pwa-checkout .checkout-service-option { grid-template-columns: 38px minmax(0,1fr) 18px; padding-inline: 9px; }
  .customer-checkout-pay-zone { grid-template-columns: 105px minmax(0,1fr); padding-inline: 12px; }
}

/* AUTANA PRODUCT DETAIL V1 START */
@media (min-width: 760px) {
  .customer-pwa-product-detail .customer-pwa-shell { padding-bottom: 34px; }
  .customer-pwa-product-detail .customer-pwa-bottom-nav { display: none; }
  .customer-product-page { display: block; width: 100%; max-width: 1120px; padding: 22px 20px 34px; }
  .customer-product-shell { display: grid; grid-template-columns: minmax(0,1.04fr) minmax(390px,.96fr); align-items: start; padding: 14px; }
  .customer-product-shell.is-without-media { grid-template-columns: minmax(0,1fr); }
  .customer-product-shell.is-without-media .customer-product-detail { width: min(100%,760px); margin-inline: auto; padding: 18px 24px; }
  .customer-product-media { position: sticky; top: 78px; padding: 0; }
  .customer-product-gallery img { min-height: 500px; }
  .customer-product-image-empty { min-height: 500px; }
  .customer-product-detail { padding: 4px 4px 4px 24px; }
  .customer-product-detail h1 { font-size: 2.55rem; }
  .customer-product-add { position: static; }
  .customer-product-suggestions { margin-top: 22px; }
  .customer-product-suggestions > div { grid-template-columns: repeat(4,minmax(0,1fr)); grid-auto-flow: row; gap: 10px; overflow: visible; padding: 0; }
}

@media (min-width: 760px) and (max-width: 940px) {
  .customer-product-shell { grid-template-columns: minmax(0,1fr) minmax(340px,.9fr); }
  .customer-product-gallery img,
  .customer-product-image-empty { min-height: 420px; }
  .customer-removal-grid { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  .customer-product-page { padding: 12px; }
  .customer-product-detail { padding: 18px 14px; }
  .customer-product-media { padding: 10px 10px 0; }
  .customer-product-shell { border-radius: 18px; }
  .customer-product-gallery img { border-radius: 13px; }
  .customer-removal-grid { grid-template-columns: 1fr; }
  .customer-product-add { grid-template-columns: 112px minmax(0,1fr); margin-inline: -5px; }
  .customer-add-button { padding-inline: 8px; font-size: .72rem; }
  .customer-add-button > span:first-child { display: none; }
}
/* AUTANA PRODUCT DETAIL V1 END */
