.simulation-banner,
.simulation-banner.is-storefront-hidden {
  display: none !important;
}
html.auth-pending body { visibility: hidden; }

/* Reserve a real slot for the language control so it never covers the bag. */
@media (min-width: 701px) {
  .site-header { padding-right: 112px !important; }
  .site-header + main ~ .language-switch,
  body > .language-switch { right: 22px !important; top: 60px !important; }
  body > .language-switch.is-scrolled { top: 14px !important; }
  .portal ~ .language-switch,
  .login-page ~ .language-switch { top: 18px !important; right: 18px !important; }
}

@media (max-width: 700px) {
  /* The bottom dock already contains the cart and account actions. */
  .site-header .bag-button,
  .site-header .account-link { display: none !important; }
  .language-switch { top: 72px !important; right: 14px !important; }
  .language-switch.is-scrolled { top: 12px !important; }
  .portal ~ .language-switch,
  .login-page ~ .language-switch,
  .portal ~ .language-switch.is-scrolled,
  .login-page ~ .language-switch.is-scrolled { top: 12px !important; right: 12px !important; }
}

button, a, input, select, textarea { touch-action: manipulation; }
.sazon-fulfilment{display:grid;gap:12px;background:var(--color-neutral-100);border:1px solid var(--color-neutral-200);border-radius:10px;padding:14px}.sazon-fulfilment label{display:grid;gap:6px}.sazon-fulfilment select,.sazon-fulfilment input{width:100%;min-height:46px;border:1px solid var(--color-neutral-300);border-radius:8px;padding:10px;background:var(--color-neutral-100)}
.sazon-address-confirm{margin:0;padding:11px 12px;border-radius:8px;background:var(--color-neutral-100);color:var(--color-accent-2-800);font:600 13px/1.45 var(--font-body)}
.sazon-toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:90;background:var(--color-accent-2-800);color:var(--color-neutral-100);padding:12px 20px;border-radius:99px;font:600 14px var(--font-body);box-shadow:0 12px 30px #0a140f3d;transition:opacity .5s,transform .5s;max-width:calc(100vw - 32px);text-align:center}
.sazon-toast.gone{opacity:0;transform:translateX(-50%) translateY(8px)}

/* Aviso nativo "Agregado a tu caja" (librería sonner, la tienda lo trae de
   fábrica). Por defecto sale pegado abajo y tapa el botón flotante de la caja
   durante los segundos que tarda en desaparecer, así que no se puede tocar
   la caja mientras tanto. Se sube arriba de la pantalla (nunca compite con
   nada de abajo) y se deja pasar el toque por debajo aunque siga visible. */
[data-sonner-toaster]{ pointer-events: none !important; }
[data-sonner-toast]{ pointer-events: none !important; }
[data-sonner-toaster][data-y-position=bottom]{
  top: calc(14px + env(safe-area-inset-top, 0px)) !important;
  bottom: auto !important;
}
/* Ricardo 12/10: subir la lista no basta. Cada aviso seguía colgado del borde
   de abajo de ella (bottom: 0 de sonner), así que en el ordenador quedaba casi
   todo por encima de la pantalla y solo asomaba una franja clara sobre el
   anuncio. Se cuelga del borde de arriba y se mueve como un aviso de arriba:
   entra desde arriba, sale hacia arriba y los siguientes se apilan debajo. */
[data-sonner-toaster][data-y-position=bottom] [data-sonner-toast]{
  top: 0 !important;
  bottom: auto !important;
  --lift: 1;
  --lift-amount: calc(1 * var(--gap));
}
[data-sonner-toaster][data-y-position=bottom] [data-sonner-toast][data-mounted=false]{
  --y: translateY(-100%);
}
@media (max-width: 700px) {
  [data-sonner-toaster][data-y-position=bottom]{
    top: calc(68px + env(safe-area-inset-top, 0px)) !important;
  }
}

/* ===========================================================================
   MÓVIL — la pantalla es el recurso escaso
   En un iPhone la cabecera (72px) más la barra de filtros (150px) se comían
   222px de 664: casi la mitad de la pantalla quedaba ocupada mientras la
   persona elegía comida. Aquí se recorta esa franja y se esconde la cabecera
   al bajar, que es lo que hacen las apps de comida.
   =========================================================================== */
@media (max-width: 700px) {
  /* 1. Nada de zoom al tocar un campo: iOS hace zoom si la letra baja de 16px */
  input, select, textarea { font-size: 16px !important; }

  /* 2. Barra de filtros compacta: fuera la etiqueta redundante, menos aire */
  .menu-toolbar { padding-top: 8px !important; padding-bottom: 8px !important; gap: 8px !important; }
  .menu-toolbar .portion-picker { gap: 6px !important; }
  .menu-toolbar .portion-picker > span { display: none !important; }

  /* 3. La cabecera se esconde al bajar y vuelve al subir */
  .site-header { transition: transform .22s ease; will-change: transform; }
  html.sz-scrolled-down .site-header { transform: translateY(-100%); }
  html.sz-scrolled-down .menu-toolbar { top: 0 !important; }
  html.sz-scrolled-down .language-switch { opacity: 0; pointer-events: none; transition: opacity .2s; }

  /* 4. Dedos, no punteros: todo lo que se toca llega a 44px */
  .menu-toolbar button, .meal-card .add-button, .mobile-dock a, .mobile-dock button { min-height: 44px; }
  .meal-card .meal-title { min-height: 44px; display: block; text-align: left; }

  /* 5. Abajo viven tres cosas fijas: el muelle, la caja flotante y el aviso.
        Se apilan en ese orden y el final de la página deja sitio, para que
        la última tarjeta del menú no quede debajo de la caja. */
  .sazon-toast { bottom: calc(150px + env(safe-area-inset-bottom)); z-index: 95; }
  body { padding-bottom: calc(156px + env(safe-area-inset-bottom)) !important; }
  .floating-box { bottom: calc(80px + env(safe-area-inset-bottom)) !important; }
}
/* En el ordenador la caja flotante vive a 28px del fondo y mide ~67px: el aviso
   ("Te guardamos 1 comida en la caja.") se apila encima, no sobre ella. */
@media (min-width: 701px) {
  .sazon-toast { bottom: 110px; }
}

/* El botón "Solicitar mi pedido" es sticky dentro del formulario: tapaba el
   campo que la persona estaba llenando. Con scroll-margin el navegador deja
   sitio al enfocar, y la sombra deja claro que es una barra y no texto. */
@media (max-width: 700px) {
  form.checkout input,
  form.checkout select,
  form.checkout textarea { scroll-margin-bottom: 96px; }
  form.checkout .button.primary {
    box-shadow: 0 -14px 18px -6px rgba(248, 244, 233, .95);
    min-height: 52px;
  }
  form.checkout > *:nth-last-child(2) { margin-bottom: 10px; }
}

/* Con la caja abierta, la cabecera (z-60) y el selector de idioma (z-70)
   quedaban ENCIMA del panel (z-50) y tapaban el primer campo. */
body:has([role="dialog"][data-state="open"]) .site-header,
body:has([role="dialog"][data-state="open"]) .language-switch,
body[data-scroll-locked] .site-header,
body[data-scroll-locked] .language-switch {
  opacity: 0;
  pointer-events: none;
}

/* ===========================================================================
   PLAN SEMANAL (SUSCRIPCIÓN) — más arriba y con más presencia
   store-enhancements.js sube la sección #plans a justo antes del menú; acá
   se le da el look de bloque destacado: marco propio, sombra y una cinta,
   en vez del rectángulo a todo el ancho que traía por defecto.
   =========================================================================== */
#plans.plan-section {
  position: relative;
  overflow: hidden;
  margin: 28px auto;
  max-width: 1100px;
  width: calc(100% - 40px);
  border-radius: 18px;
  box-shadow: 0 12px 32px -10px rgba(20, 30, 22, .28);
  border: 1px solid var(--color-neutral-800);
}
#plans.plan-section::before {
  /* v44: ribbon removed — threw off plan card layout */
  content: none !important;
  display: none !important;
}
#plans.plan-section .plan-card {
  box-shadow: 0 14px 30px -8px rgba(0, 0, 0, .35);
  border: 1px solid var(--color-neutral-300);
}
#plans.plan-section .plan-price {
  color: var(--color-accent-600);
}

/* Página principal: a primeira dobra ganha contraste e profundidade sem
   sacrificar a leitura do menu, que continua sendo a ação principal. */
.hero { position: relative; overflow: hidden; }
.hero-copy { position: relative; z-index: 1; }
.hero-notes { position: relative; z-index: 1; }
.hero-stamp { box-shadow: 0 10px 22px rgba(32, 58, 47, .18); }
.values-bar { border-top: 1px solid rgba(32, 58, 47, .10); border-bottom: 1px solid rgba(32, 58, 47, .10); }
.meal-card { transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
@media (hover: hover) {
  .meal-card:hover { transform: translateY(-4px); box-shadow: 0 16px 28px rgba(32, 58, 47, .14); border-color: var(--color-accent-2-500); }
  .plan-card:hover { transform: translateY(-3px); transition: transform .18s ease, box-shadow .18s ease; }
}
@media (max-width: 700px) {
  #plans.plan-section { margin: 22px auto; width: calc(100% - 24px); border-radius: 16px; }
  #plans.plan-section::before { display: none !important; }
}

/* ==========================================================================
   HOME VIBRANTE — verde profundo, terracota e dourado.
   A comida continua sendo a protagonista, mas cada bloco ganha identidade e
   a página deixa de parecer uma sequência de cartões brancos.
   ========================================================================== */
.announcement{
  background:linear-gradient(90deg,var(--color-accent-600),var(--color-accent-500) 55%,var(--color-accent-600))!important;
  color:var(--color-neutral-100)!important;
  border:0!important;
}
.site-header{
  background:rgba(255,253,248,.96)!important;
  border-bottom:3px solid var(--color-accent-300)!important;
  box-shadow:0 8px 26px rgba(32,58,47,.09)!important;
}
.hero-copy{
  background:
    radial-gradient(circle at 12% 12%,rgba(232,200,139,.19),transparent 25%),
    linear-gradient(140deg,var(--color-accent-2-900) 0%,var(--color-accent-2-800) 65%,var(--color-accent-2-700) 100%)!important;
  color:var(--color-neutral-100)!important;
}
.hero-copy .eyebrow{color:var(--color-accent-300)!important}.hero h1{color:var(--color-neutral-100)!important}.hero h1 em{color:var(--color-accent-300)!important}
.hero-copy>p{color:var(--color-neutral-200)!important}.hero-copy>.button.primary{background:var(--color-accent)!important;color:var(--color-neutral-100)!important;border-color:var(--color-accent)!important;box-shadow:0 12px 28px rgba(121,41,18,.32)}
.hero-copy>.button.primary:hover{background:var(--color-accent-500)!important;transform:translateY(-2px)}
.hero-notes{color:var(--color-neutral-100)!important}.hero-notes svg{color:var(--color-accent-300)!important}
.hero-image{background:var(--color-accent)}.hero-caption{background:linear-gradient(90deg,var(--color-accent-700),var(--color-accent))!important;color:var(--color-neutral-100)!important}
.values-bar{background:var(--color-accent-300)!important;color:var(--color-text)!important;border:0!important;box-shadow:inset 0 -1px rgba(98,66,8,.12)}
.values-bar svg{color:var(--color-accent-700)!important}
.menu-section{background:radial-gradient(circle at 92% 5%,rgba(232,200,139,.33),transparent 25%),var(--color-bg)!important}
.menu-section .section-heading h2{color:var(--color-accent-2-800)}.menu-section .section-heading .eyebrow{color:var(--color-accent-600)!important}
.meal-card{background:var(--color-neutral-100)!important;border:1px solid var(--color-neutral-300)!important;border-top:5px solid var(--color-accent)!important;box-shadow:0 9px 24px rgba(32,58,47,.09)!important}
.meal-card:nth-child(3n+2){border-top-color:var(--color-accent-400)!important}.meal-card:nth-child(3n){border-top-color:var(--color-accent-2-700)!important}
.meal-day{background:var(--color-accent)!important;color:var(--color-neutral-100)!important}.meal-bottom strong{color:var(--color-accent-600)!important}.add-button{background:var(--color-accent-2-800)!important;color:var(--color-neutral-100)!important;border-color:var(--color-accent-2-800)!important}
.how-section{background:linear-gradient(150deg,var(--color-accent-300),var(--color-accent-300))!important;color:var(--color-neutral-900)!important}
.how-section>.eyebrow{color:var(--color-accent-700)!important}.step{background:rgba(255,253,248,.82)!important;border:1px solid rgba(80,61,20,.16)!important;box-shadow:0 8px 20px rgba(80,61,20,.08)}
.step-top svg,.step-top span{color:var(--color-accent-600)!important}
.delivery-strip{background:linear-gradient(120deg,var(--color-accent-600),var(--color-accent-500))!important;color:var(--color-neutral-100)!important;border:0!important;box-shadow:0 18px 38px rgba(124,48,24,.22)}
.delivery-strip h3,.delivery-strip p{color:var(--color-neutral-100)!important}.delivery-strip>svg{color:var(--color-accent-300)!important}.delivery-strip .button{background:var(--color-neutral-100)!important;color:var(--color-accent-700)!important;border-color:var(--color-neutral-100)!important}
footer{border-top:5px solid var(--color-accent-300)!important}
@media(max-width:700px){
  .values-bar{background:var(--color-accent-300)!important}
  .values-bar>span{background:rgba(255,253,248,.72)!important;border-color:rgba(88,63,18,.16)!important}
  .hero-copy{padding-top:34px!important;padding-bottom:34px!important}
  .delivery-strip{margin-top:22px!important}
}

/* Acabamento da home: mantém a paleta latina, mas devolve espaço ao menu e
   transforma os prazos de entrega em informação que se lê num relance. */
.how-section{
  max-width:none!important;
  padding:50px 5% 54px!important;
  background:linear-gradient(150deg,var(--color-accent-200),var(--color-accent-300))!important;
}
.how-section h2{margin-top:10px!important}
.how-section .steps{gap:22px!important;margin-top:30px!important}
.how-section .step{
  min-width:0;
  height:auto!important;
  padding:24px!important;
  border-radius:15px!important;
  box-shadow:0 10px 24px rgba(80,61,20,.09)!important;
}
.how-section .step-top{padding-bottom:14px!important}
.how-section .step-top svg{
  width:44px;height:44px;padding:10px;border-radius:50%;
  color:var(--color-neutral-100)!important;background:var(--color-accent-600);
}
.how-section .step-top span{font-size:20px!important;color:var(--color-accent-700)!important}
.how-section .step h3{margin:17px 0 8px!important;line-height:1.18!important}
.how-section .step p{font-size:15px!important;line-height:1.55!important}
#menu.menu-section{padding-bottom:46px!important}

.delivery-strip{
  max-width:1500px;
  margin:0 auto 104px!important;
  width:90%;
  border-radius:16px!important;
  padding:30px 34px!important;
}
.delivery-strip>div{min-width:0;width:100%}
.delivery-strip>div>p{margin:5px 0 13px!important}
.delivery-schedule{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}
.delivery-day{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:10px;padding:10px 12px}
.delivery-day b{display:block;color:var(--color-neutral-100);font-size:14px}
.delivery-day span{display:block;color:var(--color-neutral-100);font-size:12px;margin-top:2px}
.delivery-strip .button{white-space:nowrap;min-height:48px}
.floating-box{bottom:30px!important}

@media(min-width:701px){
  body>.language-switch{
    top:64px!important;right:28px!important;
    background:var(--color-neutral-100)!important;border-color:var(--color-neutral-300)!important;
    box-shadow:none!important;padding:5px 9px!important;
  }
  body>.language-switch.is-scrolled{top:14px!important;box-shadow:0 6px 16px rgba(32,58,47,.12)!important}
}
@media(max-width:700px){
  .how-section{padding:38px 16px 42px!important}
  .how-section .steps{margin-top:23px!important}
  #menu.menu-section{padding-bottom:34px!important}
  .delivery-strip{width:calc(100% - 32px);margin:0 16px 118px!important;padding:23px 20px!important}
  .delivery-schedule{grid-template-columns:1fr}
  .floating-box{bottom:calc(86px + env(safe-area-inset-bottom))!important}
}

/* ==========================================================================
   V21 — Prioridades altas y medias (proceso, usabilidad, claridad)
   ========================================================================== */

/* Badges de alérgenos */
.sazon-allergen {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 0 14px 10px;
  padding: 7px 10px;
  border-radius: 8px;
  background: var(--color-neutral-100);
  border: 1px solid var(--color-accent-300);
  color: var(--color-accent-700);
  font: 500 12px/1.4 var(--font-body);
}
.sazon-allergen span { flex-shrink: 0; }

/* V95 · Información nutricional por porción (aprox.), escrita en el panel */
.sazon-nutri {
  margin: 0 14px 8px;
  padding: 7px 10px;
  border-radius: 8px;
  background: var(--color-neutral-100);
  border: 1px solid var(--color-neutral-200, rgba(0,0,0,.08));
  color: var(--color-neutral-700, inherit);
  font: 400 12px/1.45 var(--font-body);
}
.sazon-nutri-h { font-weight: 600; font-size: 11px; letter-spacing: .02em; margin-bottom: 2px; }
.sazon-nutri-row { display: flex; gap: 6px; flex-wrap: wrap; }
.sazon-nutri-row > span:first-child:not(:last-child) { font-weight: 600; min-width: 62px; }

/* Progreso de la caja flotante */
.sazon-box-progress {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-top: 8px;
  width: 100%;
  min-width: 140px;
}
.sazon-box-progress span {
  font: 600 11px/1.2 var(--font-body);
  color: inherit;
  opacity: .92;
  text-align: center;
}
.sazon-box-bar {
  height: 5px;
  border-radius: 99px;
  background: rgba(255,255,255,.28);
  overflow: hidden;
}
.sazon-box-bar i {
  display: block;
  height: 100%;
  border-radius: 99px;
  background: var(--color-accent);
  transition: width .35s ease;
}

/* Nota de suscripción */
.sazon-plan-note {
  margin: 14px 0 0 !important;
  padding: 12px 14px !important;
  border-radius: 10px !important;
  background: var(--color-neutral-100) !important;
  border: 1px solid var(--color-accent-2-300) !important;
  color: var(--color-accent-2-900) !important;
  font: 500 13px/1.5 var(--font-body) !important;
}
.sazon-plan-note strong { color: var(--color-accent-600); }

/* Hint de zona / postcode */
.sazon-zone-hint {
  display: block;
  margin-top: 6px;
  font: 500 12px/1.35 var(--font-body);
  color: var(--color-neutral-700);
}
.sazon-zone-hint.ok { color: var(--color-accent-2-700); }
.sazon-zone-hint.warn { color: var(--color-accent-700); }

/* Banner de perfil incompleto */
.sazon-profile-banner {
  background: var(--color-accent-2-800);
  color: var(--color-neutral-100);
  text-align: center;
  padding: 10px 16px;
  font: 500 13px/1.45 var(--font-body);
  border-bottom: 2px solid var(--color-accent-300);
}
.sazon-profile-banner a {
  color: var(--color-accent-300);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.sazon-profile-banner a:hover { color: var(--color-neutral-100); }

/* Accesibilidad: foco visible */
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--color-accent) !important;
  outline-offset: 2px !important;
}

/* Checkout: más aire en mobile */
@media (max-width: 700px) {
  .sazon-fulfilment { padding: 12px !important; gap: 10px !important; }
  .sazon-allergen { margin: 0 10px 8px; font-size: 11px; }
  .sazon-nutri { margin: 0 10px 8px; font-size: 11px; }
  .sazon-profile-banner { font-size: 12px; padding: 9px 12px; }
}

/* ==========================================================================
   V21b — Restante: visual, fluxo, a11y, empty states, mobile, print
   ========================================================================== */

/* Skip link acessibilidade */
.sazon-skip {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 9999;
  background: var(--color-accent-2-800);
  color: var(--color-neutral-100);
  padding: 12px 18px;
  font: 700 14px var(--font-body);
  border-radius: 0 0 8px 0;
}
.sazon-skip:focus {
  left: 0;
  outline: 3px solid var(--color-accent-300);
}

/* Empty cart hint no floating box quando vazio */
.floating-box:empty,
.floating-box[data-empty="1"] {
  opacity: .85;
}

/* Meal card: melhor hierarquia e espaço para alergénios */
.meal-card .meal-desc {
  min-height: 2.6em;
}
.meal-card .add-button {
  min-width: 110px;
  font-weight: 700 !important;
  letter-spacing: .01em;
}
.meal-card .add-button:active {
  transform: scale(.97);
}

/* Porção ativa mais evidente */
.portion-picker button[data-state="active"],
.portion-picker button[aria-selected="true"],
.menu-toolbar button[data-state="on"] {
  box-shadow: 0 0 0 2px var(--color-accent), 0 4px 12px rgba(198,80,45,.25) !important;
  font-weight: 700 !important;
}

/* Diálogo do carrinho: mais legível */
[role="dialog"] .cart-line {
  border-bottom: 1px solid var(--color-neutral-200);
  padding-bottom: 10px;
  margin-bottom: 8px;
}
[role="dialog"] .cart-line strong {
  font-size: 15px;
}

/* Nota de alergias global reforçada */
.sazon-allergy-global {
  max-width: 1180px;
  margin: 0 auto 18px;
  width: calc(100% - 40px);
  padding: 12px 16px;
  border-radius: 12px;
  background: var(--color-neutral-100);
  border: 1px solid var(--color-accent-300);
  color: var(--color-accent-800);
  font: 500 13px/1.5 var(--font-body);
}
.sazon-allergy-global a {
  color: var(--color-accent-600);
  font-weight: 700;
}

/* Sucesso pós-pedido (toast reforçado) */
.sazon-toast.success {
  background: var(--color-accent-2-700) !important;
}

/* Loading suave enquanto o menu carrega */
.sazon-menu-loading {
  text-align: center;
  padding: 40px 20px;
  color: var(--color-neutral-700);
  font: 500 15px var(--font-body);
}
.sazon-menu-loading::after {
  content: '';
  display: inline-block;
  width: 18px;
  height: 18px;
  margin-left: 10px;
  border: 2px solid var(--color-neutral-300);
  border-top-color: var(--color-accent);
  border-radius: 50%;
  animation: sazon-spin .7s linear infinite;
  vertical-align: middle;
}
@keyframes sazon-spin { to { transform: rotate(360deg); } }

/* Hero mais compacto em tablets */
@media (max-width: 900px) and (min-width: 701px) {
  .hero-copy { padding: 40px 28px !important; }
  .hero h1 { font-size: clamp(2rem, 4vw, 2.8rem) !important; }
}

/* Footer links mais claros */
footer a {
  text-underline-offset: 3px;
}
footer a:hover {
  color: var(--color-accent) !important;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .meal-card,
  .plan-card,
  .sazon-box-bar i,
  .site-header {
    transition: none !important;
  }
  .sazon-menu-loading::after { animation: none; }
}

/* Print: só o essencial */
@media print {
  .site-header,
  .language-switch,
  .floating-box,
  .mobile-dock,
  .announcement,
  .sazon-profile-banner,
  .sazon-skip,
  form.checkout,
  .add-button {
    display: none !important;
  }
  body { background: var(--color-neutral-100) !important; color: #000 !important; }
  .meal-card { break-inside: avoid; box-shadow: none !important; border: 1px solid #ccc !important; }
}

/* Contraste extra em links de texto pequeno */
.sazon-plan-note a,
.sazon-profile-banner a {
  text-decoration-thickness: 2px;
}

/* Checkout form: labels mais fortes */
form.checkout label b,
.sazon-fulfilment label b {
  font-size: 13px;
  letter-spacing: .02em;
  color: var(--color-accent-2-800);
}

/* Sticky CTA no mobile já existe; reforço de legibilidade */
@media (max-width: 700px) {
  form.checkout .button.primary {
    font-size: 16px !important;
    letter-spacing: .02em;
  }
  .sazon-allergy-global {
    width: calc(100% - 24px);
    margin: 0 12px 14px;
    font-size: 12px;
  }
}

/* Pie de página dinámico (Ajustes → contacto) */
.sazon-footer-contact {
  margin: 12px 0 8px;
  font: 500 13px/1.55 var(--font-body);
  color: var(--color-neutral-800);
}
.sazon-footer-contact a {
  color: var(--color-accent-600);
  font-weight: 600;
  text-underline-offset: 2px;
}
.sazon-footer-contact a:hover { color: var(--color-accent-2-800); }
.sazon-pickup-addr {
  margin: 0;
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--color-neutral-100);
  color: var(--color-accent-2-800);
  font: 600 13px/1.4 var(--font-body);
}

.sz-react-cart-hidden { display: none !important; }

.sazon-plan-switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 10px;
}
.sazon-plan-switch button {
  min-height: 44px;
  border-radius: 999px;
  border: 1px solid var(--color-neutral-300);
  background: var(--color-neutral-100);
  font: 600 13px/1 var(--font-body);
  color: var(--color-neutral-700);
  cursor: pointer;
}
.sazon-plan-switch button.is-on {
  background: var(--color-text);
  border-color: var(--color-text);
  color: var(--color-neutral-100);
}
.sazon-plan-hint {
  margin: 0 0 12px;
  font: 500 12px/1.45 var(--font-body);
  color: var(--color-neutral-600);
}
.sazon-sum-line.is-live {
  display: grid;
  grid-template-columns: 1fr auto auto auto;
  gap: 8px;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid var(--color-neutral-200);
}
.sazon-sum-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sazon-sum-info b { font-size: 13px; color: var(--color-text); }
.sazon-sum-info small { font-size: 11px; color: var(--color-neutral-500); }
.sazon-sum-qty {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: 1px solid var(--color-neutral-300);
  border-radius: 999px;
  padding: 2px;
}
.sazon-sum-qty span { min-width: 1.2em; text-align: center; font-weight: 700; font-size: 13px; }
.sz-q {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  background: var(--color-neutral-100);
  font: 700 16px/1 var(--font-body);
  cursor: pointer;
  color: var(--color-text);
}
.sz-q-del { background: transparent; color: var(--color-accent-700); font-size: 20px; }
.sazon-sum-price { font-size: 13px; white-space: nowrap; }

/* V23 — Resumen del carrito */
.sazon-cart-summary {
  background: var(--color-neutral-100);
  border: 1px solid var(--color-neutral-300);
  border-radius: 14px;
  padding: 14px 16px;
  margin-bottom: 14px;
  order: -1;
}
.sazon-sum-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 10px;
  font: 700 15px/1.2 var(--font-body);
  color: var(--color-accent-2-800);
}
.sazon-sum-head span { font-weight: 600; font-size: 13px; color: var(--color-neutral-600); }
.sazon-sum-items { display: grid; gap: 6px; margin-bottom: 12px; }
.sazon-sum-line {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font: 500 13px/1.35 var(--font-body);
  color: var(--color-neutral-900);
}
.sazon-sum-line small { color: var(--color-neutral-600); }
.sazon-sum-empty { margin: 0; color: var(--color-neutral-600); font-size: 13px; }
.sazon-sum-meta {
  display: grid;
  gap: 6px;
  padding: 10px 0;
  border-top: 1px solid var(--color-neutral-300);
  border-bottom: 1px solid var(--color-neutral-300);
  margin-bottom: 10px;
}
.sazon-sum-meta > div,
.sazon-sum-totals > div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font: 500 13px/1.35 var(--font-body);
}
.sazon-sum-meta span,
.sazon-sum-totals span { color: var(--color-neutral-700); }
.sazon-sum-totals { display: grid; gap: 6px; }
.sazon-sum-grand {
  margin-top: 4px;
  padding-top: 8px;
  border-top: 1px dashed var(--color-neutral-300);
}
.sazon-sum-grand b { font-size: 18px; color: var(--color-accent-600); }
.sazon-sum-note {
  margin: 10px 0 0;
  font: 500 12px/1.45 var(--font-body);
  color: var(--color-neutral-600);
}

/* Checkout form: stack more readable */
form.checkout {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* Plan checkout note */
.sazon-plan-checkout-note{
  background:var(--color-neutral-100);border:1px solid var(--color-accent-2-300);border-radius:12px;
  padding:12px 14px;margin-bottom:12px;
}
.sazon-plan-checkout-note b{display:block;color:var(--color-accent-2-800);margin-bottom:4px;font-size:14px}
.sazon-plan-checkout-note p{margin:0;font-size:13px;line-height:1.45;color:var(--color-neutral-800)}

/* Mobile store touch + dock */
@media (max-width:720px){
  .site-header{padding-inline:12px}
  .bag-button,.account-link,.mobile-toggle{min-width:44px;min-height:44px}
  .cart-sheet,.sazon-cart-summary{font-size:14px}
  form.checkout input,form.checkout select,form.checkout textarea{
    font-size:16px!important;min-height:44px;
  }
  form.checkout .btn,.button.primary{min-height:48px;width:100%}
  .meal-card,.menu-card{border-radius:12px}
  img{max-width:100%;height:auto}
  /* content-visibility for long menu lists */
  .menu-grid > *, .meals-grid > *, [class*="meal-"] article{
    content-visibility:auto;contain-intrinsic-size:280px;
  }
}

/* V35 — a11y, PWA, skip, motion */
.sazon-skip{
  position:absolute;left:12px;top:-48px;z-index:200;
  background:var(--color-accent-2-800);color:var(--color-bg);padding:10px 14px;border-radius:8px;
  font:600 14px var(--font-body);text-decoration:none;
}
.sazon-skip:focus{top:12px}
.sazon-pwa{
  position:fixed;left:12px;right:12px;bottom:calc(72px + env(safe-area-inset-bottom,0px));
  z-index:80;background:var(--color-accent-2-800);color:var(--color-bg);border-radius:14px;
  padding:12px 14px;display:flex;gap:10px;align-items:center;
  box-shadow:0 10px 30px rgba(20,24,20,.28);font:500 13px/1.4 var(--font-body);
}
.sazon-pwa button{
  margin-left:auto;border:0;background:transparent;color:var(--color-bg);
  font-size:22px;line-height:1;min-width:44px;min-height:44px;
}
.hero-image picture, .hero picture{display:block}
.hero-image img, .hero img{width:100%;height:auto;aspect-ratio:1200/800;object-fit:cover}
.rep-scan{display:block;margin:10px 0;font:600 12px var(--font-body);color:var(--color-neutral-700)}
.rep-scan input{display:block;width:100%;margin-top:6px;min-height:44px;border:1px solid var(--color-neutral-300);border-radius:10px;padding:10px 12px;font:16px var(--font-body)}
.rep-pod{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 0 4px;font:600 12px var(--font-body);color:var(--color-neutral-700)}
.rep-flash{outline:3px solid var(--color-accent);outline-offset:2px}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* V36 — corte, caja abandonada, overlay, agotado */
.sazon-cutoff-banner,.sazon-abandoned{
  display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  padding:10px 16px;font:600 13px/1.4 var(--font-body);
}
.sazon-cutoff-banner{background:var(--color-accent-2-800);color:var(--color-neutral-100)}
.sazon-cutoff-banner b{color:var(--color-accent-300)}
.sazon-abandoned{background:var(--color-neutral-100);color:var(--color-accent-700);border-bottom:1px solid var(--color-accent-200)}
.sazon-abandoned a,.sazon-abandoned button{min-height:40px}
.sazon-abandoned a{color:var(--color-accent-2-800);font-weight:700}
.sazon-thanks{
  position:fixed;inset:0;z-index:200;background:#1b241cdd;
  display:flex;align-items:flex-end;justify-content:center;padding:16px;
}
.sazon-thanks-card{
  width:min(520px,100%);background:var(--color-neutral-100);border-radius:18px 18px 12px 12px;
  padding:22px 20px 18px;color:var(--color-text);box-shadow:0 -12px 40px #0004;
}
.sazon-thanks-kicker{margin:0;font:700 11px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent)}
.sazon-thanks-card h2{margin:8px 0 10px;font:400 26px/1.15 var(--font-heading);color:var(--color-accent-2-800)}
.sazon-thanks-card p{margin:0 0 10px;font:15px/1.5 var(--font-body)}
.sazon-thanks-code{font:400 20px var(--font-heading);color:var(--color-accent)}
.sazon-thanks-actions{display:grid;gap:8px;margin-top:14px}
.sazon-thanks-actions .button,.sazon-thanks-close{
  min-height:48px;border-radius:10px;font-weight:700;text-align:center;
  display:flex;align-items:center;justify-content:center;
}
.sazon-thanks-close{border:1px solid var(--color-neutral-300);background:var(--color-neutral-100);color:var(--color-accent-2-800)}
.sazon-soldout{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  margin:8px 10px 10px;padding:8px 10px;background:var(--color-neutral-100);border-radius:10px;font:600 12px var(--font-body);color:var(--color-neutral-600);
}
.sazon-soldout button{border:0;background:var(--color-accent-2-800);color:var(--color-neutral-100);border-radius:8px;padding:8px 10px;min-height:40px}
.sazon-cycle-note{margin:0 0 14px;font:600 14px/1.4 var(--font-body);color:var(--color-accent-2-800)}
.meal-card.is-soldout{opacity:.82}
.meal-card.is-soldout .add-button{background:var(--color-neutral-400)!important;color:var(--color-neutral-100)!important}
@media (min-width:720px){
  .sazon-thanks{align-items:center}
  .sazon-thanks-card{border-radius:18px;padding:28px}
}

/* V38 — plans visibles; filtro de alérgenos; WhatsApp */
#plans.plan-section,
#plans{
  /* undo v37 hide — keep original layout display */
  display: revert !important;
  visibility: visible !important;
}
#plans[hidden]{ display:none !important; }

.sazon-allergen-filter{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin:0 0 16px;
  padding:10px 14px;
  background:var(--color-neutral-100);
  border:1px solid var(--color-neutral-300);
  border-radius:12px;
  font:600 13px/1.3 var(--font-body);
  color:var(--color-neutral-700);
  position:relative;
  z-index:2;
}
.sazon-allergen-filter > span{
  margin-right:4px;
  white-space:nowrap;
}
.sazon-al-chip{
  border:1px solid var(--color-neutral-300);
  background:var(--color-neutral-100);
  color:var(--color-accent-2-800);
  border-radius:99px;
  padding:6px 12px;
  font:600 12px/1 var(--font-body);
  min-height:36px;
  cursor:pointer;
}
.sazon-al-chip.is-on{
  background:var(--color-accent-2-800);
  border-color:var(--color-accent-2-800);
  color:var(--color-neutral-100);
}
.sazon-wa{
  position:fixed;
  z-index:90;
  right:16px;
  bottom:16px;
  width:56px;
  height:56px;
  border-radius:50%;
  background:#25D366;
  color:var(--color-neutral-100);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 22px rgba(20,24,20,.28);
  text-decoration:none;
}
.sazon-wa svg{width:28px;height:28px;display:block}
.sazon-wa:hover{filter:brightness(1.06);transform:translateY(-1px)}
@media (max-width:700px){
  .sazon-wa{
    left:14px;
    right:auto;
    bottom:calc(108px + env(safe-area-inset-bottom,0px));
  }
  .sazon-allergen-filter{margin:0 12px 14px}
}




/* ===== V38 extras ===== */
.sazon-allergen-filter{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center;
  gap:8px !important;
}
.sazon-allergen-filter > span{
  display:inline-block !important;
  margin-right:6px;
  white-space:nowrap;
}
.sazon-al-chip{
  display:inline-flex !important;
  align-items:center;
  gap:4px;
}
.sazon-allergen-filter .sazon-al-empty{
  font:500 12px/1.4 var(--font-body);
  color:var(--color-neutral-600);
  width:100%;
}
/* Sticky cart / floating box should not cover last meal cards */
@media (max-width:700px){
  body{ padding-bottom: calc(180px + env(safe-area-inset-bottom)) !important; }
  .floating-box{ bottom: calc(88px + env(safe-area-inset-bottom)) !important; z-index: 40 !important; }
  form.checkout .button.primary{ position: sticky; bottom: 0; z-index: 5; }
}
@media (min-width:701px){
  .floating-box{ bottom: 28px !important; }
}
/* Plan card clarity */
#plans .plan-card .sazon-plan-note{
  display:block;
  margin-top:10px;
  color:var(--color-neutral-700);
  font:500 13px/1.45 var(--font-body);
}
footer a[href*="admin"]{ display:none !important; }


/* ===== V40 — Cart clarity + mobile-first ===== */
.sz-coupon-hidden,
#couponCode,
.sazon-coupon-field,
form.checkout label:has(#couponCode),
form.checkout input[name*="coupon"],
form.checkout input[id*="coupon"] {
  display: none !important;
}
.sz-react-date-hidden { display: none !important; }

.sazon-checkout-steps {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--color-accent-2-800);
  color: var(--color-neutral-100);
  font: 650 12.5px/1.35 var(--font-body);
  letter-spacing: .01em;
  text-align: center;
}
.sazon-address-confirm-wrap {
  display: grid;
  gap: 8px;
}
.sazon-edit-details {
  justify-self: start;
  min-height: 44px;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid var(--color-neutral-300);
  background: var(--color-neutral-100);
  color: var(--color-accent-2-800);
  font: 650 13px/1 var(--font-body);
  cursor: pointer;
}
.sazon-edit-details:hover { background: var(--color-neutral-100); }
.sazon-fulfilment .sazon-field-suburb input,
.sazon-fulfilment .sazon-field-day select,
.sazon-fulfilment #fulfilmentChoice {
  min-height: 48px;
  font-size: 16px;
}
.sazon-fulfilment .sazon-help {
  display: block;
  color: var(--color-neutral-700);
  font: 500 12.5px/1.45 var(--font-body);
}

/* Clear weekly vs one-off subtotal hierarchy */
.sazon-cart-summary .sazon-sum-grand {
  margin-top: 4px;
  padding-top: 8px;
  border-top: 1px solid var(--color-neutral-200);
}
.sazon-plan-hint {
  margin: 0 0 10px;
  color: var(--color-neutral-700);
  font: 500 12.5px/1.45 var(--font-body);
}

@media (max-width: 700px) {
  /* Path: hero CTA → menu → box → request */
  .hero-copy {
    padding-top: 28px !important;
    padding-bottom: 22px !important;
  }
  .hero-copy > .button.primary {
    min-height: 52px !important;
    font-size: 16px !important;
    width: min(100%, 320px);
  }
  .hero-notes { gap: 8px !important; }
  .hero-notes span { font-size: 12px !important; }

  /* Less competing chrome above the fold */
  .menu-toolbar {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    gap: 6px !important;
  }
  .sazon-allergen-filter {
    margin: 0 10px 8px !important;
    gap: 6px !important;
  }
  .sazon-allergen-filter > span { font-size: 11px !important; }
  .sazon-al-chip { min-height: 36px; font-size: 12px !important; }

  .meal-card .add-button {
    min-height: 48px !important;
    min-width: 48px;
    padding: 10px 14px !important;
    font-size: 15px !important;
  }
  .meal-card .meal-title { font-size: 15px !important; }

  /* Floating box + dock must not cover last cards or checkout fields */
  body { padding-bottom: calc(196px + env(safe-area-inset-bottom)) !important; }
  .floating-box {
    bottom: calc(92px + env(safe-area-inset-bottom)) !important;
    z-index: 38 !important;
    max-width: calc(100vw - 24px);
  }
  .mobile-dock { z-index: 45 !important; }

  /* Cart sheet: single clean panel, sticky CTA clear of inputs */
  .cart-sheet {
    padding-bottom: calc(12px + env(safe-area-inset-bottom)) !important;
  }
  .cart-sheet .sazon-checkout-steps { position: sticky; top: 0; z-index: 6; }
  form.checkout {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-bottom: 8px;
  }
  form.checkout .sazon-cart-summary { order: 1; margin-bottom: 4px; }
  form.checkout .sazon-fulfilment { order: 2; }
  form.checkout > label { order: 3; }
  /* The address search (list, "Ingresar manualmente", unit) sits right after the address label: same order,
     or the phone layout sent it to the top of the form, off screen. */
  form.checkout > .sazon-au-address { order: 3; }
  form.checkout .form-note,
  form.checkout .sazon-plan-checkout-note,
  form.checkout .sazon-zone-hint { order: 4; }
  form.checkout .button.primary { order: 5; }
  form.checkout input,
  form.checkout select,
  form.checkout textarea {
    min-height: 48px;
    scroll-margin-bottom: 120px;
  }
  form.checkout .button.primary {
    position: sticky;
    bottom: calc(4px + env(safe-area-inset-bottom));
    z-index: 8;
    min-height: 54px !important;
    font-size: 16px !important;
    box-shadow: 0 -16px 22px -8px rgba(248, 244, 233, .97);
  }
  .sazon-sum-qty button,
  .sazon-sum-qty .sz-q {
    min-width: 44px;
    min-height: 44px;
  }
}


/* v41: single plan price — hide duplicate green note */
.sazon-plan-note { display: none !important; }
#plans .plan-price {
  font-size: clamp(1.35rem, 4vw, 1.85rem);
  font-weight: 700;
  line-height: 1.25;
  color: var(--color-accent-600);
}
#plans .plan-price span {
  font-size: 0.55em;
  font-weight: 600;
  color: var(--color-neutral-700);
}

/* ===== V42 — Arte menor (mobile-first) ===== */
@media (max-width: 700px) {
  .hero-image {
    height: 22svh !important;
    min-height: 160px !important;
    max-height: 200px !important;
  }
  .hero-image > img,
  .hero img {
    object-position: center 45% !important;
  }
  .hero-stamp {
    width: 72px !important;
    height: 72px !important;
    top: 12px !important;
    right: 12px !important;
    font-size: 7px !important;
  }
  .hero-stamp svg { width: 16px !important; height: 16px !important; }
  .hero-caption { padding: 10px 12px !important; }
  .hero-caption span:first-child { font-size: 10px !important; }
  .hero-copy {
    padding: 18px 16px 22px !important;
  }
  .hero h1 {
    font-size: clamp(1.65rem, 7.5vw, 2.1rem) !important;
    line-height: 1.05 !important;
  }
  .hero-copy > p {
    font-size: 14px !important;
    line-height: 1.45 !important;
    margin-bottom: 12px !important;
  }
  .hero-notes { gap: 6px !important; }
  .hero-notes span { font-size: 11px !important; }
  #plans.plan-section {
    margin: 14px auto !important;
    width: calc(100% - 20px) !important;
  }
  #plans.plan-section .plan-card {
    padding: 16px 14px !important;
  }
  #plans .plan-price {
    font-size: 1.35rem !important;
    line-height: 1.2 !important;
  }
  #plans .plan-price span {
    font-size: 0.75rem !important;
  }
}
@media (min-width: 701px) and (max-width: 1100px) {
  .hero, .hero-image { min-height: 420px !important; }
  .hero h1 { font-size: clamp(2.2rem, 4vw, 3rem) !important; }
}
@media (min-width: 1101px) {
  .hero, .hero-image { min-height: 520px !important; max-height: 560px !important; }
}

/* ===== V44 — Plan card balanced (copy | price), no ribbon ===== */
#plans.plan-section {
  display: grid !important;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr) !important;
  align-items: stretch !important;
  gap: 28px !important;
  padding: 32px 36px !important;
  background:
    linear-gradient(145deg, var(--color-neutral-900) 0%, var(--color-neutral-800) 72%, var(--color-neutral-800) 100%) !important;
  color: var(--color-bg) !important;
  box-shadow: 0 12px 32px -10px rgba(20, 30, 22, .28) !important;
}
#plans.plan-section > div:first-child {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 4px 0;
}
#plans.plan-section .eyebrow { color: var(--color-accent-300) !important; }
#plans.plan-section h2 {
  margin: 12px 0 14px !important;
  font-size: clamp(1.55rem, 2.6vw, 2.15rem) !important;
  line-height: 1.15 !important;
  color: var(--color-neutral-100) !important;
}
#plans.plan-section h2 em { color: var(--color-accent-300) !important; }
#plans.plan-section > div:first-child > p {
  color: var(--color-neutral-300) !important;
  max-width: 420px;
  font-size: 14px !important;
  line-height: 1.65 !important;
  margin: 0 0 14px !important;
}
#plans.plan-section .plan-perks {
  gap: 8px 14px !important;
  margin-top: 4px !important;
}
#plans.plan-section .plan-perks span {
  font-size: 13px !important;
  color: var(--color-neutral-200) !important;
}
#plans.plan-section .plan-card {
  align-self: center;
  max-width: none !important;
  width: 100%;
  padding: 22px 20px !important;
  border-radius: 14px !important;
  background: var(--color-neutral-100) !important;
  color: var(--color-accent-2-800) !important;
  border: 1px solid var(--color-neutral-300) !important;
  box-shadow: 0 8px 18px -6px rgba(0, 0, 0, .2) !important;
}
#plans.plan-section .plan-card .eyebrow { color: var(--color-accent-600) !important; }
#plans.plan-section .plan-card h3 {
  margin: 10px 0 8px !important;
  font-size: 1.25rem !important;
}
#plans .plan-price {
  font-size: clamp(1.2rem, 2.2vw, 1.5rem) !important;
  font-weight: 700;
  line-height: 1.25 !important;
  color: var(--color-accent-600) !important;
  margin: 6px 0 8px !important;
}
#plans .plan-price span {
  font-size: 0.55em !important;
  font-weight: 600;
  color: var(--color-neutral-700) !important;
}
#plans.plan-section .plan-card > p {
  margin: 6px 0 14px !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
  color: var(--color-neutral-600) !important;
}
#plans.plan-section .plan-card .button {
  margin: 14px 0 10px !important;
  min-height: 46px !important;
}
#plans.plan-section .plan-card small {
  font-size: 11px !important;
  line-height: 1.55 !important;
}

@media (max-width: 700px) {
  #plans.plan-section {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    padding: 18px 14px 16px !important;
    margin: 14px auto !important;
    width: calc(100% - 20px) !important;
    border-radius: 14px !important;
    /* compact — not a giant dark slab */
    min-height: 0 !important;
  }
  #plans.plan-section h2 {
    font-size: clamp(1.35rem, 6vw, 1.7rem) !important;
    margin: 8px 0 10px !important;
  }
  #plans.plan-section > div:first-child > p {
    font-size: 13px !important;
    margin-bottom: 10px !important;
  }
  #plans.plan-section .plan-perks span { font-size: 12px !important; }
  #plans.plan-section .plan-card {
    padding: 14px 12px !important;
    border-radius: 12px !important;
  }
  #plans .plan-price {
    font-size: 1.3rem !important;
  }
}

@media (min-width: 701px) and (max-width: 980px) {
  #plans.plan-section {
    gap: 20px !important;
    padding: 26px 22px !important;
  }
}


/* v45 — ocultar foto de prueba de entrega (JS intacto); códigos de bolsa */
.rep-photo-btn,
.rep-photo,
input.rep-photo {
  display: none !important;
}
.rep-bag,
.rep-bag-line .rep-bag {
  display: inline-block;
  font: 800 19px/1.1 ui-monospace, Menlo, Consolas, monospace;
  letter-spacing: 0.08em;
  color: var(--color-neutral-900);
  background: var(--color-neutral-100);
  border: 2px solid var(--color-accent-2-800);
  border-radius: 8px;
  padding: 4px 8px;
  margin: 0 0 6px;
}
@media (min-width: 640px) {
  .rep-bag,
  .rep-bag-line .rep-bag {
    font-size: 23px;
    padding: 5px 10px;
  }
}
.bag-code-big {
  font: 800 42px/1.1 ui-monospace, Menlo, Consolas, monospace;
  letter-spacing: 0.12em;
  margin: 6px 0 8px;
}

.rep-photo-btn,.rep-photo-btn input.rep-photo,.rep-photo{display:none!important}

/* ==========================================================================
   Harmony pass — CTA tokens, floating cart, allergen chip, login, support
   ========================================================================== */
:root {
  --color-action-primary: var(--color-accent);
  --color-action-primary-hover: var(--color-accent-500);
  --color-action-secondary: var(--color-accent-2-800);
  --color-brand-green: var(--color-accent-2-800);
  --color-brand-cream: var(--color-bg);
  --color-progress: var(--color-accent);
  --color-chip-allergen-bg: var(--color-bg);
  --color-chip-allergen-border: var(--color-accent-400);
  --color-chip-allergen-text: var(--color-accent-800);
}/* Primary CTAs → terracotta (hero already set; extend to plans/support/login/delivery) */
#plans .plan-card .button,
#plans .plan-card a.button,
#plans .plan-card .button.primary,
.delivery-strip .button,
.delivery-strip a.button,
.support-page .button.primary,
.support-page a.button.primary {
  background: var(--color-action-primary) !important;
  border-color: var(--color-action-primary) !important;
  color: var(--color-neutral-100) !important;
  box-shadow: 0 10px 22px rgba(121, 41, 18, .28);
}#plans .plan-card .button:hover,
.delivery-strip .button:hover,
.support-page .button.primary:hover {
  background: var(--color-action-primary-hover) !important;
  border-color: var(--color-action-primary-hover) !important;
}

/* Secondary filled actions stay forest green (quieter) */
.add-button,
.meal-card .add-button {
  background: var(--color-action-secondary) !important;
  border-color: var(--color-action-secondary) !important;
  color: var(--color-neutral-100) !important;
  box-shadow: none !important;
  opacity: .96;
}

/* Floating cart — brand green + terracotta progress; hide when empty / covering CTAs */
.floating-box {
  background: var(--color-brand-green) !important;
  color: var(--color-neutral-100) !important;
  border: 1px solid rgba(255, 253, 248, .12);
  box-shadow: 0 10px 28px rgba(20, 32, 15, .35) !important;
}
.floating-box[data-empty="1"],
.floating-box[hidden],
.floating-box:empty {
  display: none !important;
}
.floating-box[data-cta-cover="1"] {
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 18px);
  transition: opacity .2s ease, transform .2s ease;
}
.sazon-box-bar i,
.sazon-box-progress .sazon-box-bar i {
  background: var(--color-progress) !important;
}

/* Extra bottom padding so cart does not sit on plans/delivery CTAs */
#plans.plan-section,
.delivery-strip {
  scroll-margin-bottom: 110px;
}
@media (min-width: 701px) {
  .floating-box { bottom: 28px !important; }
  body { padding-bottom: 96px; }
}
@media (max-width: 700px) {
  .floating-box { bottom: calc(96px + env(safe-area-inset-bottom)) !important; }
}

/* Allergen chip — cream + soft terracotta (not mustard) */
.sazon-allergen {
  background: var(--color-chip-allergen-bg) !important;
  border: 1px solid var(--color-chip-allergen-border) !important;
  color: var(--color-chip-allergen-text) !important;
}
.sazon-al-chip {
  background: var(--color-chip-allergen-bg) !important;
  border: 1px solid var(--color-chip-allergen-border) !important;
  color: var(--color-chip-allergen-text) !important;
}
.sazon-al-chip.is-on {
  background: var(--color-action-secondary) !important;
  border-color: var(--color-action-secondary) !important;
  color: var(--color-neutral-100) !important;
}

.sazon-cutoff-note {
  margin: 12px 0 0 !important;
  font: 500 13px/1.45 var(--font-body) !important;
  color: inherit !important;
  opacity: .92;
}

/* Support header — same rhythm as home; Volver al menú as secondary text action */
body:has(.support-page) .site-header,
.support-page ~ .site-header,
header.site-header:has(+ main.support-page),
main.support-page { }
header.site-header:has(+ main.support-page),
body:has(main.support-page) .site-header {
  height: 80px !important;
  min-height: 80px !important;
  padding: 0 5% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
}
body:has(main.support-page) .site-header .brand {
  padding-left: 46px !important;
  position: relative !important;
}
body:has(main.support-page) .site-header .brand-mark {
  display: block !important;
}
body:has(main.support-page) .site-header .text-link,
body:has(main.support-page) .site-header .account-link {
  white-space: nowrap;
  border-bottom: 1px solid var(--color-neutral-400);
  align-items: center;
  gap: 8px;
  padding-bottom: 4px;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--color-brand-green) !important;
  text-decoration: none !important;
  display: inline-flex !important;
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
body:has(main.support-page) .site-header .nav-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}


/* Support header harmony helpers */
.sazon-support-header { height: 80px !important; min-height: 80px !important; }
.sazon-support-header .account-link.text-link,
.sazon-support-header a.text-link.account-link {
  white-space: nowrap;
  border-bottom: 1px solid var(--color-neutral-400);
  align-items: center;
  gap: 8px;
  padding-bottom: 4px;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--color-accent-2-800) !important;
  text-decoration: none !important;
  display: inline-flex !important;
  background: transparent !important;
  box-shadow: none !important;
}
.sazon-support-lang { position: static !important; top: auto !important; right: auto !important; }
.top-text-link {
  display: inline-flex !important;
  align-items: center;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 6px 4px !important;
  font: 600 13px/1.2 var(--font-body) !important;
  color: var(--color-brand-green, var(--color-accent-2-800)) !important;
  text-decoration: none !important;
  cursor: pointer;
  opacity: .88;
}
.top-text-link:hover { opacity: 1; text-decoration: underline; text-underline-offset: 3px; }
.top-logout { opacity: .62 !important; font-weight: 500 !important; }
.top-logout:hover { opacity: .9 !important; }
@media (min-width: 801px) {
}
body[data-page="account"] .sz-origin,
body[data-page="account"] .sz-origin.subscription,
body[data-page="account"] .sz-origin.extra,
body[data-page="account"] .sz-origin.one-off,
body[data-page="account"] .sz-origin.oneoff {
  background: transparent !important;
  border: 1px solid var(--color-neutral-400) !important;
  color: var(--color-neutral-700) !important;
  font-weight: 700 !important;
  letter-spacing: .04em;
}
body[data-page="admin"] .source-badge,
body[data-page="admin"] .source-badge.subscription,
body[data-page="admin"] .source-badge.extra,
body[data-page="admin"] .source-badge.oneoff,
body[data-page="admin"] .source-badge.whatsapp {
  background: transparent !important;
  border: 1px solid var(--color-neutral-400) !important;
  color: var(--color-neutral-700) !important;
}

/* Account menu thumbs — same sprite as storefront */
body[data-page="account"] .sz-meal-img.sz-meal-photo {
  background-color: var(--color-bg);
  background-image: url(/menu-reference.webp);
  background-repeat: no-repeat;
  background-size: 420%;
  height: 104px;
}
body[data-page="account"] .sz-meal-blank {
  background: linear-gradient(135deg, var(--color-accent-2-700), var(--color-accent-2-800));
}

/* WhatsApp FAB — hide when marked off; keep clear of CTAs */
body[data-page="account"] .sazon-wa[hidden],
body[data-page="account"] .sazon-wa[data-surface="off"] {
  display: none !important;
}
body[data-page="account"] .sazon-wa {
  bottom: calc(28px + env(safe-area-inset-bottom, 0px)) !important;
}
body[data-page="account"] .sz-member-cart-bar ~ .sazon-wa,
body[data-page="account"]:has(#szMemberCartBar) .sazon-wa {
  bottom: calc(96px + env(safe-area-inset-bottom, 0px)) !important;
}

/* ==========================================================================
   Content pages (v47) — Privacy / Terms / About — storefront family, not portal
   ========================================================================== */
body[data-page="content"] {
  background: var(--color-brand-cream, var(--color-bg)) !important;
  color: var(--color-text);
  margin: 0;
  min-height: 100vh;
}
body[data-page="content"] .site-header.sazon-support-header {
  height: 80px !important;
  min-height: 80px !important;
  padding: 0 5% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  background: var(--color-neutral-100) !important;
  border-bottom: 1px solid var(--color-neutral-200);
  position: sticky;
  top: 0;
  z-index: 30;
}
body[data-page="content"] .site-header .brand {
  position: relative !important;
  padding-left: 46px !important;
  display: inline-flex !important;
  align-items: center;
  text-decoration: none !important;
  color: var(--color-brand-green, var(--color-accent-2-800)) !important;
  font:400 28px var(--font-heading) !important;
  line-height: 1;
}
body[data-page="content"] .site-header .brand-mark {
  display: block !important;
  position: absolute !important;
  left: 0; top: 50%; transform: translateY(-50%);
  width: 34px; height: 44px; border-radius: 3px;
  background: url(/menu-reference.webp) 16.5% .3% / 683% no-repeat !important;
}
body[data-page="content"] .site-header .brand-dot { color: var(--color-action-primary, var(--color-accent)) !important; }
body[data-page="content"] .site-header .brand-caption {
  display: none;
}
body[data-page="content"] .nav-actions {
  display: flex !important;
  align-items: center;
  gap: 14px;
}
body[data-page="content"] .language-switch {
  position: static !important;
  display: inline-flex !important;
  align-items: center;
  gap: 4px;
  border: 1px solid var(--color-neutral-200);
  border-radius: 99px;
  padding: 3px 6px;
  background: var(--color-neutral-100);
}
body[data-page="content"] .language-switch button {
  border: 0;
  background: transparent;
  padding: 4px 8px;
  border-radius: 99px;
  cursor: pointer;
  font: 700 12px var(--font-body);
  color: var(--color-accent-2-800);
}
body[data-page="content"] .language-switch button.active {
  background: var(--color-action-primary, var(--color-accent)) !important;
  color: var(--color-neutral-100) !important;
}
body[data-page="content"] .site-header .text-link.account-link {
  white-space: nowrap;
  border-bottom: 1px solid var(--color-neutral-400);
  padding-bottom: 4px;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--color-brand-green, var(--color-accent-2-800)) !important;
  text-decoration: none !important;
  background: transparent !important;
}
.content-page {
  max-width: 700px;
  margin: 0 auto;
  padding: 36px 5% 72px;
}
.content-page .eyebrow {
  display: block;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--color-action-primary, var(--color-accent));
  font: 700 11px/1.2 var(--font-body);
  margin: 0 0 10px;
}
.content-page h1 {
  font:400 40px/1.15 var(--font-heading);
  color: var(--color-brand-green, var(--color-accent-2-800));
  margin: 0 0 14px;
}
.content-page .lead {
  font: 400 17px/1.55 var(--font-body);
  color: var(--color-neutral-800);
  margin: 0 0 28px;
}
.content-page h2 {
  font:400 22px/1.25 var(--font-heading);
  color: var(--color-brand-green, var(--color-accent-2-800));
  margin: 28px 0 10px;
}
.content-page p,
.content-page li {
  font: 400 15px/1.6 var(--font-body);
  color: var(--color-text);
}
.content-page ul {
  padding-left: 1.15em;
  margin: 0 0 8px;
}
.content-page li + li { margin-top: 6px; }
.content-page a {
  color: var(--color-action-primary, var(--color-accent));
  font-weight: 600;
}
.content-crosslinks {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin-top: 40px;
  padding-top: 22px;
  border-top: 1px solid var(--color-neutral-200);
}
.content-crosslinks a {
  text-decoration: none;
  border-bottom: 1px solid var(--color-accent-400);
  padding-bottom: 2px;
  font-size: 13px;
}
.content-cards {
  list-style: none;
  padding: 0 !important;
  display: grid;
  gap: 10px;
  margin: 0 0 8px;
}
.content-cards li {
  background: var(--color-neutral-100);
  border: 1px solid var(--color-neutral-200);
  border-radius: 12px;
  padding: 14px 16px;
  font-weight: 600 !important;
}
.content-hero-thumb {
  margin: 0 0 28px;
  border-radius: 14px;
  overflow: hidden;
  max-width: 420px;
  border: 1px solid var(--color-neutral-200);
}
.content-hero-thumb img {
  display: block;
  width: 100%;
  height: auto;
}
.content-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 18px 0 8px;
}
body[data-page="content"] .content-actions .button.primary,
body[data-page="content"] a.button.primary {
  background: var(--color-action-primary, var(--color-accent)) !important;
  border-color: var(--color-action-primary, var(--color-accent)) !important;
  color: var(--color-neutral-100) !important;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
  padding: 12px 18px;
  border-radius: 9px;
  font-weight: 700;
  box-shadow: 0 8px 18px rgba(121, 41, 18, .22);
}
body[data-page="content"] .content-actions .button.outline,
body[data-page="content"] a.button.outline {
  background: transparent !important;
  border: 1px solid var(--color-accent-2-800) !important;
  color: var(--color-accent-2-800) !important;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
  padding: 11px 16px;
  border-radius: 9px;
  font-weight: 700;
}
.content-footer {
  background: var(--color-accent-2-800);
  color: var(--color-neutral-200);
  padding: 36px 5% 48px;
  margin-top: 24px;
}
.content-footer .brand {
  position: relative;
  padding-left: 46px;
  display: inline-flex;
  align-items: center;
  color: var(--color-neutral-100) !important;
  text-decoration: none !important;
  font:400 26px var(--font-heading);
}
.content-footer .brand-mark {
  display: block !important;
  position: absolute;
  left: 0; top: 50%; transform: translateY(-50%);
  width: 34px; height: 44px; border-radius: 3px;
  background: url(/menu-reference.webp) 16.5% .3% / 683% no-repeat;
}
.content-footer .brand-dot { color: var(--color-accent-500) !important; }
.content-footer .brand-caption { display: none; }
.content-footer p { opacity: .85; margin: 12px 0 18px; }
.content-footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin-bottom: 18px;
}
.content-footer-links a {
  color: var(--color-neutral-100) !important;
  text-decoration: none;
  font-weight: 600;
  font-size: 13px;
  border-bottom: 1px solid rgba(255,253,248,.25);
  padding-bottom: 2px;
}
.content-footer small { opacity: .65; font-size: 12px; }
@media (max-width: 700px) {
  .content-page h1 { font-size: 32px; }
  body[data-page="content"] .site-header .brand-caption { display: none; }
}

/* ==========================================================================
   Gap fixes (v47) — branded 404, track empty, mobile cart vs dock
   ========================================================================== */

/* Hide floating cart pill when mobile dock is visible (≤700px) — avoid double chrome */
@media (max-width: 700px) {
  body:has(.mobile-dock) .floating-box,
  .floating-box {
    display: none !important;
  }
  /* Dock “Tu caja” remains the single cart affordance on small screens */
  .mobile-dock { z-index: 50 !important; }
}

/* 404 / track empty — centered content card */
.content-page--center {
  text-align: center;
  padding-top: 56px;
  padding-bottom: 80px;
}
.content-page--center .content-actions {
  justify-content: center;
}
.content-page--center .content-crosslinks {
  justify-content: center;
}
.content-page--track {
  max-width: 640px;
}
.track-empty {
  background: var(--color-neutral-100);
  border: 1px solid var(--color-neutral-200);
  border-radius: 16px;
  padding: 28px 22px 24px;
  margin-top: 8px;
  text-align: left;
}
.track-empty-icon {
  font-size: 36px;
  line-height: 1;
  margin-bottom: 10px;
}
.track-empty h2 {
  font:400 22px/1.25 var(--font-heading);
  color: var(--color-brand-green, var(--color-accent-2-800));
  margin: 0 0 8px;
}
.track-empty p {
  margin: 0 0 14px;
  color: var(--color-neutral-800);
}
.track-empty-steps {
  margin: 0 0 18px;
  padding-left: 1.2em;
  color: var(--color-neutral-800);
}
.track-empty-steps li + li { margin-top: 6px; }
.track-card {
  margin-top: 8px;
}
body[data-page="content"] .track-empty a.button.primary,
body[data-page="content"] .track-card a.button.primary,
body[data-content="404"] a.button.primary {
  text-decoration: none !important;
}
/* Kill default blue links on content/track pages */
body[data-page="content"] a:not(.button):not(.brand):not(.text-link) {
  color: var(--color-action-primary, var(--color-accent)) !important;
}

/* ==========================================================================
   v48 — Suscripción tab (Mi cuenta) — scoped .sz-plan-*
   ========================================================================== */

.sz-plan-card {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.sz-plan-head {
  margin-bottom: 4px;
}
.sz-plan-head h2 {
  margin: 0 0 4px;
}
.sz-plan-lead {
  margin: 0 0 12px;
  font-size: 13px;
  color: var(--color-neutral-700);
  line-height: 1.45;
}
.sz-plan-card .sz-plan-now,
.sz-plan-card .sz-plan-empty {
  margin-top: 4px;
  margin-bottom: 14px;
}
.sz-plan-howto {
  background: var(--color-neutral-100);
  border: 1px solid var(--color-neutral-200);
  border-radius: 12px;
  padding: 0;
  margin: 0 0 16px;
  overflow: hidden;
}
.sz-plan-howto > summary {
  cursor: pointer;
  list-style: none;
  font: 600 14px/1.4 var(--font-body);
  color: var(--color-accent-2-800);
  padding: 12px 16px;
  user-select: none;
}
.sz-plan-howto > summary::-webkit-details-marker { display: none; }
.sz-plan-howto > summary::after {
  content: '▸';
  float: right;
  color: var(--color-neutral-500);
  transition: transform .15s ease;
}
.sz-plan-howto[open] > summary::after {
  transform: rotate(90deg);
}
.sz-plan-howto ol {
  margin: 0;
  padding: 0 16px 14px 34px;
  color: var(--color-neutral-800);
}
.sz-plan-howto li {
  margin: 4px 0;
  font-size: 13px;
  line-height: 1.45;
}
.sz-plan-form .sz-plan-hint {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  color: var(--color-neutral-600);
  line-height: 1.4;
}
.sz-plan-pause-field input[type="date"] {
  max-width: 100%;
}
.sz-plan-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: stretch;
  margin-top: 4px;
}
.sz-plan-actions .btn {
  flex: 1 1 auto;
  min-width: 140px;
  justify-content: center;
}
.sz-plan-actions .sz-plan-btn-primary {
  order: 0;
  flex: 1 1 100%;
}
.sz-plan-actions .sz-plan-btn-save {
  order: 1;
}
.sz-plan-actions .sz-plan-btn-danger {
  order: 3;
  opacity: .92;
}
.sz-plan-actions #planPause {
  order: 2;
}
.sz-plan-note {
  margin-top: 14px;
}
@media (min-width: 640px) {
  .sz-plan-actions .sz-plan-btn-primary {
    flex: 1 1 auto;
  }
  .sz-plan-actions .btn {
    flex: 0 1 auto;
    min-width: 0;
  }
}
@media (max-width: 520px) {
  .sz-plan-actions {
    flex-direction: column;
  }
  .sz-plan-actions .btn {
    width: 100%;
    min-width: 0;
  }
  .sz-plan-card .sz-plan-now {
    flex-direction: column;
    align-items: flex-start;
  }
  .sz-plan-price {
    text-align: left !important;
  }
}

/* ---- Compras (lista de compras admin) ---- */
.compras-hint {
  margin: 10px 0 16px;
  max-width: 52rem;
  line-height: 1.45;
}
.compras-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 8px 0 4px;
}
.compras-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  margin: 14px 0 18px;
}
.compras-card {
  padding: 14px 16px;
}
.compras-card small {
  display: block;
  font-size: 11px;
  letter-spacing: .04em;
  color: var(--muted, var(--color-neutral-600));
  margin-bottom: 4px;
}
.compras-card strong {
  display: block;
  font:400 22px/1.15 var(--font-heading);
  color: var(--green, var(--color-accent-2-800));
}
.compras-card span {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  color: var(--muted, var(--color-neutral-600));
}
.compras-teto strong {
  color: var(--color-accent-2-800);
}
.compras-section {
  margin-bottom: 14px;
  padding: 16px 18px;
}
.compras-sec-head h2 {
  margin: 0 0 4px;
  font: 700 17px/1.2 var(--font-body);
  color: var(--ink, var(--color-neutral-900));
}
.compras-sec-head .hint {
  margin: 0 0 10px;
}
.compras-rice-total {
  margin: 8px 0 0;
  font-size: 15px;
}
.compras-rice-total strong {
  font-size: 28px;
  color: var(--green, var(--color-accent-2-800));
}
.compras-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.compras-table th,
.compras-table td {
  text-align: left;
  padding: 8px 10px;
  border-bottom: 1px solid var(--line, var(--color-neutral-200));
}
.compras-table th {
  font-size: 12px;
  color: var(--muted, var(--color-neutral-600));
  font-weight: 600;
}
.compras-table td:nth-child(n+2) {
  font-variant-numeric: tabular-nums;
}
.compras-meal-name {
  margin: 0 0 4px;
  font: 700 17px/1.2 var(--font-body);
  color: var(--ink, var(--color-neutral-900));
}
.compras-meal-portions {
  margin: 0 0 10px;
}
.compras-buy-cell {
  width: 12.5rem;
  vertical-align: middle;
}
.compras-buy {
  width: 11.5rem;
  max-width: 100%;
  border: 1px solid var(--color-neutral-300);
  border-radius: 7px;
  padding: 7px 9px;
  font-size: 13px;
  background: var(--color-neutral-100);
  color: inherit;
}
.compras-meal .compras-table label {
  font-weight: 600;
  cursor: pointer;
}


/* v52 — public menu photos come from the webp sprite only. */
.meal-photo,
.brand-mark {
  background-image: url(/menu-reference.webp) !important;
}


/* v54 — 1280×800: the fixed cart bar sits on the hero subtitle.
   Extra space under the copy clears that line. The bar stays visible.
   Image crop (object-fit / object-position / aspect-ratio) is untouched. */
@media (min-width: 1100px) and (max-width: 1440px) and (max-height: 900px) {
  .hero {
    max-height: none !important;
    overflow: visible !important;
  }
  .hero-copy {
    padding-bottom: 108px !important;
  }
  .hero-image,
  .hero-image img,
  .hero picture img,
  .hero img {
    max-height: 520px !important;
    object-fit: cover !important;
    object-position: center 45% !important;
    aspect-ratio: 1200 / 800 !important;
  }
  .floating-box {
    bottom: 16px !important;
  }
}


/* ===== v58 — home clean + ES-first i18n ===== */
.hero h1 br,
.hero-copy > p br {
  display: block !important;
  content: "" !important;
  margin: 0 !important;
  line-height: inherit !important;
}
.hero h1 {
  white-space: normal !important;
  overflow-wrap: normal !important;
}
.sazon-cutoff-chip {
  display: inline;
  font-weight: 600;
  opacity: .95;
  white-space: nowrap;
}
/* Hide legacy third cutoff bar if any leftover markup remains */
.sazon-cutoff-banner { display: none !important; height: 0 !important; overflow: hidden !important; padding: 0 !important; margin: 0 !important; border: 0 !important; }

/* Desktop 1280×800: cart must not cover hero subtitle / CTA */
@media (min-width: 1100px) and (max-width: 1440px) and (max-height: 900px) {
  .hero {
    max-height: none !important;
    overflow: visible !important;
  }
  .hero-copy {
    padding-bottom: 148px !important;
    padding-top: 40px !important;
  }
  .hero-copy > p {
    margin-bottom: 14px !important;
    padding-bottom: 2px !important;
  }
  .hero-copy > .button.primary {
    margin-bottom: 8px !important;
  }
  .floating-box {
    bottom: 12px !important;
    max-width: min(520px, calc(100vw - 32px));
  }
}

@media (min-width: 1100px) {
  .hero-copy {
    padding-bottom: max(46px, 7vh) !important;
  }
}

/* Mobile P0 */
@media (max-width: 700px) {
  .hero-stamp {
    display: none !important; /* clipped on narrow viewports */
  }
  .sazon-wa,
  .sazon-wa[data-v58] {
    left: 12px !important;
    right: auto !important;
    bottom: calc(168px + env(safe-area-inset-bottom, 0px)) !important;
    width: 52px !important;
    height: 52px !important;
    z-index: 40 !important; /* under dock (50), above content */
  }
  .values-bar {
    padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)) !important;
    padding-top: 14px !important;
  }
  body {
    padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px)) !important;
  }
  .hero-copy {
    padding-bottom: 28px !important;
  }
  .hero h1 {
    font-size: clamp(1.7rem, 8vw, 2.15rem) !important;
    line-height: 1.12 !important;
  }
  /* Buen provecho only in terracotta caption — hide if it floats outside */
  .hero-image > .buen-provecho,
  .hero > .buen-provecho { display: none !important; }
}

/* Nav actions breathing room */
.nav-actions {
  gap: 14px !important;
  align-items: center;
}
.language-switch {
  margin-left: 4px;
}

/* Menu heading: keep Explore meal plans with the H2 block */
@media (min-width: 901px) {
  #menu .section-heading {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-end !important;
    gap: 8px 18px !important;
  }
  #menu .section-heading > div {
    flex: 1 1 auto;
  }
  #menu .section-heading > .text-link {
    flex: 0 0 auto;
    align-self: flex-end;
    margin-top: 0 !important;
  }
}

/* Footer: one link row */
footer .sazon-footer-contact a[href*="about"],
footer .sazon-footer-contact a[href*="privacy"],
footer .sazon-footer-contact a[href*="terms"] {
  display: none !important;
}

/* === v66 · storefront visual consolidation === */
:root{--sz-forest:var(--color-accent-2-800);--sz-cream:var(--color-bg);--sz-gold:var(--color-accent-400);--sz-gold-soft:var(--color-neutral-200);--sz-terracotta:var(--color-accent);--sz-ink:var(--color-text)}
.main-nav a{border:1px solid transparent;border-radius:999px;padding:.55rem .82rem;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}
.main-nav a:hover,.main-nav a:focus-visible{border-color:var(--sz-gold);background:rgba(215,173,85,.10);box-shadow:0 5px 18px rgba(70,57,28,.08);transform:translateY(-1px);outline:none}
#menu .menu-toolbar{background:transparent!important;border:0!important;box-shadow:none!important;padding:8px 0 22px!important}
#menu .menu-toolbar [role="tablist"]{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;width:100%;background:transparent!important;padding:0!important}
#menu .menu-toolbar [role="tab"]{min-height:76px!important;text-align:left!important;border:1px solid rgba(45,58,47,.14)!important;border-radius:18px!important;background:linear-gradient(145deg,var(--color-neutral-100),var(--color-neutral-100))!important;padding:14px 18px!important;box-shadow:0 8px 28px rgba(45,58,47,.06)!important;transition:.2s ease!important;font-weight:800!important;letter-spacing:.02em}
#menu .menu-toolbar [role="tab"]:hover{border-color:var(--sz-gold)!important;transform:translateY(-2px);box-shadow:0 12px 30px rgba(45,58,47,.10)!important}
#menu .menu-toolbar [role="tab"][data-state="active"],#menu .menu-toolbar [role="tab"][aria-selected="true"]{border-color:var(--sz-gold)!important;background:linear-gradient(145deg,var(--color-neutral-100),var(--color-accent-200))!important;box-shadow:inset 0 0 0 1px rgba(215,173,85,.25),0 12px 30px rgba(45,58,47,.10)!important;color:var(--sz-forest)!important}
#plans{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--color-neutral-900) 0%,var(--color-accent-2-800) 60%,var(--color-neutral-800) 100%)!important;color:var(--color-neutral-100)!important}
#plans:before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;right:-150px;top:-210px;background:radial-gradient(circle,rgba(215,173,85,.24),transparent 68%);pointer-events:none}
#plans .section-heading h2,#plans h2,#plans h3{color:var(--color-neutral-100)!important}
#plans .section-heading p,#plans p{color:rgba(255,255,255,.78)}
.sz-v66-weekly{position:relative;z-index:3;max-width:1120px;margin:0 auto;padding:18px 0 10px}
.sz-v66-weekly-head{text-align:center;max-width:720px;margin:0 auto 26px}.sz-v66-weekly-head .kicker{color:var(--color-accent-300);font-size:.76rem;font-weight:900;letter-spacing:.16em}.sz-v66-weekly-head h3{font-size:clamp(2rem,4vw,3.35rem);margin:.4rem 0 .7rem}.sz-v66-weekly-head p{font-size:1.05rem}
.sz-v66-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:820px;margin:0 auto}.sz-v66-plan{background:var(--color-neutral-100);color:var(--sz-ink);border:1px solid rgba(215,173,85,.45);border-radius:24px;padding:24px;box-shadow:0 18px 45px rgba(0,0,0,.15)}.sz-v66-plan h4{font-size:1.35rem;margin:0 0 10px}.sz-v66-plan .price{font-size:2.55rem;font-weight:900;letter-spacing:-.05em;color:var(--sz-forest)}.sz-v66-plan .price small{font-size:.85rem;letter-spacing:0;color:var(--color-neutral-600)}.sz-v66-plan .compare{text-decoration:line-through;color:var(--color-neutral-500);margin-left:8px}.sz-v66-save{display:inline-flex;margin:10px 0 16px;padding:6px 10px;border-radius:999px;background:var(--color-accent-200);color:var(--color-accent-800);font-weight:900;font-size:.78rem}.sz-v66-plan ul{padding:0;margin:0 0 18px;list-style:none}.sz-v66-plan li{margin:8px 0}.sz-v66-plan li:before{content:"✓";color:var(--sz-terracotta);font-weight:900;margin-right:8px}.sz-v66-plan .button{width:100%;justify-content:center}.sz-v66-fine{text-align:center;margin:18px auto 0!important;font-size:.82rem;max-width:760px}
@media(max-width:720px){.sz-v66-plans{grid-template-columns:1fr}.main-nav a{padding:.45rem .6rem}#menu .menu-toolbar [role="tablist"]{grid-template-columns:1fr 1fr}#menu .menu-toolbar [role="tab"]{min-height:64px!important;padding:11px 13px!important}}

/* === v67 · menu hierarchy cleanup === */
#menu .menu-toolbar [role="tablist"]{display:none!important}
#menu .menu-toolbar{display:flex!important;justify-content:flex-end!important;align-items:center!important;min-height:0!important;padding:0 0 16px!important;margin:0!important}
.sazon-menu-family-tabs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 14px!important;width:100%}
.sazon-family-card{appearance:none;border:1px solid rgba(45,58,47,.13);border-radius:18px;background:linear-gradient(145deg,var(--color-neutral-100),var(--color-neutral-100));padding:16px 18px;text-align:left;color:var(--sz-forest);box-shadow:0 8px 24px rgba(45,58,47,.055);cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}
.sazon-family-card strong,.sazon-family-card small{display:block}.sazon-family-card strong{font-size:1rem}.sazon-family-card small{margin-top:5px;color:var(--color-neutral-600);font-size:.76rem;font-weight:600}.sazon-family-card:hover{transform:translateY(-2px);border-color:var(--sz-gold);box-shadow:0 12px 28px rgba(45,58,47,.09)}.sazon-family-card.is-active{border-color:var(--sz-gold);background:linear-gradient(145deg,var(--color-neutral-100),var(--color-accent-200));box-shadow:inset 0 0 0 1px rgba(215,173,85,.18),0 10px 28px rgba(45,58,47,.08)}
#menu .portion-selector,#menu .size-selector{margin-left:auto!important}
/* Weekly plan uses the full section instead of leaving a dead right column */
#plans>.section-heading{display:none!important}.sz-v66-weekly{max-width:1180px!important;padding:42px 34px 36px!important}.sz-v66-weekly-head{max-width:820px!important}.sz-v66-plans{max-width:940px!important;gap:24px!important}.sz-v66-plan{padding:28px!important}.sz-v66-plan .button{min-height:52px}
@media(max-width:760px){.sazon-menu-family-tabs{grid-template-columns:1fr!important}.sz-v66-weekly{padding:30px 16px!important}}
/* v73.1 — Australian G-NAF address autocomplete */
.sazon-au-address{margin:-.2rem 0 .9rem}.sazon-au-results{border:1px solid var(--color-neutral-300);border-radius:12px;background:var(--color-neutral-100);box-shadow:0 10px 28px rgba(0,0,0,.10);max-height:260px;overflow:auto;margin:.35rem 0;position:relative;z-index:50}.sazon-au-option{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--color-neutral-100);background:var(--color-neutral-100);padding:.78rem .9rem;cursor:pointer;color:var(--color-text)}.sazon-au-option:hover,.sazon-au-option:focus{background:var(--color-neutral-100);outline:none}.sazon-au-option:last-child{border-bottom:0}.sazon-au-empty{padding:.8rem .9rem;color:var(--color-neutral-600)}.sazon-manual-address{border:0;background:transparent;padding:.35rem 0;color:var(--color-accent-2-700);text-decoration:underline;cursor:pointer;font:inherit;font-size:.86rem}.sazon-unit-row{margin-top:.45rem}.sazon-unit-row label{display:block}.sazon-unit-row input{width:100%;margin-top:.3rem}.sazon-address-source{display:block;color:var(--color-neutral-600);margin-top:.35rem}.gnaf-attribution{display:block;max-width:900px;margin:.6rem auto 0;opacity:.72;font-size:.68rem;line-height:1.35}

/* === V74 · Weekly Sazón visual refresh === */
.sz-v66-weekly{max-width:1380px!important;padding:58px 42px 48px!important}
.sz-v74-weekly-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);gap:38px;align-items:center}
.sz-v74-weekly-copy{min-width:0}.sz-v66-weekly-head{text-align:left!important;margin:0 0 28px!important;max-width:760px!important}
.sz-v66-weekly-head h3{font-family:var(--font-heading);font-size:clamp(2.7rem,5vw,5.2rem)!important;line-height:.94!important;letter-spacing:-.045em;margin:.55rem 0 1rem!important}
.sz-v66-weekly-head h3 em{color:var(--color-accent-300);font-weight:500}.sz-v66-weekly-head p{max-width:650px;font-size:1.08rem!important;line-height:1.6}
.sz-v66-plans{max-width:none!important;margin:0!important;gap:22px!important}.sz-v66-plan{border-radius:20px!important;padding:26px!important}.sz-v66-plan h4{font-size:1.55rem!important}.sz-v66-plan .price{font-size:2.75rem!important}.sz-v66-plan ul{min-height:142px}
.sz-v74-weekly-art{margin:0;position:relative;align-self:stretch;min-height:620px;border-radius:30px;overflow:hidden;box-shadow:0 28px 70px rgba(0,0,0,.24);border:1px solid rgba(240,207,131,.24);background:var(--color-accent-2-900)}
.sz-v74-weekly-art img{width:100%;height:100%;object-fit:cover;object-position:73% center;display:block;transform:scale(1.01)}
.sz-v74-weekly-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,62,45,.18),transparent 38%);pointer-events:none}
.sz-v74-weekly-art figcaption{position:absolute;z-index:2;left:22px;right:22px;bottom:20px;padding:12px 16px;border-radius:999px;background:rgba(20,49,37,.86);backdrop-filter:blur(10px);color:var(--color-neutral-100);font-size:.82rem;font-weight:800;letter-spacing:.03em;text-align:center}
.sazon-manual-fields{margin:.55rem 0}.sazon-manual-fields label{display:block}.sazon-manual-fields input{width:100%;margin-top:.3rem}
@media(max-width:980px){.sz-v74-weekly-grid{grid-template-columns:1fr}.sz-v74-weekly-art{min-height:420px;order:-1}.sz-v74-weekly-art img{object-position:center 43%}.sz-v66-weekly-head{text-align:center!important;margin-left:auto!important;margin-right:auto!important}.sz-v66-plans{max-width:900px!important;margin:0 auto!important}}
@media(max-width:620px){.sz-v66-weekly{padding:34px 16px 30px!important}.sz-v74-weekly-art{min-height:290px;border-radius:22px}.sz-v66-weekly-head h3{font-size:2.65rem!important}.sz-v66-plan ul{min-height:0}.sz-v74-weekly-art figcaption{font-size:.72rem;left:12px;right:12px;bottom:12px}}

/* V76 checkout mode + truthful confirmation */
form.sazon-weekly-checkout .sazon-plan-switch{box-shadow:inset 0 0 0 1px rgba(201,160,74,.38)}
form.sazon-weekly-checkout button[type="submit"].is-weekly-plan{background:var(--color-accent-500);border-color:var(--color-accent-500)}
.sazon-post-submit{padding:28px;max-width:560px;margin:16px auto;background:var(--color-neutral-100);border:1px solid rgba(45,58,47,.14);border-radius:18px;color:var(--color-accent-2-800)}
.sazon-post-submit h3{font-family:inherit;font-size:1.65rem;line-height:1.15;margin:.4rem 0 .75rem}
.sazon-post-submit p{line-height:1.55;margin:0 0 1.2rem}
.sz-v66-weekly-head h3{font-family:inherit!important;font-size:clamp(2.25rem,5vw,4.35rem)!important}

/* ===== V77.2 — Weekly Sazón: layout corrigido =====
   #plans.plan-section é uma grade de 2 colunas (V44: texto | cartão). O bloco semanal é o ÚNICO filho visível (os filhos originais
   do React ficam com display:none), então precisa ocupar as duas colunas. Antes ficava preso à coluna 1 (~524px) e a grade interna
   (1.45fr | 320px) espremia o texto em ~80px de largura. */
#plans.plan-section > .sz-v66-weekly{grid-column:1 / -1;width:100%;min-width:0}
/* A arte aprovada (weekly-sazon-v75.webp) é um mock-up da seção inteira, com preços e botões desenhados: não serve como foto.
   Aqui entra uma foto sem texto; o mock-up fica guardado em assets/originals/. */
.sz-v74-weekly-art{min-height:0;aspect-ratio:4/5;align-self:center}
.sz-v74-weekly-art img{object-position:34% center}
.sz-v66-plan .price{font-size:clamp(2rem,3.1vw,2.75rem)!important;line-height:1.1}
.sz-v66-plan .price small{white-space:nowrap;font-size:.42em;letter-spacing:0}
@media(max-width:980px){.sz-v74-weekly-art{aspect-ratio:16/9}.sz-v74-weekly-art img{object-position:center 40%}}
@media(max-width:620px){.sz-v74-weekly-art{aspect-ratio:4/3}}

/* V84 · Cómo pagas (payments.js) */
.sz-pay{border:1px solid var(--color-line,var(--color-neutral-200));border-radius:14px;padding:12px 14px;margin:12px 0;display:grid;gap:8px}
.sz-pay legend{font-weight:700;padding:0 4px}
.sz-pay-opt{display:flex;gap:10px;align-items:flex-start;cursor:pointer;line-height:1.35}
.sz-pay-opt input{margin-top:3px;accent-color:var(--color-accent)}
/* The checkout's "every field full width, 48 px" rule also hit the radios (629 px wide, labels in a column). */
form.checkout .sz-pay-opt{flex-direction:row;align-items:flex-start}
form.checkout .sz-pay-opt input[type=radio]{flex:0 0 auto;width:20px;height:20px;min-height:0;margin:3px 0 0;padding:0}
.sazon-pwa .sazon-pwa-go{margin-left:auto;border:0;border-radius:999px;padding:6px 14px;font-weight:700;background:var(--color-cta-bg);color:var(--color-cta-fg);cursor:pointer}
.sz-pay-opt small{display:block;opacity:.8}
.sz-pay-note{margin:0;font-size:.9em;opacity:.85}
.sz-pay-card{margin:0;display:grid;gap:4px}.sz-pay-card small{opacity:.8}
.sz-pay-error{color:var(--color-accent-700);margin:.5em 0 0}
/* V86: cuenta obligatoria en el carrito (cart-account.js) */
form.checkout [data-sz-locked]{display:none!important}
.sz-auth{order:3;border:1px solid var(--color-line,var(--color-neutral-200));border-radius:14px;padding:14px;margin:12px 0;display:grid;gap:10px;background:var(--color-neutral-100)}
.sz-auth h4{margin:0;font-size:1.05em}
.sz-auth p{margin:0;line-height:1.4}
.sz-auth label{display:grid;gap:4px}
.sz-auth input{width:100%}
.sz-auth-go{width:100%;min-height:48px;border:0;border-radius:var(--radius-pill,999px);background:var(--color-action-primary,var(--color-accent));color:var(--color-neutral-100);font:inherit;font-weight:700;cursor:pointer}
.sz-auth-go:hover{background:var(--color-action-primary-hover,var(--color-accent-600))}
.sz-auth-go:disabled{opacity:.6;cursor:wait}
.sz-auth-link{background:none;border:0;padding:2px 0;color:var(--color-accent-700);text-decoration:underline;cursor:pointer;justify-self:start;font:inherit}
.sz-auth-msg{font-size:.9em;color:var(--color-accent-700);min-height:1em}
.sz-auth-msg:empty{display:none}

/* V90 · Mi cuenta: declined plan renewal (payments.js) */
.sz-pay-issue{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 20px;margin:0 0 18px;padding:18px 20px;border:1px solid var(--color-accent-300);border-left:5px solid var(--color-accent);border-radius:16px;background:var(--color-accent-100);color:var(--color-text)}
.sz-pay-issue h2{margin:0 0 4px;font:700 17px/1.3 var(--font-body)}
.sz-pay-issue p{margin:0;max-width:60ch;font:15px/1.5 var(--font-body)}
.sz-pay-issue-actions{display:flex;flex-wrap:wrap;gap:10px}
.sz-pay-issue-actions .btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;text-decoration:none}
.sz-pay-issue .sz-pay-error{flex-basis:100%;margin:6px 0 0;color:var(--color-danger-ink);font-size:14px}
@media (max-width:560px){.sz-pay-issue-actions,.sz-pay-issue-actions .btn{width:100%}}

/* Audit A-11: a real "Cerrar" row on top of the cart (the sheet's own 16px "x" sat under the sticky steps bar). */
.cart-sheet > .sazon-cart-top{position:sticky;top:0;z-index:8;display:flex;justify-content:flex-end;margin:0 0 6px;padding:4px 0;background:inherit}
.sazon-cart-close{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;min-height:44px;padding:0 16px;border:1px solid var(--color-neutral-500);border-radius:999px;background:var(--color-surface);color:var(--color-text);font:700 15px/1 var(--font-body);cursor:pointer}
.sazon-cart-close:focus-visible{outline:3px solid var(--color-action-primary);outline-offset:2px}
.cart-sheet.sz-has-top > button.absolute{display:none}
@media (max-width:700px){.cart-sheet.sz-has-top .sazon-checkout-steps{top:54px}}

/* Audit A-05: dishes hidden by the allergen filter (class, so the category tabs cannot show them again). */
.meal-card.sz-al-hidden{display:none!important}

/* Audit A-19: on the phone the store has Ayuda in the bottom dock; the floating WhatsApp button covered "Agregar". */
@media (max-width:700px){body#top .sazon-wa{display:none!important}}
.sazon-sum-terms{margin:8px 0 0;font:13px/1.45 var(--font-body);color:var(--color-neutral-700)}
.sazon-sum-terms a{color:var(--color-action-primary);text-decoration:underline}
