:root{
  --brand:#195e30;
  --brand-dark:#124a26;
  --text:#111;
  --muted:#6b7280;
  --border:#e5e7eb;
}

*{ margin:0; padding:0; box-sizing:border-box; }

body{
  font-family:'Inter', sans-serif;
  background:#fff;
  color:var(--text);
  min-height:100vh;
}

.icon{
  display:inline-block;
  width:1em;
  height:1em;
  vertical-align:-0.125em;
  flex-shrink:0;
}

.icon svg{
  display:block;
  width:100%;
  height:100%;
}

/* Fondo sutil (tamaños relativos al viewport en pantallas grandes) */
.bg-soft{
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(900px 450px at 18% 30%, rgba(25,94,48,.08), transparent 55%),
    radial-gradient(700px 380px at 78% 25%, rgba(0,0,0,.05), transparent 60%),
    radial-gradient(900px 500px at 60% 85%, rgba(25,94,48,.06), transparent 60%);
  z-index:-1;
}

@media (min-width: 1600px){
  .bg-soft{
    background:
      radial-gradient(min(1100px, 55vw) min(520px, 32vh) at 18% 30%, rgba(25,94,48,.08), transparent 55%),
      radial-gradient(min(880px, 42vw) min(420px, 28vh) at 78% 25%, rgba(0,0,0,.05), transparent 60%),
      radial-gradient(min(1100px, 52vw) min(560px, 34vh) at 60% 85%, rgba(25,94,48,.06), transparent 60%);
  }
}

/* Layout */
.shell{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  padding:28px clamp(18px, 4vw, 56px);
}

/* Ancho de contenido: un poco más amplio en pantallas muy grandes */
.header,
.main,
.footer{
  max-width:min(1100px, 100%);
}

/* Header: misma rejilla en todas las páginas (logo siempre misma celda; no depende de la altura del bloque derecho) */
.header{
  width:100%;
  margin:0 auto;
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:start;
  column-gap:14px;
  row-gap:0;

  padding-top:8px;
  padding-bottom:8px;
}

.header-brand{
  display:flex;
  align-items:flex-start;
  min-width:0;
}

.logo{
  flex-shrink:0;
}

.logo img{
  height:43px; /* <- tu tamaño */
  width:auto;
  display:block;
}

/* Mismo encuadre: logo como enlace (a.logo) o div.logo > a — evita desplazamiento por línea inline */
a.logo,
.logo > a{
  display:block;
  line-height:0;
  text-decoration:none;
  border-bottom:0;
  color:inherit;
}

a.logo:hover img,
.logo > a:hover img{
  opacity:.92;
}

.top-actions{
  display:flex;
  align-items:center;
  gap:10px;
}

/* Botón WhatsApp superior */
.wa-top{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:12px 16px;
  border:1px solid var(--border);
  border-radius:14px;
  text-decoration:none;
  font-size:14px;
  color:var(--text);
  transition:all .2s ease;
  background:#fff;
}

.wa-top .icon{
  font-size:18px;
  color:var(--brand);
}

.wa-top:hover{
  border-color:rgba(25,94,48,.45);
  box-shadow:0 10px 30px rgba(0,0,0,.06);
  transform:translateY(-1px);
}

/* Main */
.main{
  width:100%;
  margin:0 auto;
  flex:1;
  display:grid;
  align-items:center;
  padding:42px 0 18px;
}

/* Hero (base) */
.hero{
  display:grid;
  gap:18px;
  text-align:left;
}

.kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:13px;
  color:var(--muted);
  letter-spacing:.08em;
  text-transform:uppercase;
}

.kicker .dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--brand);
  box-shadow:0 0 0 6px rgba(25,94,48,.08);
}

h1{
  font-size:clamp(34px, 4vw, 56px);
  line-height:1.05;
  letter-spacing:-0.02em;
  font-weight:800;
}

h1 .brand{
  color:var(--brand);
}

.sub{
  font-size:clamp(16px, 1.35vw, 18px);
  line-height:1.6;
  color:#374151;
  max-width:52ch;
}

.rule{
  width:84px;
  height:2px;
  background:var(--brand);
  border-radius:999px;
  opacity:.95;
  margin-top:6px;
}

.ctas{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:10px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  padding:14px 18px;
  border-radius:14px;
  text-decoration:none;
  font-weight:600;
  transition:all .25s ease;
  border:1px solid transparent;
}

.btn-primary{
  background:var(--brand);
  color:#fff;
  box-shadow:0 14px 34px rgba(25,94,48,.22);
}

.btn-primary .icon{
  font-size:18px;
  color:#fff;
}

.btn-primary:hover{
  background:var(--brand-dark);
  transform:translateY(-1px);
  box-shadow:0 18px 44px rgba(25,94,48,.24);
}

.btn-ghost{
  background:#fff;
  color:var(--text);
  border-color:var(--border);
}

.btn-ghost:hover{
  border-color:rgba(25,94,48,.35);
  transform:translateY(-1px);
  box-shadow:0 10px 30px rgba(0,0,0,.06);
}

.badges{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:12px;
}

.badge{
  font-size:13px;
  color:#374151;
  border:1px solid var(--border);
  background:#fff;
  border-radius:999px;
  padding:8px 12px;
}

/* Footer */
.footer{
  width:100%;
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:18px 0 0;
  border-top:1px solid var(--border);
  color:var(--muted);
  font-size:12px;
}

.footer a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--muted);
  text-decoration:none;
  border-bottom:1px solid transparent;
}

.footer a:hover{
  color:var(--brand);
  border-bottom-color:rgba(25,94,48,.35);
}

.footer-links{
  display:flex;
  gap:18px;
  align-items:center;
  flex-wrap:wrap;
}

.coming{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  color:var(--brand);
  background:rgba(25,94,48,.06);
  border:1px solid rgba(25,94,48,.18);
  padding:6px 10px;
  border-radius:8px;
  margin-top:8px;
}

/* =========================================
   HERO SPLIT (texto + imagen) — AJUSTADO
   ========================================= */

.hero-split{
  display:grid;
  grid-template-columns: 1.1fr 0.9fr;
  align-items:center;
  gap:48px;
}

.hero-text{
  display:grid;
  gap:18px;
  max-width:640px;
}

.hero-text h1{
  font-size:clamp(32px, 3.3vw, 50px);
  line-height:1.06;
}

.hero-text .sub{
  max-width:44ch;
}

/* Home: subtítulo + CTA orientados a pedido; pills un poco más separadas del bloque superior */
.home-hero .hero-text .sub{
  max-width:48ch;
}
.home-hero .home-hero__envio-hint{
  margin:0;
  font-size:13px;
  line-height:1.45;
  max-width:48ch;
}
.home-hero .badges{
  margin-top:14px;
}
@media (max-width:640px){
  .home-hero .badges{
    margin-top:18px;
  }
}

/* Home: más aire entre CTAs cuando hay dos controles (Lighthouse: separación de touch targets) */
.home-hero .ctas{
  gap:14px;
}

.hero-image{
  position:relative;
}

.hero-image:before{
  content:"";
  position:absolute;
  inset:-14px -14px -14px 18px;
  border-radius:30px;
  background: radial-gradient(500px 260px at 10% 50%, rgba(25,94,48,.10), transparent 70%);
  z-index:-1;
}

.hero-image img{
  display:block;
  width:100%;
  /* Escala en pantallas altas/anchas; en móvil lo fija el media query */
  height:clamp(360px, min(52vh, 30vw), 580px);
  object-fit:cover;
  object-position:center;
  border-radius:26px;
  box-shadow:0 18px 50px rgba(0,0,0,.12);
}

/* Responsive: 2 columnas hasta 900px y después stack */
@media (max-width:900px){
  .hero-split{
    grid-template-columns:1fr;
    gap:28px;
  }

  .hero-image{
    order:-1; /* imagen arriba */
  }

  .hero-image img{
    height:260px;
    border-radius:22px;
  }
}

/* Header derecho (p. ej. página de error estática legacy) */
.header-right{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  justify-self:stretch;
  min-width:0;
}

/* =========================
   MOBILE (≤640px) — UNIFICADO
   ========================= */
@media (max-width:640px){

  .shell{
    padding:20px 16px;
  }

  .header{
    align-items:start;
  }

  .logo img{
    height:36px;
  }

  .main{
    align-items:flex-start;
    padding:22px 0 16px;
  }

  .hero{
    gap:20px;
  }

  .kicker{
    font-size:12px;
    letter-spacing:.10em;
    margin-bottom:4px;
  }

  h1{
    font-size:32px;
    line-height:1.08;
    margin-bottom:4px;
  }

  .rule{
    width:60px;
    margin:6px 0 8px;
  }

  .sub{
    font-size:15px;
    line-height:1.6;
    max-width:34ch;
  }

  .ctas{
    flex-direction:column;
    align-items:stretch;
    margin-top:14px;
    gap:12px;
  }

  .btn{
    width:100%;
    justify-content:center;
    padding:16px;
    border-radius:14px;
  }

  .btn-primary .icon{
    font-size:19px;
  }

  .badges{
    margin-top:18px;
    gap:10px;
  }

  .badge{
    font-size:12px;
    padding:8px 12px;
  }

  .footer{
    flex-direction:column;
    align-items:flex-start;
    padding-top:18px;
    gap:10px;
  }

  .footer > div:last-child{
    width:100%;
    gap:10px;
  }

  .wa-top span.txt{ display:none; }
}

/* =========================
   TABLET (641px - 1024px)
   ========================= */
@media (min-width:641px) and (max-width:1024px){

  .shell{
    padding:32px 28px;
  }

  .main{
    padding:60px 0 30px;
  }

  .hero{
    gap:26px;
  }

  h1{
    font-size:46px;
    line-height:1.07;
  }

  .sub{
    font-size:17px;
    max-width:46ch;
  }

  .btn{
    padding:15px 22px;
  }

  .badges{
    gap:12px;
  }
}
/* =========================
   Reveal on scroll (progressive enhancement: .js-reveal en <html> vía <head>)
   ========================= */
.reveal{
  opacity: 1;
  transform: none;
}

.js-reveal .reveal{
  opacity: 0;
  transform: translateY(14px);
  transition:
    opacity .65s cubic-bezier(.2,.7,.2,1),
    transform .65s cubic-bezier(.2,.7,.2,1);
  will-change: opacity, transform;
  transition-delay: var(--d, 0ms);
}

.js-reveal .reveal.is-visible{
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce){
  .reveal,
  .js-reveal .reveal,
  .js-reveal .reveal.is-visible{
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* =========================
   PRO TOUCH: CTA shimmer
   ========================= */
.btn.btn-primary{
  position: relative;
  overflow: hidden;
}

.btn.btn-primary:after{
  content:"";
  position:absolute;
  top:-40%;
  left:0;
  width:42%;
  height:180%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.25), transparent);
  transform: translate3d(-100%, 0, 0) rotate(20deg);
  opacity: 0;
  animation: shine 7.5s ease-in-out infinite;
  pointer-events:none;
}

@keyframes shine{
  0%,72% { transform: translate3d(-100%, 0, 0) rotate(20deg); opacity:0; }
  76%    { transform: translate3d(40%, 0, 0) rotate(20deg); opacity:1; }
  100%   { transform: translate3d(280%, 0, 0) rotate(20deg); opacity:0; }
}

@media (prefers-reduced-motion: reduce){
  .btn.btn-primary:after{ animation: none; display:none; }
}

/* Pantallas grandes / 4K: más aire útil sin perder legibilidad */
@media (min-width: 1400px){
  .header,
  .main,
  .footer{
    max-width:min(1440px, 100%);
  }

  /* El hero queda bajo el header; sin centrar verticalmente en el viewport */
  .main{
    align-items:start;
    align-content:start;
    padding-top:clamp(28px, 4vh, 52px);
    padding-bottom:28px;
  }

  .hero-split{
    grid-template-columns: 1fr 1fr;
    gap:min(64px, 4vw);
  }

  .hero-text{
    max-width:760px;
  }

  .page-inner .hero-split .hero-text{
    max-width:760px;
  }
}

@media (min-width: 1800px){
  .header,
  .main,
  .footer{
    max-width:min(1640px, 100%);
  }

  .hero-split{
    gap:min(84px, 5vw);
  }

  .hero-image img{
    height:clamp(420px, min(58vh, 33vw), 680px);
  }

  .hero-text h1{
    font-size:clamp(34px, 2.8vw, 64px);
  }
}

@media (min-width: 2400px){
  .header,
  .main,
  .footer{
    max-width:min(1840px, 100%);
  }

  .hero-split{
    gap:min(110px, 5.5vw);
  }

  .hero-text{
    max-width:860px;
  }

  .page-inner .hero-split .hero-text{
    max-width:860px;
  }
}

/* =========================
   Página: material / descargas (prefijos .downloads-*, .download-*)
   ========================= */

.main.downloads-main{
  display:block;
  align-items:stretch;
  padding:42px 0 18px;
}

@media (min-width:641px) and (max-width:1024px){
  .main.downloads-main{
    padding:60px 0 30px;
  }
}

@media (min-width:1400px){
  .main.downloads-main{
    padding-top:clamp(28px, 4vh, 52px);
    padding-bottom:28px;
  }
}

.downloads-page{
  width:100%;
  max-width:100%;
}

.downloads-page__intro{
  margin-bottom:36px;
}

/* El intro reutiliza .hero-text del home (columna angosta); acá el ancho debe alinear con la grilla. */
.downloads-page__intro.hero-text{
  max-width:none;
  width:100%;
}

.downloads-page__intro.hero-text .sub{
  max-width:min(40ch, 100%);
}

.downloads-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:22px;
}

@media (min-width:901px){
  .downloads-grid{
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:24px;
  }
}

@media (max-width:900px) and (min-width:641px){
  .downloads-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:20px;
  }
}

.download-product-card{
  display:flex;
  flex-direction:column;
  min-height:100%;
  background:#fff;
  border:1px solid var(--border);
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 12px 36px rgba(0,0,0,.05);
  transition:border-color .2s ease, box-shadow .2s ease;
}

.download-product-card:hover{
  border-color:rgba(25,94,48,.22);
  box-shadow:0 16px 44px rgba(0,0,0,.07);
}

.download-product-card__media{
  aspect-ratio:16 / 11;
  overflow:hidden;
  background:#e8eee9;
  border-bottom:1px solid rgba(0,0,0,.06);
}

.download-product-card__media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.download-product-card__body{
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:16px 18px 18px;
  flex:1;
}

.download-product-card__name{
  font-size:1.125rem;
  font-weight:800;
  letter-spacing:-0.02em;
  color:var(--text);
  line-height:1.25;
}

.download-product-card__actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:stretch;
  margin-top:auto;
  padding-top:0;
  border-top:none;
}

.download-product-card__actions .download-product-card__btn{
  flex:1 1 calc(50% - 4px);
  min-width:0;
  justify-content:center;
  text-align:center;
}

.download-product-card__btn{
  padding:10px 14px;
  font-size:13px;
  border-radius:12px;
  gap:8px;
}

.download-product-card__btn.btn-primary .icon{
  font-size:15px;
}

/* Video aún no disponible (misma forma que el botón, sin enlace) */
.download-product-card__btn--pending-video{
  opacity:0.55;
  cursor:default;
  pointer-events:none;
  box-shadow:none;
}

.download-product-card__btn--pending-video.btn-primary:hover{
  background:var(--brand);
  transform:none;
  box-shadow:none;
}

.downloads-page .download-product-card__btn--pending-video.btn-primary:after{
  display:none;
}

/* Reveal: escalonado solo dentro de esta página */
.downloads-page .downloads-page__intro.reveal{ --d: 0ms; }
.downloads-page .download-product-card:nth-child(1).reveal{ --d: 40ms; }
.downloads-page .download-product-card:nth-child(2).reveal{ --d: 80ms; }
.downloads-page .download-product-card:nth-child(3).reveal{ --d: 120ms; }
.downloads-page .download-product-card:nth-child(4).reveal{ --d: 160ms; }
.downloads-page .download-product-card:nth-child(5).reveal{ --d: 200ms; }

@media (max-width:640px){
  .main.downloads-main{
    padding:22px 0 16px;
  }

  .downloads-page__intro{
    margin-bottom:28px;
  }

  .downloads-grid{
    grid-template-columns:1fr;
    gap:18px;
  }

  .download-product-card__body{
    padding:16px 16px 18px;
  }

  .downloads-page .download-product-card__actions{
    flex-direction:column;
  }

  .downloads-page .download-product-card__actions .download-product-card__btn{
    width:100%;
    flex:1 1 auto;
    min-width:0;
    justify-content:center;
    padding:12px 12px;
  }
}

/* Texto secundario en 404 (misma columna .sub que el home; solo tono más suave en la línea del temporizador) */
.page-404-redirect{
  font-size:15px;
  color:var(--muted);
}

/* 404: sin imagen; una columna al ancho del .main (hasta max-width del sitio) */
.hero-split.hero-split--404{
  grid-template-columns:1fr;
  width:100%;
}

.hero-split.hero-split--404 .hero-text{
  max-width:none;
  width:100%;
}

.hero-split.hero-split--404 .hero-text .sub{
  max-width:none;
}

/* ========== Site header, navegación y carrito (etapa 2) ========== */
/* Selectores bajo .header.header--site para ganar a .header global y evitar bullets/markers. */

.header.header--site{
  grid-template-columns:minmax(0,auto) minmax(0,1fr) auto;
  grid-template-rows:auto;
  align-items:center;
  align-content:start;
  position:relative;
  column-gap:clamp(12px, 2.2vw, 24px);
  row-gap:0;
}

.header.header--site .header-brand{
  grid-column:1;
  grid-row:1;
  align-self:center;
}

.header.header--site a.logo.logo--link{
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  min-height:48px;
  padding:4px 0;
}

.header.header--site .nav-primary{
  grid-column:2;
  grid-row:1;
  justify-self:stretch;
  align-self:center;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
}

.header.header--site .header-tools{
  grid-column:3;
  grid-row:1;
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  min-width:0;
  align-self:center;
}

/* Lista principal: sin viñetas ni sangría (role="list" + UA pueden mostrar marker si no se resetea el li) */
.header.header--site .nav-primary__list{
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:6px 14px;
  list-style:none;
  list-style-type:none;
  margin:0;
  padding:0;
  padding-inline-start:0;
  width:100%;
  max-width:100%;
}

.header.header--site .nav-primary__item{
  list-style:none;
  list-style-type:none;
  margin:0;
  padding:0;
  display:block;
}

.header.header--site .nav-primary__item::marker{
  content:none;
}

.header.header--site .nav-primary__link{
  display:inline-flex;
  align-items:center;
  padding:12px 14px;
  min-height:48px;
  border-radius:10px;
  text-decoration:none;
  font-size:14px;
  font-weight:600;
  color:var(--text);
  border:1px solid transparent;
  transition:background .2s ease, border-color .2s ease, color .2s ease;
  box-sizing:border-box;
}

.header.header--site .nav-primary__link:hover{
  background:rgba(25,94,48,.06);
}

.header.header--site .nav-primary__item--active .nav-primary__link{
  color:var(--brand);
  background:rgba(25,94,48,.08);
  border-color:rgba(25,94,48,.18);
}

.header.header--site .nav-primary__link:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}

.header.header--site .cart-link{
  position:relative;
  display:inline-flex;
  flex-shrink:0;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  border-radius:12px;
  border:1px solid rgba(25,94,48,.45);
  color:var(--brand);
  background:#fff;
  text-decoration:none;
  -webkit-tap-highlight-color:rgba(25,94,48,.2);
  transition:border-color .2s ease, box-shadow .2s ease, color .2s ease, background .2s ease;
}

.header.header--site .cart-link:visited{
  color:var(--brand);
}

.header.header--site .cart-link:hover{
  border-color:var(--brand);
  color:var(--brand-dark);
  background:rgba(25,94,48,.06);
  box-shadow:0 8px 22px rgba(25,94,48,.12);
}

.header.header--site .cart-link:hover:visited{
  color:var(--brand-dark);
}

.header.header--site .cart-link[aria-current="page"]{
  border-color:var(--brand);
  color:var(--brand-dark);
  background:rgba(25,94,48,.08);
  box-shadow:0 0 0 1px rgba(25,94,48,.15);
}

.header.header--site .cart-link:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}

.header.header--site .cart-link__icon svg{
  display:block;
  width:22px;
  height:22px;
  color:var(--brand);
}

.header.header--site .cart-link__icon svg path{
  stroke:var(--brand);
}

.header.header--site .cart-link:hover .cart-link__icon svg path{
  stroke:var(--brand-dark);
}

.header.header--site .cart-link[aria-current="page"] .cart-link__icon svg path{
  stroke:var(--brand-dark);
}

.header.header--site .cart-link__badge{
  position:absolute;
  top:5px;
  right:5px;
  min-width:18px;
  height:18px;
  padding:0 5px;
  border-radius:999px;
  background:var(--brand);
  color:#fff;
  font-size:11px;
  font-weight:700;
  line-height:18px;
  text-align:center;
}

.header.header--site .nav-toggle{
  display:inline-flex;
  flex-shrink:0;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  border-radius:12px;
  border:1px solid rgba(25,94,48,.45);
  background:#fff;
  color:var(--brand);
  cursor:pointer;
  font:inherit;
  -webkit-appearance:none;
  appearance:none;
  -webkit-tap-highlight-color:rgba(25,94,48,.2);
  transition:border-color .2s ease, box-shadow .2s ease, color .2s ease, background .2s ease;
}

.header.header--site .nav-toggle:hover{
  border-color:var(--brand);
  color:var(--brand-dark);
  background:rgba(25,94,48,.06);
}

.header.header--site .nav-toggle:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}

.header.header--site .nav-toggle__bars{
  display:block;
  width:18px;
  height:1.5px;
  background:currentColor;
  border-radius:1px;
  opacity:1;
  box-shadow:0 6px 0 currentColor, 0 -6px 0 currentColor;
}

@media (min-width:901px){
  .header.header--site .nav-toggle{
    display:none !important;
  }

  .header.header--site .nav-primary{
    position:static;
    max-height:none !important;
    min-height:0;
    opacity:1 !important;
    overflow:visible !important;
    visibility:visible !important;
    pointer-events:auto !important;
    margin-top:0 !important;
    margin-bottom:0 !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }
}

@media (max-width:900px){
  .header.header--site{
    grid-template-columns:1fr auto auto;
    grid-template-rows:auto auto;
    align-items:center;
  }

  .header.header--site .header-brand{
    grid-column:1;
    grid-row:1;
    min-width:0;
  }

  .header.header--site .header-tools{
    grid-column:2 / 4;
    grid-row:1;
  }

  .header.header--site .nav-primary{
    grid-column:1 / -1;
    grid-row:2;
    justify-self:stretch;
    align-self:stretch;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    margin-top:0;
    padding:0;
    border:none;
    border-radius:14px;
    background:transparent;
    box-shadow:none;
    max-height:0;
    min-height:0;
    opacity:0;
    visibility:hidden;
    overflow:hidden;
    pointer-events:none;
    transition:max-height .32s ease, opacity .22s ease, visibility 0s linear .25s;
    z-index:30;
  }

  .header.header--site .nav-primary.is-open{
    margin-top:12px;
    padding:12px 14px;
    border:1px solid var(--border);
    background:rgba(255,255,255,.98);
    box-shadow:0 14px 36px rgba(0,0,0,.1);
    max-height:min(72vh, 440px);
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transition:max-height .32s ease, opacity .22s ease, visibility 0s linear 0s;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }

  .header.header--site .nav-primary__list{
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:8px;
    width:100%;
  }

  .header.header--site .nav-primary__link{
    width:100%;
    justify-content:flex-start;
  }

  body.nav-open{
    overflow:hidden;
  }
}

/* El bloque mobile global usa .header { align-items:start } y desalineaba logo + herramientas */
@media (max-width:640px){
  .header.header--site{
    align-items:center;
  }
}

/* Páginas internas mínimas */
.main.main--inner{
  display:block;
  align-items:stretch;
  align-content:start;
}

.page-inner .main.main--inner{
  padding-top:28px;
}

.page-block{
  width:100%;
  max-width:min(720px, 100%);
}

/* Ajustes de layout exclusivos para páginas internas de texto (sin afectar home) */
.page-inner h1{
  font-size:clamp(26px, 2.4vw, 36px);
  line-height:1.08;
}

.page-inner .page-block{
  max-width:min(980px, 100%);
}

.page-inner .page-block.page-block--wide{
  max-width:min(1100px, 100%);
}

.page-inner .hero-text{
  max-width:none;
}

/* Hero texto+imagen: misma columna de texto que el home (no el max-width:none de internas) */
.page-inner .hero-split .hero-text{
  max-width:640px;
}

.page-inner .hero-split .hero-text .sub{
  max-width:44ch;
}

/* Nosotros: imagen arriba (~altura del h1), no centrada respecto al texto largo — clase en la section */
@media (min-width:901px){
  .hero-split.hero-split--text-top{
    align-items:start !important;
  }
  .hero-split.hero-split--text-top > .hero-image{
    align-self:start !important;
    margin-top:clamp(1.85rem, 2.9vw, 2.75rem);
  }
}

.page-inner .hero-text .sub{
  max-width:68ch;
}

/* Enlaces en contenido de páginas legales (scope: main + .page-legal; sin header/footer/checkout) */
.page-inner .main.main--inner .page-block.page-legal.hero-text a:not(.btn){
  color:var(--brand);
  text-decoration:none;
}
.page-inner .main.main--inner .page-block.page-legal.hero-text a:not(.btn):visited{
  color:var(--brand);
}
.page-inner .main.main--inner .page-block.page-legal.hero-text a:not(.btn):hover{
  color:var(--brand-dark);
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
}
.page-inner .main.main--inner .page-block.page-legal.hero-text a:not(.btn):focus-visible{
  color:var(--brand-dark);
  text-decoration:none;
  outline:2px solid var(--brand);
  outline-offset:2px;
}

.contact-actions{
  margin-top:22px;
  display:flex;
  flex-flow:row wrap;
  align-items:center;
  gap:10px 12px;
  width:100%;
  max-width:100%;
}

.contact-actions__wa{
  flex:0 1 auto;
  text-align:center;
}

.contact-actions .contact-actions__secondary{
  flex:0 1 auto;
  font-size:14px;
  font-weight:600;
  padding:12px 16px;
  border-radius:14px;
}

.contact-section-title{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.contact-section-title .icon{
  font-size:18px;
  color:var(--brand);
}

.contact-locations{
  margin-top:36px;
}

.contact-locations .como-comprar-h2{
  margin-top:0;
}

.contact-locations-grid{
  display:grid;
  grid-template-columns:1fr;
  row-gap:18px;
  margin-top:10px;
}

.contact-location-card{
  border:1px solid var(--border);
  border-radius:14px;
  background:#fff;
  padding:18px 18px;
}

.contact-location-card h3{
  font-size:16px;
  line-height:1.3;
  margin:0 0 6px;
  color:var(--text);
}

.contact-location-card p{
  margin:0;
  color:#4b5563;
  line-height:1.55;
  font-size:15px;
}

.muted-soft{
  color:var(--muted);
}

@media (max-width:640px){
  .page-inner .main.main--inner{
    padding-top:18px;
  }
}

/* Catálogo y tienda */
.page-block--wide{
  max-width:min(1100px, 100%);
}

.breadcrumb{
  font-size:14px;
  color:var(--muted);
  margin-bottom:18px;
}
.breadcrumb a{
  color:var(--brand);
  text-decoration:none;
}
.breadcrumb a:hover{ text-decoration:underline; }

.catalog-filters-block{
  margin-top:18px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  padding:16px 0 18px;
}
.catalog-filters-block__title{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0;
  font-size:15px;
  line-height:1.25;
  font-weight:700;
  letter-spacing:.03em;
  color:var(--text);
}
.catalog-filters-block__title::before{
  content:'';
  flex-shrink:0;
  width:3px;
  height:1.05em;
  min-height:13px;
  border-radius:2px;
  background:linear-gradient(180deg, rgba(25,94,48,.75), rgba(25,94,48,.35));
}
.catalog-category-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}
.catalog-chip{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  min-height:34px;
  padding:8px 12px;
  border:1px solid var(--border);
  border-radius:999px;
  background:#fff;
  color:#374151;
  text-decoration:none;
  font-size:13px;
  line-height:1.3;
  font-weight:600;
  transition:border-color .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
  overflow-wrap:anywhere;
}
.catalog-chip:hover{
  border-color:rgba(25,94,48,.35);
  color:var(--brand);
  box-shadow:0 4px 14px rgba(0,0,0,.04);
}
.catalog-chip--active{
  border-color:rgba(25,94,48,.42);
  background:rgba(25,94,48,.11);
  color:var(--brand-dark);
  font-weight:700;
  box-shadow:0 0 0 1px rgba(25,94,48,.14);
}
.catalog-subcategorias{
  margin-top:22px;
  max-width:100%;
}
.catalog-subcategorias__label{
  margin:0 0 10px;
  font-size:12px;
  line-height:1.3;
  font-weight:600;
  letter-spacing:.05em;
  color:var(--muted);
}
.catalog-subchips{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  max-width:100%;
  min-width:0;
}
.catalog-subchip{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  min-height:30px;
  padding:5px 10px;
  border:1px solid rgba(0,0,0,.08);
  border-radius:999px;
  background:rgba(255,255,255,.65);
  color:#6b7280;
  text-decoration:none;
  font-size:12px;
  line-height:1.35;
  font-weight:500;
  transition:border-color .2s ease, background .2s ease, color .2s ease;
  overflow-wrap:anywhere;
}
.catalog-subchip:hover{
  border-color:rgba(25,94,48,.22);
  color:var(--brand);
  background:#fff;
}
.catalog-subchip--active{
  border-color:rgba(25,94,48,.22);
  background:rgba(25,94,48,.05);
  color:var(--brand);
  font-weight:500;
}
@media (max-width:640px){
  .catalog-filters-block{
    margin-top:14px;
    padding:14px 0 16px;
  }
  .catalog-filters-block__title{
    font-size:14px;
    letter-spacing:.025em;
  }
  .catalog-category-chips{
    gap:8px 6px;
    margin-top:13px;
  }
  .catalog-chip{
    min-height:32px;
    padding:7px 11px;
    font-size:12px;
  }
  .catalog-subcategorias{
    margin-top:18px;
  }
  .catalog-subcategorias__label{
    margin-bottom:8px;
    font-size:11px;
    letter-spacing:.055em;
  }
  .catalog-subchips{
    gap:6px 5px;
  }
  .catalog-subchip{
    min-height:28px;
    padding:5px 9px;
    font-size:11px;
  }
}

.product-grid{
  list-style:none;
  margin:28px auto 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
  gap:22px;
  max-width:min(1100px, 100%);
}

.product-card{
  border:1px solid var(--border);
  border-radius:16px;
  overflow:hidden;
  background:#fff;
  transition:box-shadow .2s ease, transform .2s ease;
}
.product-card:hover{
  box-shadow:0 12px 36px rgba(0,0,0,.08);
  transform:translateY(-2px);
}
.product-card--featured{
  border-color:rgba(25,94,48,.35);
  box-shadow:0 0 0 1px rgba(25,94,48,.12);
}
.product-card__link{
  display:flex;
  flex-direction:column;
  height:100%;
  text-decoration:none;
  color:inherit;
  padding:0;
}
.product-card__media{
  aspect-ratio:1;
  background:linear-gradient(145deg, #f3f4f6, #e5e7eb);
  flex-shrink:0;
}
.product-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.product-card__body{
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:0;
  padding:14px 16px 16px;
  background:linear-gradient(180deg, #fafbfc 0%, #f4f6f8 100%);
  border-top:1px solid rgba(229,231,235,.85);
}
.product-card__title{
  font-size:17px;
  font-weight:700;
  margin:0 0 6px;
  line-height:1.3;
}
.product-card__excerpt{
  font-size:14px;
  color:#4b5563;
  margin:0 0 8px;
  line-height:1.45;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.product-card__meta{
  font-size:13px;
  color:var(--muted);
  margin:0;
}
.product-card__price{
  font-size:18px;
  font-weight:700;
  color:var(--brand);
  margin:10px 0 0;
}
.product-card--out-of-stock .product-card__price{
  color:#6b7280;
}
.product-card--out-of-stock .product-card__media img{
  opacity:.9;
  filter:saturate(.9);
}
.product-card__stock-badge{
  display:inline-block;
  margin:10px 0 0;
  padding:5px 11px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#92400e;
  background:#fffbeb;
  border:1px solid rgba(180,83,9,.28);
  border-radius:8px;
  align-self:flex-start;
}
.product-content-info{
  font-size:12px;
  line-height:1.4;
  font-weight:400;
  color:#8b95a7;
  margin:6px 0 0;
}

/* Catálogo: mensaje sin resultados (más sutil y respirado) */
.catalog-empty{
  margin-top:20px;
  padding-top:12px;
  padding-bottom:20px;
  max-width:min(640px, 100%);
}
.catalog-empty__text{
  font-size:15px;
  line-height:1.55;
  font-weight:400;
  margin:0;
}

.product-detail__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px;
  align-items:start;
}
@media (max-width:720px){
  .product-detail__grid{ grid-template-columns:1fr; }
}
.product-detail__media{
  border-radius:16px;
  overflow:hidden;
  background:linear-gradient(145deg, #f3f4f6, #e5e7eb);
}
.product-detail__img{
  width:100%;
  height:auto;
  display:block;
  aspect-ratio:1;
  object-fit:cover;
}
.product-detail__placeholder{
  aspect-ratio:1;
  min-height:240px;
}
/* Columna derecha ficha producto: ritmo vertical más aireado */
.product-detail__info > .kicker{
  margin-bottom:12px;
}
.product-detail__info > h1{
  margin:0 0 14px;
}
.product-detail__info > .rule{
  margin:0 0 16px;
}
.product-detail__info > .product-meta{
  margin:0 0 14px;
}
.product-detail__info > .sub:not(.muted-soft){
  margin:0 0 20px;
}
.product-detail__info > .product-price{
  margin:6px 0 0;
}
.product-meta{
  font-size:15px;
  color:var(--muted);
  margin:8px 0 0;
}
.product-price{
  font-size:28px;
  font-weight:800;
  color:var(--brand);
  margin:16px 0 0;
}
.product-add-form{
  display:flex;
  flex-wrap:wrap;
  gap:12px 16px;
  align-items:flex-end;
  margin-top:24px;
}

.product-stock-notice{
  margin:18px 0 0;
  padding:14px 16px 16px;
  border-radius:12px;
  border:1px solid rgba(180,83,9,.3);
  background:linear-gradient(180deg, #fffbeb 0%, #fef3c7 100%);
  box-shadow:0 1px 0 rgba(255,255,255,.6) inset;
}
.product-stock-notice__title{
  margin:0 0 8px;
  font-size:16px;
  font-weight:700;
  line-height:1.3;
  color:#78350f;
}
.product-stock-notice__hint{
  margin:0;
  font-size:14px;
  line-height:1.45;
  color:#92400e;
}
.qty-label{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:14px;
  color:var(--muted);
}
.qty-label input{
  width:88px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:10px;
  font-size:16px;
}
.product-detail__long{
  margin-top:36px;
  padding-top:28px;
  border-top:1px solid var(--border);
}
/* Ficha producto: PDF / video en columna derecha (auxiliar, compacto) */
.product-resources--sidebar{
  margin-top:22px;
  padding-top:16px;
  border-top:1px solid var(--border);
}
.product-resources--sidebar .product-resources__box{
  max-width:100%;
  margin:0;
  padding:10px 12px 12px;
  background:#f9fafb;
  border:1px solid var(--border);
  border-radius:12px;
  box-shadow:none;
}
.product-resources--sidebar .product-resources__title{
  font-size:0.9375rem;
  font-weight:600;
  letter-spacing:-0.01em;
  line-height:1.3;
  margin:0 0 6px;
  color:#374151;
  text-wrap:balance;
}
.product-resources--sidebar .product-resources__intro{
  margin:0 0 10px;
  font-size:13px;
  line-height:1.45;
  color:#4b5563;
  max-width:none;
}
.product-resources--sidebar .product-resources__list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.product-resources--sidebar .product-resources__item{
  margin:0;
  min-width:0;
}
.product-resources--sidebar .product-resources__btn{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:2px;
  min-height:44px;
  padding:10px 12px;
  border-radius:10px;
  text-align:left;
  font-weight:600;
}
.product-resources--sidebar .product-resources__btn-title{
  font-size:14px;
  font-weight:600;
  letter-spacing:-0.01em;
  line-height:1.25;
  color:var(--text);
}
.product-resources--sidebar .product-resources__btn-meta{
  font-size:12px;
  line-height:1.35;
  font-weight:400;
  max-width:100%;
  color:#5c6370;
}
.product-resources__btn:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}
.product-resources__btn.btn-primary:focus-visible{
  outline:2px solid #fff;
  outline-offset:2px;
  box-shadow:0 0 0 3px var(--brand-dark);
}

.btn--small{
  padding:8px 14px;
  font-size:14px;
  border-radius:10px;
}

.related-section{
  margin-top:40px;
  padding-top:32px;
  border-top:1px solid var(--border);
}
.related-section--product{
  max-width:100%;
}
.related-section__title{
  font-size:clamp(20px, 2.2vw, 24px);
  font-weight:700;
  letter-spacing:-0.02em;
  margin:0 0 18px;
  color:var(--text);
}
.related-grid{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
  gap:20px;
}
.related-grid--compact{
  grid-template-columns:repeat(auto-fill, minmax(160px, 1fr));
  gap:14px;
}
.related-card{
  display:flex;
  flex-direction:column;
  border:1px solid var(--border);
  border-radius:14px;
  overflow:hidden;
  background:#fff;
}
.related-card--compact{
  flex-direction:row;
  align-items:stretch;
}
.related-card__media{
  flex-shrink:0;
  background:linear-gradient(145deg, #f3f4f6, #e5e7eb);
}
.related-card--compact .related-card__media{
  width:88px;
  min-height:88px;
}
.related-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  aspect-ratio:1;
  display:block;
}
.related-card--compact .related-card__media img{
  aspect-ratio:auto;
  min-height:88px;
}
.related-card__body{
  padding:12px 14px 14px;
  display:flex;
  flex-direction:column;
  gap:6px;
  flex:1;
  min-width:0;
}
.related-card--compact .related-card__body{
  padding:10px 12px;
}
.related-card__title{
  font-size:15px;
  font-weight:600;
  line-height:1.35;
  margin:0;
}
.related-card__title a{
  color:inherit;
  text-decoration:none;
}
.related-card__title a:hover{
  color:var(--brand);
}
.related-card__meta{
  font-size:12px;
  color:var(--muted);
  margin:0;
}
.related-card__price{
  font-size:16px;
  font-weight:700;
  color:var(--brand);
  margin:4px 0 0;
}
.related-card__actions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  margin-top:auto;
  padding-top:10px;
  width:100%;
}
.related-card__actions > a.btn{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  justify-content:center;
}
.related-card__add{
  margin:0;
  display:block;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.related-card__add .btn{
  width:100%;
  justify-content:center;
}
.related-card__sin-stock{
  font-size:13px;
}

.cart-upsell{
  margin-top:32px;
  padding:20px 18px;
  border-radius:14px;
  border:1px dashed rgba(25,94,48,.25);
  background:rgba(25,94,48,.03);
}
.cart-upsell__kicker{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--muted);
  margin:0 0 4px;
}
.cart-upsell__title{
  font-size:17px;
  font-weight:700;
  margin:0 0 14px;
  color:var(--text);
}
.cart-upsell .related-grid--compact{
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:16px;
  align-items:stretch;
  justify-content:start;
}
.cart-upsell .related-card--compact{
  flex-direction:column;
  min-height:100%;
  max-width:320px;
  width:100%;
}
.cart-upsell .related-card--compact .related-card__media{
  width:100%;
  min-height:0;
}
.cart-upsell .related-card--compact .related-card__media img{
  aspect-ratio:1 / 1;
  min-height:0;
}
.cart-upsell .related-card--compact .related-card__body{
  padding:12px 14px 14px;
  gap:8px;
}
.cart-upsell .related-card__title{
  line-height:1.4;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.cart-upsell .related-card__price{
  margin-top:2px;
}
.cart-upsell .related-card__actions{
  margin-top:auto;
}
@media (max-width:640px){
  .cart-upsell .related-grid--compact{
    grid-template-columns:1fr;
    gap:14px;
  }
  .cart-upsell .related-card--compact{
    max-width:none;
  }
}

.cart-table-wrap{
  overflow-x:auto;
  margin-top:20px;
}
.cart-table{
  width:100%;
  border-collapse:collapse;
  font-size:15px;
}
.cart-table th,
.cart-table td{
  text-align:left;
  padding:12px 10px;
  border-bottom:1px solid var(--border);
  vertical-align:middle;
}
.cart-table th{
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--muted);
}
.cart-table td:first-child{
  min-width:200px;
}
.cart-item-product{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.cart-item-product__media{
  flex-shrink:0;
  width:64px;
  height:64px;
  border-radius:12px;
  overflow:hidden;
  background:linear-gradient(145deg, #f3f4f6, #e5e7eb);
  border:1px solid rgba(229,231,235,.9);
}
.cart-item-product__thumb{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.cart-item-product__placeholder{
  display:block;
  width:100%;
  height:100%;
  min-height:64px;
  background:linear-gradient(145deg, #f3f4f6, #e9ecef);
}
.cart-item-product__body{
  min-width:0;
  flex:1;
}
.cart-item-product__body a{
  font-weight:600;
  text-decoration:none;
  color:inherit;
}
.cart-item-product__body a:hover{
  color:var(--brand);
}
.cart-qty{
  width:72px;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:8px;
}
.cart-actions{
  margin-top:18px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
}
.cart-actions--secondary{
  margin-top:14px;
  padding-top:4px;
  justify-content:flex-start;
}
.cart-summary__checkout .btn-primary{
  min-width:min(100%, 280px);
}
@media (max-width:640px){
  .btn-block-sm{
    width:100%;
    max-width:100%;
  }
}
.btn-ghost--small{
  font-size:13px;
  padding:8px 12px;
  font-weight:500;
}
.cart-clear-form--discrete{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid rgba(229,231,235,.7);
}
.cart-clear-form--discrete .btn-ghost--small{
  color:var(--muted);
}
.cart-clear-form--discrete .btn-ghost--small:hover{
  color:var(--text);
}
.cart-notice{
  font-size:15px;
  line-height:1.5;
  margin:0 0 16px;
  padding:14px 16px 14px 18px;
  border-radius:12px;
  border:1px solid var(--border);
  position:relative;
  box-shadow:0 1px 2px rgba(15, 23, 42, 0.06);
}
.cart-notice:last-child{
  margin-bottom:0;
}
.cart-notice--adjust{
  background:linear-gradient(180deg, #fffbeb 0%, #fef3c7 100%);
  border-color:#f59e0b;
  color:#92400e;
}
.cart-notice--adjust::before{
  content:'';
  position:absolute;
  left:0;
  top:10px;
  bottom:10px;
  width:4px;
  border-radius:4px;
  background:#f59e0b;
}
.cart-notice--min{
  background:linear-gradient(180deg, #ecfdf5 0%, #d1fae5 100%);
  border-color:#34d399;
  color:#14532d;
  font-weight:500;
}
.cart-notice--min::before{
  content:'';
  position:absolute;
  left:0;
  top:10px;
  bottom:10px;
  width:4px;
  border-radius:4px;
  background:#10b981;
}
.cart-notice--blocked{
  background:linear-gradient(180deg, #fff7ed 0%, #ffedd5 100%);
  border-color:#fb923c;
  color:#9a3412;
  font-size:15px;
  font-weight:600;
  margin-top:12px;
}
.cart-notice--blocked::before{
  content:'';
  position:absolute;
  left:0;
  top:10px;
  bottom:10px;
  width:4px;
  border-radius:4px;
  background:#ea580c;
}
.cart-alerts{
  margin:0 0 20px;
  padding:16px 18px;
  border-radius:14px;
  background:#fafbfc;
  border:1px solid rgba(229, 231, 235, 0.95);
  box-shadow:0 4px 18px rgba(15, 23, 42, 0.05);
}
.cart-alerts .cart-notice{
  box-shadow:none;
  margin-bottom:12px;
}
.cart-alerts .cart-notice:last-child{
  margin-bottom:0;
}
.cart-alerts--signal{
  animation:cart-alerts-signal 1.25s ease-out 1;
}
@keyframes cart-alerts-signal{
  0%{ box-shadow:0 4px 18px rgba(15, 23, 42, 0.05); }
  35%{ box-shadow:0 0 0 3px rgba(16, 185, 129, 0.35), 0 8px 28px rgba(15, 23, 42, 0.1); }
  100%{ box-shadow:0 4px 18px rgba(15, 23, 42, 0.05); }
}
@media (prefers-reduced-motion: reduce){
  .cart-alerts--signal{
    animation:none;
  }
}
.cart-summary{
  margin-top:28px;
  padding-top:22px;
  border-top:1px solid var(--border);
}
.cart-total{ font-size:20px; margin-bottom:12px; }
.cart-clear-form{ margin-top:18px; }
.link-button{
  background:none;
  border:0;
  padding:0;
  font:inherit;
  color:var(--brand);
  cursor:pointer;
  text-decoration:underline;
}
.link-button:hover{ color:var(--brand-dark); }

@media (max-width:640px){
  .cart-table-wrap{
    overflow-x:visible;
  }

  .cart-table{
    width:100%;
    border-collapse:separate;
    border-spacing:0;
  }

  .cart-table thead{
    display:none;
  }

  .cart-table tbody,
  .cart-table tr,
  .cart-table td{
    display:block;
    width:100%;
  }

  .cart-table tr{
    border:1px solid var(--border);
    border-radius:14px;
    background:#fff;
    padding:12px;
    margin-bottom:12px;
    box-shadow:0 8px 24px rgba(0,0,0,.04);
  }

  .cart-table td{
    border:0;
    padding:8px 0;
    text-align:left;
  }

  .cart-table td::before{
    content:attr(data-label);
    display:block;
    font-size:12px;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--muted);
    margin-bottom:4px;
    font-weight:600;
  }

  .cart-table td[data-label="Producto"] .cart-item-product{
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
  .cart-table td[data-label="Producto"] .cart-item-product__body{
    order:1;
    width:100%;
  }
  .cart-table td[data-label="Producto"] .cart-item-product__media{
    order:2;
    align-self:flex-start;
  }
  .cart-table td[data-label="Producto"] .cart-item-product__body a{
    font-weight:700;
  }

  .cart-qty{
    width:100%;
    max-width:130px;
  }
}

/* Admin */
.admin-body{
  background:#f9fafb;
  color:var(--text);
}
.admin-shell{
  max-width:1100px;
  margin:0 auto;
  padding:24px clamp(16px, 3vw, 32px) 48px;
}
.admin-header{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding-bottom:20px;
  margin-bottom:24px;
  border-bottom:1px solid var(--border);
}
.admin-nav{
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  font-size:14px;
}
.admin-nav-post{
  margin:0;
}
.admin-nav a{
  display:inline-flex;
  align-items:center;
  padding:10px 12px;
  min-height:44px;
  border-radius:10px;
  font-size:14px;
  font-weight:600;
  color:var(--text);
  text-decoration:none;
  border:1px solid transparent;
  transition:background .2s ease, border-color .2s ease, color .2s ease;
  box-sizing:border-box;
}
.admin-nav-post__btn{
  display:inline-flex;
  align-items:center;
  padding:10px 12px;
  min-height:44px;
  border-radius:10px;
  font-size:14px;
  font-weight:600;
  color:var(--text);
  text-decoration:none;
  border:1px solid transparent;
  transition:background .2s ease, border-color .2s ease, color .2s ease;
  box-sizing:border-box;
  background:transparent;
  cursor:pointer;
  font-family:inherit;
}
.admin-nav a:hover{
  background:rgba(25,94,48,.06);
  color:var(--text);
}
.admin-nav-post__btn:hover{
  background:rgba(25,94,48,.06);
  color:var(--text);
}
.admin-nav a[aria-current="page"]{
  color:var(--brand);
  background:rgba(25,94,48,.08);
  border-color:rgba(25,94,48,.18);
}
.admin-nav a:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}
.admin-nav-post__btn:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}
.admin-nav-toggle{
  display:inline-flex;
  flex-shrink:0;
  width:44px;
  height:44px;
  border:1px solid rgba(25,94,48,.45);
  border-radius:12px;
  background:#fff;
  color:var(--brand);
  cursor:pointer;
  font:inherit;
  -webkit-appearance:none;
  appearance:none;
  -webkit-tap-highlight-color:rgba(25,94,48,.2);
  align-items:center;
  justify-content:center;
  transition:border-color .2s ease, box-shadow .2s ease, color .2s ease, background .2s ease;
}
.admin-nav-toggle:hover{
  border-color:var(--brand);
  color:var(--brand-dark);
  background:rgba(25,94,48,.06);
}
.admin-nav-toggle:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}
.admin-nav-toggle__bars{
  display:block;
  width:18px;
  height:1.5px;
  background:currentColor;
  border-radius:1px;
  opacity:1;
  box-shadow:0 6px 0 currentColor, 0 -6px 0 currentColor;
}
@media (min-width:901px){
  .admin-header{
    column-gap:clamp(24px, 3.5vw, 40px);
  }
  .admin-nav{
    display:flex;
    flex-wrap:wrap;
    flex-direction:row;
    gap:10px 18px;
    width:100%;
    align-items:stretch;
    justify-content:flex-start;
    margin-top:0;
    padding:0;
    border:none;
    border-radius:14px;
    background:transparent;
    box-shadow:none;
    max-height:0;
    min-height:0;
    opacity:0;
    visibility:hidden;
    overflow:hidden;
    pointer-events:none;
    transition:max-height .32s ease, opacity .22s ease, visibility 0s linear .25s;
    z-index:30;
  }
  .admin-nav.is-open{
    margin-top:12px;
    padding:12px 14px;
    border:1px solid var(--border);
    background:rgba(255,255,255,.98);
    box-shadow:0 14px 36px rgba(0,0,0,.1);
    max-height:none;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transition:max-height .32s ease, opacity .22s ease, visibility 0s linear 0s;
    overflow:visible;
  }
  .admin-nav-toggle{
    display:inline-flex;
  }
}
@media (max-width:900px){
  .admin-header{
    align-items:center;
  }
  .admin-nav-toggle{
    display:inline-flex;
    margin-left:auto;
  }
  .admin-nav{
    width:100%;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    margin-top:0;
    padding:0;
    border:none;
    border-radius:14px;
    background:transparent;
    box-shadow:none;
    max-height:0;
    min-height:0;
    opacity:0;
    visibility:hidden;
    overflow:hidden;
    pointer-events:none;
    transition:max-height .32s ease, opacity .22s ease, visibility 0s linear .25s;
    z-index:30;
  }
  .admin-nav.is-open{
    margin-top:12px;
    padding:12px 14px;
    border:1px solid var(--border);
    background:rgba(255,255,255,.98);
    box-shadow:0 14px 36px rgba(0,0,0,.1);
    max-height:none;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transition:max-height .32s ease, opacity .22s ease, visibility 0s linear 0s;
    overflow:visible;
  }
  .admin-nav a{
    width:100%;
    justify-content:flex-start;
  }
  .admin-nav-post,
  .admin-nav-post__btn{
    width:100%;
  }
  .admin-nav-post__btn{
    justify-content:flex-start;
  }
  body.nav-open{
    overflow:hidden;
  }
}
.admin-panel h1{ font-size:28px; margin-bottom:12px; }
.admin-panel h2{ font-size:18px; margin:28px 0 12px; }
.admin-intro-hint{
  max-width:42rem;
  margin:0 0 8px;
  font-size:14px;
  color:var(--muted);
  line-height:1.45;
}
.admin-producto-page-title{
  font-size:20px;
  font-weight:600;
  margin:20px 0 16px;
  letter-spacing:-0.02em;
}
/* Formulario producto: bloques tipo card */
.admin-form--producto{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:22px;
  max-width:100%;
  margin-top:4px;
}
.admin-form--producto .admin-form__hiddens{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.admin-form-card{
  border:1px solid var(--border);
  border-radius:12px;
  padding:18px 20px 20px;
  background:#fff;
  box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.admin-form-card--actions{
  padding-bottom:18px;
}
.admin-form-card__title{
  font-size:15px;
  font-weight:600;
  margin:0 0 14px;
  padding-bottom:10px;
  border-bottom:1px solid var(--border);
  color:#1f2937;
  letter-spacing:-0.01em;
}
.admin-form-card__lead{
  margin:-4px 0 16px;
  font-size:13px;
  line-height:1.45;
  max-width:48rem;
}
.admin-form-card__foot{
  margin:14px 0 0;
  font-size:12px;
  color:var(--muted);
  max-width:42rem;
}
.admin-form-card__grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
  gap:16px 20px;
  align-items:start;
}
.admin-form-card__grid--full{
  grid-column:1 / -1;
}
.admin-form-card__hint-inline{
  margin:0;
  align-self:end;
  font-size:13px;
  padding-bottom:8px;
}
.admin-form-card__checks{
  grid-column:1 / -1;
  display:flex;
  flex-wrap:wrap;
  gap:18px 24px;
  padding-top:4px;
}
.admin-form-card__field-hint{
  display:block;
  font-weight:normal;
  margin:0 0 4px;
  font-size:12px;
  line-height:1.4;
}
.admin-form-card__current{
  padding:12px 14px;
  border-radius:10px;
  background:#f9fafb;
  border:1px solid var(--border);
}
.admin-form-card__current-label{
  display:block;
  font-size:12px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--muted);
  margin-bottom:6px;
}
.admin-form-card__current-path{
  font-size:13px;
  word-break:break-word;
  color:#374151;
  line-height:1.4;
  margin-bottom:8px;
}
.admin-form-card__preview-img{
  display:block;
  max-width:220px;
  height:auto;
  margin-top:4px;
  border:1px solid var(--border);
  border-radius:8px;
}
.admin-form-card__resource-link{
  font-size:13px;
  display:inline-block;
  margin-top:2px;
}
.admin-form-card__quitar{
  padding-top:4px;
  border-top:1px dashed var(--border);
  margin-top:4px;
}
.admin-form-subcard{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--border);
}
.admin-form-subcard:first-of-type{
  margin-top:0;
  padding-top:0;
  border-top:none;
}
.admin-form-subcard__title{
  font-size:13px;
  font-weight:600;
  margin:0 0 12px;
  color:var(--muted);
}
.admin-form-card__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
}
/* Panel secundario: relacionados */
.admin-secondary-panel{
  margin-top:32px;
  padding:20px 20px 22px;
  border:1px solid var(--border);
  border-radius:12px;
  background:rgba(249,250,251,.85);
  max-width:52rem;
}
.admin-secondary-panel__title{
  font-size:16px;
  font-weight:600;
  margin:0 0 8px;
  color:#374151;
}
.admin-secondary-panel__hint{
  margin:0 0 14px;
  max-width:40rem;
  font-size:13px;
  line-height:1.45;
}
.admin-form--relacionados{
  margin-top:0;
}
/* Listado productos */
.admin-listado-block{
  margin-top:40px;
  padding-top:28px;
  border-top:1px solid var(--border);
}
.admin-listado-block__title{
  font-size:18px;
  font-weight:600;
  margin:0 0 6px;
}
.admin-listado-block__hint{
  margin:0 0 14px;
  font-size:13px;
}
.admin-panel-group + .admin-panel-group{
  margin-top:20px;
}
@media (min-width:901px){
  /* Panel index: solo acorta el largo (ancho) de la columna; altura de filas = .admin-link-list global */
  .admin-panel.admin-panel--index{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    max-width:100%;
  }
  .admin-panel.admin-panel--index > h1,
  .admin-panel.admin-panel--index > .sub{
    flex:0 0 auto;
    width:min(300px,100%);
    max-width:300px;
    box-sizing:border-box;
  }
  .admin-panel.admin-panel--index .admin-panel-group{
    flex:0 0 auto;
    width:min(300px,100%);
    max-width:300px;
    box-sizing:border-box;
  }
  .admin-panel.admin-panel--index .admin-link-list{
    width:100%;
    max-width:300px;
  }
}
.admin-panel-group__title{
  font-size:14px;
  font-weight:600;
  letter-spacing:normal;
  text-transform:none;
  color:var(--muted);
  margin:0 0 10px;
}
.admin-dashboard{
  display:flex;
  flex-direction:column;
  gap:22px;
}
.admin-dashboard-section{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.admin-dashboard-section__title{
  font-size:16px;
  font-weight:600;
  color:#374151;
  margin:0;
}
.admin-dashboard-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}
.admin-dashboard-card{
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
  padding:14px 16px;
  box-shadow:0 1px 2px rgba(0,0,0,.04);
  display:flex;
  flex-direction:column;
  gap:10px;
}
.admin-dashboard-card h3{
  margin:0;
  font-size:16px;
  font-weight:600;
  color:var(--text);
}
.admin-dashboard-card p{
  margin:0;
  font-size:14px;
  line-height:1.45;
  color:#4b5563;
}
.admin-dashboard-card a{
  margin-top:auto;
  display:inline-flex;
  align-items:center;
  font-size:14px;
  font-weight:600;
  color:var(--brand);
  text-decoration:none;
}
.admin-dashboard-card a:hover{
  text-decoration:underline;
}
@media (max-width:900px){
  .admin-dashboard-grid{
    grid-template-columns:1fr;
  }
}

/* Estadísticas admin (admin/estadisticas.php): métricas más legibles sin rediseño global */
.admin-stats .admin-hint{
  margin-bottom:20px;
}
.admin-panel.admin-stats > h2{
  margin:28px 0 8px;
}
.admin-panel.admin-stats > h1 + .admin-hint + h2{
  margin-top:22px;
}
.admin-panel.admin-stats > h2 + p.admin-muted,
.admin-stats .admin-stats__section-lead{
  margin:0 0 16px;
  max-width:68ch;
  color:var(--muted);
  font-size:14px;
  line-height:1.5;
}
.admin-stats__grid{
  margin-bottom:12px;
}
.admin-stats-metric__value{
  font-size:clamp(20px, 2.2vw, 26px);
  font-weight:700;
  color:var(--text);
  letter-spacing:-0.02em;
  line-height:1.2;
}
.admin-stats-metric__hint{
  margin:0 !important;
  font-size:12px !important;
  line-height:1.4 !important;
}

.admin-alert{
  padding:12px 14px;
  border-radius:10px;
  background:rgba(25,94,48,.1);
  color:#14532d;
  margin:12px 0;
  font-size:14px;
}
.admin-alert--error{
  background:#fef2f2;
  color:#991b1b;
}
.admin-form{
  display:flex;
  flex-direction:column;
  gap:14px;
  max-width:520px;
  margin-top:12px;
}
.admin-form--grid{
  max-width:100%;
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
  gap:14px 20px;
  align-items:start;
}
.admin-form label{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:14px;
  color:#374151;
}
.admin-form input,
.admin-form textarea,
.admin-form select{
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:10px;
  font-family:inherit;
  font-size:15px;
}
.admin-span-2{ grid-column:1 / -1; }
.admin-check{
  flex-direction:row !important;
  align-items:center;
  gap:10px !important;
}
.admin-table-wrap{
  overflow-x:auto;
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
}
.admin-table{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
}
.admin-table th,
.admin-table td{
  padding:10px 12px;
  border-bottom:1px solid var(--border);
  text-align:left;
  vertical-align:top;
}
.admin-table tr:last-child td{ border-bottom:0; }
.admin-table code{ font-size:13px; }
.admin-actions{
  white-space:nowrap;
}
.admin-actions > *{
  margin-right:8px;
}
.admin-actions > *:last-child{
  margin-right:0;
}
.admin-inline-form{ display:inline; }
.admin-actions > a,
.admin-actions .link-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 12px;
  border-radius:10px;
  border:1px solid var(--border);
  background:#fff;
  color:var(--text);
  text-decoration:none;
  font-size:13px;
  font-weight:600;
  line-height:1.2;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.admin-actions .link-button{
  cursor:pointer;
}
.admin-actions > a:hover,
.admin-actions .link-button:hover{
  border-color:rgba(25,94,48,.35);
  color:var(--text);
  box-shadow:0 10px 24px rgba(0,0,0,.05);
  transform:translateY(-1px);
}
.admin-actions > a:focus-visible,
.admin-actions .link-button:focus-visible{
  outline:2px solid rgba(25,94,48,.35);
  outline-offset:2px;
}
.admin-link-list{
  list-style:none;
  margin:16px 0 0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:12px;
  font-size:16px;
}
.admin-link-list li{
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
  padding:12px 14px;
  line-height:1.45;
  color:#374151;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.admin-link-list li:hover{
  border-color:rgba(25,94,48,.3);
  box-shadow:0 10px 24px rgba(0,0,0,.05);
  transform:translateY(-1px);
}
.admin-link-list a{
  color:var(--brand);
  text-decoration:none;
  font-weight:700;
}
.admin-link-list a:hover{ text-decoration:underline; }

.admin-hint{
  font-size:13px;
  color:var(--muted);
  line-height:1.5;
  margin:0;
}
.admin-back-button{
  margin:0 0 18px;
}
.admin-back-button--between{
  margin:10px 0 10px;
}
@media (max-width:640px){
  .admin-back-button{
    width:100%;
    justify-content:center;
  }
}
.admin-help--prominent{
  background:#f0fdf4;
  border:1px solid rgba(25,94,48,.2);
  border-radius:12px;
  padding:16px 18px;
  margin:16px 0 24px;
  font-size:14px;
  line-height:1.55;
  color:#374151;
}
.admin-help--prominent ul{
  margin:10px 0 0 1.1em;
  padding:0;
}
.admin-help--prominent li{ margin:6px 0; }
.admin-help--prominent p{ margin:0 0 8px; }

.admin-muted{ color:var(--muted); font-size:14px; }
.admin-code-quiet{ font-size:12px; font-weight:400; color:var(--muted); margin-left:6px; }
.admin-filter-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  align-self:end;
}
.admin-form--filters{
  margin-bottom:24px;
  padding-bottom:20px;
  border-bottom:1px solid var(--border);
}
.admin-pedido-meta h2{ margin-top:24px; }
.admin-dl{
  display:grid;
  grid-template-columns:minmax(120px, 200px) 1fr;
  gap:8px 20px;
  margin:12px 0 0;
  font-size:15px;
}
.admin-dl dt{
  margin:0;
  color:var(--muted);
  font-weight:500;
}
.admin-dl dd{ margin:0; }
.admin-table--pedido-items th,
.admin-table--pedido-items td{ font-size:14px; }

/* Detalle pedido admin: jerarquía visual (solo presentación) */
.admin-pedido-detail .admin-pedido-meta{
  max-width:960px;
}
.admin-pedido-hero{
  margin:8px 0 24px;
  padding:20px 22px;
  border:1px solid var(--border);
  border-radius:14px;
  background:linear-gradient(180deg, #fafbfc 0%, #fff 100%);
}
.admin-pedido-hero__code{
  font-size:clamp(20px, 2.5vw, 26px);
  font-weight:700;
  letter-spacing:-0.02em;
  margin:0 0 10px;
}
.admin-pedido-hero__code code{
  font-size:inherit;
  font-weight:inherit;
  background:transparent;
  padding:0;
}
.admin-pedido-hero__row{
  display:flex;
  flex-wrap:wrap;
  gap:12px 20px;
  align-items:baseline;
  font-size:15px;
  color:#374151;
}
.admin-pedido-hero__total{
  font-weight:700;
  font-size:17px;
  color:#111827;
}
.admin-pedido-hero__badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}
.admin-status-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 12px;
  border-radius:999px;
  font-size:13px;
  font-weight:600;
  border:1px solid var(--border);
  background:#fff;
  color:#374151;
}
.admin-status-badge code{
  font-size:11px;
  font-weight:500;
  opacity:.85;
}
.admin-status-badge--operativo{
  background:#f0f9ff;
  border-color:rgba(14,116,144,.25);
  color:#0c4a6e;
}
.admin-status-badge--operativo-muted{
  background:#f3f4f6;
  color:#6b7280;
}

.admin-pedido-block{
  margin:0 0 28px;
  padding:0 0 22px;
  border-bottom:1px solid var(--border);
}
.admin-pedido-block:last-of-type{
  border-bottom:0;
  padding-bottom:0;
}
.admin-pedido-detail__title{
  font-size:17px;
  font-weight:700;
  margin:0 0 14px;
  color:#111827;
}
.admin-pedido-detail .admin-pedido-meta h2.admin-pedido-detail__title{
  margin:22px 0 14px;
}
.admin-pedido-mov-detalle-cell{
  max-width:28rem;
  min-width:12rem;
  word-break:break-word;
}

.admin-summary-card{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}
@media (max-width:640px){
  .admin-summary-card{ grid-template-columns:1fr; }
}
.admin-summary-card__cell{
  padding:14px 16px;
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
  font-size:14px;
  line-height:1.45;
}
.admin-summary-card__label{
  display:block;
  font-size:12px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--muted);
  margin:0 0 6px;
}
.admin-summary-card__value{
  margin:0;
  color:#111827;
  font-weight:600;
}
.admin-summary-card__value code{
  font-size:12px;
  font-weight:500;
}

.admin-detail-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px 24px;
  margin:12px 0 0;
  font-size:15px;
}
@media (max-width:720px){
  .admin-detail-grid{ grid-template-columns:1fr; }
}
.admin-detail-grid__pair{
  margin:0;
  padding:10px 0;
  border-bottom:1px solid rgba(0,0,0,.06);
}
.admin-detail-grid__pair dt{
  margin:0 0 4px;
  font-size:12px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.03em;
  color:var(--muted);
}
.admin-detail-grid__pair dd{
  margin:0;
  color:#1f2937;
  word-break:break-word;
}

.admin-pedido-badge{
  display:inline-block;
  padding:3px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
}
.admin-pedido-badge--si{
  background:#ecfdf5;
  color:#047857;
  border:1px solid rgba(4,120,87,.2);
}
.admin-pedido-badge--no{
  background:#f3f4f6;
  color:#6b7280;
  border:1px solid var(--border);
}

.admin-stock-panel .admin-dl{
  margin-top:8px;
}
.admin-importes-panel .admin-dl{
  margin-top:8px;
}
.admin-importes-panel .admin-dl dd.admin-pedido-total-dd{
  font-size:18px;
  font-weight:800;
  color:#111827;
}

.admin-technical-box{
  padding:14px 16px;
  border-radius:12px;
  background:#f9fafb;
  border:1px dashed var(--border);
  font-size:13px;
  color:#6b7280;
}
.admin-technical-box .admin-dl{
  margin:0;
  gap:6px 16px;
  font-size:13px;
}
.admin-technical-box .admin-dl dt{ color:#9ca3af; }
.admin-technical-box .admin-dl dd{ color:#4b5563; }

.admin-pedido-callout{
  padding:14px 16px;
  border-radius:12px;
  background:#fffbeb;
  border:1px solid rgba(180,83,9,.22);
  margin:0 0 16px;
  font-size:14px;
  line-height:1.55;
  color:#78350f;
}
.admin-pedido-callout--muted{
  background:#f9fafb;
  border:1px solid var(--border);
  color:#4b5563;
}
.admin-pedido-callout p{ margin:0 0 8px; }
.admin-pedido-callout p:last-child{ margin-bottom:0; }

.admin-pedido-form-card .admin-form textarea{
  min-height:120px;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}

.admin-pedido-table-scroll{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  margin-top:8px;
}
.admin-pedido-table-scroll .admin-table{
  min-width:520px;
}
.admin-pedido-movimientos .admin-table{
  min-width:640px;
}

.admin-pedido-movtipo-badge{
  display:inline-block;
  padding:4px 10px;
  border-radius:8px;
  font-size:12px;
  font-weight:700;
  text-transform:none;
}
.admin-pedido-movtipo--descuento{
  background:#fef2f2;
  color:#b91c1c;
  border:1px solid rgba(185,28,28,.2);
}
.admin-pedido-movtipo--restauracion{
  background:#ecfdf5;
  color:#047857;
  border:1px solid rgba(4,120,87,.2);
}
.admin-pedido-movtipo--other{
  background:#f3f4f6;
  color:#374151;
  border:1px solid var(--border);
}

.admin-pedido-qty{
  font-variant-numeric:tabular-nums;
  font-weight:700;
}
.admin-pedido-qty--neg{ color:#b91c1c; }
.admin-pedido-qty--pos{ color:#047857; }

.admin-pedido-factura-lead{
  font-size:14px;
  line-height:1.5;
  margin:0 0 14px;
  max-width:62ch;
}
.admin-pedido-factura-destacado{
  display:inline-block;
  margin:0 0 12px;
  padding:8px 14px;
  border-radius:10px;
  background:#eff6ff;
  border:1px solid rgba(37,99,235,.2);
  font-weight:700;
  font-size:15px;
  color:#1e3a8a;
}

/* Checkout */
.cart-summary__checkout{
  margin:16px 0 0;
}
.cart-checkout-hint{
  font-size:13px;
  line-height:1.55;
  font-weight:400;
  color:#868e96;
  max-width:100%;
  margin:12px 0 0;
}
.cart-page .cart-clear-form{
  margin-top:18px;
}
.checkout-page > h1{
  margin:0 0 12px;
}
.checkout-page > .rule{
  margin:0 0 20px;
}
.checkout-page > .checkout-lead{
  margin:0 0 30px;
  font-size:clamp(16px, 1.35vw, 18px);
  line-height:1.55;
  color:#374151;
  max-width:42ch;
}
.checkout-page > .checkout-errors{
  margin:0 0 24px;
}
.checkout-errors{
  background:#fef2f2;
  border:1px solid #fecaca;
  border-radius:12px;
  padding:14px 16px;
  margin:0 0 22px;
  font-size:15px;
  color:#991b1b;
}
.checkout-errors ul{ margin:8px 0 0 1.2em; }
.checkout-layout{
  display:grid;
  grid-template-columns:1fr min(360px, 100%);
  gap:32px;
  align-items:start;
}
@media (max-width:900px){
  .checkout-layout{ grid-template-columns:1fr; }
}
.checkout-form-wrap h2,
.checkout-summary h2{
  font-size:20px;
  font-weight:700;
  margin:0 0 14px;
}
.checkout-form{
  display:flex;
  flex-direction:column;
  gap:14px;
  max-width:520px;
}
.checkout-form label{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:14px;
  color:#374151;
}
.checkout-form input,
.checkout-form textarea,
.checkout-form select{
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:10px;
  font-family:inherit;
  font-size:15px;
  background:#fff;
  max-width:100%;
}
.checkout-zona-fieldset{
  border:0;
  margin:0;
  padding:0;
  min-width:0;
}
.checkout-zona-legend{
  font-size:14px;
  font-weight:600;
  color:#374151;
  margin:0 0 10px;
  padding:0;
}
.checkout-zona-options{
  display:flex;
  flex-wrap:wrap;
  gap:12px 18px;
}
.checkout-zona-option{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:15px;
  color:var(--text);
  cursor:pointer;
  font-weight:500;
}
.checkout-zona-option input{
  width:18px;
  height:18px;
  accent-color:var(--brand);
  flex-shrink:0;
}
.checkout-zona-panel{
  margin-top:4px;
}
.checkout-zona-footnote{
  font-size:13px;
  margin:8px 0 0;
  line-height:1.45;
}
.checkout-summary{
  background:#f9fafb;
  border:1px solid var(--border);
  border-radius:14px;
  padding:18px 20px;
}
.checkout-summary-list{
  list-style:none;
  margin:0 0 16px;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
  font-size:15px;
}
.checkout-summary-list li{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding-bottom:10px;
  border-bottom:1px solid var(--border);
}
.checkout-summary-list li:last-child{ border-bottom:0; padding-bottom:0; }
.checkout-summary-name{ flex:1; min-width:0; }
.checkout-summary-price{ font-weight:600; color:var(--brand); flex-shrink:0; }
.checkout-summary-total{ font-size:17px; margin:8px 0 0; }
.checkout-summary-billing{ font-size:13px; margin-top:8px; line-height:1.45; }
.checkout-summary-note{ font-size:13px; margin-top:12px !important; }
/* Facturación: el .sub global limita a 52ch; acá usamos todo el ancho del formulario. */
.checkout-form .checkout-factura-h2{
  margin:32px 0 6px;
  font-size:19px;
  line-height:1.25;
}
.checkout-form p.checkout-factura-hint.sub,
.checkout-form .checkout-factura-hint{
  display:block;
  max-width:none;
  width:100%;
  margin:0 0 18px !important;
  font-size:14px;
  line-height:1.58;
}
.checkout-factura-fieldset{
  margin-top:0;
}
/* Tipo de comprobante: columna (solo facturación; GBA/CABA sigue con .checkout-zona-options horizontal). */
.checkout-factura-fieldset .checkout-factura-options{
  flex-direction:column;
  align-items:stretch;
  flex-wrap:nowrap;
  gap:12px;
}
.checkout-factura-fieldset .checkout-factura-option{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:10px;
  width:100%;
  margin:0;
}
.checkout-factura-fieldset .checkout-factura-option input[type="radio"]{
  margin:0;
  flex-shrink:0;
}
.checkout-factura-fieldset .checkout-factura-option span{
  flex:1;
  min-width:0;
  line-height:1.45;
}
.checkout-factura-panel{ margin-top:10px; }
.checkout-form p.checkout-factura-panel-hint.sub,
.checkout-form .checkout-factura-panel-hint{
  display:block;
  max-width:none;
  width:100%;
  margin:0 0 14px !important;
  font-size:13px;
  line-height:1.55;
}
.checkout-exito-factura__lead{ margin:0 0 12px !important; font-size:14px; line-height:1.45; }

/* Página éxito pedido (sin MP / flujo manual) */
.checkout-exito-page{
  max-width:min(560px, 100%);
  margin:0 auto;
}
.checkout-exito-title{
  font-size:clamp(26px, 3vw, 34px);
  font-weight:800;
  letter-spacing:-0.02em;
  margin:0 0 10px;
  line-height:1.1;
}
.checkout-exito-page > .rule{
  margin:0 0 22px;
}
.checkout-exito-lead{
  margin:0 0 28px;
}
.checkout-exito-lead .checkout-exito-line{
  margin:0 0 8px;
  max-width:none;
}
.checkout-exito-lead .checkout-exito-line:last-child{
  margin-bottom:0;
}
.checkout-exito-code-block{
  margin:0 0 28px;
  padding:18px 20px;
  background:linear-gradient(180deg, #fafbfc 0%, #f3f5f7 100%);
  border:1px solid var(--border);
  border-radius:14px;
  text-align:center;
}
.checkout-exito-code-label{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--muted);
  margin:0 0 10px;
  font-weight:600;
}
.checkout-exito-codigo{
  margin:0;
  font-size:clamp(17px, 3.4vw, 22px);
  font-weight:700;
  font-family:ui-monospace, 'Cascadia Code', 'Segoe UI Mono', monospace;
  letter-spacing:.03em;
  color:var(--brand);
  line-height:1.25;
  word-break:break-all;
}
.checkout-exito-card{
  background:#f9fafb;
  border:1px solid var(--border);
  border-radius:14px;
  padding:20px 22px 18px;
  margin:0 0 28px;
}
.checkout-exito-card__title{
  font-size:17px;
  font-weight:700;
  margin:0 0 14px;
  color:var(--text);
}
.checkout-exito-card__list{
  margin-bottom:14px !important;
}
.checkout-exito-card .checkout-summary-list li:last-child{
  padding-bottom:12px;
  border-bottom:1px solid var(--border);
}
.checkout-exito-total{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:16px;
  margin:0;
  padding-top:14px;
  border-top:1px solid rgba(229,231,235,.9);
  font-size:clamp(18px, 2.2vw, 22px);
  font-weight:700;
  color:var(--text);
}
.checkout-exito-total__label{
  font-weight:700;
  color:#374151;
}
.checkout-exito-total__value{
  font-size:clamp(20px, 2.5vw, 26px);
  font-weight:800;
  color:var(--brand);
  letter-spacing:-0.02em;
}
.checkout-exito-factura__title{
  font-size:16px;
  margin:18px 0 8px;
  font-weight:700;
}
.checkout-exito-factura-dl{
  margin:0 0 8px;
  font-size:14px;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:4px 14px;
}
.checkout-exito-factura-dl dt{
  font-weight:600;
  color:#374151;
}
.checkout-exito-factura-dl dd{ margin:0; }
.checkout-exito-closing{
  margin:0 0 28px;
}
.checkout-exito-closing .sub{
  margin:0 0 10px;
  max-width:none;
}
.checkout-exito-closing .sub:last-child{
  margin-bottom:0;
}
.checkout-exito-ctas{
  margin-top:8px;
}

/* Retorno Mercado Pago (pago-retorno.php): tarjeta blanca, sin afectar otras páginas */
.payment-return{
  margin-bottom:clamp(28px, 5vw, 48px);
}
.payment-return-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  padding:clamp(22px, 4vw, 36px);
  box-shadow:0 4px 28px rgba(0,0,0,.045);
}
.payment-return-card > .kicker{
  margin-top:0;
  margin-bottom:12px;
}
.payment-return-card > h1{
  margin-top:0;
  margin-bottom:12px;
}
.payment-return-card > .rule{
  margin:0 0 20px;
}
.payment-return-card .payment-return__text{
  margin:0 0 14px;
  max-width:52ch;
  font-size:clamp(15px, 1.25vw, 17px);
  line-height:1.55;
  color:#374151;
}
.payment-return-card .payment-return__detail{
  margin:16px 0 0;
  max-width:52ch;
  font-size:15px;
  line-height:1.55;
  color:#4b5563;
}
.payment-return-card .payment-return__code{
  margin:20px 0 0;
}
.payment-return-card .payment-return-ctas{
  margin-top:28px;
}
.payment-return-ctas .btn{
  min-width:min(100%, 168px);
  justify-content:center;
}
@media (max-width:520px){
  .payment-return-ctas{
    flex-direction:column;
    align-items:stretch;
  }
  .payment-return-ctas .btn{
    width:100%;
    min-width:0;
  }
}

.checkout-exito-h2{
  font-size:18px;
  margin:24px 0 12px;
}
.checkout-summary-list--compact{ margin-bottom:12px; }

/* Cómo comprar */
.como-comprar-body{
  margin-top:20px;
}

.como-comprar-h2{
  font-size:clamp(20px, 2.5vw, 24px);
  font-weight:700;
  margin:28px 0 14px;
  letter-spacing:-0.02em;
}
.como-comprar-body .como-comprar-h2:first-child{
  margin-top:0;
}
.como-comprar-steps{
  list-style:none;
  margin:0 0 8px;
  padding:0;
  counter-reset: paso;
}
.como-comprar-steps li{
  position:relative;
  padding:0 0 20px 2.1rem;
  font-size:clamp(16px, 1.25vw, 17px);
  line-height:1.55;
  color:#374151;
  margin-left:0;
}
.como-comprar-steps li:last-child{
  padding-bottom:0;
}
.como-comprar-steps li::after{
  content:"";
  position:absolute;
  left:11px;
  top:24px;
  bottom:0;
  width:2px;
  background:rgba(25,94,48,.2);
}
.como-comprar-steps li:last-child::after{
  display:none;
}
.como-comprar-steps li::before{
  counter-increment: paso;
  content: counter(paso);
  position:absolute;
  left:0;
  transform:none;
  width:24px;
  height:24px;
  border-radius:50%;
  background:var(--brand);
  color:#fff;
  font-size:12px;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
.como-comprar-steps strong{
  color:var(--text);
  font-weight:600;
}
.como-comprar-ctas{
  margin-top:28px;
  flex-wrap:wrap;
}

.como-comprar-steps-grid{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}

.como-comprar-step-card{
  border:1px solid var(--border);
  border-radius:14px;
  background:#fff;
  padding:14px 14px 15px;
}

.como-comprar-step-card__badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  border-radius:999px;
  background:var(--brand);
  color:#fff;
  font-size:12px;
  font-weight:700;
  margin-bottom:10px;
}

.como-comprar-step-card h3{
  margin:0 0 6px;
  font-size:16px;
  line-height:1.3;
}

.como-comprar-step-card p{
  margin:0;
  font-size:14px;
  line-height:1.5;
  color:#4b5563;
}

.como-comprar-envios-panel{
  margin-top:6px;
  border:1px solid rgba(25,94,48,.2);
  border-radius:14px;
  background:rgba(25,94,48,.03);
  padding:16px 16px;
}

.como-comprar-envios .sub{
  max-width:none;
  font-size:clamp(15px, 1.15vw, 16px);
  line-height:1.62;
  color:#4b5563;
}

.como-comprar-envios-list{
  list-style:none;
  margin:0;
  padding-left:0;
  display:flex;
  flex-direction:column;
  gap:14px;
}

.como-comprar-envios-list li{
  position:relative;
  padding-left:1.2rem;
  margin:0;
}

.como-comprar-envios-list .sub{
  max-width:none;
}

.como-comprar-envios-list--slightly-smaller li.sub{
  font-size:14px;
  line-height:1.52;
}

.como-comprar-envios-list li::before{
  content:"•";
  position:absolute;
  left:0;
  top:0;
  color:var(--brand);
  font-weight:700;
  font-size:1.1em;
  line-height:1.2;
}

.como-comprar-ctas{
  gap:10px;
}

.como-comprar-ctas .btn-primary{
  min-width:180px;
}

@media (max-width:900px){
  .como-comprar-steps-grid{
    grid-template-columns:1fr;
  }
}

/* Legal minimum package */
.footer{
  align-items:flex-start;
}

.footer-meta{
  display:flex;
  flex-direction:column;
  gap:3px;
  max-width:100%;
  flex:1;
}

.footer-copy{
  margin:0;
}

.footer-company{
  margin:0;
  font-size:12px;
  line-height:1.45;
  color:#6b7280;
}

.footer-links{
  gap:14px;
}

.footer-links a{
  font-size:12px;
}

.footer-links--legal{
  justify-content:flex-start;
  margin-top:0;
}

.footer-links--social{
  justify-content:flex-end;
  min-width:max-content;
}

.mandu-install-app-btn-inline{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:10px 16px;
  border:1px solid rgba(25,94,48,.24);
  border-radius:999px;
  background:#fff;
  color:#2f4f3a;
  font-family:inherit;
  font-size:13px;
  font-weight:600;
  line-height:1;
  cursor:pointer;
  transition:border-color .2s ease, color .2s ease, background .2s ease;
}

.mandu-install-app-btn-inline:hover{
  border-color:rgba(25,94,48,.45);
  color:var(--brand);
}

.mandu-install-app-btn-inline:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}

.mandu-install-app-inline-help{
  margin:8px 0 0;
  font-size:13px;
  line-height:1.45;
  color:#4b5563;
  max-width:44ch;
}

@media (min-width:769px){
  .mandu-install-app-btn-inline{
    display:none !important;
  }
}

.footer-meta a{
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid transparent;
}

.footer-meta a:hover{
  color:var(--brand);
  border-bottom-color:rgba(25,94,48,.35);
}

@media (min-width:641px) and (max-width:1024px){
  .footer{
    gap:8px;
  }

  .footer-links{
    gap:8px 10px;
  }

  .footer-links--legal{
    justify-content:flex-start;
    margin-top:0;
  }
}

.checkout-legal-compact{
  margin-top:2px;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fafbfc;
}

.checkout-legal-compact p{
  margin:0;
  font-size:13px;
  line-height:1.5;
  color:#4b5563;
}

.checkout-legal-compact p + p{
  margin-top:6px;
}

.checkout-legal-compact__provider{
  color:#374151 !important;
}

.checkout-legal-compact__links a{
  color:var(--brand);
  text-decoration:none;
}

.checkout-legal-compact__links a:hover{
  text-decoration:underline;
}

@media (max-width:640px){
  .footer-company{
    font-size:11px;
  }

  .footer-links a{
    font-size:11px;
  }

  .footer-links--legal,
  .footer-links--social{
    width:100%;
    justify-content:flex-start;
  }

  .footer-links--legal{
    margin-top:0;
  }

  .checkout-legal-compact{
    padding:10px 12px;
  }
}

