/* Zestia storefront: complete non-menu surface compositions.
   ----------------------------------------------------------
   The menu catalogue keeps its own audited stylesheet. This file gives the
   rest of the public journey the same five structural choices without
   duplicating Jinja commerce logic or owning corporate colours.

   Required wrapper contract:
     .zestia-storefront-surface[data-zestia-layout][data-zestia-surface]

   Palette tokens remain tenant-owned. Every foreground/background pair below
   uses the existing theme contract, with readable fail-safe values only. */

:where(
  .zestia-storefront-surface:not(.zestia-storefront-surface--menu),
  .zestia-storefront-chrome
) {
  --zss-page: var(--bg, #080808);
  --zss-page-deep: var(--bg-deep, #050505);
  --zss-surface: var(--surface, #151515);
  --zss-text: var(--text, #f7f7f7);
  --zss-muted: var(--muted, #b8b8b8);
  --zss-brand: var(--brand, #e44b38);
  --zss-accent: var(--accent, #f4b942);
  --zss-border: var(--border, #3a3a3a);
  --zss-gap: clamp(1rem, 2.4vw, 2.75rem);
  --zss-pad: clamp(1rem, 3vw, 3rem);
  --zss-radius: var(--zsf-card-radius, 18px);
  color: var(--zss-text);
}

.zestia-storefront-surface:not(.zestia-storefront-surface--menu) {
  width: 100%;
  min-width: 0;
  isolation: isolate;
  container: zestia-non-menu-surface / inline-size;
}

.zestia-storefront-surface:not(.zestia-storefront-surface--menu)
  .zestia-storefront-surface__body {
  width: min(100%, var(--zss-measure, 92rem));
  min-width: 0;
  margin-inline: auto;
}

.zestia-storefront-surface:not(.zestia-storefront-surface--menu)
  :where(input, select, textarea) {
  color: var(--zss-text);
  border-color: var(--zss-border);
  background: var(--zss-page-deep);
}

.zestia-storefront-surface:not(.zestia-storefront-surface--menu)
  :where(input, textarea)::placeholder {
  color: var(--zss-muted);
  opacity: .82;
}

.zestia-storefront-surface:not(.zestia-storefront-surface--menu)
  :where(a, button, input, select, textarea):focus-visible,
.zestia-storefront-chrome :where(a, button):focus-visible {
  outline: 3px solid var(--zss-accent);
  outline-offset: 3px;
}

.zestia-storefront-surface:not(.zestia-storefront-surface--menu)
  :where(.card, .auth-card, .checkout-panel, .portal-account-panel, .legal-page) {
  min-width: 0;
  color: var(--zss-text);
  border-color: var(--zss-border);
  background-color: var(--zss-surface);
}

.zestia-storefront-surface:not(.zestia-storefront-surface--menu)
  :where(.muted, .detail-label, .auth-card__switch, .product-page__lead) {
  color: var(--zss-muted);
}

/* Every requested non-menu route has an explicit content measure. */
.zestia-storefront-surface--home { --zss-measure: 100%; }
.zestia-storefront-surface--product { --zss-measure: 94rem; }
.zestia-storefront-surface--cart,
.zestia-storefront-surface--checkout { --zss-measure: 88rem; }
.zestia-storefront-surface--order_confirmation,
.zestia-storefront-surface--tracking { --zss-measure: 82rem; }
.zestia-storefront-surface--multi_order { --zss-measure: 78rem; }
.zestia-storefront-surface--account { --zss-measure: 94rem; }
.zestia-storefront-surface--addresses,
.zestia-storefront-surface--login,
.zestia-storefront-surface--register,
.zestia-storefront-surface--password { --zss-measure: 76rem; }
.zestia-storefront-surface--privacy,
.zestia-storefront-surface--cookies,
.zestia-storefront-surface--terms,
.zestia-storefront-surface--shipping { --zss-measure: 72rem; }
.zestia-storefront-surface--sitemap { --zss-measure: 90rem; }
.zestia-storefront-surface--local_landing { --zss-measure: 90rem; }
.zestia-storefront-surface--maintenance,
.zestia-storefront-surface--403,
.zestia-storefront-surface--404,
.zestia-storefront-surface--500 { --zss-measure: 54rem; }

.zestia-storefront-surface--role-auth .zestia-storefront-surface__body,
.zestia-storefront-surface--role-system .zestia-storefront-surface__body {
  min-height: min(72svh, 780px);
  display: grid;
  align-items: center;
}

.zestia-storefront-surface--role-legal .legal-prose {
  line-height: 1.75;
  text-wrap: pretty;
}

.zestia-storefront-status {
  width: min(100%, 48rem);
  min-height: clamp(320px, 48svh, 540px);
  display: grid;
  align-content: center;
  justify-items: start;
  gap: 1rem;
  padding: clamp(2rem, 7vw, 5.5rem);
  color: var(--zss-text);
  border: 1px solid var(--zss-border);
  border-radius: var(--zss-radius);
  background: var(--zss-surface);
}

.zestia-storefront-status__code {
  color: var(--zss-accent);
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

/* ====================================================================== */
/* 1. Editorial: broad images, asymmetric copy and a quiet secondary rail. */

.zestia-storefront-surface[data-zestia-layout="editorial"]
  .zestia-storefront-surface__story-canvas {
  display: grid;
  gap: clamp(2rem, 5vw, 5.5rem);
}

.zestia-storefront-surface[data-zestia-layout="editorial"][data-zestia-surface="home"]
  :where(.hero, .carta-home__masthead, .gallery-hero) {
  min-height: min(78svh, 860px);
}

.zestia-storefront-surface[data-zestia-layout="editorial"][data-zestia-surface="home"]
  .home-section:nth-of-type(odd) {
  width: min(100%, 86rem);
  margin-inline: auto;
}

.zestia-storefront-surface[data-zestia-layout="editorial"][data-zestia-surface="home"]
  .home-section:nth-of-type(even) {
  width: min(92%, 74rem);
  margin-inline: auto 4%;
}

.zestia-storefront-surface[data-zestia-layout="editorial"][data-zestia-surface="product"]
  .product-page__hero {
  display: grid;
  grid-template-columns: minmax(0, 1.28fr) minmax(320px, .72fr);
  align-items: start;
  gap: clamp(2rem, 5vw, 5.75rem);
}

.zestia-storefront-surface[data-zestia-layout="editorial"][data-zestia-surface="product"]
  .product-page__media {
  min-height: min(68svh, 780px);
}

.zestia-storefront-surface[data-zestia-layout="editorial"]
  :where(.cart-layout, .order-detail-layout, .account-workspace, .portal-account-workspace) {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(300px, .7fr);
  align-items: start;
  gap: clamp(1.5rem, 4vw, 4.5rem);
}

.zestia-storefront-surface[data-zestia-layout="editorial"]
  :where(.portal-order-head, .order-head-card) {
  width: min(92%, 72rem);
  margin-inline: 0 auto;
}

.zestia-storefront-surface[data-zestia-layout="editorial"][data-zestia-surface="multi_order"]
  .cart-items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--zss-gap);
}

.zestia-storefront-surface[data-zestia-layout="editorial"]
  :where(.auth-shell, .portal-auth) {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(360px, .88fr);
  min-height: min(74svh, 800px);
  overflow: hidden;
}

.zestia-storefront-surface[data-zestia-layout="editorial"] .auth-visual {
  min-height: 100%;
}

.zestia-storefront-surface[data-zestia-layout="editorial"] .auth-card {
  align-self: center;
  width: min(100%, 34rem);
  margin-inline: auto;
}

.zestia-storefront-surface[data-zestia-layout="editorial"][data-zestia-surface="addresses"]
  .auth-shell {
  grid-template-columns: minmax(280px, .7fr) minmax(0, 1.3fr);
}

.zestia-storefront-surface[data-zestia-layout="editorial"] .legal-page {
  width: min(100%, 66rem);
  margin-inline: auto;
  padding: clamp(2rem, 6vw, 5rem);
  border-inline-start: clamp(5px, .7vw, 10px) solid var(--zss-brand);
}

.zestia-storefront-surface[data-zestia-layout="editorial"][data-zestia-surface="local_landing"]
  .category-hero__layout {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  align-items: center;
  gap: var(--zss-gap);
}

.zestia-storefront-surface[data-zestia-layout="editorial"]
  .zestia-storefront-status {
  margin-inline: 0 auto;
  border-radius: 0 var(--zss-radius) var(--zss-radius) 0;
}

.storefront-template-editorial .site-header {
  display: grid;
  grid-template-columns: minmax(220px, .75fr) minmax(0, 1.25fr) auto;
  align-items: center;
}

.storefront-template-editorial .site-footer .footer-main {
  display: grid;
  grid-template-columns: minmax(250px, .7fr) minmax(0, 1.3fr);
  gap: clamp(2rem, 6vw, 6rem);
}

/* ====================================================================== */
/* 2. Mercado: high information density and a consistent utility column. */

.zestia-storefront-surface[data-zestia-layout="mercado"]
  .zestia-storefront-surface__market-grid {
  width: 100%;
  display: grid;
  grid-auto-flow: row dense;
  gap: clamp(.75rem, 1.5vw, 1.4rem);
}

.zestia-storefront-surface[data-zestia-layout="mercado"][data-zestia-surface="home"]
  :where(.category-grid, .featured-grid, .promo-grid) {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
  gap: clamp(.65rem, 1.2vw, 1.1rem);
}

.zestia-storefront-surface[data-zestia-layout="mercado"][data-zestia-surface="product"]
  .product-page__hero {
  display: grid;
  grid-template-columns: minmax(280px, .78fr) minmax(0, 1.22fr);
  align-items: start;
  gap: clamp(1rem, 2.2vw, 2rem);
}

.zestia-storefront-surface[data-zestia-layout="mercado"][data-zestia-surface="product"]
  .product-page__facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .6rem;
}

.zestia-storefront-surface[data-zestia-layout="mercado"]
  :where(.cart-layout, .order-detail-layout, .account-workspace, .portal-account-workspace) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .38fr);
  align-items: start;
  gap: clamp(1rem, 2vw, 1.75rem);
}

.zestia-storefront-surface[data-zestia-layout="mercado"]
  :where(.cart-item, .portal-order-row, .address-card) {
  border-radius: calc(var(--zss-radius) * .55);
}

.zestia-storefront-surface[data-zestia-layout="mercado"]
  :where(.order-head-card__highlights, .order-head-card__meta) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: .65rem;
}

.zestia-storefront-surface[data-zestia-layout="mercado"][data-zestia-surface="multi_order"]
  .cart-items {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
}

.zestia-storefront-surface[data-zestia-layout="mercado"]
  :where(.auth-shell, .portal-auth) {
  display: grid;
  grid-template-columns: minmax(240px, .58fr) minmax(0, 1.42fr);
  min-height: min(66svh, 700px);
  align-items: stretch;
}

.zestia-storefront-surface[data-zestia-layout="mercado"] .auth-card {
  width: min(100%, 42rem);
  align-self: center;
  margin-inline: auto;
}

.zestia-storefront-surface[data-zestia-layout="mercado"] .legal-page {
  width: 100%;
  padding: clamp(1.5rem, 4vw, 3.5rem);
  columns: 2 28rem;
  column-gap: clamp(2rem, 5vw, 5rem);
  column-rule: 1px solid var(--zss-border);
}

.zestia-storefront-surface[data-zestia-layout="mercado"]
  .legal-page :where(h1, h2, h3, p, li) {
  break-inside: avoid;
}

.zestia-storefront-surface[data-zestia-layout="mercado"][data-zestia-surface="local_landing"]
  .category-hero__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, .46fr);
  gap: 1rem;
}

.zestia-storefront-surface[data-zestia-layout="mercado"]
  .zestia-storefront-status {
  width: min(100%, 54rem);
  grid-template-columns: minmax(90px, .24fr) minmax(0, 1fr);
  align-items: center;
}

.zestia-storefront-surface[data-zestia-layout="mercado"]
  .zestia-storefront-status :where(h1, p, a) {
  grid-column: 2;
}

.zestia-storefront-surface[data-zestia-layout="mercado"]
  .zestia-storefront-status__code {
  grid-column: 1;
  grid-row: 1 / span 3;
  font-size: clamp(2rem, 5vw, 4.5rem);
  writing-mode: vertical-rl;
}

.storefront-template-mercado .site-header {
  display: grid;
  grid-template-columns: minmax(210px, .58fr) minmax(0, 1.42fr);
  grid-template-rows: auto auto;
}

.storefront-template-mercado .site-header .main-nav {
  grid-column: 1 / -1;
  justify-content: space-between;
  border-top: 1px solid var(--border, #3a3a3a);
}

.storefront-template-mercado .site-footer .footer-main {
  display: grid;
  grid-template-columns: minmax(220px, .5fr) minmax(0, 1.5fr);
  gap: clamp(1.5rem, 4vw, 4rem);
}

/* ====================================================================== */
/* 3. Directo: narrow decision path with a persistent primary action. */

.zestia-storefront-surface[data-zestia-layout="directo"]
  .zestia-storefront-surface__action-stage {
  width: min(100%, 78rem);
  display: grid;
  gap: clamp(1.25rem, 2.5vw, 2.5rem);
  margin-inline: auto;
}

.zestia-storefront-surface[data-zestia-layout="directo"][data-zestia-surface="home"]
  .zestia-storefront-surface__action-stage {
  width: min(100%, 72rem);
}

.zestia-storefront-surface[data-zestia-layout="directo"][data-zestia-surface="home"]
  .home-section:first-child {
  min-height: min(58svh, 620px);
  display: grid;
  align-content: center;
}

.zestia-storefront-surface[data-zestia-layout="directo"][data-zestia-surface="product"]
  .product-page__hero {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(360px, 1.08fr);
  align-items: start;
  gap: clamp(1.25rem, 3vw, 2.75rem);
}

.zestia-storefront-surface[data-zestia-layout="directo"]
  :where(.product-page__summary, .checkout-panel, .portal-account-panel) {
  position: sticky;
  top: 104px;
  align-self: start;
}

.zestia-storefront-surface[data-zestia-layout="directo"]
  :where(.cart-layout, .order-detail-layout, .account-workspace, .portal-account-workspace) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, .52fr);
  align-items: start;
  gap: clamp(1.25rem, 3vw, 2.75rem);
}

.zestia-storefront-surface[data-zestia-layout="directo"]
  :where(.portal-order-head, .order-head-card, .cart-complete-order) {
  width: min(100%, 64rem);
  margin-inline: auto;
  text-align: center;
}

.zestia-storefront-surface[data-zestia-layout="directo"][data-zestia-surface="multi_order"]
  .cart-items {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: .75rem;
}

.zestia-storefront-surface[data-zestia-layout="directo"]
  :where(.auth-shell, .portal-auth) {
  width: min(100%, 38rem);
  min-height: auto;
  display: grid;
  margin-inline: auto;
}

.zestia-storefront-surface[data-zestia-layout="directo"] .auth-visual {
  display: none;
}

.zestia-storefront-surface[data-zestia-layout="directo"] .auth-card {
  width: 100%;
}

.zestia-storefront-surface[data-zestia-layout="directo"] .legal-page {
  width: min(100%, 58rem);
  margin-inline: auto;
  padding: clamp(1.5rem, 4vw, 3rem);
}

.zestia-storefront-surface[data-zestia-layout="directo"][data-zestia-surface="local_landing"]
  :where(.category-hero__layout, .featured-grid) {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
}

.zestia-storefront-surface[data-zestia-layout="directo"]
  .zestia-storefront-status {
  width: min(100%, 38rem);
  justify-items: stretch;
  text-align: center;
}

.zestia-storefront-surface[data-zestia-layout="directo"]
  .zestia-storefront-status__code {
  justify-self: center;
}

.zestia-storefront-surface[data-zestia-layout="directo"]
  .zestia-storefront-status .button {
  width: 100%;
}

.storefront-template-directo .site-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.storefront-template-directo .site-header .main-nav {
  justify-content: flex-end;
}

.storefront-template-directo .site-footer .footer-main {
  display: grid;
  grid-template-columns: minmax(220px, .6fr) minmax(0, 1.4fr);
  gap: 2rem;
}

/* ====================================================================== */
/* 4. Carta: typographic sequence, restrained imagery and ruled sections. */

.zestia-storefront-surface[data-zestia-layout="carta"]
  .zestia-storefront-surface__reading-column {
  width: min(100%, 70rem);
  display: flow-root;
  margin-inline: auto;
}

.zestia-storefront-surface[data-zestia-layout="carta"][data-zestia-surface="home"]
  .zestia-storefront-surface__reading-column {
  width: min(100%, 74rem);
}

.zestia-storefront-surface[data-zestia-layout="carta"][data-zestia-surface="product"]
  .product-page__hero {
  display: grid;
  grid-template-columns: minmax(240px, .72fr) minmax(0, 1.28fr);
  align-items: start;
  gap: clamp(2rem, 5vw, 5rem);
}

.zestia-storefront-surface[data-zestia-layout="carta"][data-zestia-surface="product"]
  .product-page__media {
  position: sticky;
  top: 92px;
  aspect-ratio: 4 / 5;
}

.zestia-storefront-surface[data-zestia-layout="carta"]
  :where(.cart-layout, .order-detail-layout, .account-workspace, .portal-account-workspace) {
  width: min(100%, 66rem);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem;
  margin-inline: auto;
}

.zestia-storefront-surface[data-zestia-layout="carta"]
  :where(.cart-item, .portal-order-row, .address-card, .order-ticket__item) {
  border-width: 0 0 1px;
  border-radius: 0;
  box-shadow: none;
}

.zestia-storefront-surface[data-zestia-layout="carta"]
  :where(.portal-order-head, .order-head-card) {
  border-width: 1px 0;
  border-radius: 0;
  box-shadow: none;
}

.zestia-storefront-surface[data-zestia-layout="carta"][data-zestia-surface="multi_order"]
  .cart-items {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
}

.zestia-storefront-surface[data-zestia-layout="carta"]
  :where(.auth-shell, .portal-auth) {
  width: min(100%, 50rem);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-height: auto;
  margin-inline: auto;
}

.zestia-storefront-surface[data-zestia-layout="carta"] .auth-visual {
  display: none;
}

.zestia-storefront-surface[data-zestia-layout="carta"] .auth-card {
  width: 100%;
  border-width: 1px 0;
  border-radius: 0;
  box-shadow: none;
}

.zestia-storefront-surface[data-zestia-layout="carta"] .legal-page {
  width: min(100%, 54rem);
  margin-inline: auto;
  padding: clamp(2rem, 5vw, 4rem) 0;
  border-width: 1px 0;
  border-radius: 0;
  box-shadow: none;
}

.zestia-storefront-surface[data-zestia-layout="carta"][data-zestia-surface="local_landing"]
  .category-hero__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem;
}

.zestia-storefront-surface[data-zestia-layout="carta"]
  .zestia-storefront-status {
  width: min(100%, 46rem);
  border-width: 1px 0;
  border-radius: 0;
  box-shadow: none;
}

.storefront-template-carta .site-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  border-bottom: 1px solid var(--border, #3a3a3a);
}

.storefront-template-carta .site-header .brand-tagline {
  display: none;
}

.storefront-template-carta .site-footer .footer-main {
  display: grid;
  grid-template-columns: minmax(220px, .6fr) minmax(0, 1.4fr);
  gap: clamp(2rem, 5vw, 5rem);
}

/* ====================================================================== */
/* 5. Galeria: visual lead, cinematic split panels and image-led rhythm. */

.zestia-storefront-surface[data-zestia-layout="galeria"]
  .zestia-storefront-surface__gallery-canvas {
  width: 100%;
  display: grid;
  gap: clamp(2.5rem, 6vw, 6.5rem);
}

.zestia-storefront-surface[data-zestia-layout="galeria"][data-zestia-surface="home"]
  :where(.hero, .gallery-hero) {
  min-height: min(84svh, 920px);
}

.zestia-storefront-surface[data-zestia-layout="galeria"][data-zestia-surface="product"]
  .product-page__hero {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(340px, .65fr);
  align-items: start;
  gap: clamp(2rem, 5vw, 5rem);
}

.zestia-storefront-surface[data-zestia-layout="galeria"][data-zestia-surface="product"]
  .product-page__media {
  min-height: min(76svh, 840px);
}

.zestia-storefront-surface[data-zestia-layout="galeria"]
  :where(.product-page__summary, .checkout-panel, .portal-account-panel) {
  position: sticky;
  top: 104px;
  align-self: start;
}

.zestia-storefront-surface[data-zestia-layout="galeria"]
  :where(.cart-layout, .order-detail-layout, .account-workspace, .portal-account-workspace) {
  display: grid;
  grid-template-columns: minmax(0, 1.32fr) minmax(320px, .68fr);
  align-items: start;
  gap: clamp(1.75rem, 4vw, 4.5rem);
}

.zestia-storefront-surface[data-zestia-layout="galeria"]
  :where(.portal-order-head, .order-head-card) {
  min-height: clamp(280px, 42svh, 460px);
  display: grid;
  align-content: end;
  overflow: hidden;
}

.zestia-storefront-surface[data-zestia-layout="galeria"][data-zestia-surface="multi_order"]
  .cart-items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--zss-gap);
}

.zestia-storefront-surface[data-zestia-layout="galeria"]
  :where(.auth-shell, .portal-auth) {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(380px, .75fr);
  min-height: min(76svh, 820px);
  overflow: hidden;
}

.zestia-storefront-surface[data-zestia-layout="galeria"] .auth-visual {
  min-height: 100%;
}

.zestia-storefront-surface[data-zestia-layout="galeria"] .legal-page {
  width: min(100%, 76rem);
  margin-inline: auto;
  padding: clamp(2rem, 7vw, 6rem);
}

.zestia-storefront-surface[data-zestia-layout="galeria"][data-zestia-surface="local_landing"]
  .category-hero__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(320px, .5fr);
  align-items: stretch;
  gap: 1rem;
}

.zestia-storefront-surface[data-zestia-layout="galeria"][data-zestia-surface="local_landing"]
  :where(.category-hero__media, .category-hero__image) {
  min-height: min(68svh, 720px);
}

.zestia-storefront-surface[data-zestia-layout="galeria"]
  .zestia-storefront-status {
  min-height: min(62svh, 620px);
  align-content: end;
  background:
    linear-gradient(0deg, var(--zss-surface), transparent 88%),
    var(--zss-page-deep);
}

.storefront-template-galeria .site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  backdrop-filter: blur(18px) saturate(1.15);
}

.storefront-template-galeria .site-footer .footer-main {
  display: grid;
  grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr);
  gap: clamp(2rem, 6vw, 6rem);
}

/* ====================================================================== */
/* Responsive collapse keeps each identity but protects forms and checkout. */

@media (max-width: 1100px) {
  .zestia-storefront-surface:not(.zestia-storefront-surface--menu)
    :where(
      .product-page__hero,
      .cart-layout,
      .order-detail-layout,
      .account-workspace,
      .portal-account-workspace,
      .auth-shell,
      .portal-auth,
      .category-hero__layout
    ) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .zestia-storefront-surface:not(.zestia-storefront-surface--menu)
    :where(.product-page__summary, .checkout-panel, .portal-account-panel, .product-page__media) {
    position: static;
  }

  .zestia-storefront-surface[data-zestia-layout="editorial"] .auth-visual,
  .zestia-storefront-surface[data-zestia-layout="galeria"] .auth-visual {
    min-height: clamp(240px, 38svh, 400px);
  }

  .storefront-template-editorial .site-header,
  .storefront-template-mercado .site-header,
  .storefront-template-directo .site-header,
  .storefront-template-carta .site-header,
  .storefront-template-galeria .site-header {
    grid-template-columns: minmax(0, 1fr) auto;
  }
}

@media (max-width: 768px) {
  .zestia-storefront-surface:not(.zestia-storefront-surface--menu) {
    --zss-gap: 1rem;
    --zss-pad: 1rem;
  }

  .zestia-storefront-surface:not(.zestia-storefront-surface--menu)
    :where(.product-page__hero, .cart-layout, .order-detail-layout, .account-workspace) {
    gap: 1rem;
  }

  .zestia-storefront-surface[data-zestia-layout="editorial"][data-zestia-surface="home"]
    :where(.home-section:nth-of-type(odd), .home-section:nth-of-type(even)) {
    width: 100%;
    margin-inline: auto;
  }

  .zestia-storefront-surface[data-zestia-layout="mercado"]
    .product-page__facts {
    grid-template-columns: minmax(0, 1fr);
  }

  .zestia-storefront-surface[data-zestia-layout="mercado"] .legal-page {
    columns: auto;
  }

  .zestia-storefront-surface[data-zestia-layout="mercado"]
    .zestia-storefront-status {
    grid-template-columns: minmax(0, 1fr);
  }

  .zestia-storefront-surface[data-zestia-layout="mercado"]
    .zestia-storefront-status :where(h1, p, a),
  .zestia-storefront-surface[data-zestia-layout="mercado"]
    .zestia-storefront-status__code {
    grid-column: 1;
    grid-row: auto;
    writing-mode: horizontal-tb;
  }

  .zestia-storefront-surface[data-zestia-layout="carta"] .product-page__media,
  .zestia-storefront-surface[data-zestia-layout="galeria"] .product-page__media {
    min-height: 0;
    aspect-ratio: 4 / 5;
  }

  .zestia-storefront-surface[data-zestia-surface="multi_order"] .cart-items {
    grid-template-columns: minmax(0, 1fr);
  }

  :where(
    .storefront-template-editorial,
    .storefront-template-mercado,
    .storefront-template-directo,
    .storefront-template-carta,
    .storefront-template-galeria
  ) .site-footer .footer-main {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 440px) {
  .zestia-storefront-surface:not(.zestia-storefront-surface--menu)
    :where(.auth-card, .legal-page, .zestia-storefront-status) {
    padding: 1.25rem;
  }

  .zestia-storefront-surface:not(.zestia-storefront-surface--menu)
    :where(.row, .hero-actions, .cart-item__actions, .address-actions) {
    min-width: 0;
    flex-wrap: wrap;
  }

  .zestia-storefront-surface:not(.zestia-storefront-surface--menu)
    :where(.button, .ghost-button) {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .zestia-storefront-surface:not(.zestia-storefront-surface--menu) *,
  .zestia-storefront-chrome * {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

@media (forced-colors: active) {
  .zestia-storefront-surface:not(.zestia-storefront-surface--menu)
    :where(.card, .auth-card, .legal-page, .zestia-storefront-status),
  .zestia-storefront-chrome {
    border: 1px solid CanvasText;
  }
}
/* The selected layout never owns the tenant palette. Keep global chrome on
   the same corporate tokens for every structural variant. */
body.app-body.storefront-shell:is(
  .storefront-template-editorial,
  .storefront-template-mercado,
  .storefront-template-directo,
  .storefront-template-carta,
  .storefront-template-galeria
) :is(.site-header, .store-context-bar, .site-footer) {
  background-color: var(--bg-deep, var(--bg, #050505));
  color: var(--text, #f3f3f3);
}

body.app-body.storefront-shell:is(
  .storefront-template-editorial,
  .storefront-template-mercado,
  .storefront-template-directo,
  .storefront-template-carta,
  .storefront-template-galeria
) :is(.site-header, .store-context-bar, .site-footer) :is(a, button, strong, span):not([data-cart-count]) {
  color: inherit;
}
