

:root {
  --ecom-radius: var(--gv-radius-lg, 12px);
  --ecom-radius-lg: var(--gv-radius-xl, 16px);
  --ecom-content-max: 1200px;
  --ecom-page-gutter: clamp(12px, 2vw, 24px);
  --ecom-shadow: none;
}

/* ----- Shared public commerce bar ------------------------------------------------ */

/* ----- Category menu ------------------------------------------------------------- */

/* Homepage storefront styles are owned by resources/styles/public/homepage.css. */

/* ----- Store page ---------------------------------------------------------------- */
.public-store-main,
.public-product-main {
  min-height: 64vh;
  padding: 20px 0 36px;
}
.public-store-main > .public-site-container,
.public-product-main > .public-site-container {
  width: min(var(--ecom-content-max), calc(100% - (var(--ecom-page-gutter) * 2)));
  max-width: none;
}
.public-store-breadcrumb {
  min-width: 0;
  max-width: 100%;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.public-store-layout {
  min-width: 0;
  display: grid;
  grid-template-columns: 250px minmax(0,1fr);
  gap: 16px;
  align-items: start;
}
.public-store-filters {
  min-width: 0;
  border: 1px solid var(--theme-border, #e5e5e5);
  border-radius:var(--ecom-radius);
  background: var(--theme-surface, #fff);
  overflow: hidden;
}
.public-store-filter-head {
  min-height: 62px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 12px;
  border-bottom: 1px solid var(--theme-border, #e5e5e5);
}
.public-store-filter-head > div {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
}
.public-store-filter-head strong {
  font-size: 14px;
}
.public-store-filter-head small {
  color: var(--theme-text-muted, #737373);
}
.public-store-filter-head > a {
  color: var(--accent, #171717);
  font-size: 12px;
  font-weight:500;
  text-decoration: none;
}
.public-store-filter-section > strong {
  font-size: 11px;
  font-weight:600;
  text-transform: uppercase;
  letter-spacing: .035em;
}
.public-store-filter-section {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
  padding: 12px;
  border-bottom: 1px solid var(--theme-border, #e5e5e5);
}
.public-store-filter-section:last-child {
  border-bottom: 0;
}
.public-store-filter-section > a,
.public-store-group-filter-scroll > a {
  min-height: 34px;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 8px 8px;
  border-radius:8px;
  color: var(--theme-text-secondary, #737373);
  font-size: 13px;
  text-decoration: none;
}
.public-store-filter-section a:hover,
.public-store-filter-section a.is-active {
  background: color-mix(in srgb, var(--accent, #171717) 11%, var(--theme-surface-subdued, #f5f5f5));
  color: var(--theme-text, #171717);
}
.public-store-filter-section a b {
  color: var(--theme-text-muted, #737373);
  font-size: 11px;
}
.public-store-filter-section a > span,
.public-store-group-filter-scroll a > span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.public-store-group-filter-scroll {
  min-width: 0;
  max-height: 300px;
  overflow-y: auto;
  padding-inline-end: 3px;
  scrollbar-width: thin;
}
.public-store-results {
  container: store-results / inline-size;
  align-content: start;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
}
.public-store-applied {
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius:12px;
  background: var(--theme-text, #11181d);
  color: var(--theme-surface, #fff);
}
.public-store-applied > strong {
  flex: 0 0 auto;
  font-size: 11px;
}
.public-store-applied > div {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 4px;
  overflow-x: auto;
  scrollbar-width: none;
}
.public-store-applied > div::-webkit-scrollbar { display:none; }
.public-store-applied > div a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px;
  border-radius:8px;
  background: var(--accent, #171717);
  color: var(--accent-contrast, #ffffff);
  font-size: 11px;
  font-weight:600;
  text-decoration: none;
  white-space: nowrap;
}
.public-store-clear-all {
  margin-inline-start: auto;
  color: inherit;
  opacity: .72;
  font-size: 11px;
  text-decoration: none;
  white-space: nowrap;
}
.public-store-results-head {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 12px;
  border: 1px solid var(--theme-border, #e5e5e5);
  border-radius:12px;
  background: var(--theme-surface, #fff);
}
.public-store-results-head > div:first-child {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.public-store-results-head h1 {
  margin: 0;
  font-size: 20px;
  line-height: 1.3;
}
.public-store-results-head h1 span,
.public-store-results-head small {
  color: var(--theme-text-muted, #737373);
  font-size: 11px;
  font-weight: 500;
}
.public-store-results-controls {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
}
.public-store-results-controls select {
  height: 36px;
  min-width: 148px;
  padding: 0 32px 0 12px;
  border: 1px solid var(--gv-input-border);
  border-radius: var(--gv-radius-input);
  background: var(--theme-surface-subdued, #f5f5f5);
  color: var(--theme-text, #171717);
}
.public-store-view-toggle {
  display: grid;
  grid-template-columns: repeat(2,34px);
  gap: 4px;
  padding: 3px;
  border: 1px solid var(--theme-border, #e5e5e5);
  border-radius:8px;
  background: var(--theme-surface-subdued, #f5f5f5);
}
.public-store-view-toggle a {
  height: 30px;
  display: grid;
  place-items: center;
  border-radius:8px;
  color: var(--theme-text-muted, #737373);
}
.public-store-view-toggle a.is-active {
  background: var(--theme-surface, #fff);
  color: var(--theme-text, #171717);
}
.public-store-products {
  display: grid;
  gap: 12px;
}
.public-store-products.is-grid {}
.public-store-page .public-store-products.is-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, max(210px, calc(100% / var(--catalog-columns-desktop, 4) - 16px))), 1fr));
}
@container store-results (max-width: 640px) {
  .public-store-page .public-store-products.is-grid {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, max(120px, calc(100% / var(--catalog-columns-mobile, 2) - 8px))), 1fr));
  }
}

.public-product-card {
  min-width: 0;
  display: grid;
  grid-template-rows: auto minmax(0,1fr);
  border: 1px solid var(--theme-border, #e5e5e5);
  border-radius:var(--ecom-radius);
  background: var(--theme-surface, #fff);
  overflow: hidden;
  transition: border-color .16s ease, box-shadow .16s ease;
}
.public-product-card:hover {
  border-color: color-mix(in srgb, var(--accent, #171717) 35%, var(--theme-border, #e5e5e5));
  box-shadow: none;
}
.public-product-card-media {
  position: relative;
  width: 100%;
  aspect-ratio: var(--gv-product-image-ratio, 16 / 9);
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--theme-surface-subdued, #f5f5f5);
  color: var(--theme-text-muted, #737373);
}
.public-product-card-media img {
  width: 100%;
  height: 100%;
  object-fit: contain ;
}
.public-product-card-media em {
  position: absolute;
  top: 9px;
  left: 9px;
  padding: 4px 8px;
  border-radius: var(--gv-radius-pill);
  background: var(--accent, #171717);
  color: var(--accent-contrast, #ffffff);
  font-size: 11px;
  font-style: normal;
  font-weight:600;
  text-transform: uppercase;
}
.public-product-card-body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
}
.public-product-card-meta {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
.public-product-card-meta > span {
  flex: 0 0 auto;
  padding: 3px 8px;
  border-radius: var(--gv-radius-pill);
  background: color-mix(in srgb, var(--accent, #171717) 11%, transparent);
  color: var(--accent, #171717);
  font-size: 11px;
  font-weight:600;
}
.public-product-card-meta small {
  min-width: 0;
  overflow: hidden;
  color: var(--theme-text-muted, #737373);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.public-product-card-title {
  min-height: 2.7em;
  color: var(--theme-text, #171717);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.35;
  text-decoration: none;
}
.public-product-card-body p {
  margin: 0;
  color: var(--theme-text-secondary, #737373);
  font-size: 11px;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.public-product-card-body footer {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding-top: 3px;
}
.public-product-card-body footer strong {
  font-size: 14px;
}
.public-product-card-open {
  border: 1px solid var(--theme-border, #e5e5e5);
}

/* list view */
.public-store-products.is-list .public-product-card {
  grid-template-columns: 78px minmax(0,1fr);
  grid-template-rows: auto;
  min-height: 82px;
}
.public-store-products.is-list .public-product-card-media {
  min-height: 82px;
}
.public-store-products.is-list .public-product-card-body {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  grid-template-areas:
    "meta footer"
    "title footer"
    "desc footer";
  align-content: center;
  column-gap: 16px;
  padding: 8px 12px;
}
.public-store-products.is-list .public-product-card-meta { grid-area: meta; }
.public-store-products.is-list .public-product-card-title {
  grid-area: title;
  min-height: 0;
}
.public-store-products.is-list .public-product-card-body p { grid-area: desc; }
.public-store-products.is-list .public-product-card-body footer {
  grid-area: footer;
  margin: 0;
  min-width: 130px;
}
.public-store-empty {
  min-height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border: 1px dashed var(--theme-border-strong, #ccd6db);
  border-radius:var(--ecom-radius);
  color: var(--theme-text-secondary, #737373);
}
.public-store-empty > div {
  display: grid;
  gap: 4px;
}
.public-store-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding-top: 8px;
}
.public-store-pagination a,
.public-store-pagination span {
  min-width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  padding: 0 8px;
  border: 1px solid var(--theme-border, #e5e5e5);
  border-radius:8px;
  color: var(--theme-text-secondary, #737373);
  text-decoration: none;
  font-size: 11px;
}
.public-store-pagination a.is-active {
  border-color: var(--accent, #171717);
  background: var(--accent, #171717);
  color: var(--accent-contrast, #ffffff);
}

/* ----- Product detail page -------------------------------------------------------- */
.public-product-hero {
  display: grid;
  grid-template-columns: minmax(320px, .9fr) minmax(0,1.25fr);
  gap: 28px;
  align-items: start;
  padding: 12px 0 20px;
}
.public-product-image {
  min-height: 420px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--theme-border, #e5e5e5);
  border-radius:var(--ecom-radius-lg);
  background: var(--theme-surface-subdued, #f5f5f5);
  color: var(--theme-text-muted, #737373);
}
.public-product-image img {
  width: 100%;
  height: 100%;
  max-height: 520px;
  object-fit: contain;
}
.public-product-summary {
  min-width: 0;
  display: grid;
  gap: 12px;
  padding-top: 4px;
}
.public-product-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.public-product-title-row > div {
  min-width: 0;
}
.public-product-title-row h1 {
  margin: 0;
  font-size: clamp(24px, 3vw, 36px);
  line-height: 1.16;
  letter-spacing: -.025em;
}
.public-product-title-row > div > a {
  display: inline-block;
  margin-top: 4px;
  color: var(--theme-text-muted, #737373);
  font-size: 11px;
  text-decoration: none;
}
.public-product-inline-description {
  min-width: 0;
  max-width: 720px;
  margin: 0;
  color: var(--theme-text-secondary, #737373);
  line-height: 1.6;
}
.public-product-inline-description > :first-child { margin-top: 0; }
.public-product-inline-description > :last-child { margin-bottom: 0; }
.public-product-featured {
  flex: 0 0 auto;
  padding: 4px 8px;
  border-radius: var(--gv-radius-pill);
  background: color-mix(in srgb, var(--accent, #171717) 14%, transparent);
  color: var(--accent, #171717);
  font-size: 11px;
  font-weight:600;
  text-transform: uppercase;
}
.public-product-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.public-product-badges span {
  padding: 4px 7px;
  border-radius:6px;
  border: 1px solid var(--theme-border, #e5e5e5);
  background: var(--theme-surface-subdued, #f5f5f5);
  color: var(--theme-text-secondary, #737373);
  font-size: 11px;
  font-weight:600;
}
.public-product-badges span.is-stock {
  border-color: color-mix(in srgb, var(--accent, #171717) 40%, var(--theme-border, #e5e5e5));
  color: var(--accent, #171717);
}
.public-product-delivery {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--theme-text-secondary, #737373);
  font-size: 11px;
}
.public-product-price {
  display: grid;
  gap: 4px;
}
.public-product-price small {
  color: var(--theme-text-muted, #737373);
  font-size: 11px;
  font-weight:600;
  text-transform: uppercase;
}
.public-product-price strong {
  font-size: 30px;
  letter-spacing: -.02em;
}
.public-product-requirements {
  padding-top: 2px;
}
.public-product-section-label {
  display: grid;
  gap: 4px;
  margin-bottom: 8px;
}
.public-product-section-label small {
  color: var(--theme-text-muted, #737373);
}

.public-product-buy {
  align-items: center;
  padding-top: 3px;
}
.public-product-buy-button {
  min-width: 210px;
  min-height: 44px;
  justify-content: center;
}
.public-product-login-note {
  color: var(--theme-text-muted, #737373);
  line-height: 1.45;
}
.public-product-description,
.public-product-related {
  margin-top: 16px;
  border-top: 0;
  padding-top: 20px;
}
.public-product-description > header,
.public-product-related > header {
  margin-bottom: 12px;
}
.public-product-description h2,
.public-product-related h2 {
  margin: 0;
  font-size: 16px;
}
.public-product-rich {
  max-width: 920px;
  color: var(--theme-text-secondary, #737373);
  line-height: 1.7;
}
.public-product-instructions {
  max-width: 920px;
  margin-top: 20px;
  padding: 16px;
  border: 1px solid var(--theme-border, #e5e5e5);
  border-radius:12px;
  background: var(--theme-surface-subdued, #f5f5f5);
}
.public-product-instructions h3 {
  margin: 0 0 8px;
  font-size: 13px;
}
.public-product-related-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 12px;
}
.public-product-related-grid article {
  min-width: 0;
  display: grid;
  grid-template-rows: auto minmax(0,1fr);
  overflow: hidden;
  border: 1px solid var(--theme-border, #e5e5e5);
  border-radius:12px;
  background: var(--theme-surface, #fff);
}
.public-product-related-media {
  width: 100%;
  aspect-ratio: var(--gv-product-image-ratio, 16 / 9);
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--theme-surface-subdued, #f5f5f5);
  color: var(--theme-text-muted, #737373);
}
.public-product-related-media img {
  width: 100%;
  height: 100%;
  object-fit: contain ;
}
.public-product-related-grid article > div {
  min-width: 0;
  display: grid;
  gap: 8px;
  padding: 12px;
}
.public-product-related-grid article > div > a {
  min-height: 2.7em;
  color: var(--theme-text, #171717);
  font-size: 11px;
  font-weight:600;
  line-height: 1.35;
  text-decoration: none;
}
.public-product-related-grid footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.public-product-related-grid footer span {
  color: var(--theme-text-muted, #737373);
  font-size: 11px;
}
.public-product-not-found {
  min-height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
}
.public-product-not-found > div {
  display: grid;
  gap: 4px;
}
.public-product-not-found h1,
.public-product-not-found p {
  margin: 0;
}

/* ----- Public order modal --------------------------------------------------------- */
.public-site #gv-order-modal.slide-over-shell {
  position: fixed;
  inset: 0;
  z-index: 1600;
  visibility: hidden;
  pointer-events: none;
}
.public-site #gv-order-modal.slide-over-shell.open {
  visibility: visible;
  pointer-events: auto;
}
.public-site #gv-order-modal .slide-over-backdrop {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  opacity: 0;
  background: rgba(4,8,11,.72);
  backdrop-filter:none;
  transition: opacity .18s ease;
}
.public-site #gv-order-modal.open .slide-over-backdrop {
  opacity: 1;
}
.public-site #gv-order-modal .slide-over-panel {
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 2;
  width: min(720px, calc(100vw - 26px));
  max-height: calc(100dvh - 28px);
  overflow: hidden;
  border: 1px solid var(--theme-border, #e5e5e5);
  border-radius:var(--gv-radius-lg, 8px);
  background: var(--theme-surface-elevated, #fff);
  color: var(--theme-text, #171717);
  box-shadow:none;
  opacity: 0;
  transform: translate(-50%,-48%) scale(.985);
  transition: opacity .18s ease, transform .2s ease;
}
.public-site #gv-order-modal.open .slide-over-panel {
  opacity: 1;
  transform: translate(-50%,-50%) scale(1);
}
.public-site #gv-order-modal .slide-over-close {
  position: absolute;
  z-index: 12;
  top: 10px;
  inset-inline-end: 10px;
}
.public-site #gv-order-modal .slide-over-panel-content,
.public-site #gv-order-modal .client-order-shell,
.public-site #gv-order-modal .client-order-panel,
.public-site #gv-order-modal .slide-over-order-form {
  width: 100%;
  max-height: inherit;
  min-height: 0;
}
.public-site #gv-order-modal .client-order-shell,
.public-site #gv-order-modal .client-order-panel,
.public-site #gv-order-modal .slide-over-order-form {
  display: flex;
  flex-direction: column;
}
.public-site #gv-order-modal .client-order-panel {
  overflow: hidden;
  border: 0;
  border-radius:0;
  background: var(--theme-surface-elevated, #fff);
  box-shadow: none;
}
.public-site #gv-order-modal .client-order-head {
  flex: 0 0 auto;
  padding-block: 24px 16px;
  padding-inline: 20px 56px;
  border-bottom: 1px solid var(--theme-border, #e5e5e5);
}
.public-site #gv-order-modal :is(.client-order-form-section,.slide-over-order-footer) { background: transparent; }
.public-site #gv-order-modal .client-order-customer-content {
  margin: 0;
  padding: 12px 20px 16px;
  border-bottom: 1px solid var(--theme-border, #e5e5e5);
  background: transparent;
  color: var(--theme-text, #171717);
}
.public-site #gv-order-modal .client-order-customer-content > :first-child { margin-top: 0; }
.public-site #gv-order-modal .client-order-customer-content > :last-child { margin-bottom: 0; }
.public-site #gv-order-modal .client-order-title h1 {
  margin: 0;
  font-size:var(--gv-type-subheading);
  line-height: 1.3;
  font-weight: 500;
}
.public-site #gv-order-modal .client-order-form-section {
  min-height: 0;
  overflow: auto;
  padding: 20px 20px 20px;
}
.public-site #gv-order-modal .slide-over-field-flow { width:100%; display:grid; grid-template-columns:minmax(0,1fr); gap:20px; align-items:start; }
.public-site #gv-order-modal .slide-over-field-flow > .field { min-width:0; width:100%; display:grid; align-content:start; gap:8px; padding:0; border:0; border-radius:0; background:transparent; grid-column:1 / -1; }
.public-site #gv-order-modal .slide-over-field-flow > .field > :is(label,.client-order-field-label) {
  margin: 0;
  line-height: 1.35;
}
.public-site #gv-order-modal :is(input.input,select.input,textarea.input) {
  width: 100%;
}
.public-site #gv-order-modal .slide-over-order-footer {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(170px,auto);
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  border-top: 0;
  background: transparent;
}
.public-site #gv-order-modal .order-price-inline,
.public-site #gv-order-modal .order-submit-actions {
  display: grid;
  gap: 4px;
}
.public-site #gv-order-modal .order-form-validation {
  grid-column: 1 / -1;
  width: 100%;
  margin: 0;
}
.public-site #gv-order-modal .order-duplicate-confirmation {
  flex: 0 0 auto;
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 16px;
  padding: 12px 20px;
  border-top: 0;
  background: var(--theme-surface-subdued, #f7f8f9);
}
.public-site #gv-order-modal .order-duplicate-copy {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.public-site #gv-order-modal .order-duplicate-copy strong { font-weight:600; }
.public-site #gv-order-modal .order-duplicate-copy span {
  color: var(--theme-text-secondary, #5f6b73);
  font-size: 12px;
  line-height: 1.45;
}
.public-site #gv-order-modal .order-duplicate-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.public-site #gv-order-modal .order-duplicate-actions .button { min-width: 72px; }
.public-site #gv-order-modal .order-submit-button {
  width: 100%;
}
.public-site #gv-order-modal .smart-imei-control,
.public-site #gv-order-modal .choice-grid {
  display: grid;
  gap: 8px;
}

@media (max-width: 640px) {
  .public-site #gv-order-modal .order-duplicate-confirmation {
    grid-template-columns: minmax(0,1fr);
  }
  .public-site #gv-order-modal .order-duplicate-actions {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  .public-site #gv-order-modal .order-duplicate-actions .button { width: 100%; }
}

/* ----- Responsive ---------------------------------------------------------------- */
@container public-workspace (max-width: 1180px) {
  .public-store-products.is-grid {}

  .public-product-related-grid {
    grid-template-columns: repeat(3,minmax(0,1fr));
  }
}
@container public-workspace (max-width: 900px) {
  .public-store-layout {
    grid-template-columns: minmax(0,1fr);
  }

  .public-store-filters {
    display: grid;
    grid-template-columns: minmax(220px,1fr) minmax(0,1fr);
  }

  .public-store-filter-head {
    grid-column: 1 / -1;
  }

  .public-store-filter-groups {
    grid-column: 1 / -1;
  }

  .public-store-group-filter-scroll {
    max-height: 180px;
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 4px;
  }

  .public-product-hero {
    grid-template-columns: minmax(260px,.78fr) minmax(0,1.2fr);
    gap: 20px;
  }

  .public-product-image {
    min-height: 330px;
  }

  .public-product-related-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}
@media (max-width: 700px) {
.public-site #gv-order-modal .slide-over-panel {
    width: calc(100vw - 10px);
    max-height: calc(100dvh - 10px);
    border-radius:var(--gv-radius-lg, 8px);
  }
  .public-site #gv-order-modal .slide-over-field-flow > .field {
    flex-basis: 100%;
  }
  .public-site #gv-order-modal .slide-over-order-footer {
    grid-template-columns: minmax(0,1fr);
  }
}

@container public-workspace (max-width: 700px) {
  .public-store-results-head,
  .public-store-applied {
    align-items: flex-start;
    flex-direction: column;
  }

  .public-store-results-controls {
    width: 100%;
  }

  .public-store-results-controls form {
    flex: 1 1 auto;
  }

  .public-store-results-controls select {
    width: 100%;
  }

  .public-product-hero {
    grid-template-columns: minmax(0,1fr);
  }

  .public-product-image {
    min-height: 260px;
    max-height: 400px;
  }

  .public-product-buy {
    align-items: stretch;
    flex-direction: column;
  }

  .public-product-buy-button {
    width: 100%;
  }
}
@container public-workspace (max-width: 700px) {
  .public-store-filters {
    grid-template-columns: minmax(0,1fr);
  }

  .public-store-filter-head,
  .public-store-filter-groups {
    grid-column: auto;
  }

  .public-store-group-filter-scroll {
    grid-template-columns: minmax(0,1fr);
  }

  .public-store-products.is-grid {}

  .public-product-card {
    grid-template-columns: minmax(0,1fr);
    grid-template-rows: auto minmax(0,1fr);
    min-height: 118px;
  }

  .public-product-card-media {
    min-height: 0;
  }

  .public-store-products.is-list .public-product-card {
    grid-template-columns: 72px minmax(0,1fr);
  }

  .public-store-products.is-list .public-product-card-body {
    grid-template-columns: minmax(0,1fr);
    grid-template-areas:
        "meta"
        "title"
        "desc"
        "footer";
  }

  .public-store-products.is-list .public-product-card-body footer {
    min-width: 0;
  }

  .public-product-related-grid {
    grid-template-columns: minmax(0,1fr);
  }

  .public-product-related-grid article {
    grid-template-columns: 92px minmax(0,1fr);
    grid-template-rows: auto;
  }

  .public-store-pagination {
    flex-wrap: wrap;
  }
}

.public-commerce-cart-button {
  font: inherit;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
}
.public-commerce-cart-button[hidden] { display: none ; }
.public-commerce-cart-button b {
  min-width: 19px;
  height: 19px;
  display: grid;
  place-items: center;
  padding: 0 4px;
  border-radius: var(--gv-radius-button);
  background: var(--accent, #171717);
  color: var(--accent-contrast, #ffffff);
  font-size: 11px;
}

.public-commerce-cart[hidden] { display: none; }

.public-commerce-cart-panel {
  pointer-events: auto;
  color: var(--theme-text, #171717);
}

.public-commerce-cart-panel > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--theme-border, #e5e5e5);
}
.public-commerce-cart-panel > header > div { display:flex; align-items:baseline; gap:8px; }
.public-commerce-cart-panel > header strong { font-size:16px; }
.public-commerce-cart-panel > header small { color:var(--theme-text-muted,#737373); }
.public-commerce-cart-body { padding:0 12px; scrollbar-width:thin; }
.public-commerce-cart-item {
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  gap: 12px;
  padding:12px 0;
  border-bottom:1px solid var(--theme-border,#e5e5e5);
}
.public-commerce-cart-item-media {
  width:64px; height:64px; display:grid; place-items:center; overflow:hidden;
  border:1px solid var(--theme-border,#e5e5e5); border-radius:8px;
  background:var(--theme-surface-subdued,#f5f5f5); color:var(--theme-text-muted,#737373);
}
.public-commerce-cart-item-media img { width:100%; height:100%; object-fit:cover; }
.public-commerce-cart-item-copy { min-width:0; display:grid; align-content:start; gap: 4px; }
.public-commerce-cart-item-title { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:start; }
.public-commerce-cart-item-title a {
  min-width:0; color:var(--theme-text,#171717); font-size:12px; font-weight: 500; line-height:1.35;
  text-decoration:none; overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2;
}
.public-commerce-cart-item-title strong { font-size:12px; white-space:nowrap; }
.public-commerce-cart-item-copy small { color:var(--theme-text-secondary,#737373); font-size: 11px; line-height:1.35; }

.public-commerce-cart-item-actions { display:flex; align-items:center; gap:12px; padding-top:3px; }
.public-commerce-cart-item-actions a,
.public-commerce-cart-item-actions button {
  padding:0; border:0; background:transparent; color:var(--accent,#171717); font:inherit; font-size: 11px; font-weight: 500;
  text-decoration:none; cursor:pointer;
}
.public-commerce-cart-item-actions button { color:#d9434e; }
.public-commerce-cart-panel > footer {
  display:grid; gap: 8px; padding:12px;
  border-top:1px solid var(--theme-border,#e5e5e5);
}
.public-commerce-cart-total { display:flex; align-items:end; justify-content:space-between; gap:12px; }
.public-commerce-cart-total span { color:var(--theme-text-secondary,#737373); font-size:12px; font-weight:600; }
.public-commerce-cart-total strong { font-size:20px; }
.public-commerce-cart-panel > footer > small { color:var(--theme-text-muted,#737373); font-size: 11px; line-height:1.4; }

.public-commerce-cart-empty { min-height:220px; display:grid; place-items:center; align-content:center; gap: 8px; text-align:center; padding: 28px; }
.public-commerce-cart-empty strong { font-size: 16px; }
.public-commerce-cart-empty span { color:var(--theme-text-muted,#737373); font-size:11px; }
.public-commerce-cart-loading { padding:24px; color:var(--theme-text-muted,#737373); }

/* Product fields and cart actions */
.public-product-cart-form { display:grid; gap: 16px; }
.public-product-entry-fields { display:grid; gap: 12px; }
.public-product-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap: 8px; }
.public-product-choice-grid label { min-height:38px; display:flex; align-items:center; gap: 8px; padding: 8px 8px; border:1px solid var(--theme-border,#e5e5e5); border-radius:8px; background:var(--theme-surface-subdued,#f5f5f5); }
.public-product-note { margin-top:2px; }
.public-product-buy { display:grid; grid-template-columns:minmax(130px,.65fr) minmax(170px,1fr) auto; gap:8px; }
.public-product-buy .button { min-height:42px; justify-content:center; }
.public-product-add-cart { border-color:var(--accent,#171717); }
.public-product-cart-form.is-busy { opacity:.72; pointer-events:none; }
.public-product-cart-error { padding: 8px 12px; border:1px solid rgba(217,67,78,.34); border-radius:8px; background:rgba(217,67,78,.09); color:#d9434e; font-size:11px; font-weight:600; }

/* Checkout — public storefront foundation */
.public-checkout-main {
  min-height: 68vh;
  padding: 24px 0 48px;
}

.public-checkout-breadcrumb {
  margin-bottom: 16px;
}
.public-checkout-heading {
  display: flex;
  justify-content: space-between;
  margin: 0 0 20px;
}
.public-checkout-heading > div {
  min-width: 0;
}
.public-checkout-eyebrow {
  display: block;
  margin-bottom: 4px;
  color: var(--accent,#171717);
  font-size: 11px;
  font-weight:600;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.public-checkout-heading h1 {
  margin: 0;
  font-size: clamp(30px,3vw,40px);
  line-height: 1.08;
}
.public-checkout-heading p {
  max-width: 660px;
  margin: 8px 0 0;
  color: var(--theme-text-secondary,#737373);
  line-height: 1.55;
}
.public-checkout-continue {
  flex: 0 0 auto;
}

.public-checkout-layout {
  display: grid;
  align-items: start;
}
.public-checkout-card,
.public-checkout-empty {
  overflow: hidden;
  border: 1px solid var(--theme-border,#e5e5e5);
  background: var(--theme-surface,#fff);
}
.public-checkout-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid var(--theme-border,#e5e5e5);
}
.public-checkout-panel-head > div {
  display: grid;
  gap: 4px;
}

.public-checkout-panel-head small {
  color: var(--theme-text-muted,#737373);
  line-height: 1.45;
}
.public-checkout-count {
  flex: 0 0 auto;
  padding: 5px 9px;
  border-radius: var(--gv-radius-pill);
  background: var(--theme-surface-subdued,#f5f5f5);
  color: var(--theme-text-secondary,#737373);
  font-size: 11px;
  font-weight:600;
}

.public-checkout-list {
  display: grid;
}
.public-checkout-item {
  display: grid;
  align-items: start;
  border-bottom: 1px solid var(--theme-border,#e5e5e5);
}
.public-checkout-item:last-child {
  border-bottom: 0;
}
.public-checkout-item-index {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius:8px;
  background: var(--theme-surface-subdued,#f5f5f5);
  color: var(--theme-text-muted,#737373);
  font-size: 11px;
  font-weight:600;
}
.public-checkout-item-media {
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--theme-border,#e5e5e5);
  color: var(--theme-text-muted,#737373);
}
.public-checkout-item-media img {
  width: 100%;
  height: 100%;
}
.public-checkout-item-copy {
  min-width: 0;
  display: grid;
  gap: 8px;
}
.public-checkout-item-title {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: start;
}
.public-checkout-item-title a {
  min-width: 0;
  color: var(--theme-text,#171717);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.42;
  text-decoration: none;
}
.public-checkout-item-title strong {
  color: var(--theme-text,#171717);
  font-size: 13px;
  white-space: nowrap;
}
.public-checkout-item-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.public-checkout-item-meta span {
  padding: 4px 8px;
  border-radius: var(--gv-radius-pill);
  background: var(--theme-surface-subdued,#f5f5f5);
  color: var(--theme-text-secondary,#737373);
  font-size: 11px;
  font-weight:600;
}
.public-checkout-item-summary {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
}
.public-checkout-item-summary > div {
  min-width: 0;
  display: grid;
  gap: 4px;
  border: 1px solid var(--theme-border,#e5e5e5);
}
.public-checkout-item-summary span {
  color: var(--theme-text-muted,#737373);
  font-size: 11px;
  font-weight:600;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.public-checkout-item-summary strong {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--theme-text,#171717);
  font-size: 11px;
  line-height: 1.4;
}
.public-checkout-item-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}
.public-checkout-item-actions > a {
  color: var(--accent,#171717);
  font-size: 11px;
  font-weight:600;
  text-decoration: none;
}
.public-checkout-item-state {
  width: max-content;
  padding: 4px 8px;
  border-radius: var(--gv-radius-pill);
  background: rgba(33,192,139,.1);
  color: var(--accent,#171717);
  font-size: 11px;
  font-weight:600;
}
.public-checkout-item.is-processing .public-checkout-item-state {
  background: rgba(47,125,246,.1);
  color: #2f7df6;
}
.public-checkout-item.is-complete .public-checkout-item-state {
  background: rgba(33,192,139,.12);
  color: var(--accent,#171717);
}
.public-checkout-item.is-error .public-checkout-item-state {
  max-width: 100%;
  border-radius:8px;
  background: rgba(217,67,78,.1);
  color: #d9434e;
  line-height: 1.4;
}

.public-checkout-summary {
  position: sticky;
}
.public-checkout-summary-body {
  display: grid;
}
.public-checkout-total-lines {
  display: grid;
}
.public-checkout-total-lines > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--theme-text-secondary,#737373);
  font-size: 11px;
}
.public-checkout-total-lines > div.is-total {
  margin-top: 2px;
  padding-top: 12px;
  border-top: 1px solid var(--theme-border,#e5e5e5);
  color: var(--theme-text,#171717);
  font-weight:600;
}
.public-checkout-total-lines .is-total strong {
  font-size: 24px;
}

.public-checkout-payment {
  display: grid;
  padding-top: 2px;
}
.public-checkout-payment-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--theme-text-secondary,#737373);
  font-size: 11px;
}
.public-checkout-payment-title strong {
  color: var(--theme-text,#171717);
  font-size: 11px;
}
.public-checkout-wallet {
  display: grid;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--theme-border,#e5e5e5);
  background: var(--theme-surface-subdued,#f5f5f5);
}
.public-checkout-wallet-icon,
.public-checkout-login-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius:12px;
  background: color-mix(in srgb,var(--accent,#171717) 12%,var(--theme-surface,#fff));
  color: var(--accent,#171717);
}
.public-checkout-wallet > div:last-child {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.public-checkout-wallet span {
  color: var(--theme-text-muted,#737373);
  font-size: 11px;
}
.public-checkout-wallet strong {
  font-size: 16px;
}

.public-checkout-login {
  display: grid;
  align-items: start;
}
.public-checkout-login h2 {
  margin: 0;
  font-size: 16px;
}
.public-checkout-login p {
  margin: 4px 0 0;
  color: var(--theme-text-secondary,#737373);
  font-size: 11px;
  line-height: 1.5;
}
.public-checkout-login .button {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 43px;
  justify-content: center;
}

.public-checkout-balance-error,
.public-checkout-run-error {
  margin: 0;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 12px 12px;
  border: 1px solid rgba(217,67,78,.3);
  border-radius:12px;
  background: rgba(217,67,78,.09);
  color: #d9434e;
  font-size: 11px;
  line-height: 1.45;
}
.public-checkout-wallet-link,
.public-checkout-pay {
  width: 100%;
  justify-content: center;
}
.public-checkout-pay:disabled {
  opacity: .45;
  cursor: not-allowed;
}
.public-checkout-progress {
  display: grid;
  gap: 8px;
  margin: 0;
}
.public-checkout-progress > div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--theme-text-secondary,#737373);
  font-size: 11px;
}
.public-checkout-progress > div:last-child {
  height: 6px;
  overflow: hidden;
  border-radius: var(--gv-radius-pill);
  background: var(--theme-surface-subdued,#f5f5f5);
}
.public-checkout-progress i {
  display: block;
  width: 0;
  height: 100%;
  border-radius:inherit;
  background: var(--accent,#171717);
  transition: width .2s ease;
}
.public-checkout-engine-note {
  color: var(--theme-text-muted,#737373);
  font-size: 11px;
  line-height: 1.5;
}
.public-checkout-empty {
  display: grid;
  align-items: center;
  justify-content: center;
}
.public-checkout-empty h2 {
  margin: 0;
  font-size: 18px;
}
.public-checkout-empty p {
  margin: 4px 0 0;
  color: var(--theme-text-secondary,#737373);
}

/* Cart drawer readability + primary checkout action */
.public-commerce-cart-item-copy small b {
  color: var(--theme-text,#171717);
}
.public-commerce-cart-checkout {
  width: 100%;
  min-height: 43px;
  justify-content: center;
  border-color: var(--accent,#171717);
  background: var(--accent,#171717);
  color: var(--gv-primary-text);
  font-weight:600;
}
.public-commerce-cart-checkout:hover {
  filter: brightness(.97);
}
.public-commerce-cart-checkout.is-disabled {
  opacity: .45;
  pointer-events: none;
}

/* Dark public storefront: solid, readable surfaces */
html[data-theme="dark"] .public-checkout-card,
html[data-theme="dark"] .public-checkout-empty {
  background: var(--gv-surface) ;
  color: var(--gv-text) ;
  border-color: var(--gv-border) ;
  box-shadow:none;
  backdrop-filter:none;
}
html[data-theme="dark"] .public-checkout-panel-head,
html[data-theme="dark"] .public-checkout-item,
html[data-theme="dark"] .public-checkout-total-lines > div.is-total {
  border-color: var(--gv-border) ;
}
html[data-theme="dark"] .public-checkout-count,
html[data-theme="dark"] .public-checkout-item-index,
html[data-theme="dark"] .public-checkout-item-media,
html[data-theme="dark"] .public-checkout-item-meta span,
html[data-theme="dark"] .public-checkout-item-summary > div,
html[data-theme="dark"] .public-checkout-wallet {
  background: var(--gv-surface-subtle) ;
  border-color: var(--gv-border) ;
  color: var(--gv-text) ;
}
html[data-theme="dark"] .public-checkout-heading h1,
html[data-theme="dark"] .public-checkout-panel-head strong,
html[data-theme="dark"] .public-checkout-item-title a,
html[data-theme="dark"] .public-checkout-item-title strong,
html[data-theme="dark"] .public-checkout-item-summary strong,
html[data-theme="dark"] .public-checkout-total-lines > div.is-total,
html[data-theme="dark"] .public-checkout-payment-title strong,
html[data-theme="dark"] .public-checkout-login h2,
html[data-theme="dark"] .public-checkout-wallet strong,
html[data-theme="dark"] .public-commerce-cart-item-copy small b {
  color: var(--gv-text) ;
}
html[data-theme="dark"] .public-checkout-heading p,
html[data-theme="dark"] .public-checkout-panel-head small,
html[data-theme="dark"] .public-checkout-item-summary span,
html[data-theme="dark"] .public-checkout-total-lines > div,
html[data-theme="dark"] .public-checkout-login p,
html[data-theme="dark"] .public-checkout-wallet span,
html[data-theme="dark"] .public-checkout-engine-note,
html[data-theme="dark"] .public-commerce-cart-item-copy small {
  color: var(--gv-text-muted) ;
}
html[data-theme="dark"] .public-commerce-cart-checkout {
  background: var(--accent,#171717) ;
  border-color: var(--accent,#171717) ;
  color: var(--gv-primary-text) ;
}

@container public-workspace (max-width: 940px) {
  .public-checkout-layout {
    grid-template-columns: minmax(0,1fr);
  }

  .public-checkout-summary {
    position: static;
  }
}
@media (max-width: 720px) {
.public-checkout-main {
    padding-top: 16px;
  }
}

@container public-workspace (max-width: 720px) {
  .public-checkout-continue {
    width: max-content;
  }

  .public-checkout-item-index {
    display: none;
  }
}
@media (max-width: 480px) {
.public-checkout-shell {
    padding-inline: 12px;
  }
}

@container public-workspace (max-width: 480px) {
  .public-checkout-heading h1 {
    font-size: 30px;
  }

  .public-checkout-item-title {
    grid-template-columns: minmax(0,1fr);
    gap: 8px;
  }

  .public-checkout-item-title strong {
    justify-self: start;
  }

  .public-checkout-panel-head {
    padding: 12px 16px;
  }

  .public-checkout-summary-body {
    padding: 16px;
  }
}

/* Admin home service picker */

/* Dark commerce surfaces are deliberately solid. */
html[data-theme="dark"] .public-commerce-cart-panel,

html[data-theme="dark"] .public-commerce-cart-panel > footer,

html[data-theme="dark"] .public-checkout-items,

html[data-theme="dark"] .public-checkout-summary,

html[data-theme="dark"] .public-checkout-empty{
  background:var(--gv-surface);
  color:var(--gv-text);
  border-color:var(--gv-border);
  backdrop-filter:none;
}
html[data-theme="dark"] .public-commerce-cart-panel > header,

html[data-theme="dark"] .public-commerce-cart-item,

html[data-theme="dark"] .public-commerce-cart-panel > footer,

html[data-theme="dark"] .public-checkout-panel-head,

html[data-theme="dark"] .public-checkout-item{
  border-color:var(--gv-border);
}

html[data-theme="dark"] .public-commerce-cart-item-media,

html[data-theme="dark"] .public-checkout-item-index,

html[data-theme="dark"] .public-checkout-item-media,

html[data-theme="dark"] .public-checkout-item-meta span,

html[data-theme="dark"] .public-product-choice-grid label {
  background:var(--gv-surface-subtle);
  color:var(--gv-text);
  border-color:var(--gv-border);
  backdrop-filter:none;
}
html[data-theme="dark"] .public-commerce-cart-panel :is(strong,a),html[data-theme="dark"] .public-product-card-title,html[data-theme="dark"] .public-product-card-body footer strong,html[data-theme="dark"] .public-checkout-item-title a {
  color:var(--gv-text);
}
html[data-theme="dark"] .public-commerce-cart-item-copy small,html[data-theme="dark"] .public-checkout-heading p{
  color:var(--gv-text-muted);
}
@container public-workspace (max-width:720px) {
  .public-product-buy {
    grid-template-columns:1fr 1fr;
  }

  .public-product-buy > a:last-child {
    grid-column:1 / -1;
  }

  .public-checkout-heading {
    align-items:stretch;
    flex-direction:column;
  }
}
@container public-workspace (max-width:480px) {
  .public-product-buy {
    grid-template-columns: minmax(0,1fr);
  }

  .public-product-buy > a:last-child {
    grid-column:auto;
  }

  .public-checkout-item {
    grid-template-columns:58px minmax(0,1fr);
  }

  .public-checkout-item-index {
    display:none;
  }

  .public-checkout-item-media {
    width:58px;
    height:58px;
  }

  .public-checkout-empty {
    grid-template-columns: minmax(0,1fr);
    text-align:center;
  }
}

/* Public dark theme uses the standard dark document theme. The category drawer is
   intentionally solid and high-contrast instead of glass/translucent. */
@media (max-width: 560px) {
  .public-commerce-cart-button {
    margin-inline-end:4px;
  }
}

/* Store shell */
.public-store-page .public-store-main,
.public-product-page .public-product-main {
  padding-top: 20px;
  padding-bottom: 40px;
}
.public-store-page .public-store-breadcrumb,
.public-product-page .public-store-breadcrumb {
  margin-bottom: 16px;
  font-size: 11px;
}
.public-store-page .public-store-filters,
.public-store-page .public-store-results-head {
  border-color: color-mix(in srgb, var(--theme-border,#e5e5e5) 92%, transparent);
}
.public-store-page .public-store-filter-head strong {
  letter-spacing: -.01em;
}

/* Store cards */
.public-store-page .public-product-card {
  grid-template-rows: auto minmax(0,1fr);
  border-color: color-mix(in srgb, var(--theme-border,#e5e5e5) 94%, transparent);
}
.public-store-page .public-product-card-media {
  margin: 0;
  border-radius:0;
}
.public-store-page .public-product-card-media img {
  border-radius:0;
}
.public-store-page .public-product-card-media em {
  box-shadow:none;
}
.public-store-page .public-product-card-body footer {
  gap: 12px;
}
.public-product-card-price {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.public-product-card-price small {
  color: var(--theme-text-muted,#737373);
  font-size: 11px;
  font-weight:600;
  text-transform: uppercase;
  letter-spacing: .045em;
}
.public-store-page .public-product-card-body footer .public-product-card-price strong {
  line-height: 1.15;
  letter-spacing: -.015em;
}
.public-product-card-open {
  width: 36px;
  min-width: 36px;
  height: 36px;
  display: inline-grid;
  place-items: center;
  padding: 0;
  border-color: var(--accent,#171717);
  border-radius:var(--gv-radius-sm, 6px);
  background: var(--accent,#171717);
  color: var(--accent-contrast,#ffffff);
  font-size: 11px;
  font-weight:600;
  text-decoration: none;
  transition: filter .15s ease, box-shadow .15s ease;
}
.public-product-card-open:hover {
  filter: brightness(.97);
  box-shadow:none;
}
.public-product-card-open svg {
  width: 20px;
  height: 20px;
}

/* List view keeps the same final controls without oversized rows. */

.public-store-page .public-store-products.is-list .public-product-card-media {
  margin: 0;
}

.public-store-page .public-store-products.is-list .public-product-card-body footer {
  border-top: 0;
  padding-top: 0;
}

/* Product detail */
.public-product-page .public-product-title-row > div > a {
  margin-top: 8px;
  color: var(--accent,#171717);
  font-size: 11px;
  font-weight:600;
}
.public-product-page .public-product-badges span {
  display: inline-flex;
  align-items: center;
}
.public-product-page .public-product-delivery {
  width: max-content;
}
.public-product-page .public-product-inline-description {
  font-size: 11px;
  line-height: 1.55;
}
.public-product-page .public-product-section-label {
  margin-bottom: 1px;
}
.public-product-page .public-product-note {
  padding: 0 1px;
}
.public-product-page .public-product-buy {
  grid-template-columns: minmax(132px,.72fr) minmax(168px,1fr) minmax(132px,.78fr);
}
.public-product-page .public-product-buy .button {
  min-height: 44px;
  border-radius: var(--gv-radius-button);
  font-size: 11px;
  font-weight: 500;
}
.public-product-page .public-product-add-cart {
  border-color: color-mix(in srgb,var(--accent,#171717) 48%,var(--theme-border,#e5e5e5));
  background: color-mix(in srgb,var(--accent,#171717) 7%,var(--theme-surface,#fff));
  color: var(--theme-text,#171717);
}
.public-product-page .public-product-buy-button {
  min-width: 0;
  background: var(--accent,#171717);
  border-color: var(--accent,#171717);
  color: var(--accent-contrast,#ffffff);
}
.public-product-page .public-product-buy > a:last-child {
  border-color: var(--theme-border,#e5e5e5);
  background: var(--theme-surface-subdued,#f5f5f5);
}
.public-product-page .public-product-login-note {
  padding: 8px 12px;
  border-radius:8px;
  background: var(--theme-surface-subdued,#f5f5f5);
  font-size: 11px;
}
.public-product-page .public-product-description,
.public-product-page .public-product-related {
  margin-top: 20px;
  padding-top: 20px;
}
.public-product-page .public-product-description h2,
.public-product-page .public-product-related h2 {
  font-size: 18px;
}
.public-product-page .public-product-related-grid {
  gap: 12px;
}
.public-product-page .public-product-related-grid article {
  grid-template-rows: auto minmax(0,1fr);
  border-radius:var(--gv-radius-lg, 8px);
  box-shadow:none;
}
.public-product-page .public-product-related-media {
  margin: 0;
  border-radius:0;
}
.public-product-page .public-product-related-media img {
  width: 100%;
  height: 100%;
  object-fit: contain ;
}

/* Premium dark storefront */
html[data-theme="dark"] .public-store-page .public-store-filters,
html[data-theme="dark"] .public-store-page .public-store-results-head,
html[data-theme="dark"] .public-store-page .public-product-card,
html[data-theme="dark"] .public-product-page .public-product-summary {
  background: var(--gv-surface) ;
  border-color: var(--gv-border) ;
  box-shadow:none;
}
html[data-theme="dark"] .public-store-page .public-product-card-media,
html[data-theme="dark"] .public-product-page .public-product-image,
html[data-theme="dark"] .public-product-page .public-product-entry-fields,
html[data-theme="dark"] .public-product-page .public-product-delivery,
html[data-theme="dark"] .public-product-page .public-product-login-note {
  background: var(--gv-surface-subtle) ;
  border-color: var(--gv-border) ;
}
html[data-theme="dark"] .public-product-page .public-product-add-cart,
html[data-theme="dark"] .public-product-page .public-product-buy > a:last-child {
  background: var(--gv-surface-subtle) ;
  border-color: var(--gv-border) ;
  color: var(--gv-text) ;
}
html[data-theme="dark"] .public-store-page .public-product-card-body footer .public-product-card-price strong,
html[data-theme="dark"] .public-product-page .public-product-price strong {
  color: var(--gv-text) ;
}

@container public-workspace (max-width:1400px) {
  .public-store-page .public-store-products.is-grid {}
}
@container public-workspace (max-width:1080px) {
  .public-store-page .public-store-products.is-grid {}
}
@container public-workspace (max-width:900px) {
  .public-product-page .public-product-hero {
    gap: 16px;
  }
}
@container public-workspace (max-width:700px) {
  .public-store-page .public-store-results-head {
    gap: 12px;
  }

  .public-product-page .public-product-image {
    max-height: 330px;
  }

  .public-product-page .public-product-buy {
    grid-template-columns: 1fr 1fr;
  }

  .public-product-page .public-product-buy > a:last-child {
    grid-column: 1 / -1;
  }
}
@container public-workspace (max-width:620px) {
  .public-store-page .public-store-products.is-grid {}

  .public-store-page .public-product-card,
  .public-store-page .public-store-products.is-list .public-product-card {
    grid-template-columns: minmax(0,1fr);
    grid-template-rows: auto minmax(0,1fr);
    min-height: 126px;
  }

  .public-store-page .public-product-card-media,
  .public-store-page .public-store-products.is-list .public-product-card-media {
    min-height: 0;
    margin: 0;
  }

  .public-store-page .public-product-card-body,
  .public-store-page .public-store-products.is-list .public-product-card-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px 12px;
  }

  .public-store-page .public-product-card-body p {
    display: none;
  }

  .public-store-page .public-product-card-body footer,
  .public-store-page .public-store-products.is-list .public-product-card-body footer {
    width: 100%;
    min-width: 0;
    margin-top: auto;
    padding-top: 8px;
    border-top: 1px solid color-mix(in srgb,var(--theme-border,#e5e5e5) 74%,transparent);
  }

  .public-product-page .public-product-buy {
    grid-template-columns: minmax(0,1fr);
  }

  .public-product-page .public-product-buy > a:last-child {
    grid-column: auto;
  }
}

.public-checkout-page .public-checkout-main {
  padding-top: 20px;
  padding-bottom: 48px;
}
.public-checkout-shell {
  max-width: 1180px;
}
.public-checkout-page .public-checkout-breadcrumb {
  margin-bottom: 16px;
  font-size: 11px;
}
.public-checkout-heading {
  align-items: center;
  gap: 24px;
  margin-bottom: 16px;
}
.public-checkout-title {
  min-width: 0;
}
.public-checkout-page .public-checkout-eyebrow {
  margin-bottom: 4px;
  font-size: 11px;
  letter-spacing: .075em;
}
.public-checkout-page .public-checkout-heading h1 {
  font-size: clamp(24px,2.8vw,36px);
  letter-spacing: -.025em;
}
.public-checkout-page .public-checkout-heading p {
  max-width: 600px;
  margin-top: 8px;
  font-size: 11px;
  line-height: 1.5;
}
.public-checkout-header-side {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 12px;
}
.public-checkout-steps {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 8px;
  border: 1px solid var(--theme-border,#e5e5e5);
  border-radius:var(--gv-radius-lg, 8px);
  background: var(--theme-surface,#fff);
  box-shadow:none;
}
.public-checkout-steps > span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--theme-text-muted,#737373);
  font-size: 11px;
  font-weight:600;
  white-space: nowrap;
}
.public-checkout-steps > span b {
  width: 19px;
  height: 19px;
  display: grid;
  place-items: center;
  border-radius: var(--gv-radius-pill);
  background: var(--theme-surface-subdued,#f5f5f5);
  color: var(--theme-text-secondary,#737373);
  font-size: 11px;
}
.public-checkout-steps > span.is-complete,
.public-checkout-steps > span.is-current {
  color: var(--theme-text,#171717);
}
.public-checkout-steps > span.is-complete b,
.public-checkout-steps > span.is-current b {
  background: color-mix(in srgb,var(--accent,#171717) 12%,var(--theme-surface,#fff));
  color: var(--accent,#171717);
}
.public-checkout-steps > i {
  width: 14px;
  height: 1px;
  background: var(--theme-border,#e5e5e5);
}
.public-checkout-page .public-checkout-continue {
  min-height: 38px;
  padding-inline: 12px;
  border-radius:12px;
  font-size: 11px;
}

.public-checkout-layout {
  grid-template-columns: minmax(0,1.62fr) minmax(318px,.72fr);
  gap: 16px;
}
.public-checkout-card,
.public-checkout-empty {
  border-radius:var(--gv-radius-lg, 8px);
  border-color: color-mix(in srgb,var(--theme-border,#e5e5e5) 94%,transparent);
  box-shadow:none;
}
.public-checkout-panel-head {
  min-height: 70px;
  padding: 16px 16px;
}
.public-checkout-panel-kicker {
  color: var(--accent,#171717);
  font-size: 11px;
  font-weight:600;
  letter-spacing: .065em;
  text-transform: uppercase;
}
.public-checkout-panel-head strong {
  font-size: 14px;
  letter-spacing: -.01em;
}
.public-checkout-panel-head small {
  font-size: 11px;
}
.public-checkout-page .public-checkout-count,
.public-checkout-secure-badge {
  min-height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 8px;
  border-radius:8px;
  background: color-mix(in srgb,var(--accent,#171717) 8%,var(--theme-surface-subdued,#f5f5f5));
  color: var(--accent,#171717);
  font-size: 11px;
  font-weight:600;
  letter-spacing: .025em;
}

.public-checkout-item {
  grid-template-columns: 28px 82px minmax(0,1fr);
  gap: 12px;
  padding: 16px 16px;
}
.public-checkout-page .public-checkout-item-index {
  width: 26px;
  height: 26px;
  border-radius:8px;
  font-size: 11px;
}
.public-checkout-item-media {
  width: 82px;
  height: 82px;
  padding: 8px;
  border-radius:var(--gv-radius-lg, 8px);
  background: color-mix(in srgb,var(--theme-surface-subdued,#f5f5f5) 88%,var(--theme-surface,#fff));
}
.public-checkout-item-media img {
  object-fit: contain;
  border-radius:8px;
}
.public-checkout-page .public-checkout-item-copy {
  gap: 12px;
}
.public-checkout-item-title {
  gap: 16px;
}
.public-checkout-item-title > div:first-child {
  min-width: 0;
  display: grid;
  gap: 8px;
}
.public-checkout-page .public-checkout-item-title a {
  font-size: 13px;
  line-height: 1.38;
}
.public-checkout-page .public-checkout-item-meta {
  gap: 4px;
}
.public-checkout-page .public-checkout-item-meta span {
  padding: 4px 8px;
  border-radius:8px;
  font-size: 11px;
}
.public-checkout-item-price {
  min-width: 96px;
  display: grid;
  justify-items: end;
  gap: 4px;
}
.public-checkout-item-price small {
  color: var(--theme-text-muted,#737373);
  font-size: 11px;
  font-weight:600;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.public-checkout-item-price strong {
  color: var(--theme-text,#171717);
  font-size: 16px;
  letter-spacing: -.015em;
  white-space: nowrap;
}
.public-checkout-item-summary {
  gap: 8px;
}
.public-checkout-item-summary > div {
  padding: 8px 8px;
  border-radius:8px;
  background: color-mix(in srgb,var(--theme-surface-subdued,#f5f5f5) 88%,var(--theme-surface,#fff));
}
.public-checkout-page .public-checkout-item-summary span {
  font-size: 11px;
}
.public-checkout-page .public-checkout-item-summary strong {
  font-size: 11px;
}
.public-checkout-item-actions {
  min-height: 25px;
  padding-top: 2px;
}
.public-checkout-page .public-checkout-item-actions > a {
  font-size: 11px;
}
.public-checkout-page .public-checkout-item-state {
  min-height: 22px;
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius:8px;
  font-size: 11px;
}

.public-checkout-summary {
  top: 76px;
}
.public-checkout-summary-head {
  min-height: 68px;
}
.public-checkout-summary-body {
  gap: 12px;
  padding: 16px;
}
.public-checkout-total-lines {
  gap: 8px;
  padding: 1px 1px 2px;
}
.public-checkout-page .public-checkout-total-lines > div {
  font-size: 11px;
}
.public-checkout-page .public-checkout-total-lines > div.is-total {
  margin-top: 4px;
  padding: 12px 12px 12px;
  border: 1px solid color-mix(in srgb,var(--accent,#171717) 26%,var(--theme-border,#e5e5e5));
  border-radius:var(--gv-radius-lg, 8px);
  background: color-mix(in srgb,var(--accent,#171717) 6%,var(--theme-surface,#fff));
}
.public-checkout-page .public-checkout-total-lines .is-total strong {
  color: var(--theme-text,#171717);
  font-size: 24px;
  letter-spacing: -.025em;
}
.public-checkout-payment {
  gap: 8px;
}
.public-checkout-wallet {
  grid-template-columns: 38px minmax(0,1fr) auto;
  min-height: 68px;
  padding: 12px;
  border-radius:var(--gv-radius-lg, 8px);
}
.public-checkout-wallet-status {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  padding: 3px 7px;
  border-radius:8px;
  font-size: 11px;
  font-weight:600;
  white-space: nowrap;
}
.public-checkout-wallet-status.is-ready {
  background: rgba(33,192,139,.1);
  color: var(--accent,#171717);
}
.public-checkout-wallet-status.is-low {
  background: rgba(217,67,78,.09);
  color: #d9434e;
}
.public-checkout-login {
  grid-template-columns: 40px minmax(0,1fr);
  gap: 12px 12px;
  padding-top: 1px;
}
.public-checkout-page .public-checkout-login h2 {
  font-size: 14px;
}
.public-checkout-page .public-checkout-login p {
  font-size: 11px;
}
.public-checkout-page .public-checkout-login .button,
.public-checkout-pay,
.public-checkout-wallet-link {
  min-height: 44px;
  border-radius: var(--gv-radius-button);
  font-size: 11px;
  font-weight: 500;
}
.public-checkout-balance-error {
  border-radius:8px;
  font-size: 11px;
}
.public-checkout-submit-zone {
  display: grid;
  gap: 8px;
  padding-top: 2px;
}
.public-checkout-pay {
  background: var(--accent,#171717);
  border-color: var(--accent,#171717);
  color: var(--accent-contrast,#ffffff);
  box-shadow:var(--gv-shadow-subtle,0 1px 2px rgba(0,0,0,.05));
}
.public-checkout-pay:not(:disabled):hover {
  filter: brightness(.97);
}
.public-checkout-page .public-checkout-engine-note {
  text-align: center;
  font-size: 11px;
  line-height: 1.5;
}

.public-checkout-empty {
  min-height: 250px;
  grid-template-columns: 58px minmax(0,500px) auto;
  gap: 16px;
  padding: 28px 32px;
}
.public-checkout-empty-icon {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius:var(--gv-radius-lg, 8px);
  background: color-mix(in srgb,var(--accent,#171717) 9%,var(--theme-surface-subdued,#f5f5f5));
  color: var(--accent,#171717);
}
.public-checkout-empty-copy {
  display: grid;
  gap: 4px;
}
.public-checkout-empty-copy > span {
  color: var(--accent,#171717);
  font-size: 11px;
  font-weight:600;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.public-checkout-page .public-checkout-empty h2 {
  font-size: 18px;
  letter-spacing: -.015em;
}
.public-checkout-page .public-checkout-empty p {
  max-width: 480px;
  margin-top: 0;
  font-size: 11px;
  line-height: 1.55;
}
.public-checkout-empty-action {
  min-width: 122px;
  min-height: 42px;
  justify-content: center;
  border-radius: var(--gv-radius-button);
  font-size: 11px;
  font-weight: 500;
}

/* Premium dark checkout */
html[data-theme="dark"] .public-checkout-page .public-checkout-steps,
html[data-theme="dark"] .public-checkout-page .public-checkout-card,
html[data-theme="dark"] .public-checkout-page .public-checkout-empty {
  background: var(--gv-surface) ;
  border-color: var(--gv-border) ;
  color: var(--gv-text) ;
  box-shadow:none;
}
html[data-theme="dark"] .public-checkout-page .public-checkout-item-media,
html[data-theme="dark"] .public-checkout-page .public-checkout-item-summary > div,
html[data-theme="dark"] .public-checkout-page .public-checkout-wallet,
html[data-theme="dark"] .public-checkout-page .public-checkout-steps > span b {
  background: var(--gv-surface-subtle) ;
  border-color: var(--gv-border) ;
}
html[data-theme="dark"] .public-checkout-page .public-checkout-total-lines > div.is-total {
  background: var(--gv-surface-subtle) ;
  border-color: var(--gv-border-strong) ;
}
html[data-theme="dark"] .public-checkout-page .public-checkout-item-price strong,
html[data-theme="dark"] .public-checkout-page .public-checkout-total-lines > div.is-total strong,
html[data-theme="dark"] .public-checkout-page .public-checkout-steps > span.is-complete,
html[data-theme="dark"] .public-checkout-page .public-checkout-steps > span.is-current {
  color: var(--gv-text) ;
}

@container public-workspace (max-width: 1040px) {
  .public-checkout-header-side {
    align-items: flex-end;
    flex-direction: column;
  }

  .public-checkout-layout {
    grid-template-columns: minmax(0,1.45fr) minmax(300px,.72fr);
  }
}
@container public-workspace (max-width: 900px) {
  .public-checkout-heading {
    align-items: flex-start;
  }

  .public-checkout-header-side {
    align-items: flex-end;
  }

  .public-checkout-layout {
    grid-template-columns: minmax(0,1fr);
  }

  .public-checkout-summary {
    position: static;
  }
}
@media (max-width: 720px) {
.public-checkout-page .public-checkout-main {
    padding-top: 16px;
  }
}

@container public-workspace (max-width: 720px) {
  .public-checkout-heading {
    gap: 12px;
  }

  .public-checkout-header-side {
    width: 100%;
    align-items: stretch;
    flex-direction: column;
  }

  .public-checkout-steps {
    width: 100%;
    justify-content: space-between;
  }

  .public-checkout-steps > i {
    flex: 1 1 18px;
    max-width: 52px;
  }

  .public-checkout-page .public-checkout-continue {
    width: max-content;
  }

  .public-checkout-item {
    grid-template-columns: 66px minmax(0,1fr);
    gap: 12px;
    padding: 12px;
  }

  .public-checkout-page .public-checkout-item-index {
    display: none;
  }

  .public-checkout-item-media {
    width: 66px;
    height: 66px;
  }

  .public-checkout-item-summary {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}
@media (max-width: 520px) {
.public-checkout-shell {
    padding-inline: 12px;
  }
}

@container public-workspace (max-width: 520px) {
  .public-checkout-page .public-checkout-heading h1 {
    font-size: 30px;
  }

  .public-checkout-steps {
    padding: 8px;
  }

  .public-checkout-steps > span {
    font-size: 11px;
  }

  .public-checkout-steps > span b {
    width: 18px;
    height: 18px;
  }

  .public-checkout-panel-head {
    min-height: 64px;
    padding: 12px 12px;
  }

  .public-checkout-item {
    grid-template-columns: 58px minmax(0,1fr);
  }

  .public-checkout-item-media {
    width: 58px;
    height: 58px;
    padding: 4px;
  }

  .public-checkout-item-title {
    grid-template-columns: minmax(0,1fr);
    gap: 8px;
  }

  .public-checkout-item-price {
    min-width: 0;
    justify-items: start;
  }

  .public-checkout-item-price small {
    display: none;
  }

  .public-checkout-item-summary {
    grid-template-columns: minmax(0,1fr);
  }

  .public-checkout-summary-body {
    padding: 12px;
  }

  .public-checkout-wallet {
    grid-template-columns: 36px minmax(0,1fr);
  }

  .public-checkout-wallet-status {
    grid-column: 2;
    justify-self: start;
  }

  .public-checkout-empty {
    grid-template-columns: minmax(0,1fr);
    justify-items: center;
    min-height: 280px;
    padding: 28px 20px;
    text-align: center;
  }

  .public-checkout-empty-copy {
    justify-items: center;
  }

  .public-checkout-empty-action {
    width: 100%;
    max-width: 220px;
  }
}

/* Commerce canvas gutters are token-driven so store/product stay wide without touching other public pages. */
@media (max-width: 980px) {
  :root { --ecom-page-gutter: 12px; }
}
@media (max-width: 560px) {
  :root { --ecom-page-gutter: 9px; }
}

/* ========================================================================== */
/* Public storefront breadcrumb navigation                                    */
/* ========================================================================== */
.public-store-breadcrumb {
  min-height: 36px;
  gap: 8px;
  margin-bottom: 16px;
  color: var(--theme-text-muted, #64748b);
  font-size: 11px;
  font-weight:600;
  line-height: 1.35;
}

.public-store-breadcrumb :is(a,strong) {
  min-width: 0;
  max-width: 100%;
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  border-radius: 8px;
}

.public-store-breadcrumb a {
  padding-inline: 8px;
  color: var(--theme-text-secondary, #475569);
  text-decoration: none;
  transition: color 120ms ease, background-color 120ms ease, box-shadow 120ms ease;
}

@media (hover: hover) {
  .public-store-breadcrumb a:hover {
    background: color-mix(in srgb, var(--theme-action, #2563eb) 7%, var(--theme-surface, #fff));
    color: var(--theme-action, #2563eb);
  }
}

.public-store-breadcrumb a:focus-visible {
  outline: 0;
  color: var(--theme-action, #2563eb);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--theme-action, #2563eb) 18%, transparent);
}

.public-store-breadcrumb > span {
  flex: 0 0 auto;
  color: color-mix(in srgb, var(--theme-text-muted, #64748b) 66%, transparent);
  font-size: 13px;
  font-weight:500;
}

.public-store-breadcrumb strong {
  min-width: 0;
  padding-inline: 8px;
  color: var(--theme-text, #171717);
  font-weight:600;
  display: block;
  overflow-wrap: anywhere;
  white-space: normal;
}

@container public-workspace (max-width: 640px) {
  .public-store-breadcrumb {
    min-height: 32px;
    gap: 4px;
    margin-bottom: 12px;
    white-space: normal;
  }

  .public-store-breadcrumb :is(a,strong) {
    min-height: 26px;
    padding-inline: 4px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .public-store-breadcrumb a {
    transition: none;
  }
}

.public-commerce-cart-button b[data-commerce-cart-count]{
  font-weight: 500;
}

/* List means a real compact row, not a wide card with a large media panel. */
.public-store-page .public-store-products.is-list{
  gap: 8px;
}
.public-store-page .public-store-products.is-list .public-product-card{
  border-radius:8px;
}
.public-store-page .public-store-products.is-list .public-product-card-media{
  aspect-ratio:auto;
}
.public-store-page .public-store-products.is-list .public-product-card-media>span :is(svg){
  width:20px;
  height:20px;
}
.public-store-page .public-store-products.is-list .public-product-card-body{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:"meta footer" "title footer";
  grid-template-rows:auto auto;
  align-content:center;
  column-gap:16px;
  row-gap:4px;
}
.public-store-page .public-store-products.is-list .public-product-card-meta{
  grid-area:meta;
  gap: 4px;
}
.public-store-page .public-store-products.is-list .public-product-card-title{
  grid-area:title;
  min-height:0;
  max-height:2.5em;
  overflow:hidden;
  font-size:12px;
  line-height:1.25;
}
.public-store-page .public-store-products.is-list .public-product-card-body>p{
  display:none;
}
.public-store-page .public-store-products.is-list .public-product-card-body footer{
  grid-area:footer;
  min-width:145px;
  margin:0;
  padding:0;
  border:0;
  align-self:center;
}
.public-store-page .public-store-products.is-list .public-product-card-price small{
  font-size: 11px;
}
.public-store-page .public-store-products.is-list .public-product-card-price strong{
  font-size:13px;
}
.public-store-page .public-store-products.is-list .public-product-card-open{
  width:32px;
  min-width:32px;
  height:32px;
}
@container public-workspace (max-width:720px) {
  .public-store-page .public-store-products.is-list .public-product-card {
    grid-template-columns:58px minmax(0,1fr);
    grid-template-rows:66px;
    height:66px;
    min-height:66px;
  }

  .public-store-page .public-store-products.is-list .public-product-card-media {
    width:58px;
    min-width:58px;
    height:66px;
    min-height:66px;
  }

  .public-store-page .public-store-products.is-list .public-product-card-body {
    min-height:66px;
    padding: 8px 8px;
    column-gap:8px;
  }

  .public-store-page .public-store-products.is-list .public-product-card-body footer {
    min-width:112px;
  }
}

.public-commerce-cart-button{
  grid-template-columns:15px auto 18px;
  column-gap: 8px;
}
.public-commerce-cart-button>svg{
  grid-column:1;
}
.public-commerce-cart-button>span{
  grid-column:2;
}
.public-commerce-cart-button b[data-commerce-cart-count]{
  grid-column:3;
}

.public-commerce-cart-button{
  position:relative;
}
.public-commerce-cart-button>svg{
  width:15px;
  height:15px;
  flex:0 0 15px;
  margin:0;
}
.public-commerce-cart-button>span{
  display:block;
  margin:0;
  line-height:1;
  white-space:nowrap;
}
.public-commerce-cart-button b[data-commerce-cart-count]{
  position:static;
  inset:auto;
  transform:none;
  translate:none;
  flex:0 0 18px;
  width:18px;
  min-width:18px;
  max-width:18px;
  height:18px;
  min-height:18px;
  max-height:18px;
  padding:0;
  margin:0;
  display:grid;
  place-items:center;
  border-radius: var(--gv-radius-pill);
  line-height:18px;
  font-size: 11px;
}

.public-commerce-cart-panel{
  border-top:0;
  border-bottom:0;
  border-right:0;
}

.public-commerce-cart-button{
  flex-wrap:nowrap;
  gap: 8px;
}

.public-commerce-cart-icon{
  flex:0 0 16px;
}

.public-commerce-cart-count{
  flex:0 0 18px;
}
html.public-commerce-cart-open,
html.public-commerce-cart-open body{
  overflow:hidden;
  overscroll-behavior:none;
}
.public-commerce-cart{
  position:fixed;
  inset:0;
  z-index:12000;
  width:100vw;
  height:100dvh;
  pointer-events:none;
  background:rgba(0,0,0,0);
  opacity:0;
  visibility:hidden;
  transition:background-color .16s ease,opacity .16s ease,visibility .16s ease;
}
.public-commerce-cart.is-open{
  pointer-events:auto;
  opacity:1;
  visibility:visible;
  background:rgba(0,0,0,.32);
}
.public-commerce-cart-panel{
  position:absolute;
  inset:0 0 0 auto;
  top:0;
  right:0;
  bottom:0;
  left:auto;
  width:min(440px,100vw);
  max-width:100vw;
  height:100dvh;
  min-height:100dvh;
  max-height:100dvh;
  margin:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  overflow:hidden;
  border:0;
  border-inline-start:1px solid var(--theme-border,#e5e5e5);
  border-radius:0;
  background:var(--theme-surface,#fff);
  box-shadow:none;
  transform:translate3d(100%,0,0);
  transition:transform .18s cubic-bezier(.2,.8,.2,1);
  z-index:1;
}
.public-commerce-cart.is-open .public-commerce-cart-panel{
  transform:translate3d(0,0,0);
}
.public-commerce-cart-panel>header{
  position:relative;
  top:auto;
  z-index:2;
  min-height:58px;
  padding: 12px 16px;
  background:var(--theme-surface,#fff);
}
.public-commerce-cart-body{
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.public-commerce-cart-panel>footer{
  position:relative;
  bottom:auto;
  z-index:2;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom,0px));
  background:var(--theme-surface,#fff);
}
@media(max-width:760px){
  .public-commerce-cart-panel{
    width:100vw;
    min-width:100vw;
    max-width:100vw;
    border-inline-start:0;
  }
}

/* ========================================================================== */

/* ========================================================================== */
.public-commerce-cart-button{
  grid-column:3;
  justify-self:end;
  border:1px solid #262626;
  border-radius: var(--gv-radius-button);
  background:#111;
  color:#ededed;
  box-shadow:none;
  line-height:1;
}
.public-commerce-cart-button:hover,
.public-commerce-cart-button:focus-visible{
  background:#171717;
  border-color:#3a3a3a;
}
.public-commerce-cart-inner{
  margin:0;
  padding:0;
  line-height:1;
}
.public-commerce-cart-icon{
  grid-column:1;
  width:16px;
  height:16px;
  display:grid;
  place-items:center;
  margin:0;
  padding:0;
  line-height:0;
}
.public-commerce-cart-icon>svg{
  display:block;
  width:16px;
  height:16px;
  margin:0;
}
.public-commerce-cart-label{
  grid-column:2;
  margin:0;
  padding:0;
  font-size:12px;
  font-weight:600;
}
.public-commerce-cart-count{
  grid-column:3;
  inset:auto;
  translate:none;
  width:18px;
  min-width:18px;
  max-width:18px;
  height:18px;
  min-height:18px;
  max-height:18px;
  display:grid;
  place-items:center;
  padding:0;
  border-radius: var(--gv-radius-pill);
  background:var(--accent,#171717);
  color:var(--accent-contrast,#ffffff);
  font-size: 11px;
  font-weight:600;
  line-height:18px;
}
@media(max-width:560px){
  .public-commerce-cart-count{
    width:17px;
    min-width:17px;
    max-width:17px;
    height:17px;
    min-height:17px;
    max-height:17px;
    line-height:17px;
  }
}

/* ========================================================================== */

/* ========================================================================== */
.public-commerce-cart-button{
  margin:0;
  align-self:center;
  white-space:nowrap;
}
.public-commerce-cart-inner{
  width:auto;
  min-width:max-content;
  height:100%;
  display:inline-grid;
  grid-template-columns:16px auto 18px;
  align-items:center;
  justify-content:center;
  column-gap: 8px;
  white-space:nowrap;
}
.public-commerce-cart-icon,
.public-commerce-cart-label,
.public-commerce-cart-count{
  align-self:center;
}
.public-commerce-cart-label{
  display:inline;
  width:auto;
  min-width:max-content;
  white-space:nowrap;
  line-height:1;
}
.public-commerce-cart-count{
  position:static;
  transform:none;
  margin:0;
}
@media(max-width:560px){
  .public-commerce-cart-button{
    width:auto;
  }
  .public-commerce-cart-inner{
    grid-template-columns:16px auto 18px;
    column-gap: 4px;
  }
}

/* ========================================================================== */

/* ========================================================================== */
.public-commerce-cart-button{
  width:auto;
  min-width:92px;
  max-width:none;
  height:36px;
  min-height:36px;
  padding: 0 12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}
.public-commerce-cart-button>.public-commerce-cart-inner{
  width:100%;
  min-width:0;
  height:100%;
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin:0;
  padding:0;
  line-height:1;
  white-space:nowrap;
}
.public-commerce-cart-button>.public-commerce-cart-inner>.public-commerce-cart-icon{
  width:17px;
  min-width:17px;
  height:17px;
  flex:0 0 17px;
  display:grid;
  place-items:center;
  margin:0;
  padding:0;
}
.public-commerce-cart-button>.public-commerce-cart-inner>.public-commerce-cart-icon>svg{
  width:17px;
  height:17px;
}
.public-commerce-cart-button>.public-commerce-cart-inner>.public-commerce-cart-label{
  width:auto;
  min-width:max-content;
  display:inline-block;
  flex:0 0 auto;
  margin:0;
  padding:0;
  font-size:12px;
  line-height:1;
  white-space:nowrap;
}
.public-commerce-cart-button>.public-commerce-cart-inner>.public-commerce-cart-count{
  position:static;
  inset:auto;
  width:19px;
  min-width:19px;
  max-width:19px;
  height:19px;
  min-height:19px;
  max-height:19px;
  flex:0 0 19px;
  display:grid;
  place-items:center;
  margin:0;
  padding:0;
  transform:none;
  translate:none;
  line-height:19px;
}
@media(max-width:560px){
  .public-commerce-cart-button{
    min-width:90px;
    height:36px;
    min-height:36px;
    padding-inline: 8px;
  }
  .public-commerce-cart-button>.public-commerce-cart-inner{
    gap: 8px;
  }
}

.public-site #gv-order-modal .client-order-description-content {
  flex: 1 0 100%;
  width: 100%;
  min-width: 0;
  margin-top: 2px;
  padding: 16px 0 0;
  border-top: 0;
  border-bottom: 0;
  background: transparent;
}
.public-site #gv-order-modal .client-order-description-label {
  margin: 0 0 8px;
  color: var(--theme-text, #171717);
  font-size: 11px;
  font-weight: 600;
}
.public-site #gv-order-modal .client-order-description-content .rich-content {
  max-width: none;
  color: var(--theme-text-secondary, #737373);
  line-height: 1.7;
}

/* ========================================================================
   Canonical — canonical Store and product-card presentation
   Home, Catalog and Store inherit their chrome from public-chrome.css; this
   block owns only commerce content, filters and service cards.
   ======================================================================== */
body.public-store-page{
  background:var(--public-page,#f5f7fb);
}
.public-store-page .public-store-main{
  min-height:calc(100dvh - 180px);
  padding: 24px 0 56px;
  background:var(--public-page,#f5f7fb);
}
.public-store-page .public-store-main>.public-site-container{
  width:min(var(--ecom-content-max,1200px),calc(100% - 40px));
}
.public-store-page .public-store-breadcrumb{
  min-height:28px;
  margin: 0 0 16px;
  gap: 8px;
  color:var(--public-muted,#737373);
  font-size:11px;
}
.public-store-page .public-store-breadcrumb a{
  color:var(--public-text-soft,#404040);
  font-weight:600;
}
.public-store-page .public-store-breadcrumb strong{color:var(--public-text,#171717)}
.public-store-page .public-store-layout{
  grid-template-columns:252px minmax(0,1fr);
  gap:20px;
}
.public-store-page .public-store-filters,
.public-store-page .public-store-results-head,
.public-store-page .public-product-card,
.public-store-page .public-store-empty{
  border:1px solid var(--public-border,#e5e5e5);
  background:var(--public-surface,#fff);
  box-shadow:none;
}
.public-store-page .public-store-filters{
  position:sticky;
  top:calc(var(--gv-public-header-height,58px) + 50px);
}
.public-store-page .public-store-filter-head{
  min-height:66px;
  padding: 12px 16px;
  border-bottom-color:var(--public-border,#e5e5e5);
  background:var(--public-surface);
}
.public-store-page .public-store-filter-head strong{
  color:var(--public-text,#171717);
  font-size:14px;
  font-weight:600;
}
.public-store-page .public-store-filter-head small{color:var(--public-muted,#737373);font-size: 11px}
.public-store-page .public-store-filter-head>a{
  color:var(--public-primary,#2563eb);
  font-size: 11px;
  font-weight:600;
}
.public-store-page .public-store-filter-section{
  padding: 16px;
  border-bottom-color:var(--public-border,#e5e5e5);
}
.public-store-page .public-store-filter-section>strong{
  color:var(--public-text-soft,#404040);
  font-size: 11px;
  font-weight:600;
  letter-spacing:.055em;
}
.public-store-page .public-store-filter-section>a,
.public-store-page .public-store-group-filter-scroll>a{
  min-height:36px;
  padding: 8px 8px;
  border:1px solid transparent;
  border-radius:8px;
  color:var(--public-text-soft,#404040);
  font-size:11px;
  font-weight:500;
}
.public-store-page .public-store-filter-section a:is(:hover,.is-active){
  border-color:color-mix(in srgb,var(--public-primary,#2563eb) 18%,var(--public-border,#e5e5e5));
  background:var(--public-primary-soft,#eff6ff);
  color:var(--public-primary,#2563eb);
}
.public-store-page .public-store-filter-section a.is-active{font-weight:600}
.public-store-page .public-store-filter-section a b{
  min-width:22px;
  padding: 2px 4px;
  border-radius: var(--gv-radius-pill);
  background:color-mix(in srgb,var(--public-border,#e5e5e5) 48%,transparent);
  color:var(--public-muted,#737373);
  font-size: 11px;
  text-align:center;
}
.public-store-page .public-store-filter-section a.is-active b{
  background:color-mix(in srgb,var(--public-primary,#2563eb) 12%,transparent);
  color:var(--public-primary,#2563eb);
}
.public-store-page .public-store-results{gap:12px}
.public-store-page .public-store-applied{
  min-height:44px;
  border:1px solid var(--public-border,#e5e5e5);
  border-radius:12px;
  background:var(--public-surface,#fff);
  color:var(--public-text,#171717);
  box-shadow:none;
}
.public-store-page .public-store-applied>div a{
  background:var(--public-primary-soft,#f5f5f5);
  color:var(--public-primary,#2563eb);
  border:1px solid color-mix(in srgb,var(--public-primary,#2563eb) 22%,var(--public-border,#e5e5e5));
}
.public-store-page .public-store-results-head{
  min-height:72px;
  padding: 16px 16px;
}
.public-store-page .public-store-results-head h1{
  color:var(--public-text,#171717);
  font-size:20px;
  font-weight: 500;
  letter-spacing:-.025em;
}
.public-store-page .public-store-results-head h1 span{
  color:var(--public-muted,#737373);
  font-size:11px;
  font-weight: 500;
}
.public-store-page .public-store-results-head small{color:var(--public-muted,#737373);font-size: 11px}
.public-store-page .public-store-results-controls select{
  height:38px;
  min-width:160px;
  border-color: var(--gv-input-border);
  border-radius: var(--gv-radius-input);
  background-color:var(--public-surface,#fff);
  color:var(--public-text,#171717);
}
.public-store-page .public-store-view-toggle{
  border-color:var(--public-border,#e5e5e5);
  border-radius:8px;
  background:var(--public-surface-soft,#eef2f7);
}
.public-store-page .public-store-view-toggle a{border-radius:6px;color:var(--public-muted,#737373)}
.public-store-page .public-store-view-toggle a.is-active{
  background:var(--public-primary,#2563eb);
  color:var(--gv-primary-text,#fff);
  box-shadow:none;
}
.public-store-page .public-store-products.is-grid{}
.public-store-page .public-product-card{
  min-height:100%;
}
.public-store-page .public-product-card-media{
  min-height:0;
  aspect-ratio:1/1;
  color:var(--public-muted,#737373);
}
.public-store-page .public-product-card-media img{
  width:100%;height:100%;padding:0;object-fit:contain;object-position:center;
}
.public-store-page .public-product-card-media em{
  top:10px;inset-inline-start:10px;left:auto;
  padding: 4px 8px;
  border:1px solid rgba(245,158,11,.34);
  background:#fff7e8;
  color:#b45309;
  font-size: 11px;
  font-weight:600;
  letter-spacing:.04em;
}
.public-store-page .public-product-card-meta{gap: 8px;min-height:22px}
.public-store-page .public-product-card-meta small{color:var(--public-muted,#737373);font-size: 11px}
.public-store-page .public-product-card-title{
  min-height:2.8em;
  color:var(--public-text,#171717);

}
.public-store-page .public-product-card-title:is(:hover,:focus-visible){color:var(--public-primary,#2563eb)}
.public-store-page .public-product-card-body p{
  line-height:1.5;
}
.public-store-page .public-product-card-body footer{
  margin-top:auto;
}
.public-store-page .public-product-card-price{display:grid;gap: 4px}
.public-store-page .public-product-card-price small{
  color:var(--public-muted,#737373);
  font-size: 11px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.055em;
}
.public-store-page .public-product-card-body footer .public-product-card-price strong{
  color:var(--public-text,#171717);
  font-size:16px;
  font-weight:600;
}
.public-store-page .public-product-card-open{
  box-shadow:none;
}
.public-store-page .public-product-card-open:is(:hover,:focus-visible){
  border-color:var(--public-primary-hover,#1e40af);
  background:var(--public-primary-hover,#1e40af);
  box-shadow:none;
  filter:none;
}
.public-store-page .public-store-products.is-list .public-product-card{
  grid-template-columns:84px minmax(0,1fr);
  grid-template-rows:84px;
  min-height:84px;
  height:84px;
}
.public-store-page .public-store-products.is-list .public-product-card-media{
  width:84px;min-width:84px;height:84px;min-height:84px;border:0;border-inline-end:1px solid var(--public-border,#e5e5e5);
}
.public-store-page .public-store-products.is-list .public-product-card-body{min-height:84px;padding: 8px 12px}
.public-store-page .public-store-empty{border-radius:var(--gv-radius-lg, 12px);color:var(--public-muted,#737373)}
.public-store-page .public-store-pagination{margin-top: 8px}
.public-store-page .public-store-pagination a,
.public-store-page .public-store-pagination span{
  border-color:var(--public-border,#e5e5e5);
  background:var(--public-surface,#fff);
  color:var(--public-text-soft,#404040);
  border-radius:8px;
}
.public-store-page .public-store-pagination a.is-active{
  border-color:var(--public-primary,#2563eb);
  background:var(--public-primary,#2563eb);
  color:var(--gv-primary-text,#fff);
}
.public-store-mobile-filter-toggle{display:none}

html:is([data-theme="dark"],[data-public-base-theme="dark"]) .public-store-page .public-store-filter-head{
  background:var(--public-surface);
}
html:is([data-theme="dark"],[data-public-base-theme="dark"]) .public-store-page .public-product-card-media{
  background:var(--public-surface-soft);
}
html:is([data-theme="dark"],[data-public-base-theme="dark"]) .public-store-page .public-product-card-media em{
  border-color:rgba(251,191,36,.34);background:rgba(245,158,11,.13);color:#fbbf24;
}

@container public-workspace (max-width:1240px) {
  .public-store-page .public-store-products.is-grid {}
}
@media (max-width:900px) {
.public-store-page .public-store-main>.public-site-container{width:min(100% - 28px,var(--ecom-content-max,1200px))}
}

@container public-workspace (max-width:900px) {
  .public-store-page .public-store-layout {
    grid-template-columns: minmax(0,1fr);
    gap:12px;
  }

  .public-store-page .public-store-filters {
    position:static;
    top:auto;
    margin-bottom:2px;
  }

  .public-store-page .public-store-group-filter-scroll {
    max-height:240px;
  }
}
@media (max-width:760px) {
.public-store-page .public-store-main{padding: 16px 0 36px}
}

@container public-workspace (max-width:760px) {
  .public-store-page .public-store-breadcrumb {
    margin-bottom: 12px;
  }

  .public-store-page .public-store-results-head {
    min-height:0;
    align-items:flex-start;
    flex-direction:column;
    padding:12px;
  }

  .public-store-page .public-store-results-controls {
    width:100%;
    justify-content:space-between;
  }

  .public-store-page .public-store-results-controls form {
    min-width:0;
    flex:1;
  }

  .public-store-page .public-store-results-controls select {
    width:100%;
    min-width:0;
  }

  .public-store-page .public-store-products.is-grid {gap: 8px;}

  .public-store-page .public-product-card-body {
    padding: 12px;
    gap: 8px;
  }

  .public-store-page .public-product-card-title {
    font-size:11px;
  }

  .public-store-page .public-product-card-body p {
    display:none;
  }

  .public-store-page .public-product-card-body footer {
    padding-top:8px;
  }

  .public-store-page .public-product-card-body footer .public-product-card-price strong {
    font-size:13px;
  }

  .public-store-page .public-product-card-open {
    width:32px;
    min-width:32px;
    height:32px;
  }
}
@media (max-width:430px) {
.public-store-page .public-store-main>.public-site-container{width:calc(100% - 20px)}
}

@container public-workspace (max-width:430px) {
  .public-store-page .public-store-products.is-grid {}

  .public-store-page .public-product-card-title {
    font-size:12px;
  }
}

/* Store controls share one field boundary and a consistent input baseline. */
.public-store-page .public-store-filter-search { min-width:0; display:grid; grid-template-columns:minmax(0,1fr); gap:8px; margin:0; padding:16px; border-bottom:1px solid var(--public-border); }
.public-store-page .public-store-filter-search > label { font-size:13px; font-weight:500; color:var(--public-text); }
.public-store-page .public-store-filter-search > div { display:flex; align-items:center; gap:8px; height:40px; padding-inline: 12px; border:1px solid var(--public-border); border-radius:6px; background:var(--public-surface); color:var(--public-muted); }
.public-store-page .public-store-filter-search > div:focus-within { outline:2px solid var(--public-text); outline-offset:2px; }
.public-store-page .public-store-filter-search input { flex:1; width:0; min-width:0; height:38px; margin:0; padding:0; border:0; border-radius:0; outline:0; box-shadow:none; background:transparent; color:var(--public-text); font:inherit; font-size:14px; }
.public-store-page .public-store-filter-search input:focus { outline:0; box-shadow:none; }
.public-store-page .public-store-filter-search input::-webkit-search-cancel-button { display:none; }
.public-product-page .public-product-entry-grid { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; }
.public-product-page .public-product-entry-field { display:grid; align-content:start; gap:8px; min-width:0; margin:0; padding:0; border:0; color:var(--public-text); }
.public-product-page .public-product-entry-field > :is(span,legend) { display:flex; align-items:end; min-height:36px; padding:0; color:var(--public-text); font-size:13px; font-weight:500; line-height:18px; }
.public-product-page .public-product-entry-field.span-2 { grid-column:1/-1; }
.public-product-page .public-product-entry-field > :is(input,select,textarea), .public-product-page .public-product-entry-field .gv-select-trigger { width:100%; min-width:0; height:44px; min-height:44px; margin:0; padding: 12px 12px; border: 1px solid var(--gv-input-border); border-radius: var(--gv-radius-input); background:var(--public-surface); color:var(--public-text); box-shadow:none; font:inherit; font-size:14px; line-height:22px; }
.public-product-page .public-product-entry-field > textarea { height:auto; min-height:100px; resize:vertical; }
.public-product-page .public-product-entry-field > small { color:var(--public-muted); font-size:12px; line-height:1.5; }
.public-product-page .public-product-entry-field > :is(input,select,textarea):focus { outline:2px solid var(--public-text); outline-offset:2px; }
.public-product-page .public-product-choice-grid { display:flex; flex-wrap:wrap; align-items:center; gap: 12px 16px; min-height:44px; }
.public-product-page .public-product-choice-grid label { display:flex; align-items:center; gap:8px; font-size:14px; }
.public-product-page .public-product-choice-grid input { width:16px; height:16px; margin:0; }
.public-store-page .public-store-group-filter-scroll { scrollbar-width:thin; scrollbar-gutter:auto; padding-inline-end:0; }
@container public-workspace (max-width:600px) {
  .public-product-page .public-product-entry-grid {
    gap: 16px 12px;
  }

  .public-product-page .public-product-entry-field > :is(input,select,textarea), .public-store-page .public-store-filter-search input {
    font-size:16px;
  }

  .public-store-page .public-product-card-title {
    font-size:13px;
    line-height:1.45;
  }
}

/* --------------------------------------------------------------------------
   Dub commerce composition — unified product composer and flat catalog cards.
   -------------------------------------------------------------------------- */
.public-store-page .public-store-main,.public-product-page .public-product-main{background:var(--public-page);color:var(--public-text)}
.public-store-page .public-store-main>.public-site-container,.public-product-page .public-product-main>.public-site-container{width:min(1280px,calc(100% - 48px));max-width:1280px}
.public-store-page .public-store-results-head{border:1px solid var(--public-border);border-radius:12px;background:var(--public-surface);box-shadow:none}
.public-store-page .public-store-filters{border:1px solid var(--public-border);border-radius:12px;background:var(--public-surface);box-shadow:none;overflow:hidden}
.public-store-page .public-store-products{gap:12px}
.public-store-page .public-product-card{overflow:hidden;border:1px solid var(--public-border);border-radius: var(--gv-radius-card);background:var(--public-surface);box-shadow:none;transition:border-color 140ms ease,background-color 140ms ease,transform 140ms cubic-bezier(.2,.8,.2,1)}
.public-store-page .public-product-card:hover{border-color:var(--public-border-strong);background:var(--public-surface);transform:translateY(-1px);box-shadow:none}
.public-store-page .public-product-card-media{background:var(--public-surface-soft);border-bottom:1px solid var(--public-border)}
.public-store-page .public-product-card-body{padding: 16px;gap: 8px}
.public-store-page .public-product-card-title{font-size:14px;font-weight:500;line-height:1.4;letter-spacing:-.01em}
.public-store-page .public-product-card-body p{font-size:12px;color:var(--public-muted)}
.public-store-page .public-product-card-meta>span{padding: 3px 8px;border:0;border-radius: var(--gv-radius-pill);background:var(--public-surface-soft);color:var(--public-text-soft);font-size: 11px;font-weight:500;letter-spacing:0;text-transform:none}
.public-store-page .public-product-card-body footer{padding-top: 12px;border-top:1px solid var(--public-border)}
.public-store-page .public-product-card-open{width:34px;min-width:34px;height:34px;border:1px solid #000;border-radius:8px;background:#000;color:#fff;transition:background-color 140ms ease,box-shadow 140ms ease,transform 120ms ease}
.public-store-page .public-product-card-open:hover{background:#171717;border-color:#171717;box-shadow:0 0 0 4px rgba(0,0,0,.06)}
.public-store-page .public-product-card-open:active{transform:scale(.96)}
html:is([data-theme="dark"],[data-public-base-theme="dark"]) .public-store-page .public-product-card-open{border-color:#fff;background:#fff;color:#000}

.public-product-page .public-store-breadcrumb{margin: 20px 0 16px;color:var(--public-muted);font-size:12px}
.public-product-page .public-product-hero{display:grid;grid-template-columns:minmax(360px,.88fr) minmax(0,1.12fr);gap:16px;padding:0;margin-bottom:28px;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}
.public-product-page .public-product-image{min-height:560px;max-height:none;padding:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--public-border);border-radius:12px;background:var(--public-surface-soft);box-shadow:none}
.public-product-page .public-product-image img{width:100%;height:100%;max-width:520px;max-height:520px;object-fit:contain;border-radius:12px}
.public-product-page .public-product-summary{min-width:0;display:flex;flex-direction:column;gap: 20px;padding:28px;border:1px solid var(--public-border);border-radius:12px;background:var(--public-surface);box-shadow:none}
.public-product-page .public-product-title-row{align-items:flex-start;gap:16px}
.public-product-page .public-product-title-row h1{margin:0;color:var(--public-text);font-size: clamp(24px,2.4vw,36px);font-weight:500;line-height:1.15;letter-spacing:-.03em}
.public-product-page .public-product-title-row>div>a{display:inline-flex;margin-top: 8px;color:var(--public-muted);font-size:12px;font-weight:500;text-decoration:none}
.public-product-page .public-product-featured{border-radius: var(--gv-radius-pill);padding: 4px 8px;background:var(--public-surface-soft);color:var(--public-text);font-size:11px;font-weight:500}
.public-product-page .public-product-badges{display:flex;flex-wrap:wrap;gap: 8px}
.public-product-page .public-product-badges span{min-height:24px;padding:4px 9px;border:1px solid var(--public-border);border-radius: var(--gv-radius-pill);background:var(--public-surface);color:var(--public-text-soft);font-size:11px;font-weight:500;letter-spacing:0;text-transform:none}
.public-product-page .public-product-delivery{min-height:32px;padding: 0 12px;border:1px solid var(--public-border);border-radius:8px;background:var(--public-surface);font-size:12px}
.public-product-page .public-product-price{padding:0;border:0;border-radius:0;background:transparent;display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.public-product-page .public-product-price small{color:var(--public-muted);font-size:12px;font-weight:500}
.public-product-page .public-product-price strong{color:var(--public-text);font-size:30px;font-weight:500;letter-spacing:-.035em}
.public-product-page .public-product-entry-fields{gap: 16px;padding: 20px;border:1px solid var(--public-border);border-radius:12px;background:var(--public-surface-soft)}
.public-product-page .public-product-section-label{display:grid;gap:4px;margin:0 0 2px}
.public-product-page .public-product-section-label strong{font-size:13px;font-weight:600}.public-product-page .public-product-section-label small{font-size:12px;line-height:1.5;color:var(--public-muted)}
.public-product-page .public-product-entry-grid{gap: 16px}
.public-product-page .public-product-entry-field>:is(span,legend){min-height:0;font-size:12px;font-weight:500;color:var(--public-text)}
.public-product-page .public-product-entry-field>:is(input,select,textarea),.public-product-page .public-product-entry-field .gv-select-trigger{min-height:40px;height:40px;padding: 8px 12px;border: 1px solid var(--gv-input-border);border-radius: var(--gv-radius-input);background:var(--public-surface);box-shadow:none;transition:border-color 120ms ease,box-shadow 120ms ease,background-color 120ms ease}
.public-product-page .public-product-entry-field>textarea{height:auto;min-height:104px}
.public-product-page .public-product-entry-field>:is(input,select,textarea):focus,.public-product-page .public-product-entry-field .gv-select-trigger:focus-visible{outline:0;border-color:var(--public-border-strong);box-shadow:0 0 0 4px color-mix(in srgb,var(--public-text) 7%,transparent)}
.public-product-page .public-product-buy{margin-top:auto;padding-top:16px;border-top:1px solid var(--public-border);gap:8px}
.public-product-page .public-product-buy :is(.button,button,a){min-height:40px;border-radius: var(--gv-radius-button);transition:background-color 140ms ease,border-color 140ms ease,box-shadow 140ms ease,transform 120ms ease}
.public-product-page .public-product-buy :is(.button,button,a):active{transform:scale(.985)}
@media (max-width:900px) {
.public-store-page .public-store-main>.public-site-container,.public-product-page .public-product-main>.public-site-container{width:min(100% - 28px,1280px)}
}

@container public-workspace (max-width:900px) {
  .public-product-page .public-product-hero {
    grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);
  }

  .public-product-page .public-product-image {
    min-height:420px;
    padding: 24px;
  }

  .public-product-page .public-product-summary {
    padding: 24px;
  }
}
@container public-workspace (max-width:700px) {
  .public-product-page .public-product-hero {
    grid-template-columns: minmax(0,1fr);
    gap:12px;
  }

  .public-product-page .public-product-image {
    min-height:260px;
    border:1px solid var(--public-border);
    border-radius:12px;
  }

  .public-product-page .public-product-summary {
    padding: 20px;
    border-radius:12px;
  }

  .public-product-page .public-product-title-row h1 {
    font-size:24px;
  }
}
