/* NestorPOS_Store — estilos base compartidos por todas las plantillas.
   Los colores, tipografía y radios llegan como variables (:root) desde theme.CSSVars;
   cada plantilla ajusta encima en /static/themes/<id>.css. Móvil primero. */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--c-bg);color:var(--c-text);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--font-heading);line-height:1.2;margin:0}
p{margin:0}
[hidden]{display:none!important}
.skip{position:absolute;left:-999px;top:0}
.skip:focus{left:12px;top:12px;z-index:100;background:#fff;padding:8px 12px;border-radius:8px}
:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px}

.wrap{width:100%;max-width:1320px;margin:0 auto;padding:0 16px}
.narrow{max-width:760px}
.muted{color:var(--c-muted)}
.small{font-size:13px}
.center{text-align:center}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em}
.only-desktop{display:none!important}
@media (min-width:1024px){.only-desktop{display:flex!important}.only-mobile{display:none!important}}

.ic{width:1.25em;height:1.25em;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 18px;border-radius:var(--radius-pill);border:1.5px solid transparent;font-weight:600;cursor:pointer;transition:transform .12s,background .15s,box-shadow .15s;white-space:nowrap;text-align:center}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--c-primary);color:var(--c-primary-ink)}
.btn--primary:hover{box-shadow:0 6px 16px -8px var(--c-primary)}
.btn--accent{background:var(--c-accent);color:var(--c-accent-ink)}
.btn--accent:hover{box-shadow:0 6px 18px -8px var(--c-accent)}
.btn--ghost{background:transparent;border-color:var(--c-border);color:var(--c-text)}
.btn--ghost:hover{border-color:var(--c-primary);color:var(--c-primary)}
.btn--wa{background:#1fa855;color:#fff}
.btn--sm{min-height:36px;padding:0 12px;font-size:14px}
.btn--lg{min-height:50px;padding:0 24px;font-size:16px}
.btn--block{width:100%}
.icon-btn{position:relative;display:inline-grid;place-items:center;width:42px;height:42px;border-radius:999px;border:0;background:transparent;color:inherit;cursor:pointer}
.icon-btn .ic{width:24px;height:24px}
.icon-btn:hover{background:color-mix(in srgb,currentColor 10%,transparent)}
.badge{position:absolute;top:2px;right:0;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--c-primary);color:var(--c-primary-ink);font-size:11px;font-weight:700;display:grid;place-items:center;line-height:1}
.pill{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 14px;border-radius:999px;background:#1fa855;color:#fff;font-weight:700;font-size:14px}

/* ---------- Barra de anuncios ---------- */
.announce{background:var(--c-bar-bg,var(--c-text));color:var(--c-bar-fg,#fff);text-align:center;font-size:13px;padding:7px 16px;min-height:33px}
.announce span{animation:fadein .4s}
@keyframes fadein{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}

/* ---------- Encabezados ---------- */
.hdr{background:var(--c-header-bg);color:var(--c-header-fg);position:sticky;top:0;z-index:40}
.hdr__row{display:flex;align-items:center;gap:12px;min-height:64px}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;flex:none;min-width:0}
.logo img{max-height:46px;width:auto;max-width:180px;object-fit:contain}
.logo__mark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--c-primary);color:var(--c-primary-ink);font-size:16px;letter-spacing:.02em}
.logo__name{font-family:var(--font-heading);font-size:19px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw}
.logo img+.logo__name{font-size:18px}
@media (max-width:699px){.logo img+.logo__name{display:none}}
.hdr__links{display:flex;gap:4px;margin-left:auto}
.hdr__links a{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:10px;font-size:14.5px}
.hdr__links a:hover{background:color-mix(in srgb,currentColor 12%,transparent)}
.hdr__side{display:flex;align-items:center;gap:2px}
.hdr__side--end{margin-left:auto}
.hdr__icons{display:flex;align-items:center;gap:4px}

/* Buscador */
.search{position:relative;display:flex;align-items:center;flex:1;min-width:0;background:#fff;border:1.5px solid var(--c-border);border-radius:var(--radius-pill);height:44px;color:var(--c-text)}
.search input{flex:1;min-width:0;border:0;background:transparent;height:100%;padding:0 6px 0 18px;outline:none;font-size:15px}
.search input::placeholder{color:#8b93a3}
.search button{width:46px;height:100%;border:0;background:transparent;color:var(--c-primary);cursor:pointer;display:grid;place-items:center}
.search:focus-within{border-color:var(--c-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-primary) 18%,transparent)}
.search__suggest{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--c-border);border-radius:14px;box-shadow:0 18px 40px -18px rgba(15,23,42,.35);overflow:hidden;z-index:60}
.suggest__item{display:flex;align-items:center;gap:12px;padding:9px 14px;color:var(--c-text)}
.suggest__item:hover,.suggest__item.is-active{background:var(--c-surface)}
.suggest__item img,.suggest__item .ph{width:40px;height:40px;border-radius:8px;object-fit:contain;background:#fff;flex:none}
.suggest__item small{display:block;color:var(--c-muted)}
.suggest__item strong{margin-left:auto;color:var(--c-primary);white-space:nowrap}
.suggest__all{display:block;padding:10px 14px;font-weight:600;color:var(--c-primary);border-top:1px solid var(--c-border)}
.search-pop{padding:10px 0 14px;background:var(--c-header-bg)}

/* Mega menú */
.dept-btn{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;color:inherit;font-weight:600;font-size:15.5px;cursor:pointer;height:44px;padding:0 6px}
.dept-btn .ic{width:22px;height:22px}
.offers-link{display:inline-flex;align-items:center;gap:6px;color:var(--c-accent);font-weight:600;padding:0 8px}
.mega{position:absolute;left:0;right:0;top:100%;background:#fff;color:var(--c-text);border-top:1px solid var(--c-border);box-shadow:0 30px 50px -30px rgba(15,23,42,.45)}
.mega__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:20px 16px 26px}
.mega__item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:12px}
.mega__item:hover{background:var(--c-surface)}
.mega__item small{display:block;color:var(--c-muted);font-size:12.5px}
.mega__ic{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--c-primary-soft);color:var(--c-primary)}

/* Menú lateral (móvil) */
.drawer{position:fixed;inset:0;z-index:80}
.drawer__scrim{position:absolute;inset:0;background:rgba(15,23,42,.45)}
.drawer__panel{position:absolute;top:0;bottom:0;left:0;width:min(86vw,360px);background:#fff;color:var(--c-text);display:flex;flex-direction:column;animation:slidein .2s ease-out}
@keyframes slidein{from{transform:translateX(-100%)}to{transform:none}}
.drawer__head{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 12px 16px;border-bottom:1px solid var(--c-border)}
.drawer__nav{overflow:auto;padding:8px 8px 24px}
.drawer__nav a{display:flex;align-items:center;gap:12px;padding:11px 10px;border-radius:10px;font-weight:500}
.drawer__nav a:hover{background:var(--c-surface)}
.drawer__nav a .ic{color:var(--c-primary)}
.drawer__nav a small{margin-left:auto;color:var(--c-muted)}
.drawer__label{margin:14px 10px 4px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--c-muted)}

/* ---------- Secciones ---------- */
.sec{padding:22px 0}
.sec__head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px}
.sec__title{font-size:22px;font-weight:700;color:var(--c-primary)}
.sec__more{display:inline-flex;align-items:center;gap:2px;color:var(--c-primary);font-weight:600;font-size:14.5px;white-space:nowrap}
.sec__more .ic{width:18px;height:18px}
@media (min-width:1024px){.sec{padding:30px 0}.sec__title{font-size:28px}}

/* Héroe */
.hero{padding-top:14px}
.hero__grid{display:grid;gap:14px}
.slider{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--c-surface)}
.slider__track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;height:100%}
.slider__track::-webkit-scrollbar{display:none}
.slide{position:relative;flex:0 0 100%;scroll-snap-align:start;display:block}
.slide img{width:100%;height:100%;object-fit:cover}
/* Proporciones pensadas para banners de 1600×500/600/700 (lo que recomienda el editor).
   Iguales en móvil y escritorio: lo que el comercio sube es lo que se ve, sin recortes
   que corten el texto o el botón del banner. */
.hero--sm .slide{aspect-ratio:16/5}.hero--md .slide{aspect-ratio:16/6}.hero--lg .slide{aspect-ratio:16/7}.hero--split .slide{aspect-ratio:16/10}
.hero .slide--text{aspect-ratio:auto!important;min-height:250px}
@media (min-width:1024px){.hero .slide--text{min-height:340px}.hero--split .slide--text{min-height:100%}}

.slide__cap{position:absolute;left:0;right:0;bottom:0;padding:22px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.55))}
.slide__cap strong{font-size:22px;font-family:var(--font-heading)}
.slide--text{display:flex;align-items:center;background:linear-gradient(120deg,var(--c-primary),color-mix(in srgb,var(--c-primary) 55%,var(--c-accent)));color:var(--c-primary-ink);overflow:hidden}
.slide__text{position:relative;z-index:1;padding:26px 22px;max-width:640px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.slide__text h1{font-size:30px}
.slide__text p{opacity:.92}
.eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.85}
.slide__art{position:absolute;right:-30px;bottom:-40px;opacity:.14}
.slide__art .ic{width:280px;height:280px;stroke-width:1.2}
@media (min-width:1024px){.slide__text{padding:40px 56px}.slide__text h1{font-size:46px}}
.slider__nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:999px;border:0;background:rgba(255,255,255,.92);box-shadow:0 4px 14px rgba(0,0,0,.18);display:grid;place-items:center;cursor:pointer;color:#111}
.slider__nav--prev{left:12px}.slider__nav--next{right:12px}
.slider__dots{position:absolute;left:0;right:0;bottom:10px;display:flex;justify-content:center;gap:6px}
.slider__dots button{width:8px;height:8px;border-radius:99px;border:0;background:rgba(255,255,255,.65);padding:0;cursor:pointer;transition:width .2s}
.slider__dots button.is-active{width:22px;background:#fff}
.hero__side{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.hero__side-item{border-radius:var(--radius);overflow:hidden;background:var(--c-surface)}
.hero__side-item img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/9}
@media (min-width:1024px){.hero--split .hero__grid{grid-template-columns:1.62fr 1fr}.hero--split .hero__side{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.hero--split .hero__side-item img{aspect-ratio:auto}}
.hero--full .wrap{max-width:none;padding:0}.hero--full .slider{border-radius:0}.hero--full{padding-top:0}
/* El carrusel se adapta al ALTO de la pantalla: en laptops (1366×768) un 16:6 a todo
   lo ancho tapaba los departamentos. Su alto se topa para que asome la sección
   siguiente; se encoge a lo ancho (centrado) en vez de recortar el banner, que suele
   llevar texto. En pantallas altas no cambia nada. */
:root{--hero-max-h:max(220px,calc(100vh - 300px))}
@supports (height:100svh){:root{--hero-max-h:max(220px,calc(100svh - 300px))}}
@media (min-width:1024px){
  .hero--sm:not(.hero--split) .slider{max-width:calc(var(--hero-max-h) * 16 / 5)}
  .hero--md:not(.hero--split) .slider{max-width:calc(var(--hero-max-h) * 16 / 6)}
  .hero--lg:not(.hero--split) .slider{max-width:calc(var(--hero-max-h) * 16 / 7)}
  .hero:not(.hero--split) .slider{width:100%;margin-inline:auto}
  .hero--split .slide{max-height:var(--hero-max-h)}
}

/* Departamentos */
.cats__list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media (min-width:700px){.cats__list{grid-template-columns:repeat(4,1fr)}}
@media (min-width:1024px){.cats__list{grid-template-columns:repeat(6,1fr)}}
.cat{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 10px 14px;border:1.5px solid var(--c-border);border-radius:var(--radius);background:#fff;text-align:center;transition:border-color .15s,transform .15s,box-shadow .15s}
.cat:hover{border-color:var(--c-primary);transform:translateY(-2px);box-shadow:0 12px 24px -16px rgba(15,23,42,.4)}
.cat__ic{display:grid;place-items:center;width:62px;height:62px;border-radius:20px;background:var(--c-primary-soft);color:var(--c-primary)}
.cat__ic .ic{width:32px;height:32px;stroke-width:1.6}
.cat__img{width:72px;height:72px;object-fit:cover;border-radius:18px}
.cat__name{font-weight:600;line-height:1.25;color:var(--c-primary)}
.cat__count{font-size:12.5px;color:var(--c-muted)}
.cats--icons .cats__list[data-rail]{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.cats--icons .cats__list[data-rail]::-webkit-scrollbar{display:none}
.cats--icons .cat{flex:0 0 clamp(132px,30vw,184px);scroll-snap-align:start}
.cats--tiles .cat{aspect-ratio:1/1;justify-content:center;background:var(--c-surface);border-color:transparent}
.cats--chips .cats__list{display:flex;flex-wrap:wrap;gap:8px}
.cats--chips .cat{flex-direction:row;padding:8px 14px;border-radius:999px}
.cats--chips .cat__ic{width:28px;height:28px;border-radius:8px}.cats--chips .cat__ic .ic{width:18px;height:18px}.cats--chips .cat__count{display:none}

/* Carriles y cuadrícula */
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(168px,46vw,236px);gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 12px;scrollbar-width:thin;scroll-padding:2px}
.rail>*{scroll-snap-align:start}
@media (min-width:1024px){.rail{grid-auto-columns:calc((100% - 4*14px)/5)}}
.rail-wrap{position:relative}
.rail-btn{position:absolute;top:38%;z-index:3;width:42px;height:42px;border-radius:999px;border:1px solid var(--c-border);background:#fff;box-shadow:0 8px 20px -10px rgba(15,23,42,.45);display:none;place-items:center;cursor:pointer;color:var(--c-text)}
.rail-btn--prev{left:-14px}.rail-btn--next{right:-14px}
@media (min-width:1024px){.rail-wrap:hover .rail-btn{display:grid}}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (min-width:700px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1100px){.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}}
.sec .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:1024px){.sec .grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.list{display:grid;gap:10px}
@media (min-width:900px){.list{grid-template-columns:1fr 1fr;gap:14px}}

/* ---------- Tarjeta de producto (base) ---------- */
.card{position:relative;display:flex;flex-direction:column;background:#fff;border:1.5px solid var(--c-border);border-radius:var(--radius);overflow:hidden;min-width:0;transition:box-shadow .18s,border-color .18s}
.card:hover{box-shadow:0 16px 32px -22px rgba(15,23,42,.5);border-color:color-mix(in srgb,var(--c-primary) 30%,var(--c-border))}
/* La caja de la foto manda: cuadrada siempre, la foto se acomoda dentro (contain).
   overflow + pistas minmax(0,1fr) + min-*:0 evitan que una foto alta o ancha
   estire la tarjeta (el contenido le ganaba a aspect-ratio). */
.card__img{display:grid;grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;aspect-ratio:1/1;background:#fff;padding:12px;overflow:hidden;min-height:0}
.card__img img{width:100%;height:100%;min-width:0;min-height:0;object-fit:contain}
.ph{display:grid;place-items:center;width:100%;height:100%;color:#c3c9d4;background:var(--c-surface);border-radius:calc(var(--radius) - 4px)}
.ph .ic{width:42%;height:42%;stroke-width:1.2}
.ph--lg{aspect-ratio:1/1}
.card__body{display:flex;flex-direction:column;gap:5px;padding:4px 12px 12px;flex:1}
.card__sku{font-size:12px;color:var(--c-muted)}
.card__sku span{color:#9aa1ad}
.card__name{font-size:14.5px;font-weight:500;line-height:1.35;font-family:var(--font-body);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em}
.card__name a:hover{color:var(--c-primary)}
.card__flag{position:absolute;top:10px;left:10px;z-index:2;background:var(--c-accent);color:var(--c-accent-ink);font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px}
.card__flag--lg{top:16px;left:16px;font-size:14px;padding:5px 12px}
.card__out{margin:0 12px 12px;padding:8px;border-radius:10px;background:var(--c-surface);text-align:center;color:var(--c-muted);font-size:13.5px;font-weight:600}

.price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin-top:auto}
.price__was{color:#9aa1ad;font-size:13px;width:100%}
.price__now{font-size:19px;font-weight:700;color:var(--c-primary)}
.price__now.is-sale{color:var(--c-accent)}
.price__unit{font-size:13px;color:var(--c-muted)}
.price__badge{display:inline-flex;align-items:center;gap:3px;margin-left:auto;background:var(--c-accent);color:var(--c-accent-ink);font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px}
.price__badge .ic{width:13px;height:13px}

.qty{display:inline-flex;align-items:center;border:1.5px solid var(--c-border);border-radius:var(--radius-pill);height:38px;background:#fff;flex:none}
.qty button{width:32px;height:100%;border:0;background:transparent;cursor:pointer;display:grid;place-items:center;color:var(--c-primary)}
.qty button .ic{width:16px;height:16px}
.qty input{width:34px;border:0;text-align:center;font-weight:600;background:transparent;outline:none;padding:0}
.card__buy{display:flex;align-items:center;gap:8px;padding:10px 12px 12px;border-top:1px solid var(--c-border)}
.card__buy .btn{flex:1;padding:0 10px}
.card__buy .btn .ic{width:18px;height:18px}
.round-add{width:42px;height:42px;border-radius:999px;border:0;background:var(--c-primary);color:var(--c-primary-ink);display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 16px -8px var(--c-primary);transition:transform .12s}
.round-add:hover{transform:scale(1.06)}
.round-add.is-done{background:#1fa855}

/* Pestañas */
.tabs__box{background:var(--c-surface);border-radius:calc(var(--radius) + 6px);padding:6px 14px 14px}
.tabs__bar{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;border-bottom:1.5px solid var(--c-border);margin-bottom:14px}
.tabs__bar::-webkit-scrollbar{display:none}
.tabs__tab{flex:none;border:0;background:transparent;padding:14px 18px;font-weight:600;font-size:16px;color:var(--c-muted);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1.5px}
.tabs__tab.is-active{color:var(--c-primary);border-bottom-color:var(--c-primary)}

/* Banners promocionales, marcas, beneficios */
.promos__grid{display:grid;gap:14px;grid-template-columns:1fr}
@media (min-width:700px){.promos__grid.cols-2{grid-template-columns:1fr 1fr}.promos__grid.cols-3{grid-template-columns:repeat(3,1fr)}.promos__grid.cols-4{grid-template-columns:repeat(4,1fr)}}
.promo{border-radius:var(--radius);overflow:hidden;background:var(--c-surface)}
.promo img{width:100%;aspect-ratio:12/5;object-fit:cover;transition:transform .3s}
.promo:hover img{transform:scale(1.03)}
.brands__row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;background:var(--c-surface);border-radius:calc(var(--radius) + 6px);padding:18px}
@media (min-width:1024px){.brands__row{grid-template-columns:repeat(6,1fr);padding:26px}}
.brand{display:grid;place-items:center;background:#fff;border-radius:var(--radius);padding:12px;aspect-ratio:2/1}
.brand img{max-height:56px;width:auto;object-fit:contain;filter:grayscale(.15)}
.trust__grid{display:grid;gap:18px}
@media (min-width:800px){.trust__grid{grid-template-columns:repeat(3,1fr)}}
.trust__item{display:flex;gap:14px;align-items:flex-start}
.trust__ic{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:var(--c-primary-soft);color:var(--c-primary);flex:none}
.trust__ic .ic{width:28px;height:28px}
.trust__item strong{display:block;color:var(--c-primary);font-size:16.5px}
.trust__item p{color:var(--c-muted);font-size:14px}
.slogan{background:var(--c-accent);color:var(--c-accent-ink);text-align:center;font-weight:700;padding:9px 0;font-size:15.5px}
.richtext--center{text-align:center}
.richtext .sec__title{margin-bottom:10px}
.prose{color:color-mix(in srgb,var(--c-text) 86%,transparent);line-height:1.7}
.prose p+p,.prose ul,.prose h2,.prose h3{margin-top:12px}
.prose ul{padding-left:20px}
.prose a{color:var(--c-primary);text-decoration:underline}
.prose--page h1{font-size:30px;margin-bottom:16px;color:var(--c-primary)}
.prose--page h2{font-size:20px;margin-top:24px}
.prose--page h3{font-size:17px;margin-top:20px}

/* Catálogo por departamento (menú) */
.showcase__nav{position:sticky;top:64px;z-index:5;background:var(--c-bg);padding:10px 0;margin-bottom:6px}
.showcase__group{padding:14px 0 10px;scroll-margin-top:130px}
.showcase__group h3{font-size:20px}

/* WhatsApp */
.wa-cta__box{display:flex;flex-direction:column;gap:14px;align-items:flex-start;padding:22px;border-radius:calc(var(--radius) + 6px);background:#e9f8ef;color:#123d24}
.wa-cta__ic{display:grid;place-items:center;width:56px;height:56px;border-radius:18px;background:#1fa855;color:#fff}
.wa-cta__ic .ic{width:30px;height:30px}
.wa-cta__txt h2{font-size:21px}
@media (min-width:800px){.wa-cta__box{flex-direction:row;align-items:center;padding:26px 32px}.wa-cta__box .btn{margin-left:auto}}
.wa-float{position:fixed;right:16px;bottom:18px;z-index:50;display:flex;align-items:center;gap:8px;background:#1fa855;color:#fff;border-radius:999px;padding:12px 16px;font-weight:700;box-shadow:0 14px 30px -12px rgba(16,90,48,.7)}
.wa-float .ic{width:26px;height:26px}
@media (max-width:699px){.wa-float span{display:none}.wa-float{padding:14px}}

/* Sucursales */
.locs__grid{display:grid;gap:14px}
@media (min-width:800px){.locs__grid{grid-template-columns:repeat(3,1fr)}}
.loc{border:1.5px solid var(--c-border);border-radius:var(--radius);padding:18px;background:#fff;display:flex;flex-direction:column;gap:6px}
.loc h3{display:flex;align-items:center;gap:8px;font-size:17px;color:var(--c-primary)}

/* Chips */
.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px 16px}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 14px;border-radius:999px;background:var(--c-surface);font-weight:600;font-size:14px;white-space:nowrap;border:1.5px solid transparent}
.chip .ic{width:18px;height:18px;color:var(--c-primary)}
.chip:hover{border-color:var(--c-primary)}
.chip--accent{background:var(--c-accent);color:var(--c-accent-ink)}
.chip--accent .ic{color:inherit}

/* ---------- Páginas ---------- */
.page{padding-top:16px;padding-bottom:40px}
.page--narrow{max-width:1100px}
.page__title{font-size:26px;margin-bottom:16px;color:var(--c-primary)}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:13.5px;color:var(--c-muted);margin-bottom:14px}
.crumbs a{display:inline-flex;align-items:center;gap:4px}
.crumbs a:hover{color:var(--c-primary)}
.crumbs .ic{width:15px;height:15px}
.crumbs__sep .ic{width:13px;height:13px;opacity:.6}

.listing{display:grid;gap:20px}
@media (min-width:1024px){.listing{grid-template-columns:250px 1fr;align-items:start}}
.filters{background:#fff;border:1.5px solid var(--c-border);border-radius:var(--radius);padding:16px}
.filters__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.filters fieldset{border:0;border-top:1px solid var(--c-border);margin:10px 0 0;padding:12px 0 0}
.filters legend{font-weight:700;padding:0;margin-bottom:6px}
.opt{display:flex;align-items:center;gap:8px;padding:5px 0;cursor:pointer;font-size:14.5px}
.opt input{accent-color:var(--c-primary);width:17px;height:17px}
.opt--pick{padding:5px 10px;margin:0 -10px 2px;border-radius:calc(var(--radius) - 4px);transition:background .15s}
.opt--pick input{position:absolute;opacity:0;width:1px;height:1px}
.opt--pick:hover{background:var(--c-surface)}
.opt--pick:has(input:checked){background:var(--c-primary-soft);color:var(--c-primary);font-weight:600}
.opt--pick:has(input:focus-visible){outline:2px solid var(--c-primary)}
.opt em{margin-left:auto;font-style:normal;color:var(--c-muted);font-size:12.5px}
.range{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.range input{width:100%;height:38px;border:1.5px solid var(--c-border);border-radius:10px;padding:0 10px}
@media (max-width:1023px){
  .filters{position:fixed;inset:0 0 0 auto;width:min(88vw,360px);z-index:85;border-radius:0;overflow:auto;transform:translateX(100%);transition:transform .2s;box-shadow:-20px 0 40px rgba(15,23,42,.25)}
  .filters.is-open{transform:none}
}
.results__head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.results__head h1{font-size:26px;color:var(--c-primary)}
.results__tools{display:flex;gap:8px;align-items:center}
.sort label{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--c-muted)}
.sort select{height:38px;border:1.5px solid var(--c-border);border-radius:10px;padding:0 10px;background:#fff;color:var(--c-text)}
.pager{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:22px;flex-wrap:wrap}
.pager__n,.pager__nav{min-width:40px;height:40px;display:grid;place-items:center;border-radius:10px;border:1.5px solid var(--c-border);background:#fff;font-weight:600}
.pager__n.is-current{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-primary-ink)}
.pager__gap{color:var(--c-muted)}
.empty{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:50px 16px;color:var(--c-muted)}
.empty>.ic{width:48px;height:48px;color:var(--c-primary);opacity:.7}
.empty h1,.empty h2{color:var(--c-text);font-size:22px}
.empty .search{max-width:520px;width:100%;margin-top:10px}

/* Ficha */
.pdp{display:grid;gap:22px}
@media (min-width:900px){.pdp{grid-template-columns:1.05fr 1fr;gap:44px;align-items:start}}
.pdp__media{position:relative;background:#fff;border:1.5px solid var(--c-border);border-radius:calc(var(--radius) + 4px);padding:20px;display:grid;place-items:center}
.pdp__media img{width:100%;aspect-ratio:1/1;object-fit:contain}
.pdp__info{display:flex;flex-direction:column;gap:12px}
.pdp__dept{color:var(--c-primary);font-weight:600;font-size:14px}
.pdp__title{font-size:26px;font-weight:700;color:var(--c-text)}
@media (min-width:900px){.pdp__title{font-size:31px}}
.pdp__sku{color:var(--c-muted);font-size:14px}
.pdp__price .price__now{font-size:32px}
.pdp__price .price__was{font-size:16px;width:auto}
.pdp__offer{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;background:color-mix(in srgb,var(--c-accent) 12%,#fff);color:var(--c-accent);padding:6px 12px;border-radius:999px;font-weight:600;font-size:14px}
.stock{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:14.5px}
.stock--ok{color:#15803d}.stock--low{color:#c2410c}.stock--out{color:#b91c1c}
.pdp__buy{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.pdp__buy .qty{height:50px}.pdp__buy .qty button{width:42px}.pdp__buy .qty input{width:46px;font-size:17px}
.pdp__buy .btn{flex:1;min-width:220px}
.perks{list-style:none;margin:6px 0 0;padding:16px;border-radius:var(--radius);background:var(--c-surface);display:grid;gap:12px}
.perks li{display:flex;gap:10px;align-items:center;font-size:14.5px}
.perks .ic{color:var(--c-primary);width:22px;height:22px}
.perks a{color:var(--c-primary);font-weight:600;text-decoration:underline}
.pdp__desc{margin-top:28px;padding:22px;border:1.5px solid var(--c-border);border-radius:var(--radius);background:#fff}
.pdp__desc h2{font-size:20px;margin-bottom:10px}

/* Carrito y checkout */
.cart{display:grid;gap:20px}
@media (min-width:900px){.cart{grid-template-columns:1fr 360px;align-items:start}}
.cart__lines{background:#fff;border:1.5px solid var(--c-border);border-radius:var(--radius)}
.line{display:grid;grid-template-columns:64px 1fr auto;grid-template-areas:"img info rm" "img qty total";gap:6px 12px;padding:14px;border-bottom:1px solid var(--c-border);align-items:center}
.line:last-child{border-bottom:0}
.line__img{grid-area:img;width:64px;height:64px;border-radius:12px;overflow:hidden;background:#fff;border:1px solid var(--c-border);padding:4px}
.line__img img{width:100%;height:100%;object-fit:contain}
.line__info{grid-area:info;min-width:0}
.line__name{font-weight:600;display:block;line-height:1.3}
.line__qty{grid-area:qty}
.line__total{grid-area:total;justify-self:end}
.line__rm{grid-area:rm;justify-self:end;color:var(--c-muted)}
@media (min-width:700px){.line{grid-template-columns:72px 1fr auto auto 42px;grid-template-areas:"img info qty total rm"}}
.summary{background:#fff;border:1.5px solid var(--c-border);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:12px;position:sticky;top:90px}
.summary h2{font-size:19px}
.summary__row{display:flex;justify-content:space-between;gap:12px}
.summary__total{font-size:19px;border-top:1px solid var(--c-border);padding-top:12px}
.summary__total strong{color:var(--c-primary)}
.summary__lines{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14px;max-height:280px;overflow:auto}
.summary__lines li{display:flex;justify-content:space-between;gap:12px}
.summary__lines span{color:var(--c-muted)}
.notice{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;font-size:14px;margin-bottom:10px}
.notice .ic{flex:none;margin-top:1px}
.notice--warn{background:#fff4e5;color:#8a4b00}
.notice--info{background:color-mix(in srgb,var(--c-primary) 9%,#fff);color:var(--c-primary)}
.checkout{display:grid;gap:20px}
@media (min-width:900px){.checkout{grid-template-columns:1fr 360px;align-items:start}}
.checkout__main{display:grid;gap:16px}
.box{border:1.5px solid var(--c-border);border-radius:var(--radius);padding:18px;background:#fff;margin:0;min-width:0}
.box legend,.box h2{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;padding:0;margin-bottom:12px;font-family:var(--font-heading)}
.step{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:var(--c-primary);color:var(--c-primary-ink);font-size:14px}
.choice-row{display:grid;gap:10px;margin-bottom:12px}
@media (min-width:600px){.choice-row{grid-template-columns:1fr 1fr}}
/* Tarjetas pulsables del checkout: todas del mismo alto en su fila. */
.choice{position:relative;display:block;cursor:pointer;height:100%}
.choice>span{height:100%;min-height:72px}
.choice-title{font-weight:600;margin:4px 0 8px}
.choice input{position:absolute;opacity:0}
.choice>span{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"ic t" "ic s";column-gap:12px;align-items:center;padding:14px;border:1.5px solid var(--c-border);border-radius:calc(var(--radius) - 2px);transition:border-color .15s,background .15s}
.choice>span>.ic{grid-area:ic;width:26px;height:26px;color:var(--c-primary)}
.choice strong{grid-area:t}.choice small{grid-area:s;color:var(--c-muted)}
.choice input:checked+span{border-color:var(--c-primary);background:var(--c-primary-soft);box-shadow:inset 0 0 0 1px var(--c-primary)}
.choice input:focus-visible+span{outline:2px solid var(--c-primary);outline-offset:2px}
.choice--wide{margin-bottom:10px}
.choice--wide>span{grid-template-columns:1fr;grid-template-areas:"t" "s"}
.choice--wide>span>.ic{display:none}
.pay-list .choice--wide>span{grid-template-columns:auto 1fr;grid-template-areas:"ic t" "ic s"}
.pay-list .choice--wide>span>.ic{display:block}
/* Opción única: ya está elegida y no hay nada que pulsar. Se ve como dato, no
   como botón: fondo neutro, sin borde de selección y la marca «Única opción». */
.choice--only{grid-column:1/-1;cursor:default}
.choice--only>span,.choice--only input:checked+span,.pay-list .choice--only>span,.pay-list .choice--only input:checked+span{grid-template-columns:auto 1fr auto;grid-template-areas:"ic t o" "ic s o";background:var(--c-surface);border-color:transparent;box-shadow:none;min-height:0}
.choice--only>span>.ic{color:var(--c-muted)}
.choice__only{grid-area:o;display:inline-flex;align-items:center;gap:4px;font-style:normal;font-size:12.5px;color:var(--c-muted)}
.choice__only .ic{width:15px;height:15px;color:var(--c-primary)}
.fields{display:grid;gap:12px}
@media (min-width:600px){.fields{grid-template-columns:1fr 1fr}.field--wide{grid-column:1/-1}}
@media (min-width:600px){.fields.fields--stack{grid-template-columns:1fr}} /* un campo debajo del otro (entrar, recuperar...) */
.field{display:flex;flex-direction:column;gap:5px;font-size:14px;font-weight:600}
.field input,.field textarea{height:44px;border:1.5px solid var(--c-border);border-radius:10px;padding:0 12px;font-weight:400;background:#fff}
.field textarea{height:auto;padding:10px 12px;resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-primary) 16%,transparent)}
.field__err{color:#b91c1c;font-style:normal;font-weight:500;font-size:13px}
.success{display:flex;gap:16px;align-items:flex-start;padding:20px;border-radius:var(--radius);background:#ecfdf3;color:#14532d;margin-bottom:16px}
.success>.ic{width:42px;height:42px;padding:8px;border-radius:999px;background:#16a34a;color:#fff;flex:none}
.success h1{font-size:24px;margin-bottom:4px}
.steps{list-style:none;display:flex;gap:0;margin:18px 0;padding:0;counter-reset:s}
.steps li{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;font-size:13px;color:var(--c-muted);position:relative}
.steps li::before{content:"";position:absolute;top:15px;left:-50%;right:50%;height:3px;background:var(--c-border)}
.steps li:first-child::before{display:none}
.steps li.is-done::before{background:var(--c-primary)}
.steps__dot{position:relative;z-index:1;display:grid;place-items:center;width:32px;height:32px;border-radius:999px;background:#fff;border:2px solid var(--c-border);color:transparent}
.steps li.is-done .steps__dot{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-primary-ink)}
.steps li.is-active{color:var(--c-text);font-weight:700}
.order-grid{display:grid;gap:16px}
@media (min-width:900px){.order-grid{grid-template-columns:1fr 1fr}}
.order-grid .box{display:flex;flex-direction:column;gap:8px}
.transfer{background:var(--c-surface);border-radius:12px;padding:14px;display:grid;gap:4px}
.transfer h3{display:flex;gap:8px;align-items:center;font-size:16px;margin-bottom:4px}
.tag{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12.5px;font-weight:700}
.tag--ok{background:#dcfce7;color:#166534}
.page--narrow .btn--wa{margin-bottom:14px}

/* ---------- Pie ---------- */
/* Pie de página: color SECUNDARIO de la marca (el primario es de botones e íconos). */
.ftr{background:var(--c-accent);color:var(--c-accent-ink);margin-top:30px;padding-top:34px}
.ftr .logo__mark{background:var(--c-accent-ink);color:var(--c-accent)}
.ftr__grid{display:grid;gap:24px}
@media (min-width:800px){.ftr__grid{grid-template-columns:1.3fr repeat(3,1fr)}}
.ftr__brand{display:flex;flex-direction:column;gap:10px}
.ftr__brand p{display:flex;gap:8px;opacity:.9;font-size:14px}
.ftr__brand .logo img{background:#fff;padding:6px;border-radius:12px;max-height:52px}
.ftr__brand .logo__name{color:inherit}
.ftr__col{display:flex;flex-direction:column;gap:9px}
.ftr__col h4{font-size:16px;margin-bottom:4px}
.ftr__col a{display:inline-flex;align-items:center;gap:8px;opacity:.88;font-size:14.5px}
.ftr__col a:hover{opacity:1;text-decoration:underline}
.ftr__pay{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:22px;margin-top:22px;border-top:1px solid color-mix(in srgb,var(--c-accent-ink) 20%,transparent)}
.ftr__pay .muted{color:inherit;opacity:.75;font-size:13.5px}
.paychip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:color-mix(in srgb,var(--c-primary-ink) 12%,transparent);font-size:13px;font-weight:600}
.ftr__legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding-top:16px;padding-bottom:26px;margin-top:16px;font-size:13px;opacity:.82}
.ftr__by strong{font-weight:700}
.social{display:flex;gap:6px}
.social a{display:grid;place-items:center;width:36px;height:36px;border-radius:999px;background:color-mix(in srgb,currentColor 14%,transparent)}
.ftr--minimal{background:var(--c-surface);color:var(--c-text)}
.ftr--minimal .ftr__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.ftr__inline{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px}
.ftr__inline a:hover{color:var(--c-primary)}
.ftr--minimal .ftr__legal{border-top:1px solid var(--c-border)}

/* Aviso flotante (agregado al carrito) */
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:90;display:flex;align-items:center;gap:12px;background:#111827;color:#fff;padding:10px 14px 10px 10px;border-radius:14px;box-shadow:0 20px 40px -16px rgba(0,0,0,.5);max-width:calc(100vw - 24px);animation:toastin .22s ease-out}
.toast img{width:44px;height:44px;border-radius:10px;background:#fff;object-fit:contain}
.toast a{color:#fff;font-weight:700;text-decoration:underline;white-space:nowrap}
@keyframes toastin{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}

/* Vista previa del editor */
.is-preview .wa-float{bottom:18px}
/* Al final a propósito: debe ganarle a la definición base de .slider__nav. */
@media (max-width:699px){.slider__nav{display:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Galería de la ficha */
.pdp__gallery{display:flex;flex-direction:column;gap:10px;min-width:0}
.pdp__thumbs{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}
.pdp__thumb{flex:0 0 72px;height:72px;border:1.5px solid var(--c-border);border-radius:var(--radius);background:#fff;padding:4px;display:grid;place-items:center}
.pdp__thumb img{width:100%;height:100%;object-fit:contain}
.pdp__thumb.is-on{border-color:var(--c-primary)}
a.opt{color:inherit;text-decoration:none}a.opt:hover span{color:var(--c-primary)}
/* Reseñas */
.stars{position:relative;display:inline-flex;line-height:0;vertical-align:middle}
.stars svg{width:15px;height:15px;flex:none}
.stars__bg{display:inline-flex;color:#d6dae3}
.stars__bg svg,.stars__fg svg{fill:currentColor;stroke:none}
.stars__fg{position:absolute;inset:0 auto 0 0;display:inline-flex;overflow:hidden;color:#f5a524;white-space:nowrap}
.rating{display:flex;align-items:center;gap:6px;margin:4px 0;font-size:12.5px;color:var(--c-muted)}
.rating--lg{font-size:14px;margin:6px 0 10px}.rating--lg .stars svg{width:19px;height:19px}
.pdp__reviews{margin-top:28px}
.reviews{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:12px}
.reviews li{border:1px solid var(--c-border,#e6e8ef);border-radius:12px;padding:12px 14px}
.reviews__head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.reviews li p{margin:8px 0 0}
.box--wide{grid-column:1/-1}
.rv{display:grid;gap:8px;padding:12px 0;border-top:1px solid var(--c-border,#e6e8ef)}
.rv--done{display:flex;justify-content:space-between;align-items:center;gap:10px}
.rv__stars{border:0;margin:0;padding:0;display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:2px}
.rv__stars input{position:absolute;opacity:0;width:1px;height:1px}
.rv__stars label{cursor:pointer;color:#d6dae3;line-height:0}
.rv__stars label svg{width:28px;height:28px;fill:currentColor;stroke:none}
.rv__stars label:hover,.rv__stars label:hover~label,.rv__stars input:checked~label{color:#f5a524}
.rv__stars input:focus-visible+label{outline:2px solid var(--c-primary);outline-offset:2px;border-radius:4px}
.rv textarea,.rv input[name=nombre]{width:100%;border:1px solid var(--c-border,#d9dce5);border-radius:10px;padding:8px 10px;font:inherit}
.rv .btn{justify-self:start}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Carrusel: la foto (o el video) va FUERA del flujo, encima del cuadro: así el
   cuadro lo define sólo aspect-ratio y una foto alta no lo estira. */
.slide{overflow:hidden}
.slide>picture,.slide>video{position:absolute;inset:0;display:block;width:100%;height:100%}
.slide>picture>img{width:100%;height:100%;object-fit:cover;object-position:center}
.slide>video{object-fit:cover;background:#000}
.slide.fit-contain>picture>img,.slide.fit-contain>video{object-fit:contain;background:transparent}
.slide.focus-top>picture>img,.slide.focus-top>video{object-position:center top}
.slide.focus-bottom>picture>img,.slide.focus-bottom>video{object-position:center bottom}
.slide.focus-left>picture>img,.slide.focus-left>video{object-position:left center}
.slide.focus-right>picture>img,.slide.focus-right>video{object-position:right center}
.slide__cap{z-index:1}
.slide--text h2{font-size:28px;color:inherit}
@media (min-width:1024px){.slide--text h2{font-size:42px}}
@media (prefers-reduced-motion:reduce){.slide video{animation:none}}
/* Video con audio: botón para activarlo (los navegadores lo arrancan en silencio). */
.slide__sound{position:absolute;right:14px;top:14px;z-index:2;width:40px;height:40px;border-radius:999px;border:0;background:rgba(0,0,0,.55);color:#fff;display:grid;place-items:center;cursor:pointer}
.slide__sound .ic{width:20px;height:20px}
.slide__sound .ic+.ic{display:none}
.slide__sound[aria-pressed="true"] .ic{display:none}.slide__sound[aria-pressed="true"] .ic+.ic{display:block}
/* Banner de texto con diseño propio (theme.SlideCSS / SlideClass). */
.slide--text h2,.slide--text .eyebrow{font-family:var(--st-font,var(--font-heading))}
.slide--text .eyebrow{color:inherit;opacity:.85}
.slide--text .st-btn{background:var(--st-btn-bg,var(--c-primary));color:var(--st-btn-fg,var(--c-primary-ink))}
/* Banner con los colores de la marca (fondo = degradado del primario): el botón va
   invertido para que se vea. */
.slide--text:not([style]) .btn--primary{background:var(--c-primary-ink);color:var(--c-primary)}
.slide--text.st-va-top{align-items:flex-start}.slide--text.st-va-bottom{align-items:flex-end}
.slide--text.st-al-center .slide__text{margin:0 auto;align-items:center;text-align:center}
.slide--text.st-al-right .slide__text{margin-left:auto;align-items:flex-end;text-align:right}
.slide--text.st-al-right .slide__art{right:auto;left:-30px}
.slide--text.st-size-s h2{font-size:22px}.slide--text.st-size-l h2{font-size:36px}.slide--text.st-size-xl h2{font-size:44px;line-height:1.05}
@media (min-width:1024px){.slide--text.st-size-s h2{font-size:30px}.slide--text.st-size-l h2{font-size:54px}.slide--text.st-size-xl h2{font-size:68px}}
/* Panel lateral del carrito */
.cartdrawer{position:fixed;inset:0;z-index:90}
.cartdrawer__scrim{position:absolute;inset:0;background:rgba(15,20,30,.45);opacity:0;transition:opacity .2s}
.cartdrawer__panel{position:absolute;top:0;right:0;bottom:0;width:min(92vw,420px);background:#fff;color:var(--c-text);display:flex;flex-direction:column;
  box-shadow:-20px 0 50px -20px rgba(0,0,0,.35);transform:translateX(100%);transition:transform .22s ease-out;outline:none}
.cartdrawer.is-open .cartdrawer__scrim{opacity:1}.cartdrawer.is-open .cartdrawer__panel{transform:none}
body.cart-open{overflow:hidden}
.cartdrawer__head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--c-border)}
.cartdrawer__head h2{font-size:20px}
.cartdrawer__lines{flex:1;overflow:auto;padding:6px 18px}
.cline{display:grid;grid-template-columns:64px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--c-border);transition:background .6s}
.cline.is-new{background:color-mix(in srgb,var(--c-primary) 7%,#fff);border-radius:12px;padding:12px 8px;margin:0 -8px}
.cline__img{width:64px;height:64px;border-radius:10px;overflow:hidden;background:#fff;border:1px solid var(--c-border);display:grid;place-items:center}
.cline__img img{width:100%;height:100%;object-fit:contain}
.cline__name{font-weight:600;font-size:14.5px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cline__row{display:flex;align-items:center;gap:10px;margin-top:6px}
.cline__total{margin-left:auto}
.cline__rm .ic{width:18px;height:18px}
.qty--sm button{width:30px;height:30px}.qty--sm input{width:38px;height:30px}
.cartdrawer__foot{border-top:1px solid var(--c-border);padding:14px 18px 18px;display:flex;flex-direction:column;gap:10px;background:#fff}
.cartdrawer__links{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cartdrawer__empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--c-muted);padding:30px}
.cartdrawer__empty .ic{width:48px;height:48px}
.cartdrawer__panel.is-busy{cursor:progress}.cartdrawer__panel.is-busy .cartdrawer__lines,.cartdrawer__panel.is-busy .cartdrawer__foot{opacity:.6;pointer-events:none}
@media (prefers-reduced-motion:reduce){.cartdrawer__panel,.cartdrawer__scrim{transition:none}}
.qty--sm{height:32px}
.cartdrawer__foot .summary__total{border-top:0;padding-top:0;margin-top:0}
/* Cuentas de comprador */
.acct__box{max-width:460px;margin:10px auto 30px;display:flex;flex-direction:column;gap:14px}
.acct__links{text-align:center;font-size:14px;color:var(--c-muted)}
.acct__links a,.linkbtn{color:var(--c-primary);font-weight:600}
.linkbtn{background:none;border:0;padding:0;cursor:pointer;font:inherit}
.acct__chan{border:0;padding:0;margin:0;grid-column:1/-1;min-width:0}.acct__chan .choice-row{margin-bottom:0}.acct__chan legend{font-size:14px;font-weight:600;margin-bottom:4px}
.acct__code{font-size:26px;letter-spacing:10px;text-align:center;font-weight:700}
.acct__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.acct__grid{display:grid;gap:16px}@media (min-width:900px){.acct__grid{grid-template-columns:1fr 1fr}}
.acct__grid .box{display:flex;flex-direction:column;gap:12px}
.acct__orders{list-style:none;padding:0;margin:0}
.acct__orders a{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--c-border);color:inherit;text-decoration:none}
.acct__addr{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--c-border)}
.acct__addr-acts{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.acct details summary{cursor:pointer;font-weight:600;margin-bottom:8px}.acct__danger{color:#b91c1c}

/* Encabezado por huecos (editor visual): escritorio en una fila izquierda · centro ·
   derecha; celular con acomodo fijo (menú, logo, cuenta, carrito; buscador abajo). */
.hdr--slots .hdr__top{position:relative;background:var(--c-header-bg);color:var(--c-header-fg)}
.hdr--slots .hdr__top .hdr__row{min-height:72px;gap:14px}
.hdr__slot{display:flex;align-items:center;gap:10px;min-width:0}
.hdr__slot--l,.hdr__slot--r{flex:none}
.hdr__slot--c{flex:1;justify-content:center}
.hdr__slot--r{gap:4px}
.hi{display:flex;align-items:center;min-width:0}
.hi--search{flex:1;min-width:260px;max-width:720px}
.hdr__slot--c .hi--search{margin:0 auto}
.hdr--slots .search{border-color:color-mix(in srgb,var(--c-header-fg) 16%,transparent)}
.hdr--slots .logo{margin-right:6px}
.hdr--slots .logo__mark{background:#fff;color:var(--c-primary)}
.hdr--slots .logo__name{color:var(--c-header-fg)}
.hdr--slots .logo img{max-height:50px}
.hdr--slots .dept-btn{color:var(--c-header-fg);white-space:nowrap}
.hdr--slots .offers-link{white-space:nowrap}
.hlink{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:10px;font-size:14.5px;white-space:nowrap;color:inherit}
.hlink:hover{background:color-mix(in srgb,currentColor 12%,transparent)}
.hlink{position:relative}
.hi:has(>.hlink)+.hi:has(>.hlink) .hlink::before{content:"";position:absolute;left:-2px;top:25%;bottom:25%;width:1px;background:currentColor;opacity:.35}
.hdr--slots .icon-btn{color:var(--c-header-fg)}
@media (min-width:1024px) and (max-width:1359px){.hlink:not(.hlink--text) span{display:none}.hlink{padding:8px}}
@media (max-width:1023px){
  .hdr--slots .hdr__top .hdr__row{flex-wrap:wrap;min-height:58px;row-gap:0;gap:4px}
  .hdr__slot{display:contents}
  .hi{display:none}
  .hi-menu{order:0}
  .hi--logo{display:flex;order:1;margin:0 auto}
  .hi--account{display:flex;order:2}
  .hi--cart{display:flex;order:3}
  .hi--search{display:flex;order:10;flex:1 0 100%;max-width:none;margin:2px 0 12px}
}
/* Secciones sólo en escritorio o sólo en celular */
@media (max-width:1023px){.sec-wrap.show-desktop{display:none}}
@media (min-width:1024px){.sec-wrap.show-mobile{display:none}}
/* Liga de vista previa del borrador */
.vista-bar{position:sticky;top:0;z-index:90;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;background:#1f2937;color:#fff;font-size:13.5px}
.vista-bar .ic{width:16px;height:16px}
.vista-bar a{color:#fff;font-weight:600;text-decoration:underline;margin-left:8px}

/* Botones flotantes (editor visual): hasta 3, apilados por lado */
.flt{position:fixed;bottom:18px;z-index:50;display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.flt:empty{display:none}
.flt--right{right:16px}.flt--left{left:16px;align-items:flex-start}
.flb{display:flex;align-items:center;gap:8px;border-radius:999px;padding:12px 16px;font-weight:700;text-decoration:none;box-shadow:0 14px 30px -12px rgba(0,0,0,.45)}
.flb .ic{width:24px;height:24px}
.flb--icon{padding:13px}
@media (max-width:699px){.flb span{display:none}.flb{padding:13px}}
@media (max-width:1023px){.dev-desktop{display:none!important}}
@media (min-width:1024px){.dev-mobile{display:none!important}}
.ftr__text{font-size:14px;opacity:.9;line-height:1.55}
.ftr__text p{margin:0 0 8px}

/* Ficha, catálogo y checkout (editor visual) */
@media (min-width:900px){.pdp--right .pdp__gallery{order:2}}
.pdp__notice{display:flex;align-items:flex-start;gap:8px;background:var(--c-primary-soft);color:var(--c-text);border-radius:calc(var(--radius) - 4px);padding:9px 12px;font-size:14px;margin:4px 0 10px}
.pdp__notice .ic{color:var(--c-primary);flex:none;margin-top:1px}
@media (min-width:1024px){.listing--right{grid-template-columns:1fr 250px}.listing--right .filters{order:2}}
@media (min-width:1100px){.grid.grid--c3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.grid--c5{grid-template-columns:repeat(5,minmax(0,1fr))}}
.listing__notice{margin-bottom:14px}

/* Secciones nuevas (editor visual) */
.imgtext__grid{display:grid;gap:22px;align-items:center}
@media (min-width:900px){.imgtext__grid{grid-template-columns:1fr 1fr;gap:44px}.imgtext--right .imgtext__media{order:2}.imgtext--noimg .imgtext__grid{grid-template-columns:1fr}}
.imgtext__media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius)}
.imgtext__body{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.double__grid{display:grid;gap:14px}
@media (min-width:700px){.double__grid{grid-template-columns:1fr 1fr}}
.double__item{display:block;border-radius:var(--radius);overflow:hidden;background:var(--c-surface)}
.double__item img{width:100%;aspect-ratio:2/1;object-fit:cover;display:block;transition:transform .3s}
a.double__item:hover img{transform:scale(1.03)}
.faq__list{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.faq__item{border:1.5px solid var(--c-border);border-radius:calc(var(--radius) - 2px);background:#fff;color:var(--c-text)}
.faq__item summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;font-weight:600;cursor:pointer;list-style:none}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary .ic{transition:transform .2s;color:var(--c-primary)}
.faq__item[open] summary .ic{transform:rotate(180deg)}
.faq__item .prose{padding:0 16px 14px;color:var(--c-muted)}
.video__frame{position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;background:#000}
.video__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video__play{position:absolute;inset:0;border:0;padding:0;background:#000;cursor:pointer}
.video__play img{width:100%;height:100%;object-fit:cover;opacity:.85}
.video__play span{position:absolute;inset:0;display:grid;place-items:center;color:#fff}
.video__play .ic{width:72px;height:72px;filter:drop-shadow(0 4px 12px rgba(0,0,0,.5))}
.video__text{text-align:center;margin-top:10px}
.spacer--sm{padding:8px 0}.spacer--md{padding:22px 0}.spacer--lg{padding:44px 0}
.spacer hr{border:0;border-top:1.5px solid var(--c-border);margin:0}
