/*
 * Denuino Storefront UI Contract v4
 *
 * Loaded after the active theme. Themes provide design tokens; this file maps
 * those tokens to every public storefront component. It deliberately wins over
 * legacy hard-coded UI rules while leaving admin pages untouched.
 */

:where(body[data-theme-layout]:not(.admin-root)) {
  --ui-font-body: Inter, "Segoe UI", Arial, sans-serif;
  --ui-font-heading: var(--ui-font-body);
  --ui-font-mono: ui-monospace, SFMono-Regular, Consolas, monospace;
  --ui-bg: #f5f7fa;
  --ui-page-background-image: none;
  --ui-page-background-size: auto;
  --ui-text: #172235;
  --ui-heading: #111d31;
  --ui-muted: #66758b;
  --ui-subtle: #8b98aa;
  --ui-link: #1769e0;
  --ui-accent: #2166f3;
  --ui-accent-hover: #174fc5;
  --ui-accent-contrast: #fff;
  --ui-surface-1: #fff;
  --ui-surface-2: #f7f9fc;
  --ui-surface-3: #eef3f8;
  --ui-surface-elevated: #fff;
  --ui-border: #dfe6ef;
  --ui-border-strong: #c8d3df;
  --ui-overlay: rgba(10, 18, 32, .54);
  --ui-shadow-sm: 0 5px 16px rgba(28, 45, 72, .06);
  --ui-shadow-md: 0 14px 38px rgba(28, 45, 72, .10);
  --ui-shadow-lg: 0 24px 70px rgba(20, 34, 58, .16);
  --ui-radius-xs: 7px;
  --ui-radius-sm: 10px;
  --ui-radius-md: 14px;
  --ui-radius-lg: 20px;
  --ui-radius-xl: 28px;
  --ui-control-bg: #fff;
  --ui-control-text: var(--ui-text);
  --ui-control-placeholder: #91a0b3;
  --ui-control-border: var(--ui-border);
  --ui-control-focus: var(--ui-accent);
  --ui-control-ring: color-mix(in srgb, var(--ui-accent) 20%, transparent);
  --ui-button-bg: var(--ui-heading);
  --ui-button-text: #fff;
  --ui-button-hover: color-mix(in srgb, var(--ui-button-bg) 88%, #000);
  --ui-button-secondary-bg: var(--ui-surface-2);
  --ui-button-secondary-text: var(--ui-text);
  --ui-button-secondary-border: var(--ui-border);
  --ui-success-bg: #edfbf3;
  --ui-success-text: #087a3f;
  --ui-success-border: #bcebd0;
  --ui-warning-bg: #fff8e9;
  --ui-warning-text: #8b5a04;
  --ui-warning-border: #f0d798;
  --ui-danger-bg: #fff0f1;
  --ui-danger-text: #aa2837;
  --ui-danger-border: #efc2c8;
  --ui-sidebar-bg: var(--ui-surface-1);
  --ui-sidebar-text: var(--ui-text);
  --ui-sidebar-muted: var(--ui-muted);
  --ui-sidebar-border: var(--ui-border);
  --ui-sidebar-active-bg: color-mix(in srgb, var(--ui-accent) 11%, var(--ui-surface-1));
  --ui-sidebar-active-text: var(--ui-accent);
  --ui-toolbar-bg: var(--ui-surface-1);
  --ui-toolbar-border: var(--ui-border);
  --ui-filter-bg: var(--ui-surface-1);
  --ui-filter-text: var(--ui-text);
  --ui-filter-muted: var(--ui-muted);
  --ui-filter-border: var(--ui-border);
  --ui-filter-divider: var(--ui-border);
  --ui-card-bg: var(--ui-surface-1);
  --ui-card-text: var(--ui-text);
  --ui-card-muted: var(--ui-muted);
  --ui-card-border: var(--ui-border);
  --ui-card-media-bg: var(--ui-surface-2);
  --ui-card-action-bg: var(--ui-button-bg);
  --ui-card-action-text: var(--ui-button-text);
  --ui-card-action-border: transparent;
  --ui-category-bg: var(--ui-surface-1);
  --ui-category-hover-bg: var(--ui-surface-2);
  --ui-category-text: var(--ui-text);
  --ui-category-muted: var(--ui-muted);
  --ui-announcement-bg: var(--ui-warning-bg);
  --ui-announcement-text: var(--ui-warning-text);
  --ui-announcement-border: var(--ui-warning-border);
  --ui-footer-bg: #111a2a;
  --ui-footer-text: #aebbd0;
  --ui-footer-heading: #ffffff;
  --ui-footer-link: #c7d2e3;
  --ui-footer-border: #2a3446;
  --ui-flyout-bg: var(--ui-surface-elevated);
  --ui-flyout-text: var(--ui-text);
  --ui-flyout-border: var(--ui-border-strong);
  --ui-flyout-hover-bg: var(--ui-category-hover-bg);
  --ui-flyout-hover-text: var(--ui-heading);
  --ui-checkout-toggle-bg: var(--ui-surface-2);
  --ui-checkout-toggle-border: var(--ui-border);
  --ui-checkout-summary-border: var(--ui-border-strong);
  --ui-focus-width: 3px;
}

/* Body application is intentionally outside :where(). The fallback variables
   stay at zero specificity, while these properties must beat legacy !important
   background shorthands without overriding the active theme's token values. */
body[data-theme-layout]:not(.admin-root) {
  color: var(--ui-text);
  background-color: var(--ui-bg) !important;
  background-image: var(--ui-page-background-image) !important;
  background-size: var(--ui-page-background-size) !important;
  font-family: var(--ui-font-body);
}

/* Global typography and focus */
body[data-theme-layout]:not(.admin-root) :where(.theme-main-region, .storefront-announcement) {
  color: var(--ui-text);
  font-family: var(--ui-font-body);
}
body[data-theme-layout]:not(.admin-root) .theme-main-region :where(h1, h2, h3, h4, h5, h6):not(.gsb-cleaning-page *) {
  color: var(--ui-heading) !important;
  font-family: var(--ui-font-heading);
  text-wrap: balance;
}
body[data-theme-layout]:not(.admin-root) .theme-main-region :where(p, li, dd, dt, label, small) {
  color: inherit;
}
body[data-theme-layout]:not(.admin-root) .theme-footer-region {
  border-color: var(--ui-footer-border);
  background-color: var(--ui-footer-bg);
  color: var(--ui-footer-text);
  font-family: var(--ui-font-body);
}
body[data-theme-layout]:not(.admin-root) .theme-footer-region :where(h1, h2, h3, h4, h5, h6, strong) {
  color: var(--ui-footer-heading) !important;
}
body[data-theme-layout]:not(.admin-root) .theme-footer-region :where(a) {
  color: var(--ui-footer-link);
}
body[data-theme-layout]:not(.admin-root) .theme-main-region a:not(.btn):not([class*="button"]):not([class*="card"]) {
  color: var(--ui-link);
}
body[data-theme-layout]:not(.admin-root) :where(a, button, input, select, textarea, summary):focus-visible {
  outline: var(--ui-focus-width) solid var(--ui-control-ring) !important;
  outline-offset: 2px;
}
body[data-theme-layout]:not(.admin-root) .eyebrow {
  color: var(--ui-accent) !important;
  font-family: var(--ui-font-mono);
  font-size: .68rem !important;
  font-weight: 800 !important;
  letter-spacing: .11em !important;
  text-transform: uppercase;
}

/* Public surfaces */
body[data-theme-layout]:not(.admin-root) :where(
  .store-section,
  .store-block,
  .panel,
  .selection-panel,
  .auth-card,
  .checkout-panel,
  .checkout-side-panel,
  .content-page,
  .success-panel,
  .claim-product-summary,
  .claim-form,
  .review-card,
  .review-compose,
  .review-eligibility-card,
  .product-sale-card,
  .product-stock-box,
  .buy-box,
  .variant-picker,
  .product-description-panel,
  .poll-card
) {
  border-color: var(--ui-border) !important;
  background: var(--ui-surface-1) !important;
  color: var(--ui-text) !important;
  box-shadow: var(--ui-shadow-sm) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.store-section, .store-block, .panel, .selection-panel, .auth-card, .checkout-panel, .checkout-side-panel, .content-page, .success-panel, .claim-product-summary, .claim-form) {
  border-radius: var(--ui-radius-lg) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.text-muted, .product-description, .product-short-description, .lead, .catalog-result-note, .content-page-excerpt, .checkout-terms-note, .review-row p) {
  color: var(--ui-muted) !important;
}

/* Inputs and buttons in every public route */
body[data-theme-layout]:not(.admin-root) .theme-main-region :where(
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
  select,
  textarea,
  .form-control,
  .form-select,
  .search-pick-input
) {
  min-block-size: 44px;
  border: 1px solid var(--ui-control-border) !important;
  border-radius: var(--ui-radius-sm) !important;
  background: var(--ui-control-bg) !important;
  color: var(--ui-control-text) !important;
  box-shadow: none !important;
}
body[data-theme-layout]:not(.admin-root) .theme-main-region :where(input, textarea)::placeholder {
  color: var(--ui-control-placeholder) !important;
  opacity: 1;
}
body[data-theme-layout]:not(.admin-root) .theme-main-region :where(input, select, textarea, .form-control, .form-select):focus {
  border-color: var(--ui-control-focus) !important;
  box-shadow: 0 0 0 var(--ui-focus-width) var(--ui-control-ring) !important;
}
body[data-theme-layout]:not(.admin-root) .theme-main-region :where(input[type="checkbox"], input[type="radio"]) {
  accent-color: var(--ui-accent);
}
body[data-theme-layout]:not(.admin-root) .theme-main-region :where(.btn, button:not(.carousel-control):not(.catalog-view-switch button):not(.product-gallery-nav):not(.product-gallery-close)) {
  border-radius: var(--ui-radius-sm);
}
body[data-theme-layout]:not(.admin-root) .theme-main-region :where(.btn-dark, .btn-primary, .btn-info, .checkout-primary-next, .claim-submit, .catalog-apply-button, .product-detail-cart-button) {
  border-color: var(--ui-button-bg) !important;
  background: var(--ui-button-bg) !important;
  color: var(--ui-button-text) !important;
  box-shadow: none !important;
}
body[data-theme-layout]:not(.admin-root) .theme-main-region :where(.btn-dark, .btn-primary, .btn-info, .checkout-primary-next, .claim-submit, .catalog-apply-button, .product-detail-cart-button):hover {
  border-color: var(--ui-button-hover) !important;
  background: var(--ui-button-hover) !important;
}
body[data-theme-layout]:not(.admin-root) .theme-main-region :where(.btn-light, .btn-outline-light, .btn-outline-dark, .btn-outline-primary, .btn-outline-secondary, .btn-outline-danger) {
  border-color: var(--ui-button-secondary-border) !important;
  background: var(--ui-button-secondary-bg) !important;
  color: var(--ui-button-secondary-text) !important;
}

/* Announcement */
body[data-theme-layout]:not(.admin-root) .storefront-announcement {
  border-block-color: var(--ui-announcement-border) !important;
  background: var(--ui-announcement-bg) !important;
  color: var(--ui-announcement-text) !important;
}
body[data-theme-layout]:not(.admin-root) .storefront-announcement > div { color: inherit !important; }

/* Catalog geometry and complete sidebar skin */
body[data-theme-layout]:not(.admin-root).store-page-shop-products .theme-catalog-shell {
  display: grid !important;
  align-items: start !important;
}
body[data-theme-layout]:not(.admin-root).store-page-shop-products .theme-catalog-shell.catalog-main-only {
  grid-template-columns: minmax(0, 1fr) !important;
}
body[data-theme-layout]:not(.admin-root).store-page-shop-products .theme-catalog-shell.catalog-main-only .theme-catalog-main {
  grid-column: 1 !important;
}
body[data-theme-layout]:not(.admin-root) .theme-catalog-sidebar {
  position: sticky !important;
  inset-block-start: calc(var(--theme-header-offset, 0px) + 18px) !important;
  display: grid !important;
  gap: 14px !important;
  max-block-size: calc(100dvh - var(--theme-header-offset, 0px) - 36px);
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: var(--ui-border-strong) transparent;
}
body[data-theme-layout]:not(.admin-root) .catalog-sidebar-head {
  display: none;
}
body[data-theme-layout]:not(.admin-root) .theme-catalog-sidebar :where(.store-block, .catalog-left-filters, .catalog-rail-card) {
  inline-size: 100%;
  min-inline-size: 0;
}
body[data-theme-layout]:not(.admin-root) .theme-catalog-sidebar .store-block,
body[data-theme-layout]:not(.admin-root) .catalog-left-filters,
body[data-theme-layout]:not(.admin-root) .catalog-rail-card {
  border: 1px solid var(--ui-sidebar-border) !important;
  background: var(--ui-sidebar-bg) !important;
  color: var(--ui-sidebar-text) !important;
  box-shadow: var(--ui-shadow-sm) !important;
}
body[data-theme-layout]:not(.admin-root) .theme-catalog-sidebar .store-block,
body[data-theme-layout]:not(.admin-root) .catalog-left-filters {
  border-radius: var(--ui-radius-md) !important;
  overflow: clip;
}
body[data-theme-layout]:not(.admin-root) .catalog-left-filters {
  display: grid !important;
  gap: 0 !important;
  padding: 0 !important;
}
body[data-theme-layout]:not(.admin-root) .catalog-rail-card {
  margin: 0 !important;
  padding: 16px !important;
  border: 0 !important;
  border-block-start: 1px solid var(--ui-filter-divider) !important;
  border-radius: 0 !important;
  background: var(--ui-filter-bg) !important;
  color: var(--ui-filter-text) !important;
  box-shadow: none !important;
}
body[data-theme-layout]:not(.admin-root) .catalog-left-filters > .catalog-rail-card:first-of-type {
  border-block-start: 0 !important;
}
body[data-theme-layout]:not(.admin-root) :where(.store-block-category-menu, .catalog-rail-card) > h3,
body[data-theme-layout]:not(.admin-root) .catalog-collapse-btn {
  color: var(--ui-sidebar-text) !important;
  font-family: var(--ui-font-heading);
  font-size: .84rem !important;
  font-weight: 800 !important;
}
body[data-theme-layout]:not(.admin-root) .store-block-category-menu > h3 {
  margin: 0 !important;
  padding: 16px 17px 11px !important;
  border-block-end: 1px solid var(--ui-sidebar-border) !important;
  background: transparent !important;
}
body[data-theme-layout]:not(.admin-root) .store-block-category-menu :where(.side-category-menu, .side-list) {
  padding: 7px !important;
}
body[data-theme-layout]:not(.admin-root) .store-block-category-menu .side-category-row {
  border: 0 !important;
  border-radius: var(--ui-radius-sm) !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}
body[data-theme-layout]:not(.admin-root) .store-block-category-menu .side-category-row > a,
body[data-theme-layout]:not(.admin-root) .side-page-link {
  min-block-size: 42px;
  padding: 9px 10px !important;
  border-radius: var(--ui-radius-sm) !important;
  background: transparent !important;
  color: var(--ui-sidebar-muted) !important;
  text-decoration: none !important;
}
body[data-theme-layout]:not(.admin-root) .store-block-category-menu .side-category-row > a:hover,
body[data-theme-layout]:not(.admin-root) .store-block-category-menu .side-category-row.is-current > a,
body[data-theme-layout]:not(.admin-root) .side-page-link:hover {
  background: var(--ui-sidebar-active-bg) !important;
  color: var(--ui-sidebar-active-text) !important;
}
body[data-theme-layout]:not(.admin-root) .side-category-thumb {
  inline-size: 27px !important;
  block-size: 27px !important;
  flex: 0 0 27px;
  border-radius: var(--ui-radius-xs);
  background: var(--ui-surface-2) !important;
  object-fit: contain;
}
body[data-theme-layout]:not(.admin-root) .side-category-children {
  margin-inline-start: 16px !important;
  padding-inline-start: 8px !important;
  border-inline-start: 1px solid var(--ui-sidebar-border) !important;
}
body[data-theme-layout]:not(.admin-root) .catalog-collapse-btn {
  inline-size: 100%;
  min-block-size: 42px;
  padding: 0 !important;
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  border: 0 !important;
  background: transparent !important;
  text-align: start;
}
body[data-theme-layout]:not(.admin-root) .catalog-collapse-btn::after {
  content: "+";
  color: var(--ui-sidebar-muted);
  font: 700 1rem/1 var(--ui-font-mono);
}
body[data-theme-layout]:not(.admin-root) .catalog-collapse-btn.is-open::after { content: "−"; }
body[data-theme-layout]:not(.admin-root) .catalog-collapsible {
  padding-block-start: 10px;
}
body[data-theme-layout]:not(.admin-root) :where(.catalog-check, .catalog-stock-check) {
  min-block-size: 38px;
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  color: var(--ui-filter-muted) !important;
  font-size: .77rem;
}
body[data-theme-layout]:not(.admin-root) :where(.catalog-check, .catalog-stock-check) strong {
  padding: 3px 7px;
  border-radius: 999px;
  background: var(--ui-success-bg) !important;
  color: var(--ui-success-text) !important;
  font-size: .68rem;
}
body[data-theme-layout]:not(.admin-root) .catalog-price-caption,
body[data-theme-layout]:not(.admin-root) .catalog-dimension-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px !important;
}
body[data-theme-layout]:not(.admin-root) :where(.catalog-price-caption, .catalog-dimension-grid) label {
  min-inline-size: 0;
  color: var(--ui-filter-muted) !important;
  font-size: .68rem;
}
body[data-theme-layout]:not(.admin-root) :where(.catalog-price-caption, .catalog-dimension-grid) input {
  inline-size: 100%;
  min-block-size: 36px !important;
  margin-block-start: 4px;
  padding-inline: 9px !important;
  border: 1px solid var(--ui-control-border) !important;
  border-radius: var(--ui-radius-xs) !important;
  background: var(--ui-control-bg) !important;
  color: var(--ui-control-text) !important;
}
body[data-theme-layout]:not(.admin-root) .dual-range-track {
  background: var(--ui-surface-3) !important;
}
body[data-theme-layout]:not(.admin-root) .dual-range-track > span {
  background: var(--ui-accent) !important;
}
body[data-theme-layout]:not(.admin-root) .dual-range input[type="range"]::-webkit-slider-thumb {
  border-color: var(--ui-accent) !important;
  background: var(--ui-surface-elevated) !important;
}
body[data-theme-layout]:not(.admin-root) .catalog-rail-actions {
  padding: 14px 16px 16px !important;
  display: grid !important;
  gap: 9px !important;
  border-block-start: 1px solid var(--ui-filter-divider) !important;
  background: var(--ui-filter-bg) !important;
}
body[data-theme-layout]:not(.admin-root) .catalog-rail-actions > a {
  color: var(--ui-sidebar-muted) !important;
  font-size: .75rem;
  text-align: center;
}
body[data-theme-layout]:not(.admin-root) .catalog-apply-button {
  min-block-size: 43px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
body[data-theme-layout]:not(.admin-root) .catalog-apply-button svg {
  inline-size: 18px;
  block-size: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}

/* Breadcrumb, catalog heading and controls */
body[data-theme-layout]:not(.admin-root) .catalog-page-breadcrumb,
body[data-theme-layout]:not(.admin-root) .product-breadcrumb {
  color: var(--ui-subtle) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.catalog-page-breadcrumb, .product-breadcrumb) a {
  color: var(--ui-muted) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.catalog-page-breadcrumb, .product-breadcrumb) a:hover {
  color: var(--ui-link) !important;
}
body[data-theme-layout]:not(.admin-root) .page-designer-target[data-page-target="catalog-toolbar"] {
  min-block-size: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}
body[data-theme-layout]:not(.admin-root) .catalog-toolbar {
  min-block-size: 0 !important;
  padding: 16px 18px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto auto auto !important;
  align-items: center !important;
  gap: 11px !important;
  border: 1px solid var(--ui-toolbar-border) !important;
  border-radius: var(--ui-radius-md) !important;
  background: var(--ui-toolbar-bg) !important;
  color: var(--ui-text) !important;
  box-shadow: var(--ui-shadow-sm) !important;
}
body[data-theme-layout]:not(.admin-root) .catalog-toolbar h1,
body[data-theme-layout]:not(.admin-root) .catalog-toolbar h2 {
  margin: 2px 0 0 !important;
  color: var(--ui-heading) !important;
}
body[data-theme-layout]:not(.admin-root) .catalog-product-count {
  display: inline-flex;
  margin-block-start: 7px;
  padding: 4px 8px;
  border-radius: 999px;
  background: var(--ui-surface-3) !important;
  color: var(--ui-muted) !important;
  font-size: .68rem;
}
body[data-theme-layout]:not(.admin-root) .catalog-sort-select {
  display: flex !important;
  align-items: center;
  gap: 8px;
  color: var(--ui-muted) !important;
  font-size: .72rem;
}
body[data-theme-layout]:not(.admin-root) .catalog-sort-select select {
  min-inline-size: 145px;
  min-block-size: 40px !important;
}
body[data-theme-layout]:not(.admin-root) .catalog-view-switch {
  display: flex;
  gap: 6px;
}
body[data-theme-layout]:not(.admin-root) .catalog-view-switch button,
body[data-theme-layout]:not(.admin-root) .catalog-filter-trigger,
body[data-theme-layout]:not(.admin-root) .catalog-sidebar-close {
  inline-size: 40px;
  block-size: 40px;
  display: inline-grid !important;
  place-items: center;
  padding: 0 !important;
  border: 1px solid var(--ui-control-border) !important;
  border-radius: var(--ui-radius-sm) !important;
  background: var(--ui-control-bg) !important;
  color: var(--ui-muted) !important;
  box-shadow: none !important;
}
body[data-theme-layout]:not(.admin-root) .catalog-view-switch button.is-active,
body[data-theme-layout]:not(.admin-root) .catalog-filter-trigger[aria-expanded="true"] {
  border-color: var(--ui-accent) !important;
  background: var(--ui-sidebar-active-bg) !important;
  color: var(--ui-accent) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.catalog-view-switch, .catalog-filter-trigger, .catalog-sidebar-close) svg {
  inline-size: 18px;
  block-size: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
body[data-theme-layout]:not(.admin-root) .catalog-filter-trigger {
  display: none !important;
}

/* Category tiles */
body[data-theme-layout]:not(.admin-root) .category-block-card {
  border: 1px solid var(--ui-border) !important;
  border-radius: var(--ui-radius-md) !important;
  background: var(--ui-category-bg) !important;
  color: var(--ui-category-text) !important;
  box-shadow: var(--ui-shadow-sm) !important;
}
body[data-theme-layout]:not(.admin-root) .category-block-card:hover {
  border-color: var(--ui-border-strong) !important;
  background: var(--ui-category-hover-bg) !important;
  transform: translateY(-2px);
}
body[data-theme-layout]:not(.admin-root) .category-block-card :where(span, p) { color: var(--ui-category-muted) !important; }
body[data-theme-layout]:not(.admin-root) .category-block-media {
  background: var(--ui-card-media-bg) !important;
}
body[data-theme-layout]:not(.admin-root) .catalog-category-vector {
  background: transparent !important;
  mix-blend-mode: normal !important;
}

/* Product cards: final visual mapping through theme tokens */
body[data-theme-layout]:not(.admin-root) .theme-catalog-products {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}
body[data-theme-layout]:not(.admin-root) .theme-product-card {
  border: 1px solid var(--ui-card-border) !important;
  border-radius: var(--ui-radius-md) !important;
  background: var(--ui-card-bg) !important;
  color: var(--ui-card-text) !important;
  box-shadow: var(--ui-shadow-sm) !important;
}
body[data-theme-layout]:not(.admin-root) .theme-product-card:hover {
  border-color: var(--ui-border-strong) !important;
  box-shadow: var(--ui-shadow-md) !important;
}
body[data-theme-layout]:not(.admin-root) .theme-product-card__media {
  border-block-end: 1px solid var(--ui-card-border) !important;
  background: var(--ui-card-media-bg) !important;
}
body[data-theme-layout]:not(.admin-root) .theme-product-card__category { color: var(--ui-accent) !important; }
body[data-theme-layout]:not(.admin-root) .theme-product-card__title,
body[data-theme-layout]:not(.admin-root) .theme-product-card__title a { color: var(--ui-card-text) !important; }
body[data-theme-layout]:not(.admin-root) .theme-product-card__description { color: var(--ui-card-muted) !important; }
body[data-theme-layout]:not(.admin-root) .theme-product-card__meta > strong { color: var(--ui-heading) !important; }
body[data-theme-layout]:not(.admin-root) .product-availability-badge {
  border-color: var(--ui-success-border) !important;
  background: var(--ui-success-bg) !important;
  color: var(--ui-success-text) !important;
}
body[data-theme-layout]:not(.admin-root) .theme-product-card__action :where(.btn, button),
body[data-theme-layout]:not(.admin-root) .theme-product-card__action:is(.btn, button),
body[data-theme-layout]:not(.admin-root) a.theme-product-card__action {
  border: 1px solid var(--ui-card-action-border) !important;
  border-radius: var(--ui-radius-sm) !important;
  background: var(--ui-card-action-bg) !important;
  color: var(--ui-card-action-text) !important;
}
body[data-theme-layout]:not(.admin-root) .theme-product-grid.is-list-view .theme-product-card__description {
  -webkit-line-clamp: 4;
}

/* Product detail, cart, checkout and account routes */
body[data-theme-layout]:not(.admin-root) .theme-product-detail__gallery .detail-image-shell,
body[data-theme-layout]:not(.admin-root) .theme-product-detail__summary {
  border: 1px solid var(--ui-border) !important;
  border-radius: var(--ui-radius-lg) !important;
  background: var(--ui-surface-1) !important;
  color: var(--ui-text) !important;
  box-shadow: var(--ui-shadow-md) !important;
}
body[data-theme-layout]:not(.admin-root) .theme-product-detail__summary {
  padding: clamp(18px, 2.4vw, 32px) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.product-price-current, .product-price-area h2, .checkout-summary-totals strong) {
  color: var(--ui-heading) !important;
}
body[data-theme-layout]:not(.admin-root) .product-stock-banner,
body[data-theme-layout]:not(.admin-root) .product-availability-label {
  border-color: var(--ui-success-border) !important;
  background: var(--ui-success-bg) !important;
  color: var(--ui-success-text) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.checkout-step.is-active, .checkout-step.active) {
  border-color: var(--ui-accent) !important;
  background: var(--ui-sidebar-active-bg) !important;
  color: var(--ui-accent) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.method-choice-card, .review-rating-field, .claim-option-grid > label) {
  border-color: var(--ui-border) !important;
  background: var(--ui-surface-2) !important;
  color: var(--ui-text) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.method-choice-card:has(input:checked), .claim-option-grid > label:has(input:checked)) {
  border-color: var(--ui-accent) !important;
  background: var(--ui-sidebar-active-bg) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.alert-info, .alert-success) {
  border-color: var(--ui-success-border) !important;
  background: var(--ui-success-bg) !important;
  color: var(--ui-success-text) !important;
}
body[data-theme-layout]:not(.admin-root) .alert-warning {
  border-color: var(--ui-warning-border) !important;
  background: var(--ui-warning-bg) !important;
  color: var(--ui-warning-text) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.alert-danger, .validation-summary-errors) {
  border-color: var(--ui-danger-border) !important;
  background: var(--ui-danger-bg) !important;
  color: var(--ui-danger-text) !important;
}
body[data-theme-layout]:not(.admin-root) .auth-page {
  min-block-size: min(720px, calc(100dvh - var(--theme-header-offset, 0px)));
  padding: clamp(20px, 5vw, 70px) var(--theme-page-gutter);
  background: transparent !important;
}
body[data-theme-layout]:not(.admin-root) .auth-card {
  inline-size: min(100%, 520px);
  margin-inline: auto;
  padding: clamp(22px, 4vw, 42px) !important;
}


/* Complete public-route component coverage */
body[data-theme-layout]:not(.admin-root) :where(hr, .dropdown-divider) {
  border-color: var(--ui-border) !important;
  opacity: 1;
}
body[data-theme-layout]:not(.admin-root) :where(.badge, .pill, .status-pill, .claim-status) {
  border: 1px solid var(--ui-border) !important;
  border-radius: 999px !important;
  background: var(--ui-surface-3) !important;
  color: var(--ui-text) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.table, table) {
  --bs-table-bg: transparent;
  --bs-table-color: var(--ui-text);
  --bs-table-border-color: var(--ui-border);
  color: var(--ui-text) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.table, table) :where(th, td) {
  border-color: var(--ui-border) !important;
  background: transparent !important;
  color: inherit !important;
}
body[data-theme-layout]:not(.admin-root) :where(.table, table) thead :where(th, td) {
  background: var(--ui-surface-2) !important;
  color: var(--ui-heading) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.pagination, .pager) :where(a, button, .page-link) {
  border-color: var(--ui-border) !important;
  background: var(--ui-surface-1) !important;
  color: var(--ui-text) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.pagination, .pager) :where(.active, [aria-current="page"]) :where(a, button, .page-link),
body[data-theme-layout]:not(.admin-root) :where(.pagination, .pager) :where(a, button, .page-link).active {
  border-color: var(--ui-accent) !important;
  background: var(--ui-accent) !important;
  color: var(--ui-accent-contrast) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.dropdown-menu, .search-pick-menu, .product-suggest-menu) {
  border: 1px solid var(--ui-border) !important;
  border-radius: var(--ui-radius-md) !important;
  background: var(--ui-surface-elevated) !important;
  color: var(--ui-text) !important;
  box-shadow: var(--ui-shadow-lg) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.dropdown-menu, .search-pick-menu, .product-suggest-menu) :where(a, button, .dropdown-item) {
  color: var(--ui-text) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.dropdown-menu, .search-pick-menu, .product-suggest-menu) :where(a, button, .dropdown-item):hover {
  background: var(--ui-sidebar-active-bg) !important;
  color: var(--ui-sidebar-active-text) !important;
}

/* Cart and checkout */
body[data-theme-layout]:not(.admin-root) :where(.checkout-shell, .checkout-main, .checkout-side, .checkout-grid, .claim-layout) {
  min-inline-size: 0;
}
body[data-theme-layout]:not(.admin-root) :where(
  .cart-line,
  .checkout-product-card,
  .checkout-side-product,
  .checkout-address-block,
  .checkout-step-panel,
  .checkout-alert,
  .pickup-point-summary,
  .checkout-trust-list,
  .checkout-consents,
  .profile-order-products,
  .profile-claim-list
) {
  border-color: var(--ui-border) !important;
  background: var(--ui-surface-1) !important;
  color: var(--ui-text) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.cart-line, .checkout-product-card, .checkout-side-product) {
  border-radius: var(--ui-radius-md) !important;
  box-shadow: var(--ui-shadow-sm) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.cart-quantity-control, .checkout-qty-form, .cart-qty-step) {
  border-color: var(--ui-control-border) !important;
  border-radius: var(--ui-radius-sm) !important;
  background: var(--ui-control-bg) !important;
  color: var(--ui-control-text) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.cart-remove-button, .text-danger, .btn-outline-danger) {
  color: var(--ui-danger-text) !important;
}
body[data-theme-layout]:not(.admin-root) .checkout-stepper {
  border-color: var(--ui-border) !important;
  background: var(--ui-surface-2) !important;
}
body[data-theme-layout]:not(.admin-root) .checkout-step {
  color: var(--ui-muted) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.checkout-step.is-complete, .checkout-step.complete) {
  color: var(--ui-success-text) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.checkout-summary-totals, .checkout-cart-footer, .checkout-side-title) {
  border-color: var(--ui-border) !important;
  color: var(--ui-text) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.method-choice-card, .method-radio-group) label {
  color: var(--ui-text) !important;
}

/* Content pages, profile, claims, reviews and polls */
body[data-theme-layout]:not(.admin-root) :where(.content-page-inner, .profile-header, .claim-page-head, .checkout-hero) {
  color: var(--ui-text) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.linked-page-card, .designer-item, .empty-state, .neo-panel, .account-blocked-card) {
  border: 1px solid var(--ui-border) !important;
  border-radius: var(--ui-radius-lg) !important;
  background: var(--ui-surface-1) !important;
  color: var(--ui-text) !important;
  box-shadow: var(--ui-shadow-sm) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.review-card, .review-compose, .review-eligibility-card, .poll-card, .managed-sidebar-poll) {
  border: 1px solid var(--ui-border) !important;
  border-radius: var(--ui-radius-md) !important;
  background: var(--ui-surface-1) !important;
  color: var(--ui-text) !important;
  box-shadow: var(--ui-shadow-sm) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.review-row, .poll-result-row, .managed-poll-option) {
  border-color: var(--ui-border) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.review-stars, .review-star-input) {
  color: var(--ui-warning-text) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.poll-option-button, .managed-poll-option, .claim-option-grid > label) {
  border-color: var(--ui-border) !important;
  background: var(--ui-surface-2) !important;
  color: var(--ui-text) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.poll-option-button:hover, .managed-poll-option:hover, .claim-option-grid > label:hover) {
  border-color: var(--ui-accent) !important;
  background: var(--ui-sidebar-active-bg) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.poll-result-bar, .managed-poll-option span) {
  background: var(--ui-surface-3) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.poll-result-bar > span, .managed-poll-option i) {
  background: var(--ui-accent) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.claim-customer-strip, .account-blocked-reason, .review-shop-reply) {
  border-color: var(--ui-border) !important;
  background: var(--ui-surface-2) !important;
  color: var(--ui-text) !important;
}

/* Public modals, media pickers and preference drawer */
body[data-theme-layout]:not(.admin-root) :where(
  .cart-added-backdrop,
  .media-picker-backdrop,
  .shipping-widget-modal__backdrop,
  .ui-settings-backdrop,
  .product-gallery-modal::before
) {
  background: var(--ui-overlay) !important;
}
body[data-theme-layout]:not(.admin-root) :where(
  .cart-added-dialog,
  .media-picker-dialog,
  .media-preview-dialog,
  .shipping-widget-modal__dialog,
  .ui-settings-panel,
  .product-gallery-modal > div
) {
  border: 1px solid var(--ui-border) !important;
  border-radius: var(--ui-radius-lg) !important;
  background: var(--ui-surface-elevated) !important;
  color: var(--ui-text) !important;
  box-shadow: var(--ui-shadow-lg) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.media-picker-head, .ui-settings-head, .ui-settings-footer, .cart-added-actions) {
  border-color: var(--ui-border) !important;
  background: var(--ui-surface-2) !important;
  color: var(--ui-text) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.ui-settings-group, .ui-theme-card, .ui-settings-field) {
  border-color: var(--ui-border) !important;
  background: var(--ui-surface-1) !important;
  color: var(--ui-text) !important;
}
body[data-theme-layout]:not(.admin-root) .ui-theme-card.is-active {
  border-color: var(--ui-accent) !important;
  background: var(--ui-sidebar-active-bg) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.ui-settings-trigger, .storefront-messenger-launcher) {
  box-shadow: var(--ui-shadow-lg) !important;
}

/* Messenger follows the active storefront */
body[data-theme-layout]:not(.admin-root) .storefront-messenger-panel {
  border-color: var(--ui-border) !important;
  border-radius: var(--ui-radius-lg) !important;
  background: var(--ui-surface-elevated) !important;
  color: var(--ui-text) !important;
  box-shadow: var(--ui-shadow-lg) !important;
}
body[data-theme-layout]:not(.admin-root) .storefront-messenger-launcher {
  border-color: var(--ui-accent) !important;
  background: var(--ui-accent) !important;
  color: var(--ui-accent-contrast) !important;
}

/* Mobile filter drawer */
.catalog-drawer-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1090;
  display: none;
  border: 0;
  background: var(--ui-overlay);
  backdrop-filter: blur(3px);
}
body.catalog-drawer-open { overflow: hidden !important; }

@media (max-width: 980px) {
  body[data-theme-layout]:not(.admin-root).store-page-shop-products .theme-catalog-shell {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-areas: "main" !important;
  }
  body[data-theme-layout]:not(.admin-root).store-page-shop-products .theme-catalog-main {
    grid-column: 1 !important;
    grid-area: main;
  }
  body[data-theme-layout]:not(.admin-root).store-page-shop-products .theme-catalog-sidebar {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    z-index: 1100;
    inline-size: min(88vw, 360px) !important;
    max-inline-size: 360px !important;
    max-block-size: 100dvh;
    padding: 12px;
    display: block !important;
    overflow-y: auto;
    background: var(--ui-sidebar-bg) !important;
    color: var(--ui-sidebar-text) !important;
    box-shadow: var(--ui-shadow-lg) !important;
    transform: translateX(-105%);
    transition: transform .22s ease;
  }
  body[data-theme-layout]:not(.admin-root).store-page-shop-products .theme-catalog-sidebar.is-open {
    transform: translateX(0);
  }
  body[data-theme-layout]:not(.admin-root) .catalog-sidebar-head {
    position: sticky;
    inset-block-start: -12px;
    z-index: 2;
    margin: -12px -12px 12px;
    padding: 12px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-block-end: 1px solid var(--ui-sidebar-border);
    background: var(--ui-sidebar-bg);
    color: var(--ui-sidebar-text);
  }
  body[data-theme-layout]:not(.admin-root) .catalog-sidebar-head strong {
    color: inherit !important;
    font-family: var(--ui-font-heading);
  }
  body[data-theme-layout]:not(.admin-root) .catalog-filter-trigger {
    display: inline-grid !important;
  }
  body[data-theme-layout]:not(.admin-root).catalog-drawer-open .catalog-drawer-backdrop {
    display: block;
  }
  body[data-theme-layout]:not(.admin-root) .catalog-toolbar {
    grid-template-columns: minmax(0, 1fr) auto auto !important;
  }
  body[data-theme-layout]:not(.admin-root) .catalog-sort-select {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-content: space-between;
  }
  body[data-theme-layout]:not(.admin-root) .catalog-sort-select select {
    flex: 1 1 auto;
    min-inline-size: 0;
  }
}

@media (max-width: 620px) {
  body[data-theme-layout]:not(.admin-root) .catalog-toolbar {
    padding: 13px !important;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
  }
  body[data-theme-layout]:not(.admin-root) .catalog-toolbar > div:first-child {
    grid-column: 1 / -1;
  }
  body[data-theme-layout]:not(.admin-root) .catalog-sort-select {
    grid-column: 1 / -1;
    grid-row: auto;
  }
  body[data-theme-layout]:not(.admin-root) .catalog-price-caption,
  body[data-theme-layout]:not(.admin-root) .catalog-dimension-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  body[data-theme-layout]:not(.admin-root) .theme-product-detail__summary {
    padding: 16px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body[data-theme-layout]:not(.admin-root) *,
  body[data-theme-layout]:not(.admin-root) *::before,
  body[data-theme-layout]:not(.admin-root) *::after {
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
  }
}


/* ========================================================================== 
   UI Contract 4.1 — component geometry and Copper-quality correction layer
   This layer intentionally comes after all legacy and theme CSS.
   ========================================================================== */

/* Announcement is an in-flow, one-row responsive component. */
body[data-theme-layout]:not(.admin-root) .storefront-announcement {
  inline-size: 100% !important;
  max-inline-size: none !important;
  min-block-size: 44px;
  margin: 0 !important;
  padding-inline: var(--theme-page-gutter) !important;
  display: grid !important;
  align-items: center;
  overflow: clip;
  border-block-width: 1px !important;
  border-block-style: solid !important;
}
body[data-theme-layout]:not(.admin-root) .storefront-announcement > div {
  inline-size: min(100%, var(--theme-content-max)) !important;
  min-inline-size: 0;
  min-block-size: 42px;
  margin-inline: auto !important;
  padding-block: 8px;
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
}
body[data-theme-layout]:not(.admin-root) .storefront-announcement > div > span {
  min-inline-size: 0;
  overflow-wrap: anywhere;
}
body[data-theme-layout]:not(.admin-root) .storefront-announcement button {
  flex: 0 0 auto;
  color: inherit !important;
}
body[data-theme-layout="futuristic"]:not(.admin-root) .storefront-announcement {
  inline-size: calc(100% - var(--future-rail, 0px)) !important;
  margin-inline-start: var(--future-rail, 0px) !important;
}

/* Dark sidebar headings must never inherit the page heading token. */
body[data-theme-layout]:not(.admin-root) .theme-main-region .theme-catalog-sidebar .store-block-category-menu > h3,
body[data-theme-layout]:not(.admin-root) .theme-main-region .theme-catalog-sidebar .catalog-sidebar-head strong {
  color: var(--ui-sidebar-text) !important;
}
body[data-theme-layout]:not(.admin-root) .theme-main-region .catalog-left-filters :where(.catalog-rail-card > h3, .catalog-collapse-btn) {
  color: var(--ui-filter-text) !important;
}

/* Native disclosure contract for optional filters. */
body[data-theme-layout]:not(.admin-root) details.catalog-rail-collapsible {
  padding: 0 !important;
  overflow: clip;
}
body[data-theme-layout]:not(.admin-root) details.catalog-rail-collapsible > summary.catalog-collapse-btn {
  min-block-size: 48px;
  padding: 13px 16px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
body[data-theme-layout]:not(.admin-root) details.catalog-rail-collapsible > summary.catalog-collapse-btn::-webkit-details-marker {
  display: none;
}
body[data-theme-layout]:not(.admin-root) details.catalog-rail-collapsible > summary.catalog-collapse-btn::after {
  content: "+";
  color: var(--ui-accent);
  font: 800 1.05rem/1 var(--ui-font-mono);
}
body[data-theme-layout]:not(.admin-root) details.catalog-rail-collapsible[open] > summary.catalog-collapse-btn::after {
  content: "−";
}
body[data-theme-layout]:not(.admin-root) details.catalog-rail-collapsible > .catalog-collapsible {
  padding: 0 16px 16px !important;
  border-block-start: 1px solid var(--ui-filter-divider);
  background: transparent !important;
}
body[data-theme-layout]:not(.admin-root) details.catalog-rail-collapsible:not([open]) > .catalog-collapsible {
  display: none !important;
}
body[data-theme-layout]:not(.admin-root) details.catalog-rail-collapsible[open] > .catalog-collapsible {
  display: grid !important;
}

/* Category flyouts are theme surfaces, not legacy white popovers. */
body[data-theme-layout]:not(.admin-root) :where(.shop-category-flyout, .side-category-flyout) {
  border: 1px solid var(--ui-flyout-border) !important;
  border-radius: var(--ui-radius-md) !important;
  background: var(--ui-flyout-bg) !important;
  color: var(--ui-flyout-text) !important;
  box-shadow: var(--ui-shadow-lg) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.shop-category-flyout, .side-category-flyout) :where(a, strong, span) {
  color: var(--ui-flyout-text) !important;
}
body[data-theme-layout]:not(.admin-root) :where(.shop-category-flyout, .side-category-flyout) a:hover,
body[data-theme-layout]:not(.admin-root) :where(.shop-category-flyout, .side-category-flyout) a:focus-visible,
body[data-theme-layout]:not(.admin-root) :where(.shop-category-flyout, .side-category-flyout) .is-current > a {
  border-color: var(--ui-flyout-border) !important;
  background: var(--ui-flyout-hover-bg) !important;
  color: var(--ui-flyout-hover-text) !important;
}

/* Add-to-cart modal actions do not have a decorative bar behind the buttons. */
body[data-theme-layout]:not(.admin-root) .cart-added-actions {
  margin: 0 !important;
  padding: 18px 0 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
body[data-theme-layout]:not(.admin-root) .cart-added-actions :where(.btn-dark, .btn-primary) {
  border-color: var(--ui-button-bg) !important;
  background: var(--ui-button-bg) !important;
  color: var(--ui-button-text) !important;
}
body[data-theme-layout]:not(.admin-root) .cart-added-actions :where(.btn-outline-dark, .btn-light) {
  border-color: var(--ui-button-secondary-border) !important;
  background: var(--ui-button-secondary-bg) !important;
  color: var(--ui-button-secondary-text) !important;
}

/* Checkout: a single radius/border authority for every compound component. */
body[data-theme-layout]:not(.admin-root) .checkout-step-panel {
  container: checkout-step / inline-size;
}
body[data-theme-layout]:not(.admin-root) .checkout-cart-footer {
  grid-template-columns: minmax(0, 1fr) minmax(220px, 320px) !important;
  align-items: stretch !important;
  gap: 14px !important;
}
body[data-theme-layout]:not(.admin-root) .checkout-coupon-row {
  grid-template-columns: minmax(0, 1fr) minmax(180px, 300px) !important;
  min-inline-size: 0;
  border-color: var(--ui-border) !important;
  border-radius: var(--ui-radius-md) !important;
  background: var(--ui-surface-2) !important;
  box-shadow: none !important;
}
body[data-theme-layout]:not(.admin-root) :where(.checkout-cart-footer, .checkout-coupon-row) > *,
body[data-theme-layout]:not(.admin-root) :where(.checkout-cart-footer, .checkout-coupon-row) :where(form, input, button) {
  min-inline-size: 0;
  max-inline-size: 100%;
}
body[data-theme-layout]:not(.admin-root) .checkout-primary-next {
  inline-size: 100% !important;
  max-inline-size: 100% !important;
  justify-self: stretch;
}
body[data-theme-layout]:not(.admin-root) .method-choice-card {
  position: relative;
  min-inline-size: 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
body[data-theme-layout]:not(.admin-root) .checkout-shell .method-choice-body {
  overflow: clip;
  border: 1px solid var(--ui-border) !important;
  border-radius: var(--ui-radius-sm) !important;
  background: var(--ui-surface-1) !important;
  color: var(--ui-text) !important;
  box-shadow: none !important;
  transform: none !important;
}
body[data-theme-layout]:not(.admin-root) .checkout-shell .method-choice-card:is(.is-selected, :has(input:checked)) .method-choice-body {
  border-color: var(--ui-accent) !important;
  background: color-mix(in srgb, var(--ui-accent) 8%, var(--ui-surface-1)) !important;
  box-shadow: inset 0 0 0 1px var(--ui-accent) !important;
}
body[data-theme-layout]:not(.admin-root) .checkout-shell .shipping-method-unit.has-pickup-panel,
body[data-theme-layout]:not(.admin-root) .checkout-shell .method-choice-card.has-pickup-panel {
  overflow: clip;
  border: 1px solid var(--ui-border) !important;
  border-radius: var(--ui-radius-sm) !important;
  background: var(--ui-surface-1) !important;
}
body[data-theme-layout]:not(.admin-root) .checkout-shell :where(.shipping-method-unit.has-pickup-panel, .method-choice-card.has-pickup-panel) .method-choice-body {
  border: 0 !important;
  border-block-end: 1px solid var(--ui-border) !important;
  border-radius: 0 !important;
}
body[data-theme-layout]:not(.admin-root) .checkout-toggle-row .consent-row.compact {
  border: 1px solid var(--ui-checkout-toggle-border) !important;
  border-radius: var(--ui-radius-sm) !important;
  background: var(--ui-checkout-toggle-bg) !important;
  color: var(--ui-text) !important;
  box-shadow: none !important;
}
body[data-theme-layout]:not(.admin-root) .checkout-side-products {
  overflow: auto;
  border: 1px solid var(--ui-checkout-summary-border) !important;
  border-radius: var(--ui-radius-md) !important;
  background: var(--ui-surface-1) !important;
  box-shadow: none !important;
}
body[data-theme-layout]:not(.admin-root) .checkout-side-products .checkout-side-product {
  margin: 0 !important;
  border: 0 !important;
  border-block-end: 1px solid var(--ui-checkout-summary-border) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
body[data-theme-layout]:not(.admin-root) .checkout-side-products .checkout-side-product:last-child {
  border-block-end: 0 !important;
}

@container checkout-step (max-width: 860px) {
  body[data-theme-layout]:not(.admin-root) .checkout-cart-footer,
  body[data-theme-layout]:not(.admin-root) .checkout-coupon-row {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

@media (max-width: 760px) {
  body[data-theme-layout="futuristic"]:not(.admin-root) .storefront-announcement {
    inline-size: 100% !important;
    margin-inline-start: 0 !important;
  }
  body[data-theme-layout]:not(.admin-root) .storefront-announcement > div {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
  }
  body[data-theme-layout]:not(.admin-root) .storefront-announcement > div > img {
    display: none;
  }
}

@media (max-width: 640px) {
  body[data-theme-layout]:not(.admin-root) .checkout-cart-footer,
  body[data-theme-layout]:not(.admin-root) .checkout-coupon-row,
  body[data-theme-layout]:not(.admin-root) .checkout-toggle-row {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  body[data-theme-layout]:not(.admin-root) .cart-added-actions {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  body[data-theme-layout]:not(.admin-root) .cart-added-actions > * {
    inline-size: 100%;
  }
}

/* UI Contract 4.1.1 — announcement child-count invariant. */
body[data-theme-layout]:not(.admin-root) .storefront-announcement > div {
  grid-template-columns: minmax(0, 1fr) auto !important;
}
body[data-theme-layout]:not(.admin-root) .storefront-announcement > div:has(> img) {
  grid-template-columns: auto minmax(0, 1fr) auto !important;
}
body[data-theme-layout]:not(.admin-root) .storefront-announcement > div > img {
  inline-size: 22px;
  block-size: 22px;
  object-fit: contain;
}
body[data-theme-layout]:not(.admin-root) .storefront-announcement button {
  inline-size: 34px !important;
  block-size: 34px !important;
  min-inline-size: 34px !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center;
  border: 0 !important;
  border-radius: var(--ui-radius-sm) !important;
  background: transparent !important;
  color: inherit !important;
}
body[data-theme-layout]:not(.admin-root) .storefront-announcement button:hover {
  background: color-mix(in srgb, currentColor 10%, transparent) !important;
}
