/* Mobile quantity: one white field, no individual button frames. */
/* Web badges share mirrored geometry; native-only screens keep their rules. */
html.is-mobile-web body:is(.menu-page, .home-launch) .catalog-media {
  --catalog-badge-size: 34px;
  --catalog-badge-inset: 9px;
  --catalog-badge-icon: 19px;
}
@media (min-width: 1024px) {
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-media {
    --catalog-badge-size: 42px;
    --catalog-badge-inset: 14px;
    --catalog-badge-icon: 22px;
  }
}
@media (max-width: 900px) {
html.is-mobile-web body:is(.menu-page, .home-launch) .catalog-card .catalog-buy .catalog-stepper {
    background: #fff;
    border-color: rgba(83, 78, 65, .24);
    border-radius: 999px;
    box-shadow: none;
    overflow: hidden;
  }
  html.is-mobile-web body:is(.menu-page, .home-launch) .catalog-card .catalog-buy .catalog-stepper:is(:hover, :focus-within) {
    border-color: rgba(83, 78, 65, .4);
  }
  html.is-mobile-web body:is(.menu-page, .home-launch) .catalog-card .catalog-buy .catalog-stepper button,
  html.is-mobile-web body:is(.menu-page, .home-launch) .catalog-card .catalog-buy .catalog-stepper button:is(:hover, :focus, :active) {
    border: 0;
    box-shadow: none;
    background: transparent;
    color: var(--olive-deep);
    transform: none;
    transition: background-color 20ms ease-out !important;
    -webkit-tap-highlight-color: transparent;
  }
  html.is-mobile-web:not(.keyboard-navigation) body:is(.menu-page, .home-launch) .catalog-stepper button { outline: none; }
  html.is-mobile-web body:is(.menu-page, .home-launch) .catalog-card .catalog-buy .catalog-stepper button:not(:disabled):active {
    background: #e8efde;
  }
  html.is-mobile-web body:is(.menu-page, .home-launch) .catalog-card .catalog-buy .catalog-stepper button.is-tap-feedback {
    background: #e8efde;
  }
}

/* Desktop menu: equal edge insets and reserved two-digit quantity controls. */
@media (min-width: 901px) {
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-card,
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-card.is-in-cart {
    --catalog-content-inset: 20px;
    --catalog-badge-inset: 10px;
    --catalog-step-size: clamp(44px, 4vw, 56px);
    padding: 0 0 var(--catalog-content-inset);
  }
  @media (min-width: 1024px) {
    html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-card,
    html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-card.is-in-cart { --catalog-badge-inset: 14px; }
  }
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-card {
    position: relative;
    isolation: isolate;
    row-gap: 0;
  }
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-card.is-in-cart {
    background: transparent;
  }
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-card::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: -4px;
    border-radius: clamp(22px, 7%, 34px);
    corner-shape: squircle;
    background: transparent;
    transition: background-color .18s ease;
    pointer-events: none;
  }
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-card.is-in-cart::before {
    background: rgba(220, 231, 204, .48);
  }
  @media (hover: hover) and (pointer: fine) {
    html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-card:not(.is-in-cart):is(:hover, :focus-within) {
      background: transparent;
      transform: none;
      box-shadow: none;
    }
    html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-card:not(.is-in-cart):is(:hover, :focus-within)::before {
      background: rgba(232, 218, 193, .14);
    }
  }
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-copy,
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-buy {
    padding-inline: var(--catalog-content-inset);
  }
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-copy { margin-top: 18px; }
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-copy > p:first-of-type { display: none; }
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-buy {
    display: grid;
    grid-template-columns: max-content max-content minmax(0, 1fr);
    grid-template-rows: auto var(--catalog-step-size);
    column-gap: 12px;
    row-gap: 12px;
    align-items: baseline;
    padding-top: 0;
  }
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-buy > .catalog-mobile-weight {
    display: block;
    grid-column: 2;
    color: var(--muted);
    font: 560 20px/1 var(--font-brand);
    font-variation-settings: 'wght' 560, 'wdth' 90, 'opsz' 2;
    text-transform: uppercase;
    white-space: nowrap;
  }
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-buy > :is(.catalog-desktop-quantity, .catalog-quick-actions, .catalog-add) {
    grid-column: 1 / -1;
    grid-row: 2;
    align-self: end;
    margin-inline: calc(var(--catalog-badge-inset) - var(--catalog-content-inset));
  }
  html:not(.is-native-app) body:is(.menu-page, .home-launch) :is(.catalog-quick-actions, .catalog-desktop-quantity) {
    display: grid;
    width: auto;
    grid-template-columns: var(--catalog-step-size) minmax(0, 1fr) var(--catalog-step-size);
    align-items: center;
    gap: 0;
  }
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-quick-actions > .catalog-quick-count {
    display: flex;
    text-align: center;
    font: 560 26px/1 var(--font-brand);
    font-variant-numeric: tabular-nums;
  }
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-quick-actions .catalog-add {
    display: grid;
    place-items: center;
    width: var(--catalog-step-size);
    min-width: var(--catalog-step-size);
    height: var(--catalog-step-size);
    padding: 0;
    font-size: 38px;
  }
  .catalog-desktop-quantity {
    min-width: 0;
  }
  html:not(.is-native-app) body:is(.menu-page, .home-launch) :is(.catalog-desktop-quantity, .favorite-recipe-card:not(.is-sold-out)) .catalog-add {
    display: grid;
    place-items: center;
    width: var(--catalog-step-size);
    min-width: var(--catalog-step-size);
    height: var(--catalog-step-size);
    padding: 0;
    color: var(--olive-deep);
    background: rgba(220, 231, 204, .42);
    border-color: rgba(99, 120, 71, .3);
    transform: none;
    box-shadow: none;
  }
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-buy > .catalog-sold-out-link {
    width: var(--catalog-step-size);
    min-width: var(--catalog-step-size);
    height: var(--catalog-step-size);
  }
  html:not(.is-native-app) body:is(.menu-page, .home-launch) :is(.catalog-desktop-quantity, .favorite-recipe-card:not(.is-sold-out)) .catalog-add:not(:disabled):focus-visible {
    color: #fff;
    background: var(--olive-deep);
    border-color: var(--olive-deep);
  }
  @media (hover: hover) and (pointer: fine) {
    html:not(.is-native-app) body:is(.menu-page, .home-launch) :is(.catalog-desktop-quantity, .favorite-recipe-card:not(.is-sold-out)) .catalog-add:not(:disabled):hover {
      color: #fff;
      background: var(--olive-deep);
      border-color: var(--olive-deep);
    }
  }
  .catalog-desktop-quantity svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
  .catalog-desktop-quantity > span { text-align: center; font: 560 26px/1 var(--font-brand); font-variant-numeric: tabular-nums; }
  .catalog-desktop-quantity.is-empty > :not(:last-child) { visibility: hidden; pointer-events: none; }
}
.catalog-mobile-weight, .catalog-quick-count { display: none; }
html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-quick-actions > button.catalog-quick-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  min-width: 44px;
  min-height: 44px;
  padding: 0 4px;
  border: 0;
  border-radius: 0;
  color: var(--ink);
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  font: 560 23px/1 var(--font-brand);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
@media (min-width: 901px) {
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-quick-actions > button.catalog-quick-count { font-size: 26px; }
}
@media (min-width: 901px) and (hover: hover) and (pointer: fine) {
  html:not(.is-native-app) body:is(.menu-page, .home-launch) :is(.catalog-desktop-quantity, .catalog-quick-actions) .catalog-add:not(:hover):not(:focus-visible):not(:disabled) {
    color: var(--olive-deep);
    background: rgba(220, 231, 204, .42);
    border-color: rgba(99, 120, 71, .3);
    box-shadow: none;
    transform: scale(.98);
  }
}
.catalog-quick-count svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
@media (hover: hover) and (pointer: fine) {
  .catalog-quick-actions > button.catalog-quick-count:hover { color: var(--olive-deep); }
}
.catalog-quick-actions > button.catalog-quick-count:focus-visible {
  outline: none;
  color: var(--olive-deep);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
}
.catalog-variant-menu {
  position: fixed;
  z-index: 90;
  box-sizing: border-box;
  width: min(360px, calc(100vw - 24px));
  max-height: calc(100dvh - 24px);
  overflow: auto;
  padding: 12px 16px;
  border: 1px solid rgba(117, 96, 71, .24);
  border-radius: 18px;
  background: var(--paper, #fbf8f2);
  color: var(--ink);
  font: 400 15px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.catalog-variant-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.catalog-variant-head strong { font: 560 24px/1 var(--font-brand); }
.catalog-variant-head button { display: grid; width: 44px; height: 44px; place-items: center; padding: 0; border: 0; color: var(--ink); background: transparent; font: 400 28px/1 system-ui, sans-serif; cursor: pointer; }
.catalog-variant-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid rgba(117, 96, 71, .16); }
.catalog-variant-name { overflow-wrap: anywhere; }
.catalog-variant-controls { --variant-step-size: 44px; display: grid; grid-template-columns: var(--variant-step-size) 28px var(--variant-step-size); align-items: center; text-align: center; font-variant-numeric: tabular-nums; }
.catalog-variant-controls button { display: grid; place-items: center; width: var(--variant-step-size); height: var(--variant-step-size); padding: 0; border: 1px solid rgba(99, 120, 71, .3); border-radius: 999px; color: var(--olive-deep); background: rgba(220, 231, 204, .42); cursor: pointer; }
.catalog-variant-controls button svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.catalog-variant-controls button:disabled { opacity: .35; cursor: not-allowed; }
@media (hover: hover) and (pointer: fine) {
  .catalog-variant-controls button:not(:disabled):hover { color: #fff; background: var(--olive-deep); border-color: var(--olive-deep); }
}
.catalog-variant-menu button:focus-visible { outline: 2px solid var(--olive-deep); outline-offset: -2px; }
@media (min-width: 901px) { .catalog-variant-controls { --variant-step-size: clamp(44px, 4vw, 56px); } }
@media (max-width: 900px) {
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-card {
    grid-template-rows: auto minmax(64px, 1fr) auto;
    --catalog-badge-size: 34px;
    --catalog-badge-inset: 9px;
    --catalog-badge-icon: 19px;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-copy > p:first-of-type { display: none; }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-card .catalog-buy {
    display: grid;
    grid-template-columns: max-content max-content minmax(0, 1fr);
    grid-template-rows: auto 44px;
    column-gap: clamp(10px, 3vw, 15px);
    row-gap: 10px;
    align-items: baseline;
    min-width: 0;
    min-height: 0;
    padding: 8px 4px 0;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-buy > strong {
    grid-column: 1;
    margin-left: 4px;
    white-space: nowrap;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-buy > .catalog-mobile-weight {
    display: block;
    grid-column: 2;
    justify-self: start;
    color: var(--muted);
    font: 560 17px/1 var(--font-brand);
    font-variation-settings: 'wght' 560, 'wdth' 90, 'opsz' 2;
    text-transform: uppercase;
    white-space: nowrap;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-buy > :is(.catalog-desktop-quantity, .catalog-quick-actions, .catalog-add) {
    grid-column: 1 / -1;
    grid-row: 2;
    align-self: end;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) :is(.catalog-desktop-quantity, .catalog-quick-actions) {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    align-items: center;
    justify-self: stretch;
    gap: 0;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) :is(.catalog-desktop-quantity, .catalog-quick-actions) > span {
    display: block;
    text-align: center;
    font: 560 23px/1 var(--font-brand);
    font-variant-numeric: tabular-nums;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-desktop-quantity.is-empty > :not(:last-child) {
    visibility: hidden;
    pointer-events: none;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-buy > .catalog-add { justify-self: end; }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-buy > .catalog-add.catalog-sold-out-link {
    width: 44px;
    min-width: 44px;
    height: 44px;
    border: 0;
    background: transparent;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-buy :is(.catalog-add, .catalog-desktop-quantity .catalog-add) {
    display: grid;
    place-items: center;
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    color: var(--olive-deep);
    background: transparent;
    box-shadow: none;
    transform: none;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-buy .catalog-add::before {
    content: '';
    position: absolute;
    inset: 5px;
    z-index: 0;
    border: 1px solid rgba(99, 120, 71, .3);
    border-radius: 50%;
    background: rgba(220, 231, 204, .42);
    transition: background-color .12s ease, border-color .12s ease;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-buy .catalog-add > svg { position: relative; width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-buy .catalog-add:is(:hover, :focus, :active) { color: var(--olive-deep); background: transparent; box-shadow: none; transform: none; }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-buy .catalog-add:active::before { background: #e8efde; }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-buy .catalog-add:focus-visible::before { border-color: var(--olive-deep); }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-add-default .catalog-quantity-badge { display: none; }
  html.is-mobile-web body:is(.menu-page, .home-launch) .favorite-recipe-card.is-sold-out .favorite-recipe-add { width: 100%; font-size: 14px; }
}
html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-add-default .catalog-quantity-badge {
  right: auto;
  left: -7px;
  background: var(--olive-deep);
  box-shadow: none;
}
html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-add-default > svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
}
@media (min-width: 901px) and (max-width: 1199px) {
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-card,
  html:not(.is-native-app) body:is(.menu-page, .home-launch) .catalog-card.is-in-cart { --catalog-content-inset: 12px; }
}

/* Shared, reversible web dialog motion. Native route screens keep their own navigation. */
.order-status-card.is-failed { background: #f3e8e3; border-color: #d9b9ac; }
.order-status-card.is-failed .order-status-head strong { color: var(--web-destructive, #88483e); }
html:is(:not(.is-native-app), .is-mobile-web) body.order-page .order-status-head strong,
html:is(:not(.is-native-app), .is-mobile-web) body.order-page .order-detail-card h2 {
  font-family: var(--font-brand);
  font-weight: 560;
  text-transform: uppercase;
}
html:is(:not(.is-native-app), .is-mobile-web) body.order-page .order-status-head strong { font-size: 34px; line-height: 1.05; }
.order-failure-note, .order-detail-card > p { font: 16px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.order-status-card.is-failed a { color: var(--web-destructive, #88483e); font: 16px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
html:is(:not(.is-native-app), .is-mobile-web) .site-header .icon-button { border-radius: 50%; }
html:is(:not(.is-native-app), .is-mobile-web) { scroll-behavior: smooth; }
dialog.dialog-motion {
  opacity: 1;
  scale: 1;
  transition: opacity 240ms ease, scale 240ms cubic-bezier(.2,.7,.2,1);
}
dialog.dialog-motion::backdrop {
  opacity: 1;
  transition: opacity 240ms ease, backdrop-filter 240ms ease, -webkit-backdrop-filter 240ms ease;
}
dialog.dialog-motion.dialog-motion-hidden { opacity: 0; scale: .94; }
dialog.dialog-motion.dialog-motion-hidden::backdrop {
  opacity: 0;
  backdrop-filter: blur(0);
  -webkit-backdrop-filter: blur(0);
}
@media (prefers-reduced-motion: reduce) {
  html:is(:not(.is-native-app), .is-mobile-web) { scroll-behavior: auto; }
  dialog.dialog-motion, dialog.dialog-motion.dialog-motion-hidden { scale: 1; transition: opacity 140ms ease !important; }
  dialog.dialog-motion::backdrop { transition: opacity 140ms ease !important; }
}
/* V335: one text-CTA contract for home and internal web pages.
   Icon buttons and quantity controls deliberately keep their compact geometry. */
@media (hover: none) and (pointer: coarse) {
  html.is-mobile-web:not(.keyboard-navigation) body :is(button, a):focus { outline: none !important; }
  html.is-mobile-web body .modal-close { border: 0; box-shadow: none; }
}
html:is(:not(.is-native-app), .is-mobile-web) {
  --web-button-height: 48px;
  --web-button-font-size: 23px;
  --web-button-padding: 20px;
  --web-destructive: #88483e;
  --web-destructive-hover: #6f3932;
}
@media (min-width: 1024px) {
  html:not(.is-native-app) {
    --web-button-height: 56px;
    --web-button-font-size: 26px;
    --web-button-padding: 24px;
  }
}
html:is(:not(.is-native-app), .is-mobile-web) body :is(.home-primary, .primary-button, .profile-main-action, .payment-link) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: var(--web-button-height);
  padding: 10px var(--web-button-padding);
  border: 0;
  border-radius: var(--radius-control);
  corner-shape: squircle;
  font: 560 var(--web-button-font-size)/1 var(--font-brand);
  font-variation-settings: 'wght' 560, 'wdth' 90, 'opsz' 2;
  letter-spacing: .01em;
  text-align: center;
  text-transform: uppercase;
  text-decoration: none;
}
html:is(:not(.is-native-app), .is-mobile-web) body :is(.home-primary, .primary-button, .profile-main-action, .payment-link):not(:disabled):not([aria-disabled="true"]) {
  background: var(--olive);
  color: #fff;
}
html:is(:not(.is-native-app), .is-mobile-web) body :is(.primary-button.order-cancel, .primary-button.order-cancel-confirm):not(:disabled):not([aria-disabled="true"]) {
  background: var(--web-destructive);
  color: #fff;
}
/* Color feedback remains smooth in reduce; no translation or scaling needed. */
@media (hover: hover) and (pointer: fine) {
  html:is(:not(.is-native-app), .is-mobile-web) body :is(.home-primary, .primary-button, .profile-main-action, .payment-link) {
    transition: background-color 160ms ease, color 160ms ease, filter 160ms ease !important;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body :is(.home-primary, .primary-button, .profile-main-action, .payment-link):focus-visible {
    outline: 2px solid var(--olive-deep);
    outline-offset: 4px;
  }
}

/* V329: keep 16.5px inside the selection frame (inset 7.5px), even for long labels. */
html:is(:not(.is-native-app), .is-mobile-web) body.menu-page .catalog-filter {
  min-width: max-content;
  padding-inline: 24px;
}
@media (min-width: 901px) {
  html:not(.is-native-app) body.menu-page .catalog-filters { justify-content: safe center; }
}

/* V323: selection and photo share one contour; the existing mobile photo
   radius remains 4px smaller to match its inset. Keep badges/focus unclipped. */
html:is(:not(.is-native-app), .is-mobile-web) body:is(.menu-page, .home-launch) .catalog-card {
  border-radius: var(--radius-card);
  corner-shape: squircle;
}

/* V321: mouse feedback follows pointer capability, including narrow desktop windows. */
@media (hover: hover) and (pointer: fine) {
  html:is(:not(.is-native-app), .is-mobile-web) body :is(.home-primary, .product-add, .primary-button, .checkout-button, .profile-main-action, .payment-link,
    .catalog-add, .catalog-filter, .cart-icon-action, .product-configure, .product-circle-button, .product-about-toggle, .product-back-to-media, .customizer-history-toggle, .secondary-action, .icon-button,
    .cart-quantity-control button, .catalog-stepper button, .home-featured__controls button,
    .addon-plus, .addon-stepper button, .addon-options-arrow, .home-hero-arrow) {
    transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, filter 160ms ease;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body :is(.home-primary, .product-add, .primary-button, .checkout-button, .profile-main-action, .payment-link):not(:disabled):not([aria-disabled="true"]):hover {
    background: var(--olive-deep);
    color: #fff;
    box-shadow: 0 4px 12px rgba(51,64,36,.18);
    transform: none;
    cursor: pointer;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body :is(.primary-button.order-cancel, .primary-button.order-cancel-confirm):not(:disabled):not([aria-disabled="true"]):hover {
    background: var(--web-destructive-hover);
    color: #fff;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body :is(.cart-icon-action, .product-configure, .product-circle-button, .product-about-toggle, .product-back-to-media, .customizer-history-toggle, .secondary-action, .icon-button,
    .cart-quantity-control button, .catalog-stepper button, .home-featured__controls button):not(:disabled):not([aria-disabled="true"]):hover {
    background: var(--pistachio);
    color: var(--olive-deep);
    box-shadow: inset 0 0 0 1px var(--olive);
    transform: none;
    cursor: pointer;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body .catalog-filter:not(:disabled):hover {
    color: var(--olive-deep);
    cursor: pointer;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body :is(.addon-plus, .addon-stepper button, .addon-options-arrow, .home-hero-arrow):not(:disabled):not([aria-disabled="true"]):hover {
    box-shadow: inset 0 0 0 2px currentColor;
    cursor: pointer;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body :is(.home-primary, .product-add, .primary-button, .checkout-button, .profile-main-action, .payment-link,
    .catalog-add, .catalog-filter, .cart-icon-action, .product-configure, .product-circle-button, .product-about-toggle, .product-back-to-media, .customizer-history-toggle, .secondary-action, .icon-button,
    .cart-quantity-control button, .catalog-stepper button, .home-featured__controls button,
    .addon-plus, .addon-stepper button, .addon-options-arrow, .home-hero-arrow):not(:disabled):not([aria-disabled="true"]):active {
    filter: brightness(.85);
    transition-duration: 60ms;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body :is(.product-add, .product-configure, .product-circle-button, .product-about-toggle, .product-back-to-media, .customizer-history-toggle, .addon-plus, .addon-stepper button, .addon-options-arrow):focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body .addon-group-card:hover {
    box-shadow: inset 0 0 0 2px currentColor;
    cursor: pointer;
  }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: reduce) {
  html:is(:not(.is-native-app), .is-mobile-web) body :is(.home-primary, .product-add, .primary-button, .checkout-button, .profile-main-action, .payment-link,
    .catalog-add, .catalog-filter, .cart-icon-action, .product-configure, .product-circle-button, .product-about-toggle, .product-back-to-media, .customizer-history-toggle, .secondary-action, .icon-button,
    .cart-quantity-control button, .catalog-stepper button, .home-featured__controls button,
    .addon-plus, .addon-stepper button, .addon-options-arrow, .home-hero-arrow) { transition: none; }
}

/* V282: common web page geometry. Native bundles do not consume this
   stylesheet. Product pages reuse only its outer-gap token; marketing hero
   typography stays separate. */
html:is(:not(.is-native-app), .is-mobile-web) {
  --web-gap: clamp(20px, 2vw, 40px);
  --web-title-size: clamp(45px, 4.55vw, 66px);
  --web-intro-meta-size: 22px;
}
html:is(:not(.is-native-app), .is-mobile-web) body.web-static {
  --pending: #fff176;
  --header-height: var(--app-header-h, 72px);
  font-family: system-ui, sans-serif;
}
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .web-container {
  width: calc(100% - 2 * var(--web-gap));
  max-width: none;
  margin-inline: auto;
  padding: 110px 0 0;
}
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) :is(.web-page-intro, .screen-intro) {
  width: 100%;
  max-width: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 0;
  margin: 24px 0 40px;
  text-align: center;
  text-transform: uppercase;
}
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) :is(.web-page-intro, .screen-intro) h1 {
  max-width: 20ch;
  margin: 0;
  font-family: var(--font-brand);
  font-size: var(--web-title-size);
  font-variation-settings: 'wght' 620, 'wdth' 82, 'opsz' 2;
  font-weight: 620;
  line-height: .98;
  text-wrap: balance;
  text-align: center;
}
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) :is(.web-page-intro, .screen-intro) > p {
  max-width: 46ch;
  margin: 0;
  color: var(--muted);
  font: 500 var(--web-intro-meta-size)/1.2 var(--font-brand);
  text-align: center;
}
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) :is(.web-page-intro, .screen-intro) > :is(.eyebrow, .legal-kicker) {
  color: var(--olive-deep);
  font-size: var(--web-intro-meta-size);
  letter-spacing: .06em;
}
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) :is(.web-page-intro, .screen-intro) .revision {
  font: 400 13px/1.5 system-ui, sans-serif;
}
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce, .home-launch) .site-legal-footer__inner {
  width: calc(100% - 2 * var(--web-gap));
  max-width: none;
  gap: var(--web-gap);
}
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) > .site-legal-footer { margin-top: 64px; }
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce, .home-launch) [data-cart-count][hidden] { display: none; }
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-contact-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(20px, 2vw, 32px);
  align-items: stretch;
}
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-doc--contacts { max-width: 1600px; }
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-doc--contacts .web-page-intro { margin-bottom: 32px; }
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-contact-grid > .legal-contact-card { grid-column: span 6; min-width: 0; margin: 0; }
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-contact-grid > .legal-map { grid-column: 1 / -1; min-width: 0; margin: 0; }
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-contact-card {
  min-height: 0;
  padding: clamp(22px, 2vw, 32px);
  border-radius: var(--radius-card, 26px);
  corner-shape: squircle;
}
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-contact-card address {
  display: grid;
  gap: 10px;
  margin-block: 18px;
  font: 400 15px/1.5 system-ui, sans-serif;
  overflow-wrap: anywhere;
}
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .contacts-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-map { display: flex; flex-direction: column; padding: 0; border: 0; background: none; gap: 12px; }
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-map__frame { order: -1; min-height: 460px; border-radius: var(--radius-card, 26px); overflow: hidden; }
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-map__frame :is(iframe, .cookie-external-placeholder) { width: 100%; height: 100%; min-height: 460px; border: 0; }
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-map__copy :is(.legal-kicker, h2, p) { display: none; }
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-map__copy { padding: 0; align-self: flex-start; }
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-map__link { margin: 0; }
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-doc--contacts :is(.legal-document-link, .legal-requisites dd) { font-size: 15px; }
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-document-link { margin-top: 32px; }
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-back { font: 560 22px/1 var(--font-brand); text-transform: uppercase; }
html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) :is(a, button, summary):focus-visible { outline: 3px solid var(--olive-deep); outline-offset: 4px; }
@media (min-width: 1024px) {
  html:not(.is-native-app) { scrollbar-gutter: stable; }
  html:not(.is-native-app) body:is(.web-static, .web-commerce, .home-launch, .product-page) .site-header { padding-inline: var(--web-gap); }
}
@media (max-width: 1023px) {
  html:is(:not(.is-native-app), .is-mobile-web) { --web-gap: 20px; --web-title-size: clamp(48px, 12vw, 68px); --web-intro-meta-size: 20px; }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .web-container { padding-top: 92px; }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) :is(.web-page-intro, .screen-intro) { gap: 12px; margin: 16px 0 28px; }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) :is(.web-page-intro, .screen-intro) > p { font-size: var(--web-intro-meta-size); }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) :is(.web-page-intro, .screen-intro) > :is(.eyebrow, .legal-kicker) { font-size: var(--web-intro-meta-size); }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-contact-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-contact-grid > :is(.legal-contact-card, .legal-map) { grid-column: 1; }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-doc--contacts .web-page-intro { margin-bottom: 24px; }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-doc--contacts .legal-contact-card { padding: 22px 20px; }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-doc--contacts .legal-map__frame,
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .legal-doc--contacts .legal-map__frame :is(iframe, .cookie-external-placeholder) { min-height: 340px; }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) .site-legal-footer__inner { grid-template-columns: minmax(0, 1fr); }
  html.is-mobile-web body:is(.web-static, .web-commerce) .site-legal-footer__inner { padding-bottom: calc(112px + env(safe-area-inset-bottom)); }
  html:is(:not(.is-native-app), .is-mobile-web) body:is(.web-static, .web-commerce) > .site-legal-footer { margin-top: 48px; }
}

/* Commerce reuses the outer grid. Keep mobile rail centering/snap unchanged. */
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .web-container { padding-bottom: 64px; }
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .screen-intro__description { margin: 0 !important; }
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .catalog-grid { max-width: none; margin: 0; }
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .profile-standalone-content { min-height: 0; }
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .profile-auth-view { min-height: 0; }
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .profile-auth-form { width: min(640px, 100%); margin: 0; }
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .profile-progress { margin: 28px 0 0; padding: 0; }
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .profile-consent { margin: 0 auto; text-align: center; }
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .profile-view-head .profile-back { display: none; }
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce.profile-page .profile-settings > :not(.screen-intro) { width: 100%; margin-inline: 0; }
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .profile-overview > section { min-width: 0; width: 100%; margin: 0; align-self: start; }
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .profile-overview,
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .profile-settings { gap: var(--web-gap); }
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .web-cart-lines { min-width: 0; }
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .web-cart-layout { display: grid; gap: var(--web-gap); }

/* V314: footer composition follows the supplied desktop and mobile layouts. */
html:is(:not(.is-native-app), .is-mobile-web) body.has-legal-footer > .site-legal-footer {
  --footer-surface: #2f3526;
  --footer-wordmark: #444b39;
  margin-top: clamp(48px, 6vw, 96px);
  color: #f5f1e8;
  background: var(--footer-surface);
  font: 400 15px/1.45 system-ui, sans-serif;
}
html:is(:not(.is-native-app), .is-mobile-web) body.has-legal-footer > .site-legal-footer .site-legal-footer__inner {
  width: calc(100% - 2 * var(--web-gap));
  max-width: none;
  display: block;
  container-type: inline-size;
  padding: clamp(36px, 4vw, 56px) 0 24px;
}
.site-legal-footer__top {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--web-gap);
  align-items: start;
  padding-bottom: 0;
}
.site-legal-footer__lead { grid-column: 1 / span 6; min-width: 0; }
.site-legal-footer__lead p,
.site-legal-footer__menu > span,
.site-legal-footer__details > span:first-child {
  display: block;
  margin: 0 0 24px;
  color: #b9c99c;
  font: 570 16px/1 var(--font-brand);
  font-variation-settings: 'wght' 570, 'wdth' 90, 'opsz' 2;
  letter-spacing: .07em;
}
.site-legal-footer__lead h2 {
  max-width: none;
  margin: 0;
  color: inherit;
  font: 600 clamp(42px, 4.2vw, 150px)/1.08 var(--font-brand);
  font-variation-settings: 'wght' 600, 'wdth' 82, 'opsz' 2;
  letter-spacing: -.015em;
  text-wrap: balance;
}
.site-legal-footer__lead h2 > span { display: block; white-space: nowrap; }
.site-legal-footer__menu { grid-column: 7 / span 2; }
.site-legal-footer__details { grid-column: 9 / -1; }
.site-legal-footer__menu,
.site-legal-footer__details {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  min-width: 0;
  margin: 0;
  font-style: normal;
}
.site-legal-footer__menu a,
.site-legal-footer__details a {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  color: inherit;
  text-decoration: none;
  text-underline-offset: 5px;
  transition: color 160ms ease, opacity 100ms ease;
}
.site-legal-footer__menu a:hover,
.site-legal-footer__details a:hover { color: #cbd8b5; text-decoration: underline; }
.site-legal-footer__menu a:active,
.site-legal-footer__details a:active,
.site-legal-footer__links a:active { opacity: .62; transition-duration: 0ms; }
html:is(:not(.is-native-app), .is-mobile-web) body.has-legal-footer > .site-legal-footer .site-legal-footer__brand {
  display: block;
  width: fit-content;
  margin: clamp(32px, 3vw, 64px) 0 clamp(40px, 4vw, 80px);
  color: var(--footer-wordmark);
  font: 620 clamp(78px, 13vw, 250px)/.72 var(--font-brand);
  font-variation-settings: 'wght' 620, 'wdth' 78, 'opsz' 2;
  letter-spacing: -.018em;
  text-decoration: none;
}
.site-legal-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--web-gap);
  padding-top: 20px;
  border-top: 1px solid rgba(245, 241, 232, .18);
}
.site-legal-footer__bottom p {
  max-width: none;
  margin: 0;
  color: rgba(245, 241, 232, .62);
  font-size: 12px;
  letter-spacing: .02em;
}
html:is(:not(.is-native-app), .is-mobile-web) body.has-legal-footer > .site-legal-footer .site-legal-footer__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 4px 20px;
}
html:is(:not(.is-native-app), .is-mobile-web) body.has-legal-footer > .site-legal-footer .site-legal-footer__links a {
  min-height: 44px;
  color: rgba(245, 241, 232, .78);
  text-decoration: none;
  transition: color 160ms ease, opacity 100ms ease;
}
html:is(:not(.is-native-app), .is-mobile-web) body.has-legal-footer > .site-legal-footer .site-legal-footer__links a:hover { color: #fff; text-decoration: underline; }
html:is(:not(.is-native-app), .is-mobile-web) body.has-legal-footer > .site-legal-footer a:focus-visible { outline-color: #dbe6c8; }
@media (max-width: 1023px) {
  html:is(:not(.is-native-app), .is-mobile-web) body.has-legal-footer > .site-legal-footer { margin-top: 44px; font-size: 14px; }
  html:is(:not(.is-native-app), .is-mobile-web) body.has-legal-footer > .site-legal-footer .site-legal-footer__inner {
    padding: 30px 0 32px;
  }
  .site-legal-footer__top { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 36px 16px; padding-bottom: 0; }
  .site-legal-footer__lead { grid-column: 1 / -1; }
  .site-legal-footer__menu { grid-column: 1; }
  .site-legal-footer__details { grid-column: 2; }
  .site-legal-footer__lead h2 { max-width: none; font-size: 13cqw; }
  .site-legal-footer__lead p,
  .site-legal-footer__menu > span,
  .site-legal-footer__details > span:first-child { margin-bottom: 18px; font-size: 15px; }
  .site-legal-footer__menu,
  .site-legal-footer__details { display: grid; grid-template-columns: minmax(0, 1fr); }
  .site-legal-footer__menu a,
  .site-legal-footer__details a { min-height: 44px; overflow-wrap: anywhere; }
  html:is(:not(.is-native-app), .is-mobile-web) body.has-legal-footer > .site-legal-footer .site-legal-footer__brand {
    max-width: 100%;
    margin: 40px 0 36px;
    font-size: 31.8cqw;
    line-height: .8;
  }
  .site-legal-footer__bottom { align-items: flex-start; flex-direction: column-reverse; gap: 12px; padding-top: 0; border-top: 0; }
  html:is(:not(.is-native-app), .is-mobile-web) body.has-legal-footer > .site-legal-footer .site-legal-footer__links {
    justify-content: flex-start;
    gap: 0 18px;
  }
}
@media (min-width: 600px) and (max-width: 1023px) {
  .site-legal-footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  html:is(:not(.is-native-app), .is-mobile-web) body.has-legal-footer > .site-legal-footer .site-legal-footer__inner {
    padding-bottom: calc(112px + env(safe-area-inset-bottom));
  }
}
@media (prefers-reduced-motion: reduce) {
  .site-legal-footer a { transition: none !important; }
}
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .checkout-button { justify-content: center; }
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .cart-item-actions {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
}
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .cart-item-actions > strong {
  min-width: max-content;
  margin-inline: 4px;
}
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .cart-quantity-control {
  display: grid;
  grid-template-columns: 44px minmax(24px, auto) 44px;
  align-items: center;
  gap: 8px;
}
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .cart-quantity-control button {
  position: relative;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: rgba(255, 255, 255, .72);
  color: var(--olive-deep);
  font-size: 0;
  line-height: 0;
  cursor: pointer;
}
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .cart-quantity-control button::before,
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .cart-quantity-control button[data-action="plus"]::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 17px;
  height: 2px;
  border-radius: 99px;
  background: currentColor;
  transform: translate(-50%, -50%);
}
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .cart-quantity-control button[data-action="plus"]::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .cart-quantity-control button:hover { background: var(--pistachio); }
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .cart-quantity-control span {
  min-width: 24px;
  text-align: center;
  font: 500 18px/1 system-ui, sans-serif;
}
html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .cart-item-links { flex-wrap: nowrap; gap: 4px; }
@media (min-width: 1024px) {
  html:not(.is-native-app) body.web-commerce .catalog-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 48px var(--web-gap); }
  html:not(.is-native-app) body.web-commerce.menu-page .catalog-media img { aspect-ratio: 1; }
  html:not(.is-native-app) body.web-commerce .catalog-filter-sticky { width: 100%; margin: 0 0 32px; }
  html:not(.is-native-app) body.web-commerce .catalog-filters { justify-content: safe center; padding-inline: 0; }
  html:not(.is-native-app) body.web-commerce .web-cart-layout,
  html:not(.is-native-app) body.web-commerce .profile-overview { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--web-gap); align-items: start; }
  html:not(.is-native-app) body.web-commerce .web-cart-lines { grid-column: span 8; }
  html:not(.is-native-app) body.web-commerce .cart-item { align-items: stretch; }
  html:not(.is-native-app) body.web-commerce .cart-item-actions { align-self: end; }
  html:not(.is-native-app) body.web-commerce .standalone-cart-dock {
    grid-column: span 4; position: sticky; top: 100px; right: auto; bottom: auto;
    width: 100%; display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px;
    padding: 24px; box-shadow: none; border-radius: var(--radius-card, 26px);
  }
  html:not(.is-native-app) body.web-commerce .standalone-cart-dock .cart-total { display: flex; justify-content: space-between; align-items: baseline; }
  html:not(.is-native-app) body.web-commerce .standalone-cart-dock .checkout-button { width: 100%; white-space: normal; }
  html:not(.is-native-app) body.web-commerce .profile-auth-form { width: min(640px, calc((100% - var(--web-gap)) / 2)); }
  html:not(.is-native-app) body.web-commerce .profile-overview > .screen-intro { grid-column: 1 / -1; margin-bottom: 12px; }
  html:not(.is-native-app) body.web-commerce .profile-account-section { grid-column: 1 / 5; grid-row: 2 / 4; }
  html:not(.is-native-app) body.web-commerce :is(.profile-current-order, .profile-orders) { grid-column: 5 / -1; }

  /* Profile is a focused account flow, not a dashboard spread across the viewport. */
  html:not(.is-native-app) body.profile-page .profile-standalone-content {
    width: 100%;
    margin-inline: auto;
  }
  html:not(.is-native-app) body.profile-page .profile-auth-form {
    width: min(640px, 100%);
    margin-inline: auto;
  }
  html:not(.is-native-app) body.profile-page .profile-progress {
    justify-content: center;
    margin: 28px auto 0;
  }
  html:not(.is-native-app) body.profile-page .profile-overview {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
  }
  html:not(.is-native-app) body.profile-page .profile-overview > .screen-intro,
  html:not(.is-native-app) body.profile-page .profile-overview > :is(.profile-account-section, .profile-current-order, .profile-orders) {
    grid-column: 1;
    grid-row: auto;
    width: min(640px, 100%);
    margin-inline: auto;
  }
}
@media (max-width: 1023px) {
  html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; }
}
@media (min-width: 901px) and (max-width: 1023px) {
  html:not(.is-native-app) body.web-commerce .standalone-cart-dock { position: static; width: 100%; margin: 0; }
}
@media (max-width: 900px) {
  html.is-mobile-web body:is(.web-static, .web-commerce) :is(.web-page-intro, .screen-intro) {
    width: 100%;
    max-width: none;
    text-align: center;
  }
  html.is-mobile-web body:is(.web-static, .web-commerce) :is(.web-page-intro, .screen-intro) h1,
  html.is-mobile-web body:is(.web-static, .web-commerce) :is(.web-page-intro, .screen-intro) > p {
    align-self: center;
    text-align: center;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .cart-screen { padding-bottom: calc(240px + env(safe-area-inset-bottom)); }
  html:is(:not(.is-native-app), .is-mobile-web) body.web-commerce .standalone-cart-dock { position: fixed; left: 0; right: 0; bottom: calc(82px + env(safe-area-inset-bottom)); width: 100%; }
}
html:is(:not(.is-native-app), .is-mobile-web) body.menu-page .catalog-filter-sticky.is-page-pinned {
  position: fixed;
  margin-inline: 0;
}
.web-cart-bottom-stack:empty { display: none; }
@media (max-width: 900px) {
  html.is-mobile-web body.menu-page .catalog-filter-sticky.is-page-pinned {
    left: 0 !important;
    width: 100% !important;
  }
  .web-cart-bottom-stack { position: fixed; z-index: 45; inset: auto 0 0; }
  html:is(:not(.is-native-app), .is-mobile-web) body.cart-page .web-cart-bottom-stack > .standalone-cart-dock {
    position: relative; inset: auto; width: 100%; margin: 0; padding-bottom: 10px;
  }
  html.is-mobile-web body.cart-page .web-cart-bottom-stack > .native-tab-bar {
    position: relative; inset: auto;
    height: calc(82px + env(safe-area-inset-bottom));
    padding-bottom: calc(14px + env(safe-area-inset-bottom));
  }
}
/* V389 — private order history: one period control and a readable list. */
/* Account pages share one content edge, including profile's nested sections. */
html:is(:not(.is-native-app), .is-mobile-web) body:is(.profile-page, .order-page) main.account-container {
  width: min(760px, calc(100% - 2 * var(--web-gap, 20px)));
  margin-inline: auto;
}
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-overview > :is(.screen-intro, section, .profile-current-order, .profile-favorites-banner) {
  width: 100%;
  min-width: 0;
}
/* V392: Profile shares the account grid; Moniqa remains for display headlines. */
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-standalone-content {
  font: 400 16px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .toast { font-family: var(--font-brand); text-transform: uppercase; }
/* V394: Account navigation lives in the fixed header, outside the title rhythm. */
html:is(:not(.is-native-app), .is-mobile-web) body.account-subpage .site-header .desktop-site-nav { display: none; }
html:is(:not(.is-native-app), .is-mobile-web) .site-header .desktop-site-nav a { font: 560 19px/1 var(--font-brand); text-transform: uppercase; }
html:is(:not(.is-native-app), .is-mobile-web) body.account-subpage .site-header .account-header-back {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  z-index: 2;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: var(--ink);
  background: transparent;
  pointer-events: auto;
  cursor: pointer;
  transition: background-color .16s ease;
}
html:is(:not(.is-native-app), .is-mobile-web) body.account-subpage .site-header .account-header-back:hover { background: rgba(232, 218, 193, .24); }
html:is(:not(.is-native-app), .is-mobile-web) body.account-subpage .site-header .account-header-back:focus-visible { outline: 2px solid var(--olive-deep); outline-offset: 2px; }
html:is(:not(.is-native-app), .is-mobile-web) body.account-subpage .site-header .account-header-back svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.account-header-back[hidden] { display: none !important; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page :is(.profile-overview, .profile-settings) { gap: 30px; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings > :not(.profile-logout-button):not(.profile-delete-button),
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings > .profile-logout-button:only-of-type { grid-column: 1 / -1; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings > :is(.profile-logout-button, .profile-delete-button) { min-width: 0; margin-top: 0; padding-inline: 10px; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page :is(.profile-account-section h2, .profile-orders h2) {
  font: 600 21px/1.3 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-account-card { font: inherit; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-account-card strong { font: 560 24px/1.1 var(--font-brand); text-transform: uppercase; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-current-order-copy strong { font-family: var(--font-brand); font-weight: 560; text-transform: uppercase; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-account-card small { font: 400 16px/1.35 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-empty-orders {
  padding: 22px 24px;
  border: 0;
  border-radius: 18px;
  background: rgba(232,225,211,.36);
}
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-empty-orders strong { font: 600 16px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-empty-orders p { font: 400 15px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-standalone-content :is(.profile-order-card, .profile-product-chip, .profile-favorite-name, .profile-text-action) {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-order-meta strong {
  font: 560 22px/1.05 var(--font-brand);
  text-transform: uppercase;
}
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-product-chip strong {
  font: 560 clamp(15px, 1.5vw, 19px)/1.12 var(--font-brand);
  text-transform: uppercase;
}
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-favorite-name small { font-size: 13px; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-favorites-banner { width: 100%; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings > :not(.screen-intro) {
  width: 100%;
  margin-inline: 0;
}
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings form { gap: 20px; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings-group {
  display: grid;
  gap: 20px;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
}
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings-group > label:not(.profile-switch-row) {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  gap: 8px;
  padding: 0;
  font: 500 15px/1.35 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings-group > label + label { border-top: 0; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings-group label > span { font: 500 15px/1.35 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings-group > label:not(.profile-switch-row) small { font: 400 13px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings-group input:not([type="checkbox"]) {
  width: 100%;
  min-height: 52px;
  padding: 12px 15px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(232,225,211,.42);
  font: 400 16px/1.35 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-align: left;
}
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings-group input:disabled { color: var(--muted); opacity: 1; -webkit-text-fill-color: var(--muted); cursor: default; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings-group input:not([type="checkbox"]):focus-visible {
  border-color: var(--olive-deep);
  box-shadow: inset 0 0 0 1px var(--olive-deep);
  outline: none;
}
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-switch-row {
  min-height: 68px;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  font: 400 15px/1.35 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-switch-row strong { font-size: 16px; font-weight: 600; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-switch-row small { font-size: 13px; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-switch-row.is-disabled { cursor: default; }
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings-links {
  border: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
}
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings-links a {
  min-height: 56px;
  padding-inline: 12px;
  border-radius: 10px;
  font: 400 16px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  transition: color .16s ease, background-color .16s ease;
}
@media (hover: hover) {
  html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings-links a:hover { color: var(--olive-deep); background: rgba(232, 218, 193, .24); }
}
html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings-links a:focus-visible { color: var(--olive-deep); background: rgba(232, 218, 193, .24); outline: 2px solid var(--olive-deep); outline-offset: -2px; }
@media (prefers-reduced-motion: reduce) {
  html:is(:not(.is-native-app), .is-mobile-web) body.account-subpage .account-header-back,
  html:is(:not(.is-native-app), .is-mobile-web) body.profile-page .profile-settings-links a { transition: none; }
}
@media (min-width: 681px) {
  html:not(.is-native-app) body.profile-page .profile-settings-group:first-child { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
html:not(.is-native-app) body.order-history-body .order-history-main {
  padding-bottom: calc(100px + env(safe-area-inset-bottom));
}
body.order-history-body .order-history-page {
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;
}
.order-history-page [hidden] { display: none !important; }
html:is(:not(.is-native-app), .is-mobile-web) .order-history-head .order-history-back { display: none; }
.order-history-back {
  width: fit-content;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 24px;
  color: var(--olive-deep);
  font: 500 15px/1.3 -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif;
  text-decoration: none;
}
.order-history-back svg,
.order-history-row > svg { width: 19px; height: 19px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.order-history-back:hover { color: var(--ink); }
body.order-history-body .order-history-filters {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  margin: 0 0 20px;
}
html:is(:not(.is-native-app), .is-mobile-web) body.order-history-body .order-history-filters .order-history-all-toggle {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: var(--ink);
  background: transparent;
  font: 500 16px/1.3 -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif;
  text-transform: none;
}
.order-history-all-toggle input[type="checkbox"] { min-height: 0; padding: 0; border: 0; }
.order-history-all-toggle i { margin-left: 0; }
.order-history-range { display: grid; grid-template-columns: minmax(0, 1fr) 20px minmax(0, 1fr); align-items: center; gap: 12px; width: min(440px, 100%); min-width: 0; margin: 0; padding: 0; border: 0; }
.order-history-range-arrow { color: var(--olive-deep); font: 400 22px/1 -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif; text-align: center; }
.order-history-range[disabled] { opacity: .42; }
.order-history-filter-note { margin: 0 0 20px; color: var(--muted); font: 400 13px/1.4 system-ui, sans-serif; }
.order-history-filter-note:empty { display: none; }
body.order-history-body .order-history-filters input[type="date"] {
  box-sizing: border-box;
  width: 100%;
  height: 48px;
  padding: 0 13px;
  border: 1px solid var(--line);
  border-radius: 14px;
  color: var(--ink);
  background: rgba(232,225,211,.42);
  font: 500 16px/1.3 -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif;
  box-shadow: none;
}
.order-history-count { min-height: 21px; margin: 0 0 16px; color: var(--muted); font: 400 14px/1.5 -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif; }
.order-history-group { margin: 0 0 30px; }
.order-history-group h2 { margin: 0 0 12px; color: var(--olive-deep); font: 560 23px/1.2 var(--font-brand); text-transform: uppercase; }
.order-history-rows { overflow: hidden; border: 1px solid var(--line); border-radius: 22px; background: #fff; }
.order-history-row {
  min-height: 104px;
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr) auto 20px;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  color: var(--ink);
  text-decoration: none;
  transition: background-color .16s ease-out;
}
.order-history-row + .order-history-row { border-top: 1px solid var(--line); }
.order-history-row:hover { background: rgba(232, 218, 193, .15); }
.order-history-row:active { background: rgba(232, 218, 193, .28); }
.order-history-row-main { min-width: 0; display: grid; gap: 4px; }
.order-history-row-main strong { font: 560 24px/1.05 var(--font-brand); overflow-wrap: anywhere; }
.order-history-date-text { color: var(--muted); font-size: 14px; line-height: 1.35; }
.order-history-status { width: fit-content; color: var(--muted); font-size: 14px; line-height: 1.35; }
.order-history-status--active { color: var(--olive-deep); }
.order-history-status--problem { color: var(--web-destructive, #88483e); }
.order-history-total { font-size: 18px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.order-history-row > svg { color: var(--olive-deep); }
.order-history-media,
.order-history-media img { width: 68px; height: 68px; border-radius: 15px; }
.order-history-media { display: block; overflow: hidden; background: #eee8dc; }
.order-history-media img { display: block; object-fit: cover; }
.order-history-media--empty { display: grid; place-items: center; color: var(--olive-deep); font: 560 30px/1 var(--font-brand); }
.order-history-message { padding: 24px; border: 1px solid var(--line); border-radius: 22px; background: #fff; }
.order-history-message strong { display: block; font-size: 17px; line-height: 1.35; }
.order-history-message p { margin: 6px 0 0; color: var(--muted); font-size: 15px; line-height: 1.45; }
.order-history-message :is(a, button) { min-height: 44px; display: inline-flex; align-items: center; margin: 16px 0 0; padding: 0; border: 0; color: var(--olive-deep); background: transparent; font: 600 15px/1.2 -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif; text-decoration: underline; cursor: pointer; }
.order-history-loading { padding: 18px 0; color: var(--muted); font: 400 15px/1.4 -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif; }
.order-history-more { min-height: 48px; display: block; margin: 2px auto 0; padding: 0 24px; border: 1px solid var(--line); border-radius: 14px; color: var(--olive-deep); background: #fff; font: 560 17px/1 var(--font-brand); text-transform: uppercase; cursor: pointer; transition: background-color .16s ease-out; }
.order-history-more:hover { background: rgba(232, 218, 193, .24); }
.order-history-page :is(a, button, input, select):focus-visible { outline: 2px solid var(--olive-deep); outline-offset: 3px; }
@media (max-width: 680px) {
  html:not(.is-native-app) body.order-history-body .order-history-main { padding-bottom: calc(128px + env(safe-area-inset-bottom)); }
  body.order-history-body .order-history-filters { gap: 10px; }
  .order-history-range { width: 100%; }
  .order-history-group { margin-bottom: 24px; }
  .order-history-row { min-height: 96px; grid-template-columns: 52px minmax(0, 1fr) auto 16px; gap: 9px; padding: 14px 12px; }
  .order-history-media, .order-history-media img { width: 52px; height: 52px; border-radius: 12px; }
  .order-history-row-main strong { font-size: 21px; }
  .order-history-date-text, .order-history-status { font-size: 14px; }
  .order-history-total { font-size: 16px; }
  .order-history-row > svg { width: 16px; height: 16px; }
}
@media (prefers-reduced-motion: reduce) { .order-history-row, .order-history-more { transition: none; } }
