/* Capa visual de ZoFloridane: conserva la paleta dorada de Desktop. */
:root {
    --zfl-polish-ink: #f3f4f6;
    --zfl-polish-paper: #1b1e24;
    --zfl-polish-muted: #b6bdc8;
    --zfl-polish-line: #353e4c;
    --zfl-polish-accent: #ffcc00;
    --zfl-polish-accent-strong: #ffcc00;
    --zfl-polish-shadow: 0 14px 38px rgba(47, 32, 7, .12);
}

.zfl-store-active .zsl-header {
    position: sticky; top: 0; z-index: 80;
    background: #1b1e24; border-bottom: 1px solid var(--zfl-polish-line);
    box-shadow: 0 5px 22px rgba(47,32,7,.07); backdrop-filter: blur(14px);
}
.zfl-store-active .zsl-header, .zfl-store-active .zsl-header a { color: var(--zfl-polish-ink); }
.zfl-store-active .zsl-mobile-search-toggle { display: none; }
.zfl-store-active .zsl-topline { background: #ffcc00; color: #111318; font-size: 12px; }
.zfl-store-active .zsl-topline-inner { max-width: 1240px; min-height: 30px; margin: 0 auto; padding: 0 20px; display: flex; align-items: center; justify-content: center; gap: 34px; }
.zfl-store-active .zsl-main { max-width: 1240px; margin: 0 auto; padding: 14px 20px; display: flex; align-items: center; gap: 18px; }
.zfl-store-active .zsl-logo { order: 1; flex: 0 0 auto; }
.zfl-store-active .zsl-currency-select { order: 2; }
.zfl-store-active .zsl-search { order: 3; flex: 1 1 300px; }
.zfl-store-active .zsl-loc-chip { order: 4; }
.zfl-store-active .zsl-actions { order: 5; margin-left: 0; }
.zfl-store-active .zsl-nav { border-top: 1px solid var(--zfl-polish-line); }
.zfl-store-active .zsl-nav-inner { max-width: 1240px; margin: 0 auto; padding: 0 20px; min-height: 42px; display: flex; align-items: center; gap: 24px; overflow-x: auto; white-space: nowrap; font-size: 13px; font-weight: 700; }
.zfl-store-active .zsl-nav :is(a,button) { text-decoration: none; }
.zfl-store-active .zsl-nav-offers { color: var(--zfl-polish-accent-strong) !important; }
.zfl-store-active .zsl-logo img { max-height: 54px; width: auto; object-fit: contain; }
.zfl-store-active .zsl-search input { border-radius: 999px 0 0 999px; border-color: var(--zfl-polish-line); background: #fff; }
.zfl-store-active .zsl-search button { border-radius: 0 999px 999px 0; background: var(--zfl-polish-accent); color: #211700; }
.zfl-store-active .zsl-action, .zfl-store-active .zsl-loc-chip { border-radius: 12px; transition: transform .18s ease, box-shadow .18s ease; }
.zfl-store-active .zsl-action:hover, .zfl-store-active .zsl-loc-chip:hover { transform: translateY(-2px); box-shadow: 0 7px 18px rgba(47,32,7,.12); }

.zfl-store-active .zfh { max-width: 1240px; margin: 0 auto; padding: 28px 20px 56px; }
.zfl-store-active .zfh-carousel, .zfl-store-active .zfh-dual-col, .zfl-store-active .zfh-testi-card,
.zfl-store-active .zfh-trust-item, .zfl-store-active .zfh-how-step {
    border: 1px solid var(--zfl-polish-line); box-shadow: var(--zfl-polish-shadow);
}
.zfl-store-active .zfh-carousel { border-radius: 22px; overflow: hidden; }
.zfl-store-active .zfh-slide { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); min-height: 420px; background: var(--zfl-polish-paper); }
.zfl-store-active .zfh-slide img { position: static; width: 100%; height: 100%; min-height: 420px; object-fit: cover; order: 0; }
.zfl-store-active .zfh-slide-copy { position: static; transform: none; order: 1; width: auto; max-width: none; min-height: 0; padding: 54px 46px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 16px; background: var(--zfl-polish-paper); color: var(--zfl-polish-ink); }
.zfl-store-active .zfh-slide-copy small { color: var(--zfl-polish-accent-strong); font-weight: 900; font-size: 11px; letter-spacing: .13em; }
.zfl-store-active .zfh-slide-copy strong { max-width: 10ch; color: var(--zfl-polish-ink); font-size: clamp(35px, 4.2vw, 62px); line-height: .98; letter-spacing: -.05em; }
.zfl-store-active .zfh-slide-copy em { max-width: 36ch; color: var(--zfl-polish-muted); font-size: 16px; font-style: normal; line-height: 1.5; }
.zfl-store-active .zfh-slide-copy b { padding: 13px 19px; background: var(--zfl-polish-accent); color: #211700; border-radius: 10px; font-size: 14px; }
.zfl-store-active .zfh-slide-title { display: none; }
.zfl-store-active .zfh-slide-shade { display: none; }
.zfl-store-active .zfh-hero-layout { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(250px, .7fr); gap: 18px; align-items: stretch; }
.zfl-store-active .zfh-hero-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(260px, .7fr); gap: 18px; align-items: stretch; }
.zfl-store-active .zfh-hero-main { min-width: 0; }
.zfl-store-active .zfh-hero-side { display: grid; gap: 18px; }
.zfl-store-active .zfh-side-card { display: flex; align-items: flex-start; gap: 14px; padding: 27px; text-align: left; border: 1px solid var(--zfl-polish-line); border-radius: 20px; background: var(--zfl-polish-paper); box-shadow: var(--zfl-polish-shadow); }
.zfl-store-active .zfh-side-zelle { background: #ffcc00; color: #111318; }
.zfl-store-active .zfh-side-card h2 { margin: 5px 0 8px; color: inherit; font-size: 22px; }
.zfl-store-active .zfh-side-card p { margin: 0; line-height: 1.5; color: inherit; opacity: .82; }
.zfl-store-active .zfh-side-icon { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 38px; border: 1px solid currentColor; border-radius: 11px; color: var(--zfl-polish-accent); font-weight: 900; }
.zfl-store-active .zfh-side-delivery { cursor: pointer; transition: transform .2s ease; }
.zfl-store-active .zfh-side-delivery:hover { transform: translateY(-3px); }
.zfl-store-active .zfh-hero-primary { min-width: 0; }
.zfl-store-active .zfh-hero-primary .zfh-carousel { height: 100%; }
.zfl-store-active .zfh-hero-aside { display: grid; gap: 18px; }
.zfl-store-active .zfh-hero-note, .zfl-store-active .zfh-hero-location { padding: 28px; border-radius: 20px; text-align: left; border: 1px solid var(--zfl-polish-line); background: var(--zfl-polish-paper); box-shadow: var(--zfl-polish-shadow); }
.zfl-store-active .zfh-hero-note { background: var(--zfl-polish-ink); color: #fff8e8; }
.zfl-store-active .zfh-hero-note h2 { margin: 12px 0 10px; color: inherit; font-size: clamp(21px, 2.5vw, 31px); line-height: 1.05; }
.zfl-store-active .zfh-hero-note p { margin: 0; color: #e9dcc5; line-height: 1.55; }
.zfl-store-active .zfh-hero-note-kicker { display: block; color: var(--zfl-polish-accent); font-size: 11px; font-weight: 900; letter-spacing: .12em; }
.zfl-store-active .zfh-hero-location { cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
.zfl-store-active .zfh-hero-location:hover { transform: translateY(-3px); box-shadow: 0 18px 42px rgba(47,32,7,.16); }
.zfl-store-active .zfh-hero-location strong, .zfl-store-active .zfh-hero-location small { display: block; margin-top: 9px; }
.zfl-store-active .zfh-hero-location strong { color: var(--zfl-polish-ink); font-size: 20px; }
.zfl-store-active .zfh-hero-location small { color: var(--zfl-polish-muted); }
.zfl-store-active .zsl-footer { margin-top: 48px; border-top: 4px solid var(--zfl-polish-accent); }
.zfl-store-active .zsl-footer-brand img { max-height: 58px; width: auto; object-fit: contain; }

/* Producto: una ficha editorial, sin tocar precios, stock ni el enlace de compra. */
.zfl-store-active .zfl-sp-wrap { max-width: 1180px; padding: 34px 20px 72px; }
.zfl-store-active .zfl-sp-top { gap: clamp(28px, 5vw, 64px); }
.zfl-store-active .zfl-sp-main-img { border: 1px solid var(--zfl-polish-line); box-shadow: var(--zfl-polish-shadow); border-radius: 20px; }
.zfl-store-active .zfl-sp-info { padding: 8px 0; }
.zfl-store-active .zfl-sp-name, .zfl-store-active .zfl-sp-section h2, .zfl-store-active .zfl-sp-related h2 { color: var(--zfl-polish-ink); letter-spacing: -.025em; }
.zfl-store-active .zfl-sp-meta-tag { background: var(--zfl-polish-paper); border-color: var(--zfl-polish-line); color: var(--zfl-polish-muted); }
.zfl-store-active .zfl-sp-add-btn { background: var(--zfl-polish-accent); color: #211700; border-radius: 12px; box-shadow: 0 8px 18px rgba(184,121,0,.18); }
.zfl-store-active .zfl-sp-section, .zfl-store-active .zfl-sp-related { border-top: 1px solid var(--zfl-polish-line); padding-top: 28px; }
.zfl-store-active .zfl-sp-rev-item, .zfl-store-active .zfl-sp-rel-card { border-color: var(--zfl-polish-line); }

/* Carrito: el marcado se genera con JavaScript; estos selectores preservan sus eventos. */
.zfl-store-active .zfl-cart { max-width: 980px; margin: 34px auto 72px; padding: 28px; border: 1px solid var(--zfl-polish-line); border-radius: 22px; background: var(--zfl-polish-paper); box-shadow: var(--zfl-polish-shadow); }
.zfl-store-active .zfl-cart-item { border-color: var(--zfl-polish-line); }
.zfl-store-active .zfl-cart-item-img { border-radius: 12px; }
.zfl-store-active .zfl-cart-summary { background: #fff7dd; border: 1px solid #ead49a; border-radius: 14px; }
.zfl-store-active .zfl-cart-checkout { background: var(--zfl-polish-accent); color: #211700; border-radius: 12px; font-weight: 800; }
.zfl-store-active .zfl-cart-continue, .zfl-store-active .zfl-cart-share, .zfl-store-active .zfl-cart-emptyall { border-radius: 10px; }
.zfl-store-active .zfh-slide img { filter: saturate(.94) contrast(1.03); }
.zfl-store-active .zfh-slide-title { background: rgba(21,17,10,.88); border-left: 4px solid var(--zfl-polish-accent); }
.zfl-store-active .zfh-h2 { color: var(--zfl-polish-ink); letter-spacing: -.025em; }
.zfl-store-active .zfh-section { margin-top: 50px; }
.zfl-store-active .zfh-section-head { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.zfl-store-active .zfh-section-head a, .zfl-store-active .zfh-side-link { color: var(--zfl-polish-accent-strong); font-weight: 800; text-decoration: none; }
.zfl-store-active .zfh-eyebrow { display: block; color: var(--zfl-polish-accent-strong); font-size: 11px; font-weight: 900; letter-spacing: .12em; margin-bottom: 6px; }
.zfl-store-active .zfh-grid-featured { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.zfl-store-active .zfh-card-body { padding: 14px; }
.zfl-store-active .zfh-card-name { color: var(--zfl-polish-ink); font-weight: 800; text-decoration: none; }
.zfl-store-active .zfh-emotional { margin-top: 52px; padding: 32px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-radius: 18px; background: var(--zfl-polish-ink); color: #fff8e8; }
.zfl-store-active .zfh-emotional h2 { color: inherit; margin: 6px 0; }
.zfl-store-active .zfh-emotional a { padding: 13px 18px; background: var(--zfl-polish-accent); color: #211700; border-radius: 10px; font-weight: 800; white-space: nowrap; text-decoration: none; }
.zfl-store-active .zfh-catssec, .zfl-store-active .zfh-products, .zfl-store-active .zfh-dual, .zfl-store-active .zfh-testi { margin-top: 48px; }
.zfl-store-active .zfh-catcard, .zfl-store-active .zfh-card, .zfl-store-active .zfh-dual-item {
    border-radius: 16px; overflow: hidden; border: 1px solid var(--zfl-polish-line);
    background: var(--zfl-polish-paper); transition: transform .2s ease, box-shadow .2s ease;
}
.zfl-store-active .zfh-catcard:hover, .zfl-store-active .zfh-card:hover, .zfl-store-active .zfh-dual-item:hover {
    transform: translateY(-4px); box-shadow: var(--zfl-polish-shadow);
}
.zfl-store-active .zfh-card-add, .zfl-store-active .zfh-slide-cta, .zfl-store-active .zfh-install-btn {
    background: var(--zfl-polish-accent); color: #211700; border-radius: 10px; font-weight: 800;
}
.zfl-store-active .zfh-card-add:hover, .zfl-store-active .zfh-slide-cta:hover, .zfl-store-active .zfh-install-btn:hover { background: var(--zfl-polish-accent-strong); color: #fff; }
.zfl-store-active .zfh-trust { gap: 14px; }
.zfl-store-active .zfh-trust-item { background: var(--zfl-polish-paper); border-radius: 14px; }
.zfl-store-active .zfh-how-step span { background: var(--zfl-polish-accent); color: #211700; }

@media (max-width: 700px) {
    .zfl-store-active .zfh-hero-layout { grid-template-columns: 1fr; }
    .zfl-store-active .zfh-hero-grid { grid-template-columns: 1fr; }
    .zfl-store-active .zfh-hero-side { grid-template-columns: 1fr 1fr; gap: 12px; }
    .zfl-store-active .zfh-side-card { padding: 18px; border-radius: 16px; }
    .zfl-store-active .zfh-slide { grid-template-columns: 1fr; min-height: 0; }
    .zfl-store-active .zfh-slide img { min-height: 230px; order: 1; }
    .zfl-store-active .zfh-slide-copy { padding: 30px 24px; order: 0; }
    .zfl-store-active .zfh-slide-copy strong { font-size: 38px; }
    .zfl-store-active .zfh-hero-aside { grid-template-columns: 1fr 1fr; gap: 12px; }
    .zfl-store-active .zfh-hero-note, .zfl-store-active .zfh-hero-location { padding: 18px; border-radius: 16px; }
    .zfl-store-active .zfh-hero-note h2 { font-size: 20px; }
    .zfl-store-active .zfl-sp-wrap { padding: 24px 14px 52px; }
    .zfl-store-active .zfl-cart { margin: 20px 14px 48px; padding: 18px; border-radius: 16px; }
    .zfl-store-active .zsl-topline-inner { justify-content: flex-start; gap: 18px; overflow-x: auto; white-space: nowrap; }
    .zfl-store-active .zsl-main { padding: 10px 14px; flex-wrap: wrap; }
    .zfl-store-active .zsl-search { order: 6; flex-basis: 100%; }
    .zfl-store-active .zsl-nav-inner { padding: 0 14px; gap: 18px; }
    .zfl-store-active .zfh { padding: 18px 14px 38px; }
    .zfl-store-active .zfh-catssec, .zfl-store-active .zfh-products, .zfl-store-active .zfh-dual, .zfl-store-active .zfh-testi { margin-top: 32px; }
    .zfl-store-active .zfh-section-head { align-items: flex-start; }
    .zfl-store-active .zfh-grid-featured { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .zfl-store-active .zfh-emotional { padding: 24px; align-items: flex-start; flex-direction: column; }
    .zfl-store-active .zfh-carousel { border-radius: 16px; }
}

/* Estructura completa de la referencia sobre las superficies originales. */
body.zfl-store-active { background: #0f1115; color: #f3f4f6; }
html { overflow-x: clip; }
body.zfl-store-active { max-width: 100%; overflow-x: clip; }
.zfl-store-active .zsl-header { display: block; width: 100%; padding: 0; }
.zfl-store-active .zsl-topline-inner { justify-content: space-between; min-height: 36px; }
.zfl-store-active .zsl-topline-inner span { display: inline-flex; align-items: center; gap: 8px; }
.zfl-store-active .zsl-topline svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.zfl-store-active .zsl-main > * { min-width: 0; }
.zfl-store-active .zsl-logo img { max-width: 180px; }
.zfl-store-active .zsl-actions { gap: 15px; flex-shrink: 0; }
.zfl-store-active .zsl-search { display: flex; width: auto; }
.zfl-store-active .zsl-search input { width: 100%; min-width: 0; }
.zfl-store-active .zsl-nav-inner { justify-content: center; }
.zfl-store-active .zfh-carousel { margin-bottom: 0; height: 100%; }
.zfl-store-active .zfh-slide { min-width: 0; }
.zfl-store-active .zfh-slide-copy { padding: 35px 28px; }
.zfl-store-active .zfh-slide-copy strong { font-size: clamp(30px, 3.3vw, 48px); }
.zfl-store-active .zfh-slide-cta { padding: 13px 20px; text-decoration: none; }
.zfl-store-active .zfh-cats-cards { display: grid; grid-template-columns: repeat(8,minmax(0,1fr)); gap: 12px; overflow: visible; }
.zfl-store-active .zfh-catcard { width: auto; min-width: 0; padding: 18px 8px; }
.zfl-store-active .zfh-catcard img { width: 64px; height: 64px; object-fit: contain; border-radius: 12px; }
.zfl-store-active .zfh-trust { margin-top: 28px; }
.zfl-store-active .zfh-trust-item b { color: #f3f4f6; }
.zfl-store-active .zfh-trust-item span, .zfl-store-active .zfh-trust-item small { color: #b6bdc8; }
.zfl-store-active .zfh-how { padding: 26px 22px; margin-top: 20px; background: #171a20; border: 1px solid #353e4c; border-radius: 18px; }
.zfl-store-active .zfh-how-head { text-align: center; margin-bottom: 22px; }
.zfl-store-active .zfh-how h2 { color: #f3f4f6; font-size: 28px; margin: 8px 0; }
.zfl-store-active .zfh-how-head p { color: #b6bdc8; }
.zfl-store-active .zfh-how-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.zfl-store-active .zfh-how-step { padding: 20px; background: #1b1e24; border-radius: 12px; }
.zfl-store-active .zfh-how-step span { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; margin-bottom: 12px; }
.zfl-store-active .zfh-how-step h3 { font-size: 15px; color: #f3f4f6; margin: 0 0 8px; }
.zfl-store-active .zfh-how-step p { font-size: 13px; line-height: 1.5; color: #b6bdc8; margin: 0; }
.zfl-store-active .zfh-emotional { background: #ffcc00; color: #111318; }
.zfl-store-active .zfh-emotional .zfh-eyebrow { color: #111318; }
.zfl-store-active .zfh-emotional a { background: #111318; color: #ffcc00; }
.zfl-store-active .zsl-footer { background: #1b1e24; color: #b6bdc8; }
.zfl-store-active .zsl-footer-inner { max-width: 1240px; margin: auto; padding: 40px 20px; display: grid; grid-template-columns: 1.5fr repeat(4,1fr); gap: 28px; }
.zfl-store-active .zsl-footer h4, .zfl-store-active .zsl-footer a { color: #f3f4f6; }
.zfl-store-active .zsl-footer-links { list-style: none; margin: 0; padding: 0; }
.zfl-store-active .zsl-footer-links li { margin-bottom: 12px; }
.zfl-store-active .zsl-footer-bottom { background: #ffcc00; color: #111318; padding: 18px 30px; display: flex; justify-content: space-between; gap: 20px; }
@media (max-width: 1050px) {
 .zfl-store-active .zsl-main { flex-wrap: wrap; }
 .zfl-store-active .zsl-search { flex: 1 1 250px; }
 .zfl-store-active .zfh-hero-grid { grid-template-columns: minmax(0,1fr); }
 .zfl-store-active .zfh-hero-side { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .zfl-store-active .zfh-cats-cards { grid-template-columns: repeat(4,minmax(0,1fr)); }
 .zfl-store-active .zsl-footer-inner { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 600px) {
 .zfl-store-active .zfh-hero-side, .zfl-store-active .zfh-how-grid { grid-template-columns: 1fr; }
 .zfl-store-active .zfh-cats-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .zfl-store-active .zsl-footer-inner { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .zfl-store-active .zsl-footer-brand { grid-column: 1 / -1; }
 .zfl-store-active .zsl-footer-bottom { flex-direction: column; }
 .zfl-store-active .zsl-topline-inner { gap: 16px; font-size: 10px; }
}

/* Acabado de la home: fotografía amplia, jerarquía tranquila y acentos de marca. */
.zfl-store-active :is(.zfh, .zsl-header, .zsl-footer) { --zfl-polish-line: #30343d; --zfl-polish-shadow: 0 12px 32px #00000020; }
.zfl-store-active .zfh { max-width: 1360px; padding: 32px 32px 64px; }
.zfl-store-active .zsl-header { border-bottom: 1px solid #30343d !important; }
.zfl-store-active .zsl-topline { background: #ffcc00; font-weight: 600; }
.zfl-store-active :is(.zsl-topline-inner, .zsl-main, .zsl-nav-inner) { max-width: 1360px; padding-inline: 32px; }
.zfl-store-active .zsl-main { gap: 24px; padding-block: 18px; }
.zfl-store-active .zsl-logo { background: transparent; padding: 0; border-radius: 0; }
.zfl-store-active .zsl-logo img { width: 208px; max-width: 100%; height: 48px; max-height: none; opacity: 1; }
.zfl-store-active .zsl-search { border: 1px solid #3a414d; border-radius: 12px; overflow: hidden; background: #252830; isolation: isolate; }
.zfl-store-active .zsl-search:focus-within { border-color: #ffcc00; box-shadow: 0 0 0 2px #ffcc0050; }
.zfl-store-active .zsl-search input[type="search"] { border: 0 !important; border-radius: 0; height: 48px; font-size: 14px; padding-inline: 16px; box-shadow: none !important; }
.zfl-store-active .zsl-search input::placeholder { color: #aab0bb; opacity: 1; }
.zfl-store-active .zsl-search button[type="submit"] { width: 50px; flex: 0 0 50px; height: 48px; border-radius: 0; background: #ffcc00; color: #15171c; padding: 0; }
.zfl-store-active .zsl-dark-toggle { width: 44px; height: 44px; min-width: 44px; padding: 0; display: inline-grid; place-items: center; border: 1px solid #3a414d; border-radius: 12px; background: #252830; color: #ffcc00; cursor: pointer; }
.zfl-store-active .zsl-dark-toggle:hover { border-color: #ffcc00; background: #30343d; }
.zfl-store-active .zsl-dark-toggle .zsl-icon-sun { display: none !important; }
.zfl-store-active .zsl-dark-toggle .zsl-icon-moon { display: block !important; }
html.zfl-theme-light .zfl-store-active .zsl-dark-toggle .zsl-icon-sun { display: block !important; }
html.zfl-theme-light .zfl-store-active .zsl-dark-toggle .zsl-icon-moon { display: none !important; }
.zfl-store-active .zsl-nav-inner { gap: 30px; min-height: 44px; }
.zfl-store-active .zsl-nav :is(a,button) { padding: 12px 0; font: inherit; font-size: 13px; position: relative; border: 0; background: transparent; color: inherit; cursor: pointer; }
.zfl-store-active .zsl-nav :is(a,button):hover, .zfl-store-active .zsl-nav :is(a,button)[aria-current] { color: #ffcc00; }
.zfl-store-active .zsl-topline,
.zfl-store-active .zsl-nav { max-height: 60px; overflow: hidden; opacity: 1; transition: max-height .2s ease, opacity .15s ease, border-color .2s ease; }
.zfl-store-active .zsl-header.zsl-header-compact { transform: none; }
.zfl-store-active .zsl-header.zsl-header-hidden { transform: translateY(-115%) !important; pointer-events: none; transition: transform .42s cubic-bezier(.22,1,.36,1); }
.zfl-store-active .zsl-header.zsl-search-pinned { transform: none !important; pointer-events: auto; }
.zfl-store-active .zsl-header { transition: transform .42s cubic-bezier(.22,1,.36,1), border-color .2s ease; }
.zfl-store-active .zsl-header.zsl-header-compact .zsl-topline,
.zfl-store-active .zsl-header.zsl-header-compact .zsl-nav { max-height: 0; opacity: 0; border-color: transparent; pointer-events: none; }
.zfl-store-active .zsl-header.zsl-header-compact .zsl-main { padding-block: 10px; }
.zfl-store-active .zfh-hero-grid { grid-template-columns: minmax(0, 3fr) minmax(270px, 1fr); gap: 18px; }
.zfl-store-active .zfh-carousel { background: #1b1e24; border-radius: 18px; touch-action: pan-y; }
.zfl-store-active .zfh-track { align-items: stretch; }
.zfl-store-active .zfh-slide { display: block; position: relative; min-height: 420px; overflow: hidden; }
.zfl-store-active .zfh-slide img { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: center; opacity: 1; filter: none; }
.zfl-store-active .zfh-slide-shade { display: block; position: absolute; inset: 0; background: linear-gradient(90deg,#11141be8 0%,#11141bcf 25%,#11141b78 43%,#11141b18 62%,transparent 78%); z-index: 1; }
.zfl-store-active .zfh-slide-copy { position: relative; z-index: 2; width: 56%; min-height: 420px; padding: 42px 40px 66px; background: transparent; gap: 17px; }
.zfl-store-active .zfh-slide-copy small { font-size: 10px; letter-spacing: .15em; text-transform: uppercase; }
.zfl-store-active .zfh-slide-copy strong { font-size: clamp(32px,3.3vw,48px); max-width: 12ch; line-height: 1.05; letter-spacing: -.04em; text-wrap: balance; }
.zfl-store-active .zfh-slide-copy em { font-size: 14px; line-height: 1.65; max-width: 34ch; color: #d0d3db; }
.zfl-store-active .zfh-slide-cta { display: inline-flex; align-items: center; min-height: 46px; padding: 12px 20px; border-radius: 9px; font-size: 13px; box-shadow: 0 6px 18px #0003; }
.zfl-store-active .zfh-slide-cta:hover, .zfl-store-active .zfh-card-add:hover { color: #15171c; background: #ffdb4d; }
.zfl-store-active .zfh-nav { opacity: 1; top: auto; bottom: 16px; transform: none; width: 34px; height: 34px; min-height: 0; padding: 0; z-index: 3; background: #171a20ed; border: 1px solid #ffffff40; color: #fff; box-shadow: none; }
.zfl-store-active .zfh-prev { left: 40px; }
.zfl-store-active .zfh-next { left: 82px; right: auto; }
.zfl-store-active .zfh-nav:hover { background: #ffcc00; color: #15171c; }
.zfl-store-active .zfh-dots { z-index: 3; bottom: 25px; right: 25px; gap: 8px; }
.zfl-store-active .zfh-dots button { min-height: 0; width: 8px; height: 8px; padding: 0; background: #ffffff60; }
.zfl-store-active .zfh-dots button.active { width: 22px; border-radius: 5px; transform: none; background: #ffcc00; }
.zfl-store-active .zfh-hero-side { grid-template-rows: 1fr 1fr; gap: 16px; }
.zfl-store-active .zfh-payment-carousel { position: relative; min-height: 202px; overflow: hidden; border: 1px solid #ffcc0050; border-radius: 16px; background: #151915; touch-action: pan-y; }
.zfl-store-active .zfh-payment-carousel::after { content: ''; position: absolute; width: 190px; height: 190px; right: -55px; bottom: -120px; border: 1px solid #ffcc0040; border-radius: 50%; box-shadow: 0 0 0 28px #ffcc000b, 0 0 0 58px #ffcc0007; pointer-events: none; }
.zfl-store-active .zfh-payment-track { display: flex; height: 100%; min-height: 202px; transition: transform .45s cubic-bezier(.4,0,.2,1); }
.zfl-store-active .zfh-payment-slide { position: relative; flex: 0 0 100%; min-width: 0; display: flex; align-items: center; gap: 14px; padding: 25px 28px; color: #fff; background: radial-gradient(circle at 100% 0,#ffcc001f,transparent 45%),linear-gradient(135deg,#15251c,#101613); }
.zfl-store-active .zfh-payment-copy { position: relative; z-index: 1; }
.zfl-store-active .zfh-payment-copy h2 { margin: 0; color: #fff; font-size: 21px; line-height: 1.02; letter-spacing: -.03em; }
.zfl-store-active .zfh-payment-copy p { margin: 7px 0 14px; color: #d2d6d5; font-size: 12px; }
.zfl-store-active .zfh-payment-copy a { display: inline-flex; align-items: center; gap: 8px; padding: 9px 13px; border: 1px solid #ffcc007a; border-radius: 9px; background: #ffcc001f; color: #ffdc4c; font-size: 12px; font-weight: 700; text-decoration: none; }
.zfl-store-active .zfh-payment-copy a:hover { background: #ffcc00; color: #15171c; }
.zfl-store-active .zfh-payment-brand { position: absolute; z-index: 1; right: 21px; bottom: 22px; color: #ffcc00; font-size: 28px; letter-spacing: -.065em; opacity: 1; }
.zfl-store-active .zfh-payment-brand img { display:block; width:76px; height:76px; object-fit:cover; border-radius:14px; background:#fff; }
.zfl-store-active .zfh-payment-brand-interac,
.zfl-store-active .zfh-payment-brand-bizum,
.zfl-store-active .zfh-payment-brand-revolut,
.zfl-store-active .zfh-payment-brand-usdt { width:76px; height:76px; overflow:hidden; border-radius:14px; background:#fff; }
.zfl-store-active .zfh-payment-brand-bizum img,
.zfl-store-active .zfh-payment-brand-usdt img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transform: none;
}
.zfl-store-active .zfh-payment-brand-revolut img { transform:scale(1.18); }
.zfl-store-active .zfh-brand-zelle { display:grid; place-items:center; width:78px; height:44px; border-radius:10px; background:#6d1ed4; color:#fff; font:800 20px/1 Arial,sans-serif; letter-spacing:-.08em; transform:skewX(-8deg); }
.zfl-store-active .zfh-brand-zelle span { transform:skewX(8deg); }
.zfl-store-active .zfh-brand-paypal { display:flex; align-items:center; justify-content:center; width:78px; height:44px; overflow:hidden; border-radius:10px; background:#003087; color:#fff; font:800 17px/1 Arial,sans-serif; letter-spacing:-.09em; }
.zfl-store-active .zfh-brand-paypal b,.zfl-store-active .zfh-brand-paypal i { font:inherit; font-style:normal; }
.zfl-store-active .zfh-brand-paypal i { color:#00a8e6; }
.zfl-store-active .zfh-payment-dots { position: absolute; z-index: 3; top: 14px; right: 14px; display: flex; gap: 5px; }
.zfl-store-active .zfh-payment-dots button { width: 7px; height: 7px; min-height: 0; padding: 0; border: 0; border-radius: 10px; background: #ffffff60; cursor: pointer; }
.zfl-store-active .zfh-payment-dots button.active { width: 18px; background: #ffcc00; }
.zfl-store-active .zfh-side-card { padding: 24px; border-radius: 16px; gap: 15px; color: #f3f4f6; background: #1b1e24; box-shadow: none; }
.zfl-store-active button.zfh-side-delivery { color: #f3f4f6 !important; background: #1b1e24 !important; border: 1px solid #30343d !important; font: inherit; width: 100%; }
.zfl-store-active button.zfh-side-delivery :is(h2,p) { color: inherit !important; }
.zfl-store-active .zfh-side-zelle { background: linear-gradient(135deg,#29271b,#1b1e24 85%); border-color: #ffcc0040; }
.zfl-store-active .zfh-side-icon { width: 40px; height: 40px; flex-basis: 40px; background: #ffcc0014; border: 1px solid #ffcc0038; color: #ffcc00; font-size: 23px; }
.zfl-store-active .zfh-side-card small { color: #ffcc00; font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.zfl-store-active .zfh-side-card h2 { font-size: 21px; line-height: 1.2; letter-spacing: -.02em; margin: 7px 0 10px; }
.zfl-store-active .zfh-side-card p { font-size: 12px; line-height: 1.65; color: #b6bdc8; opacity: 1; }
.zfl-store-active .zfh-side-link { display: block; margin-top: 15px; font-size: 12px; }
.zfl-store-active :is(.zfh-section, .zfh-catssec, .zfh-products) { margin-top: 40px; }
.zfl-store-active .zfh-h2 { font-size: 24px; line-height: 1.2; margin-bottom: 0; letter-spacing: -.025em; }
.zfl-store-active .zfh-h2::before { display: none; }
.zfl-store-active .zfh-eyebrow { font-size: 10px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 8px; }
.zfl-store-active .zfh-section-head > a { font-size: 12px; }
.zfl-store-active .zfh-cats-cards { grid-template-columns: repeat(auto-fit,minmax(115px,1fr)); gap: 12px; }
.zfl-store-active button.zfh-catcard { position: relative; aspect-ratio: 1/1; min-height: 0; padding: 0; overflow: hidden; background: #1b1e24; color: #e5e7eb; border: 1px solid #30343d; cursor: pointer; font: inherit; border-radius: 13px; }
.zfl-store-active .zfh-catcard-name { display: none; }
.zfl-store-active .zfh-catcard-all { display: grid; place-items: center; gap: 4px; }
.zfl-store-active .zfh-catcard-all .zfh-catcard-ph { position: static; width: 38px; height: 38px; background: transparent; color: #ffcc00; font-size: 28px; }
.zfl-store-active .zfh-catcard-all .zfh-catcard-name { display: block; position: relative; color: inherit; font-size: 12px; font-weight: 700; }
.zfl-store-active .zfh-catcard img, .zfl-store-active .zfh-catcard-ph { position: absolute; inset: 4px; width: calc(100% - 8px); height: calc(100% - 8px); border: 0; border-radius: 10px; object-fit: contain; }
.zfl-store-active .zfh-catcard-ph { display: grid; place-items: center; background: #252830; font-size: 26px; }
.zfl-store-active button.zfh-catcard:hover, .zfl-store-active button.zfh-catcard-active { border-color: #ffcc00; background: #25251c; color: #ffcc00; box-shadow: none; }
.zfl-store-active #zfhProducts { scroll-margin-top: 190px; }
.zfl-store-active .zfh [hidden] { display: none !important; }
.zfl-store-active .zfh-products-head { margin-bottom: 20px; }
.zfl-store-active .zfh-card { border-radius: 14px; box-shadow: none; }
.zfl-store-active .zfh-card-img { display: block; background: #fff; overflow: hidden; }
.zfl-store-active .zfh-card-img img { height: 180px; padding: 18px; object-fit: contain; width: 100%; opacity: 1; }
.zfl-store-active .zfh-card-body { display: flex; flex-direction: column; flex: 1; padding: 16px; gap: 12px; }
.zfl-store-active .zfh-card-name { font-size: 14px; line-height: 1.45; min-height: 2.9em; }
.zfl-store-active .zfh-card-price { color: #ffcc00; font-size: 20px; }
.zfl-store-active .zfh-card-add { margin-top: auto; text-align: center; padding: 12px 8px; font-size: 12px; }
.zfl-store-active .zfh-trust { gap: 0; margin-top: 36px; border: 1px solid #30343d; border-radius: 14px; overflow: hidden; }
.zfl-store-active .zfh-trust-item { padding: 20px 16px; border: 0 !important; border-right: 1px solid #30343d !important; border-radius: 0; box-shadow: none; }
.zfl-store-active .zfh-trust-item:last-child { border-right: 0 !important; }
.zfl-store-active .zfh-trust-item svg { width: 34px; height: 34px; padding: 7px; color: #ffcc00 !important; background: #ffcc0014 !important; }
.zfl-store-active .zfh-trust-item b { font-size: 12px; margin-bottom: 4px; }
.zfl-store-active .zfh-trust-item small { font-size: 11px; line-height: 1.45; display: block; }
.zfl-store-active .zfh-how { margin-top: 24px; padding: 30px 24px; }
.zfl-store-active .zfh-how-head p { font-size: 13px; }
.zfl-store-active .zfh-how-step { box-shadow: none; border-color: #30343d; }
.zfl-store-active .zfh-emotional { background: #ffcc00; padding: 30px 34px; margin-top: 40px; }
.zfl-store-active .zfh-emotional h2 { font-size: clamp(21px,2.1vw,29px); line-height: 1.25; letter-spacing: -.025em; }
.zfl-store-active .zfh-emotional p { max-width: 65ch; font-size: 13px; color: #35301a; margin-bottom: 0; }
.zfl-store-active .zsl-footer { margin-top: 0; border-top: 1px solid #30343d; }
.zfl-store-active .zsl-footer-inner { max-width: 1360px; padding: 45px 32px; font-size: 12px; line-height: 1.6; }
.zfl-store-active .zsl-footer-logo { display: inline-flex; background: transparent; padding: 0; border-radius: 0; margin-bottom: 18px; }
.zfl-store-active .zsl-footer-brand img { width: 170px; height: 40px; opacity: 1; }
.zfl-store-active .zsl-footer-bottom { background: #0f1115; color: #9ca3af !important; border-top: 1px solid #30343d; font-size: 11px; }
.zfl-store-active :is(.zfh,.zsl-header) :is(a,button,input,select):focus-visible { outline: 2px solid #ffcc00; outline-offset: 4px; }
@media (min-width: 701px) and (max-width: 1100px) {
 .zfl-store-active .zfh-hero-grid { grid-template-columns: 1fr; }
 .zfl-store-active .zfh-hero-side { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
 .zfl-store-active .zfh-how-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 700px) {
 .zfl-store-active .zfh { padding: 18px 16px 36px; }
 .zfl-store-active :is(.zsl-main,.zsl-topline-inner,.zsl-nav-inner) { padding-inline: 16px; }
 .zfl-store-active .zsl-main { gap: 12px; padding-block: 12px; }
 .zfl-store-active .zsl-logo { padding: 0; }
 .zfl-store-active .zsl-logo img { width: 156px; height: 37px; }
 .zfl-store-active .zsl-search { flex: 1 1 100%; order: 6; }
 .zfl-store-active .zsl-actions { margin-left: auto; gap: 10px; }
 .zfl-store-active .zsl-nav-inner { justify-content: flex-start; gap: 24px; scrollbar-width: none; }
 .zfl-store-active .zsl-loc-chip { flex: 0 1 auto; }
 .zfl-store-active .zfh-hero-grid { grid-template-columns: 1fr; gap: 14px; }
 .zfl-store-active .zfh-slide { min-height: 450px; }
 .zfl-store-active .zfh-slide img { width: 100%; height: 100%; object-position: 65% center; }
 .zfl-store-active .zfh-slide-shade { background: linear-gradient(90deg,#1b1e24f5 5%,#1b1e24cc 45%,#1b1e2430 100%); }
 .zfl-store-active .zfh-slide-copy { width: 85%; min-height: 450px; padding: 32px 24px 70px; gap: 16px; }
 .zfl-store-active .zfh-slide-copy strong { font-size: 36px; }
 .zfl-store-active .zfh-slide-copy em { font-size: 13px; max-width: 27ch; }
 .zfl-store-active .zfh-prev { left: 24px; }
 .zfl-store-active .zfh-next { left: 66px; }
 .zfl-store-active .zfh-hero-side { grid-template-columns: 1fr; grid-template-rows: auto; }
 .zfl-store-active .zfh-side-card { padding: 20px; }
 .zfl-store-active .zfh-cats-cards { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
 .zfl-store-active button.zfh-catcard { min-height: 84px; }
 .zfl-store-active .zfh-trust { grid-template-columns: 1fr 1fr; }
 .zfl-store-active .zfh-trust-item { padding: 16px 10px; align-items: flex-start; }
 .zfl-store-active .zfh-trust-item svg { width: 28px; height: 28px; }
 .zfl-store-active .zfh-how { padding: 24px 16px; }
 .zfl-store-active .zfh-how-grid { grid-template-columns: 1fr; }
 .zfl-store-active .zfh-how h2 { font-size: 24px; }
 .zfl-store-active .zfh-h2 { font-size: 21px; }
 .zfl-store-active .zfh-card-img img { height: 145px; padding: 12px; }
 .zfl-store-active .zfh-card-body { padding: 12px; }
 .zfl-store-active .zfh-card-name { font-size: 13px; }
 .zfl-store-active .zfh-emotional { padding: 26px 22px; }
 .zfl-store-active .zsl-footer-inner { padding: 32px 20px; }
 .zfl-store-active #zfhProducts { scroll-margin-top: 245px; }
}
@media (prefers-reduced-motion: reduce) {
 .zfl-store-active :is(.zfh,.zsl-header) *, .zfl-store-active :is(.zfh,.zsl-header) *::before { transition: none !important; scroll-behavior: auto !important; }
}

/* Modo claro: mantiene la misma composición y el amarillo como identidad. */
html:not(.dark-mode) body.zfl-store-active { background: #f4f4f1; color: #17191e; }
html:not(.dark-mode) .zfl-store-active .zsl-header { background: #fff; border-bottom-color: #dedfdc !important; }
html:not(.dark-mode) .zfl-store-active .zsl-header,
html:not(.dark-mode) .zfl-store-active .zsl-header a { color: #17191e; }
html:not(.dark-mode) .zfl-store-active .zsl-search input[type="search"] { background: #f4f4f1 !important; border-color: #d8d9d5 !important; color: #17191e !important; }
html:not(.dark-mode) .zfl-store-active :is(.zsl-loc-chip,.zsl-currency-select,.zsl-dark-toggle) { background-color: #fff !important; border-color: #d8d9d5 !important; color: #17191e !important; }
html:not(.dark-mode) .zfl-store-active .zsl-action,
html:not(.dark-mode) .zfl-store-active .zsl-action-label { color: #17191e !important; }
html:not(.dark-mode) .zfl-store-active .zfh-carousel { background: #fff; }
html:not(.dark-mode) .zfl-store-active .zfh-slide-shade { background: linear-gradient(90deg,#15171cd9 0%,#15171cb8 28%,#15171c66 45%,#15171c12 68%,transparent 82%); }
html:not(.dark-mode) .zfl-store-active .zfh-slide-copy strong { color: #fff !important; }
html:not(.dark-mode) .zfl-store-active .zfh-slide-copy em { color: #f1f2f4; }
html:not(.dark-mode) .zfl-store-active .zfh-slide-copy strong,
html:not(.dark-mode) .zfl-store-active .zfh-h2,
html:not(.dark-mode) .zfl-store-active .zfh-how h2 { color: #17191e; }
html:not(.dark-mode) .zfl-store-active .zfh-slide-copy em { color: #585d66; }
html:not(.dark-mode) .zfl-store-active .zfh-side-card,
html:not(.dark-mode) .zfl-store-active button.zfh-side-delivery,
html:not(.dark-mode) .zfl-store-active button.zfh-catcard,
html:not(.dark-mode) .zfl-store-active .zfh-how,
html:not(.dark-mode) .zfl-store-active .zfh-how-step,
html:not(.dark-mode) .zfl-store-active .zfh-trust-item { background: #fff !important; border-color: #dedfdc !important; color: #17191e; }
html:not(.dark-mode) .zfl-store-active .zfh-side-zelle { background: #17191e !important; color: #fff; }
html:not(.dark-mode) .zfl-store-active button.zfh-side-delivery { background: #eceee9 !important; border-color: #d7d9d3 !important; }
html:not(.dark-mode) .zfl-store-active .zfh-side-card p,
html:not(.dark-mode) .zfl-store-active .zfh-how-step p,
html:not(.dark-mode) .zfl-store-active .zfh-trust-item span,
html:not(.dark-mode) .zfl-store-active .zfh-trust-item small { color: #626771 !important; }
html:not(.dark-mode) .zfl-store-active .zfh-catcard-name,
html:not(.dark-mode) .zfl-store-active .zfh-how-step h3,
html:not(.dark-mode) .zfl-store-active .zfh-card-name { color: #17191e; }
html:not(.dark-mode) .zfl-store-active button.zfh-catcard:hover,
html:not(.dark-mode) .zfl-store-active button.zfh-catcard-active { background: #fff9db !important; border-color: #ffcc00 !important; color: #17191e; }
html:not(.dark-mode) .zfl-store-active .zfh-card { background: #fff; border-color: #dedfdc; }
html:not(.dark-mode) .zfl-store-active .zsl-footer { background: #17191e; }

/* Estado claro explícito: evita que reglas heredadas del modo oscuro lo tapen. */
html.zfl-theme-light body.zfl-store-active { background: #f4f4f1 !important; color: #17191e !important; }
html.zfl-theme-light .zfl-store-active .zsl-header { background: #fff !important; color: #17191e !important; }
html.zfl-theme-light .zfl-store-active .zsl-main,
html.zfl-theme-light .zfl-store-active .zsl-nav { background: #fff; }
html.zfl-theme-light .zfl-store-active .zsl-header :is(a,.zsl-action,.zsl-action-label,.zsl-loc-name,.zsl-loc-chip,.zsl-currency-select) { color: #17191e !important; }
html.zfl-theme-light .zfl-store-active .zsl-dark-toggle { background: #fff !important; border-color: #d8d9d5 !important; color: #17191e !important; }
html.zfl-theme-light .zfl-store-active .zfh { color: #17191e; }
html.zfl-theme-light .zfl-store-active :is(.zfh-carousel,.zfh-slide,.zfh-slide-copy,.zfh-card,.zfh-how,.zfh-how-step,.zfh-trust-item) { background-color: #fff !important; }
html.zfl-theme-light .zfl-store-active :is(.zfh-h2,.zfh-slide-copy strong,.zfh-card-name,.zfh-how h2,.zfh-how-step h3) { color: #17191e !important; }
html.zfl-theme-light .zfl-store-active .zfh-slide-copy { background: transparent !important; color: #fff !important; }
html.zfl-theme-light .zfl-store-active .zfh-slide-copy strong { color: #fff !important; }
html.zfl-theme-light .zfl-store-active .zfh-slide-copy em { color: #f2f4f7 !important; }
html.dark-mode .zfl-store-active :is(.zsl-logo,.zsl-footer-logo,.zsl-drawer-head) img { content: url('brand/zofloridane-logo-light.png'); }
.zfl-store-active :is(.woocommerce-breadcrumb,.zfl-sp-bc) { display: none !important; }

/* ── Carrito y checkout: una sola interfaz, no dos páginas aisladas ── */
:root { --zfl-ink: #101217; --zfl-panel: #1a1e26; --zfl-panel-2: #242934; --zfl-line: #39404d; --zfl-paper: #ffffff; --zfl-soft: #f0f1ed; --zfl-muted: #9da5b3; --zfl-yellow: #ffcc00; }
.zfl-store-active .zfl-cart { max-width: 1040px; margin: 38px auto 72px; padding: 30px; border: 1px solid var(--zfl-line); border-radius: 22px; background: linear-gradient(145deg,#202530,#15181e); box-shadow: 0 20px 55px rgba(0,0,0,.18); }
.zfl-store-active .zfl-cart h1 { margin: 0 0 5px; color: #fff !important; font-size: clamp(25px,3vw,34px); letter-spacing: -.035em; }
.zfl-store-active .zfl-cart-sub { margin-bottom: 24px; color: var(--zfl-muted) !important; }
.zfl-store-active .zfl-cart-items { gap: 12px; }
.zfl-store-active .zfl-cart-item { gap: 16px; min-height: 94px; padding: 14px; border: 1px solid var(--zfl-line) !important; border-radius: 15px; background: var(--zfl-panel-2) !important; transition: border-color .2s ease, transform .2s ease; }
.zfl-store-active .zfl-cart-item:hover { border-color: #6e7787 !important; transform: translateY(-1px); }
.zfl-store-active .zfl-cart-item-img { width: 68px; height: 68px; padding: 5px; border: 1px solid #4a5260; border-radius: 12px; background: #fff; object-fit: contain; }
.zfl-store-active .zfl-cart-item-name { color: #fff !important; font-size: 15px; }
.zfl-store-active .zfl-cart-item-price { margin-top: 5px; color: #bbc2cd !important; }
.zfl-store-active .zfl-cart-item-qty { border-color: #4d5665 !important; border-radius: 9px; background: #171a20; }
.zfl-store-active .zfl-cart-item-qty button { width: 34px; height: 34px; background: transparent !important; color: #fff !important; font-weight: 700; }
.zfl-store-active .zfl-cart-item-qty button:hover { background: #343b48 !important; }
.zfl-store-active .zfl-cart-item-qty span { width: 36px; line-height: 34px; color: #fff !important; border-color: #4d5665 !important; }
.zfl-store-active .zfl-cart-item-sub { color: var(--zfl-yellow) !important; font-size: 15px; }
.zfl-store-active .zfl-cart-item-remove { display: inline-grid; width: auto; height: auto; padding: 8px 4px; border: 0; border-radius: 0; background: transparent !important; color: #aeb5c0 !important; line-height: 1; }
.zfl-store-active .zfl-cart-item-remove:hover { background: transparent !important; color: #ff8e8e !important; transform: translateY(-1px); }
.zfl-store-active .zfl-cart-summary { margin-top: 20px; padding: 18px 20px 0; border: 1px solid var(--zfl-line) !important; border-radius: 14px; background: #151920 !important; }
.zfl-store-active .zfl-cart-total { justify-content: center; gap: 18px; color: #fff !important; font-size: 22px; }
.zfl-store-active .zfl-cart-total span { color: #fff !important; }
.zfl-store-active .zfl-cart-total strong { color: var(--zfl-yellow); }
.zfl-store-active .zfl-cart-item-pending { opacity: .72; }
.zfl-store-active .zfh-price:not(.zfh-price-ready) { visibility: hidden; }
.zfl-store-active .zfl-cart-actions-wrap { display: grid; gap: 10px; margin-top: 18px; }
.zfl-store-active .zfl-cart-actions { gap: 10px; margin: 0; }
.zfl-store-active .zfl-cart-actions-primary { display: grid; grid-template-columns: minmax(0,1fr) auto; }
.zfl-store-active .zfl-cart-actions-secondary { display: flex; align-items: center; justify-content: space-between; padding: 3px 2px 0; }
.zfl-store-active .zfl-cart-checkout { min-height: 54px; border-radius: 12px; background: var(--zfl-yellow) !important; color: #14171c !important; box-shadow: 0 8px 18px rgba(255,204,0,.16); transition: transform .18s ease, background .18s ease; justify-content: space-between; padding-inline: 22px; }
.zfl-store-active .zfl-cart-checkout:hover { background: #ffe16a !important; transform: translateY(-1px); }
.zfl-store-active .zfl-cart-share { min-height: 54px; min-width: 148px; border-radius: 12px; background: #26c969 !important; box-shadow: none; justify-content: center; }
.zfl-store-active .zfl-cart-share > span:first-child { font-size: 19px; line-height: 1; }
.zfl-store-active .zfl-cart-continue { min-height: 40px; border-color: #4b5360 !important; border-radius: 10px; color: #e8ebef !important; padding: 9px 13px; }
.zfl-store-active .zfl-cart-continue:hover { border-color: #8893a3 !important; background: #2c323d; color: #fff !important; }
.zfl-store-active .zfl-cart-emptyall { margin-left: 0; border-color: transparent !important; border-radius: 10px; background: transparent !important; color: #ffb0b0 !important; padding: 9px 11px; }
.zfl-store-active .zfl-cart-emptyall:hover { background: #321d21 !important; border-color: #70363b !important; }
.zfl-store-active .zfl-cart-empty { color: var(--zfl-muted) !important; }

/* Checkout El Rápido: misma jerarquía visual que el carrito. */
.zfl-store-active .er-checkout { max-width: 960px; margin: 36px auto 76px; padding: 0 20px; color: #e9edf2 !important; }
.zfl-store-active .er-checkout-layout { display: grid; grid-template-columns: minmax(0,1fr) !important; gap: 0; min-width: 0; }
.zfl-store-active .er-form-column, .zfl-store-active .er-summary { min-width: 0; width: 100%; }
.zfl-store-active .er-summary { position: static !important; order: -1; }
.zfl-store-active .er-checkout h1 { margin-top: 4px; color: #fff !important; font-size: clamp(27px,3vw,34px); letter-spacing: -.035em; }
.zfl-store-active .er-checkout h2, .zfl-store-active .er-summary h2 { color: #fff !important; font-weight: 700; letter-spacing: -.02em; }
.zfl-store-active .er-note, .zfl-store-active .er-help, .zfl-store-active .er-field small, .zfl-store-active .er-help-line { color: #aeb6c2 !important; }
.zfl-store-active .er-section, .zfl-store-active .er-summary, .zfl-store-active .er-final { border-color: var(--zfl-line) !important; background: linear-gradient(145deg,#202530,#181b22) !important; box-shadow: 0 12px 30px rgba(0,0,0,.1); }
.zfl-store-active .er-summary { border-color: var(--zfl-yellow) !important; border-width: 1px !important; border-top: 4px solid var(--zfl-yellow) !important; border-radius: 17px !important; }
.zfl-store-active .er-section { border-radius: 16px !important; }
.zfl-store-active .er-section { padding: 24px !important; }
.zfl-store-active .er-section h2 { margin-bottom: 16px !important; }
.zfl-store-active .er-choice { padding: 16px 18px !important; }
.zfl-store-active .er-choice span { gap: 6px; line-height: 1.4; }
.zfl-store-active .er-payment-info { margin-top: 18px; padding: 18px !important; }
.zfl-store-active .er-options { gap: 10px; }
.zfl-store-active .er-option { min-height: 46px; padding: 11px 14px !important; line-height: 1.25; }
.zfl-store-active .er-summary h2 { padding: 22px 22px 14px !important; }
.zfl-store-active .er-products { padding: 0 18px 8px !important; gap: 10px; }
.zfl-store-active .er-product { padding: 12px 9px 10px !important; }
/* El resumen del pedido es visual: la foto debe ser reconocible de un vistazo. */
.zfl-store-active .er-product-image { width: 76px !important; height: 76px !important; margin-bottom: 8px !important; border-radius: 10px !important; }
.zfl-store-active .er-product-image img { width: 72px !important; height: 72px !important; object-fit: contain !important; border-radius: 8px !important; }
.zfl-store-active .er-product-content { font-size: 12px !important; }
.zfl-store-active .er-product-content b { font-size: 12px !important; }
.zfl-store-active .er-product > strong { font-size: 13px !important; margin-top: 5px !important; }
.zfl-store-active .er-summary-row { padding: 16px 22px !important; }
.zfl-store-active .er-summary-total { padding: 20px 22px !important; }
.zfl-store-active .er-final { padding: 19px 22px !important; }
.zfl-store-active .er-field, .zfl-store-active .er-grid-2 label { color: #e9edf2 !important; font-weight: 600; }
.zfl-store-active .er-checkout :is(input[type="text"],input[type="email"],input[type="tel"],textarea,select) { border-color: #4c5666 !important; border-radius: 10px !important; background: #11141a !important; color: #fff !important; }
.zfl-store-active .er-checkout :is(input,textarea,select):focus { border-color: var(--zfl-yellow) !important; box-shadow: 0 0 0 3px rgba(255,204,0,.17) !important; }
.zfl-store-active .er-choice { border-color: #46505e !important; border-radius: 12px !important; background: #171b22 !important; color: #edf0f4 !important; }
.zfl-store-active .er-choice:hover { border-color: #7a8595 !important; }
.zfl-store-active .er-choice:has(input:checked) { border-color: var(--zfl-yellow) !important; background: #2b2819 !important; }
.zfl-store-active .er-choice small, .zfl-store-active .er-choice small em { color: #aeb6c2 !important; }
/* Pago: tarjetas de marca, rápidas de reconocer y fáciles de tocar. */
.zfl-store-active .er-payment-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px !important; margin: 16px 0 18px !important; }
.zfl-store-active .er-payment-grid .er-choice { position: relative; display: grid !important; grid-template-columns: 1fr; justify-items: center; gap: 9px; min-height: 148px; padding: 18px 12px !important; text-align: center; overflow: hidden; }
.zfl-store-active .er-payment-grid .er-choice input { position: absolute; opacity: 0; pointer-events: none; }
.zfl-store-active .er-payment-grid .er-choice.er-pay-unavailable { opacity: .34; filter: grayscale(.55); cursor: not-allowed; pointer-events: none; }
.zfl-store-active .er-pay-brand { display: inline-grid; width: 54px; height: 54px; place-items: center; border-radius: 14px; font-weight: 900; letter-spacing: -.06em; }
.zfl-store-active .er-pay-brand-zelle { color: #fff; background: #6d1ed4; font-size: 31px; font-family: Arial, sans-serif; }
.zfl-store-active .er-pay-brand-paypal { display: flex; align-items: center; justify-content: center; gap: 0; overflow: hidden; white-space: nowrap; color: #fff; background: #003087; font: 800 14px/1 Arial, sans-serif; letter-spacing: -.08em; }
.zfl-store-active .er-pay-brand-paypal strong, .zfl-store-active .er-pay-brand-paypal em { display: block; margin: 0; padding: 0; line-height: 1; transform: translateY(1px); }
.zfl-store-active .er-pay-brand-paypal em { color: #00a8e6; font-style: normal; }
.zfl-store-active .er-pay-brand-oxxo { border: 3px solid #d71f2b; border-radius: 9px; color: #d71f2b; background: #f7d21a; font: 900 16px/1 Arial, sans-serif; letter-spacing: -.1em; }
.zfl-store-active .er-pay-brand-oca { display: flex; align-items: center; justify-content: center; gap: 1px; overflow: hidden; white-space: nowrap; color: #fff; background: #1d4f9d; font: 800 11px/1 Arial, sans-serif; letter-spacing: -.05em; }
.zfl-store-active .er-pay-brand-oca strong, .zfl-store-active .er-pay-brand-oca em { margin: 0; padding: 0; line-height: 1; }
.zfl-store-active .er-pay-brand-oca em { color: #67b8e8; font-style: normal; }
/* Stripe: el isotipo entregado es cuadrado; no debe heredar el marco blanco
   ni el relleno de las demás marcas de pago. */
.zfl-store-active .er-pay-brand.er-pay-brand-stripe {
    width: 54px !important;
    min-width: 54px !important;
    height: 54px !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 14px !important;
    background: #635bff !important;
}
.zfl-store-active .er-pay-brand.er-pay-brand-stripe img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
}
/* La imagen de Interac incluye esquinas blancas. La mezcla multiply las funde
   con el amarillo de marca sin alterar el logotipo negro. */
.zfl-store-active .er-pay-brand.er-pay-brand-interac {
    width: 54px !important;
    min-width: 54px !important;
    height: 54px !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 14px !important;
    background: #ffbd2e !important;
}
.zfl-store-active .er-pay-brand.er-pay-brand-interac img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
    mix-blend-mode: multiply;
}
.zfl-store-active .er-copy-value { position: relative; cursor: copy; text-decoration: underline dotted rgba(255,204,0,.75); text-underline-offset: 3px; outline: none; }
.zfl-store-active .er-copy-value:focus { outline: none; box-shadow: none; }
.zfl-store-active .er-copy-value.copied::after { content: 'Copiado'; position: absolute; z-index: 2; left: 50%; bottom: calc(100% + 7px); transform: translateX(-50%); padding: 4px 7px; border-radius: 5px; color: #171b22; background: var(--zfl-yellow); font: 700 11px/1 Arial, sans-serif; white-space: nowrap; text-decoration: none; }
.zfl-store-active .er-pay-copy { display: grid; gap: 3px; }
.zfl-store-active .er-pay-copy b { color: #fff; font-size: 14px; }
.zfl-store-active .er-pay-copy small { color: #aeb6c2 !important; font-size: 11px; }
.zfl-store-active .er-pay-selected { position: absolute; top: 10px; right: 10px; display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; color: #151920; background: var(--zfl-yellow); font-size: 13px; font-weight: 900; opacity: 0; transform: scale(.7); transition: opacity .16s ease, transform .16s ease; }
.zfl-store-active .er-payment-grid .er-choice:has(input:checked) .er-pay-selected { opacity: 1; transform: scale(1); }
html.zfl-theme-light .zfl-store-active .er-payment-grid .er-choice { background: #fff !important; }
html.zfl-theme-light .zfl-store-active .er-pay-copy b { color: #1c2128 !important; }
html.zfl-theme-light .zfl-store-active .er-pay-copy small { color: #68717d !important; }
.zfl-store-active .er-payment-info { border-color: #4b5564 !important; border-radius: 12px !important; background: #10141a !important; }
.zfl-store-active .er-payment-info :is(h3,p,.er-zelle-number,.er-pay-number,.er-pay-holder,.er-pay-account) { color: #edf0f4 !important; }
.zfl-store-active .er-tip-btn, .zfl-store-active .er-option { border-color: #4a5361 !important; border-radius: 10px !important; background: #171b22 !important; color: #e9edf2 !important; }
.zfl-store-active .er-option.active, .zfl-store-active .er-option.active:hover, .zfl-store-active .er-option.active:focus { border-color: var(--zfl-yellow) !important; background: var(--zfl-yellow) !important; color: #14171c !important; }
.zfl-store-active .er-no-tip,
.zfl-store-active .er-no-tip.active,
.zfl-store-active .er-no-tip:hover,
.zfl-store-active .er-no-tip:focus { width: auto; min-height: 0; padding: 3px 2px; border: 0 !important; border-radius: 0 !important; outline: 0; box-shadow: none !important; background: transparent !important; color: #aeb6c2 !important; font-size: 13px; font-weight: 650; text-decoration: underline; text-decoration-color: #5a6472; text-underline-offset: 4px; }
.zfl-store-active .er-no-tip.active { color: var(--zfl-yellow) !important; text-decoration-color: currentColor; }
.zfl-store-active .er-no-tip.active::before { content: '✓ '; }
.zfl-store-active .er-product { border-color: #414a57 !important; border-radius: 12px; background: #151920 !important; }
.zfl-store-active .er-product-content b, .zfl-store-active .er-product > strong { color: #fff !important; }
.zfl-store-active .er-product-content small { color: #aeb6c2 !important; }
.zfl-store-active .er-summary-row { border-color: #39404b !important; color: #d5dae1 !important; }
.zfl-store-active .er-summary-total { color: #fff !important; }
.zfl-store-active .er-summary-total strong, .zfl-store-active .er-final strong { color: var(--zfl-yellow) !important; }
.zfl-store-active .er-final { border-radius: 15px !important; color: #fff !important; }
.zfl-store-active .er-proof-btn { border-radius: 10px !important; background: #2b313c !important; border-color: #515c6b !important; color: #fff !important; }
.zfl-store-active .er-proof-btn:hover { border-color: var(--zfl-yellow) !important; background: #363e4b !important; }
.zfl-store-active .er-submit { min-height: 54px; border-radius: 12px !important; background: var(--zfl-yellow) !important; color: #14171c !important; box-shadow: 0 8px 18px rgba(255,204,0,.16); }
.zfl-store-active .er-submit:hover { background: #ffe16a !important; transform: translateY(-1px); }
.zfl-store-active .er-help-line a { color: var(--zfl-yellow) !important; }

/* La variante clara conserva contraste y deja el amarillo como acción primaria. */
html.zfl-theme-light .zfl-store-active .zfl-cart { border-color: #dedfdc; background: #fff; box-shadow: 0 18px 45px rgba(29,32,37,.1); }
html.zfl-theme-light .zfl-store-active .zfl-cart h1, html.zfl-theme-light .zfl-store-active .zfl-cart-item-name, html.zfl-theme-light .zfl-store-active .zfl-cart-total { color: #17191e !important; }
html.zfl-theme-light .zfl-store-active .zfl-cart-sub, html.zfl-theme-light .zfl-store-active .zfl-cart-item-price, html.zfl-theme-light .zfl-store-active .zfl-cart-empty { color: #66707d !important; }
html.zfl-theme-light .zfl-store-active .zfl-cart-item { border-color: #e0e2df !important; background: #f7f8f5 !important; }
html.zfl-theme-light .zfl-store-active .zfl-cart-item:hover { border-color: #b9bdb7 !important; }
html.zfl-theme-light .zfl-store-active .zfl-cart-item-qty { border-color: #d8dbd5 !important; background: #fff; }
html.zfl-theme-light .zfl-store-active .zfl-cart-item-qty button, html.zfl-theme-light .zfl-store-active .zfl-cart-item-qty span { color: #17191e !important; border-color: #d8dbd5 !important; }
html.zfl-theme-light .zfl-store-active .zfl-cart-item-qty button:hover { background: #eceee9 !important; }
html.zfl-theme-light .zfl-store-active .zfl-cart-summary { border-color: #e1e3df !important; background: #fff7dd !important; }
html.zfl-theme-light .zfl-store-active .zfl-cart-total span { color: #252a31 !important; }
html.zfl-theme-light .zfl-store-active .zfl-cart-continue { border-color: #d2d5cf !important; color: #343942 !important; }
html.zfl-theme-light .zfl-store-active .zfl-cart-emptyall { background: #fff1f1 !important; color: #ae3434 !important; border-color: #f0c9c9 !important; }
html.zfl-theme-light .zfl-store-active .er-checkout { color: #242830 !important; }
html.zfl-theme-light .zfl-store-active .er-checkout h1, html.zfl-theme-light .zfl-store-active .er-checkout h2, html.zfl-theme-light .zfl-store-active .er-summary h2 { color: #17191e !important; }
html.zfl-theme-light .zfl-store-active .er-note, html.zfl-theme-light .zfl-store-active .er-help, html.zfl-theme-light .zfl-store-active .er-field small, html.zfl-theme-light .zfl-store-active .er-help-line { color: #66707d !important; }
html.zfl-theme-light .zfl-store-active .er-section, html.zfl-theme-light .zfl-store-active .er-summary, html.zfl-theme-light .zfl-store-active .er-final { border-color: #dde0da !important; background: #fff !important; box-shadow: 0 10px 25px rgba(29,32,37,.06); }
html.zfl-theme-light .zfl-store-active .er-field, html.zfl-theme-light .zfl-store-active .er-grid-2 label { color: #303640 !important; }
html.zfl-theme-light .zfl-store-active .er-checkout :is(input[type="text"],input[type="email"],input[type="tel"],textarea,select) { border-color: #d6dad3 !important; background: #fafbf8 !important; color: #17191e !important; }
html.zfl-theme-light .zfl-store-active .er-choice { border-color: #d9ddd6 !important; background: #fafbf8 !important; color: #20242b !important; }
html.zfl-theme-light .zfl-store-active .er-choice:has(input:checked) { border-color: #e4b900 !important; background: #fff9dc !important; }
html.zfl-theme-light .zfl-store-active .er-choice small, html.zfl-theme-light .zfl-store-active .er-choice small em { color: #69727e !important; }
html.zfl-theme-light .zfl-store-active .er-payment-info, html.zfl-theme-light .zfl-store-active .er-product { border-color: #dce0d9 !important; background: #f5f6f2 !important; }
html.zfl-theme-light .zfl-store-active .er-payment-info :is(h3,p,.er-zelle-number,.er-pay-number,.er-pay-holder,.er-pay-account), html.zfl-theme-light .zfl-store-active .er-product-content b, html.zfl-theme-light .zfl-store-active .er-product > strong, html.zfl-theme-light .zfl-store-active .er-summary-total, html.zfl-theme-light .zfl-store-active .er-final { color: #17191e !important; }
html.zfl-theme-light .zfl-store-active .er-tip-btn, html.zfl-theme-light .zfl-store-active .er-option { border-color: #d7dbd4 !important; background: #f7f8f5 !important; color: #303640 !important; }
html.zfl-theme-light .zfl-store-active .er-no-tip,
html.zfl-theme-light .zfl-store-active .er-no-tip.active,
html.zfl-theme-light .zfl-store-active .er-no-tip:hover,
html.zfl-theme-light .zfl-store-active .er-no-tip:focus { background: transparent !important; color: #68717d !important; text-decoration-color: #aeb4aa; }
html.zfl-theme-light .zfl-store-active .er-no-tip.active { color: #8a6500 !important; }
html.zfl-theme-light .zfl-store-active .er-product-content small { color: #68717d !important; }
html.zfl-theme-light .zfl-store-active .er-summary-row { border-color: #e0e3dd !important; color: #4f5864 !important; }
html.zfl-theme-light .zfl-store-active .er-proof-btn { border-color: #d1d6ce !important; background: #f2f4ee !important; color: #252a31 !important; }

/* Categorías: densidad de catálogo sin perder el toque visual de las fotos. */
.zfl-store-active .zfh-cats-cards { display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px !important; overflow: visible !important; }
.zfl-store-active button.zfh-catcard { width: auto !important; min-width: 0 !important; aspect-ratio: 1/1; min-height: 0; padding: 0; }
/* Capa final de categorías: tarjeta cuadrada + imagen borde a borde.
   Antes esta línea dejaba width/height a 58px manteniendo position:absolute; inset:0,
   y las fotos quedaban pequeñas pegadas a la esquina superior izquierda (A-31). */
.zfl-store-active .zfh-catcard img, .zfl-store-active .zfh-catcard-ph { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: 0; object-fit: contain; }

@media (max-width: 650px) {
 .zfl-store-active .zfl-cart { margin: 20px 12px 48px; padding: 20px 14px; border-radius: 17px; }
 .zfl-store-active .zfl-cart-item { gap: 10px; padding: 10px; align-items: center; }
 .zfl-store-active .zfl-cart-item-img { width: 54px; height: 54px; }
 .zfl-store-active .zfl-cart-item-sub { display: none; }
 .zfl-store-active .zfl-cart-item-qty { margin-left: auto; }
 .zfl-store-active .zfl-cart-item-remove { flex: 0 0 27px; }
 .zfl-store-active .zfl-cart-actions-primary { grid-template-columns: 1fr; }
 .zfl-store-active .zfl-cart-actions-secondary { flex-direction: row; }
 .zfl-store-active .zfl-cart-share { width: 100%; }
 .zfl-store-active .zfl-cart-emptyall { margin-left: 0; }
 .zfl-store-active .er-checkout { margin: 18px auto 48px; padding: 0 12px; }
 .zfl-store-active .er-section { padding: 18px 14px !important; }
 .zfl-store-active .er-product-image { width: 64px !important; height: 64px !important; }
 .zfl-store-active .er-product-image img { width: 60px !important; height: 60px !important; }
 .zfl-store-active .er-payment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .zfl-store-active .er-payment-grid .er-choice { min-height: 132px; padding: 14px 8px !important; }
 .zfl-store-active .zfh-cats-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px !important; }
 .zfl-store-active button.zfh-catcard { aspect-ratio: 1/1; min-height: 0; padding: 0; }
 .zfl-store-active .zfh-catcard img, .zfl-store-active .zfh-catcard-ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
}

/* Categorías móvil: carrusel táctil compacto, sin autoplay ni flechas.
   Se usa una fila propia para no heredar la cuadrícula de tres columnas. */
@media (max-width: 650px) {
 .zfl-store-active .zfh-cats-cards {
  display: flex !important;
  grid-template-columns: none !important;
  gap: 8px !important;
  overflow-x: auto !important;
  overflow-y: hidden;
  padding: 0 2px 10px;
  scroll-padding-inline: 2px;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  touch-action: pan-x pan-y;
  scrollbar-width: none;
 }
 .zfl-store-active .zfh-cats-cards::-webkit-scrollbar { display: none; }
 .zfl-store-active button.zfh-catcard {
  flex: 0 0 90px;
  width: 90px !important;
  min-width: 90px !important;
  max-width: 90px;
  aspect-ratio: 1 / 1;
  scroll-snap-align: start;
 }
}

/* Checkout móvil: un producto nunca debe estirarse como una tarjeta de catálogo.
   Foto, nombre, cantidad y precio viven en una sola fila para que el resumen
   siga siendo breve incluso cuando el carrito tiene un único artículo. */
@media (max-width: 650px) {
 .zfl-store-active .er-products {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 8px !important;
  padding: 0 14px 10px !important;
 }
 .zfl-store-active .er-product {
  display: grid !important;
  grid-template-columns: 58px minmax(0, 1fr) auto !important;
  align-items: center !important;
  justify-content: initial !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 10px !important;
  text-align: left !important;
 }
 .zfl-store-active .er-product-image,
 .zfl-store-active .er-product-image img {
  width: 58px !important;
  height: 58px !important;
 }
 .zfl-store-active .er-product-image { margin: 0 !important; }
 .zfl-store-active .er-product-content {
  min-width: 0;
  padding: 0 8px;
 }
 .zfl-store-active .er-product-content b {
  display: -webkit-box;
  overflow: hidden;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-height: 1.3;
 }
 .zfl-store-active .er-product > strong {
  margin: 0 !important;
  white-space: nowrap;
  font-size: 14px !important;
 }
}

/* Carrusel de categorías universal: la misma interacción en escritorio y móvil.
   Esta capa final sustituye todas las cuadrículas heredadas. */
.zfl-store-active .zfh-cats-cards {
 display: flex !important;
 grid-template-columns: none !important;
 gap: 10px !important;
 overflow-x: auto !important;
 overflow-y: hidden;
 padding: 0 2px 12px;
 scroll-padding-inline: 2px;
 scroll-snap-type: x proximity;
 -webkit-overflow-scrolling: touch;
 overscroll-behavior-x: contain;
 touch-action: pan-x pan-y;
 scrollbar-width: none;
 cursor: grab;
}
.zfl-store-active .zfh-cats-cards::-webkit-scrollbar { display: none; }
.zfl-store-active .zfh-cats-cards.is-dragging { cursor: grabbing; user-select: none; }
.zfl-store-active button.zfh-catcard {
 flex: 0 0 124px;
 width: 124px !important;
 min-width: 124px !important;
 max-width: 124px;
 aspect-ratio: 1 / 1;
 scroll-snap-align: start;
}
@media (max-width: 1024px) {
 .zfl-store-active button.zfh-catcard { flex-basis: 106px; width: 106px !important; min-width: 106px !important; max-width: 106px; }
}
@media (max-width: 650px) {
 .zfl-store-active .zfh-cats-cards { gap: 8px !important; }
 .zfl-store-active button.zfh-catcard { flex-basis: 90px; width: 90px !important; min-width: 90px !important; max-width: 90px; }
}

/* Cabecera móvil (A-32): una sola fila [burger | logo | carrito],
   sin topline ni nav de categorías — todo eso vive en el drawer lateral.
   Este bloque es la ÚNICA fuente de verdad de la cabecera móvil:
   sustituye por completo el layout anterior (logo/moneda/chip + segunda fila). */
@media (max-width: 768px) {
 .zfl-store-active .zsl-topline { display: none !important; }
 .zfl-store-active .zsl-nav { display: none !important; }
 .zfl-store-active .zsl-main { display: grid !important; position: relative; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 10px 12px; flex-wrap: nowrap !important; }
 .zfl-store-active .zsl-burger { display: grid !important; grid-column: 1; place-items: center; width: 40px; height: 40px; margin: 0; padding: 0; border: 1px solid var(--zfl-polish-line, #2c313d); border-radius: 10px; background: transparent; color: inherit; cursor: pointer; }
 html:not(.dark-mode) .zfl-store-active .zsl-burger, html.zfl-theme-light .zfl-store-active .zsl-burger { border-color: #d6dae1; }
 .zfl-store-active .zsl-logo { grid-column: 2; justify-self: start; min-width: 0; }
 .zfl-store-active .zsl-logo img { width: auto; max-width: min(164px, 100%); max-height: 40px; }
 .zfl-store-active .zsl-actions { display: contents !important; order: unset !important; flex-basis: unset !important; width: auto !important; border: 0 !important; padding: 0 !important; margin: 0 !important; }
 .zfl-store-active .zsl-cart { grid-column: 3; }
 .zfl-store-active .zsl-action { margin: 0; }
 .zfl-store-active .zsl-action:not(.zsl-cart) { display: none !important; }
 .zfl-store-active .zsl-cart .zsl-action-label { display: none; }
 .zfl-store-active .zsl-cart .zsl-cart-count { position: absolute; top: -6px; right: -8px; }
 .zfl-store-active .zsl-search,
 .zfl-store-active .zsl-currency-select,
 .zfl-store-active .zsl-loc-chip,
 .zfl-store-active .zsl-dark-toggle { display: none !important; }
 .zfl-store-active .zsl-cart { position: relative; }
 .zfl-store-active .zsl-mobile-search-toggle { display: inline-grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--zfl-polish-line, #3a414d); border-radius: 10px; background: transparent; color: inherit; cursor: pointer; transition: transform 210ms cubic-bezier(.22,1,.36,1), color 150ms ease, border-color 150ms ease; }
 .zfl-store-active .zsl-mobile-search-toggle svg { grid-area: 1 / 1; transition: transform 150ms ease, opacity 130ms ease; }
 .zfl-store-active .zsl-mobile-close-icon { opacity: 0; transform: rotate(-70deg) scale(.68); }
 .zfl-store-active .zsl-mobile-search-toggle.zsl-mobile-search-open { position: relative; z-index: 4; transform: translateY(57px); color: #ffcc00; border-color: #ffcc00; background: #252830; }
 .zfl-store-active .zsl-mobile-search-toggle.zsl-mobile-search-open .zsl-mobile-search-icon { opacity: 0; transform: scale(.68) rotate(70deg); }
 .zfl-store-active .zsl-mobile-search-toggle.zsl-mobile-search-open .zsl-mobile-close-icon { opacity: 1; transform: rotate(0) scale(1); }
 .zfl-store-active .zsl-search.zsl-mobile-search-open { display: flex !important; position: absolute; z-index: 3; top: calc(100% + 4px); right: 12px; width: calc(100vw - 24px); max-width: none; margin: 0; transform: scaleX(1); transform-origin: right center; opacity: 1; pointer-events: auto; }
 .zfl-store-active .zsl-search { display: flex !important; position: absolute; z-index: 3; top: calc(100% + 4px); right: 12px; width: calc(100vw - 24px); max-width: none; margin: 0; transform: scaleX(.08); transform-origin: right center; opacity: 0; pointer-events: none; will-change: transform, opacity; transition: transform 260ms cubic-bezier(.22,1,.36,1), opacity 130ms ease; }
 .zfl-store-active .zsl-search button[type="submit"] { display: none !important; }
 .zfl-store-active .zsl-search input[type="search"] { padding-right: 58px !important; border-radius: 10px !important; }
 .zfl-store-active .zsl-header.zsl-search-pinned { background: transparent; border-color: transparent; box-shadow: none; }
 .zfl-store-active .zsl-header.zsl-search-pinned .zsl-main { height: 0; min-height: 0; padding-block: 0; overflow: visible; }
 .zfl-store-active .zsl-header.zsl-search-pinned :is(.zsl-burger,.zsl-logo,.zsl-cart) { visibility: hidden; pointer-events: none; }
 .zfl-store-active .zsl-header.zsl-search-pinned .zsl-search.zsl-mobile-search-open { position: fixed; top: 8px; right: 12px; width: calc(100vw - 24px); }
 .zfl-store-active .zsl-header.zsl-search-pinned .zsl-mobile-search-toggle.zsl-mobile-search-open { position: fixed; top: 10px; right: 12px; transform: none; }
}

/* Drawer oscuro: los controles mantienen la misma superficie que el header. */
html.dark-mode .zfl-store-active .zsl-drawer :is(.zsl-drawer-loc,.zsl-drawer-dark,.zsl-drawer-currency select,.zsl-drawer-categories summary,.zsl-drawer-nav a) {
 background: #171c25 !important;
 border-color: #384252 !important;
 color: #edf1f6 !important;
}
html.dark-mode .zfl-store-active .zsl-drawer :is(.zsl-drawer-loc,.zsl-drawer-dark,.zsl-drawer-categories summary):hover,
html.dark-mode .zfl-store-active .zsl-drawer-nav a:hover { background: #252d39 !important; border-color: #ffcc00 !important; color: #ffcc00 !important; }
html.dark-mode .zfl-store-active .zsl-drawer-dark { margin-top: 10px; }

/* Los controles de navegación móvil comparten la misma pieza visual. */
html.dark-mode .zfl-store-active :is(.zsl-burger,.zsl-mobile-search-toggle,.zsl-drawer-close,.zsl-drawer-install) {
 background: #171c25 !important;
 border-color: #384252 !important;
 color: #edf1f6 !important;
}
html.dark-mode .zfl-store-active :is(.zsl-burger,.zsl-mobile-search-toggle,.zsl-drawer-close,.zsl-drawer-install):hover,
html.dark-mode .zfl-store-active :is(.zsl-burger,.zsl-mobile-search-toggle,.zsl-drawer-close,.zsl-drawer-install):focus-visible {
 background: #252d39 !important;
 border-color: #ffcc00 !important;
 color: #ffcc00 !important;
 outline: none;
}

/* Tablet: controles en una primera fila amplia y búsqueda sin compresión. */
@media (min-width: 769px) and (max-width: 1024px) {
 .zfl-store-active .zsl-main {
  display: grid !important;
  grid-template-columns: auto auto minmax(150px, 1fr) auto;
  grid-template-areas: "logo currency location actions" "search search search search";
  gap: 11px 14px;
  padding: 12px 18px;
 }
 .zfl-store-active .zsl-logo { grid-area: logo; }
 .zfl-store-active .zsl-currency-select { grid-area: currency; }
 .zfl-store-active .zsl-loc-chip { grid-area: location; min-width: 0; }
 .zfl-store-active .zsl-actions { grid-area: actions; margin-left: 0; justify-content: flex-end; }
 .zfl-store-active .zsl-search { grid-area: search; width: 100%; }
 .zfl-store-active .zsl-logo img { max-width: 156px; max-height: 44px; }
 .zfl-store-active .zsl-action-label { display: none; }
 .zfl-store-active .zsl-nav-inner { justify-content: center; gap: 20px; }
}

/* Mi cuenta: se conservan endpoints WooCommerce, solo cambia su presentación. */
.zfl-store-active.woocommerce-account .site-content,
.zfl-store-active.woocommerce-account .content-area { background: transparent; }
.zfl-store-active.woocommerce-account .woocommerce {
 max-width: 1120px;
 margin: 36px auto 64px;
 padding: 0 20px;
 display: grid;
 grid-template-columns: 230px minmax(0, 1fr);
 gap: 24px;
 color: var(--zfl-polish-ink, #edf0f4);
}
.zfl-store-active.woocommerce-account .woocommerce-MyAccount-navigation {
 float: none !important;
 width: auto !important;
 min-width: 0;
 margin: 0;
 padding: 10px;
 border: 1px solid var(--zfl-polish-line, #394150);
 border-radius: 16px;
 background: var(--zfl-polish-panel, #1d2129);
}
.zfl-store-active.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; }
.zfl-store-active.woocommerce-account .woocommerce-MyAccount-navigation li { margin: 2px 0; }
.zfl-store-active.woocommerce-account .woocommerce-MyAccount-navigation a {
 display: block; padding: 11px 12px; border-radius: 10px; color: inherit; font-weight: 750; text-decoration: none;
}
.zfl-store-active.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
.zfl-store-active.woocommerce-account .woocommerce-MyAccount-navigation a:hover { background: #ffcc00; color: #18140a; }
.zfl-store-active.woocommerce-account .woocommerce-MyAccount-content {
 float: none !important;
 width: auto !important;
 min-width: 0; padding: 28px; border: 1px solid var(--zfl-polish-line, #394150); border-radius: 18px; background: var(--zfl-polish-panel, #1d2129);
}
.zfl-store-active.woocommerce-account .zfl-account-welcome {
 margin: 0 0 22px; padding: 22px; border: 1px solid rgba(255,204,0,.5); border-radius: 14px; background: linear-gradient(120deg, rgba(255,204,0,.16), rgba(255,204,0,.03));
}
.zfl-store-active.woocommerce-account .zfl-account-welcome > span { color: #ffcc00; font-size: 11px; font-weight: 900; letter-spacing: .1em; }
.zfl-store-active.woocommerce-account .zfl-account-welcome h1 { margin: 7px 0 5px; font-size: clamp(24px, 3vw, 32px); color: inherit; }
.zfl-store-active.woocommerce-account .zfl-account-welcome p { margin: 0; opacity: .76; }
.zfl-store-active.woocommerce-account .zfl-account-quicklinks { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 17px; }
.zfl-store-active.woocommerce-account .zfl-account-quicklinks a,
.zfl-store-active.woocommerce-account .woocommerce-button,
.zfl-store-active.woocommerce-account button { border-radius: 10px !important; background: #ffcc00 !important; border-color: #ffcc00 !important; color: #18140a !important; font-weight: 800 !important; }
.zfl-store-active.woocommerce-account .woocommerce table.shop_table { border: 1px solid var(--zfl-polish-line, #394150); border-radius: 13px; border-collapse: separate; border-spacing: 0; overflow: hidden; }
.zfl-store-active.woocommerce-account .woocommerce table.shop_table :is(th,td) { padding: 13px 12px; border-color: var(--zfl-polish-line, #394150); color: inherit; }
.zfl-store-active.woocommerce-account .woocommerce table.shop_table :is(th,td) { opacity: 1; }
.zfl-store-active.woocommerce-account .woocommerce table.woocommerce-orders-table { table-layout: fixed; }
.zfl-store-active.woocommerce-account .woocommerce-orders-table__header-order-number { width: 11%; }
.zfl-store-active.woocommerce-account .woocommerce-orders-table__header-order-date { width: 21%; }
.zfl-store-active.woocommerce-account .woocommerce-orders-table__header-order-status { width: 18%; }
.zfl-store-active.woocommerce-account .woocommerce-orders-table__header-order-total { width: 21%; }
.zfl-store-active.woocommerce-account .woocommerce-orders-table__header-order-actions { width: 29%; }
.zfl-store-active.woocommerce-account .woocommerce-orders-table__cell-order-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.zfl-store-active.woocommerce-account .woocommerce-orders-table__cell-order-actions .woocommerce-button { margin: 0 !important; min-width: 82px; padding: 10px 14px !important; text-align: center; }
.zfl-store-active.woocommerce-account .woocommerce-orders-table__cell-order-actions .woocommerce-button:not(.pay) { background: transparent !important; border-color: var(--zfl-polish-line, #394150) !important; color: inherit !important; }
.zfl-store-active.woocommerce-account .woocommerce-orders-table__cell-order-actions .woocommerce-button.cancel { border-color: #8b3035 !important; color: #ffb4b8 !important; }
.zfl-store-active.woocommerce-account .woocommerce-orders-table__cell-order-status { vertical-align: middle; }
.zfl-store-active.woocommerce-account .zfl-account-status { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 9px; border-radius: 999px; background: rgba(148,163,184,.14); color: #d8e0ea; font-size: 12px; font-weight: 800; line-height: 1; }
.zfl-store-active.woocommerce-account .zfl-account-status--paid { background: rgba(34,197,94,.14); color: #8ef0ae; }
.zfl-store-active.woocommerce-account .woocommerce-orders-table__cell-order-status small { display: block; margin-top: 6px; color: #9ba7b8; font-size: 11px; }
.zfl-store-active.woocommerce-account .zfl-account-total { display: block; color: inherit; font-weight: 800; }
.zfl-store-active.woocommerce-account .woocommerce-orders-table__cell-order-total small { display: block; margin-top: 5px; color: #9ba7b8; font-size: 11px; }

/* WooCommerce inserta este velo al confirmar el pago. Debe acompañar el tema, no blanquearlo. */
.woocommerce-order-pay .blockUI.blockOverlay,
.woocommerce-checkout .blockUI.blockOverlay { background: rgba(15,18,25,.78) !important; background-image: none !important; opacity: 1 !important; }
.woocommerce-order-pay .blockUI.blockOverlay::before,
.woocommerce-checkout .blockUI.blockOverlay::before { color: #ffcb05 !important; opacity: 1 !important; }
.zfl-store-active.woocommerce-account .woocommerce :is(input,select,textarea) { min-height: 43px; border-radius: 9px; border-color: var(--zfl-polish-line, #394150); background: rgba(255,255,255,.04); color: inherit; }
html.dark-mode .zfl-store-active.woocommerce-account .woocommerce :is(h1,h2,h3,p,th,td,a,strong,span) { color: #edf0f4; }
html.dark-mode .zfl-store-active.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
html.dark-mode .zfl-store-active.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
html.dark-mode .zfl-store-active.woocommerce-account .woocommerce-button { color: #18140a !important; }
html.zfl-theme-light .zfl-store-active.woocommerce-account .woocommerce-MyAccount-navigation,
html.zfl-theme-light .zfl-store-active.woocommerce-account .woocommerce-MyAccount-content { background: #fff; border-color: #d8d9d5; color: #17191e; }
html.zfl-theme-light .zfl-store-active.woocommerce-account .woocommerce :is(input,select,textarea) { background: #fff; border-color: #d8d9d5; color: #17191e; }
html.zfl-theme-light .zfl-store-active.woocommerce-account .zfl-account-status { background: #e8edf0; color: #35404c; }
html.zfl-theme-light .zfl-store-active.woocommerce-account .zfl-account-status--paid { background: #dff5e5; color: #17663a; }
html.zfl-theme-light .zfl-store-active.woocommerce-account .woocommerce-orders-table__cell-order-actions .woocommerce-button:not(.pay) { color: #252b33 !important; border-color: #d4d9df !important; }
@media (max-width: 768px) {
 .zfl-store-active .zsl-burger { display: grid !important; visibility: visible !important; opacity: 1 !important; }
 .zfl-store-active .zsl-main { grid-template-columns: 40px minmax(0, 1fr) 40px 40px !important; }
 .zfl-store-active .zsl-logo img { max-width: min(132px, 100%) !important; }
 .zfl-store-active .zsl-panel-link {
  display: inline-flex !important;
  grid-column: 3;
  width: 40px;
  min-width: 40px;
  height: 40px;
  padding: 0 !important;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--zfl-polish-line, #394150);
  border-radius: 10px;
 }
 .zfl-store-active .zsl-panel-link .zsl-action-label { display: none !important; }
 .zfl-store-active .zsl-cart { grid-column: 3 !important; }
 .zfl-store-active .zsl-mobile-search-toggle { grid-column: 4; }
 .zfl-store-active.woocommerce-account .woocommerce { display: block; margin: 20px auto 48px; padding: 0 12px; }
 .zfl-store-active.woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom: 14px; overflow-x: auto; padding: 7px; }
 .zfl-store-active.woocommerce-account .woocommerce-MyAccount-navigation ul { display: flex; min-width: max-content; gap: 4px; }
 .zfl-store-active.woocommerce-account .woocommerce-MyAccount-navigation a { padding: 10px 11px; white-space: nowrap; }
 .zfl-store-active.woocommerce-account .woocommerce-MyAccount-content { padding: 18px 14px; border-radius: 15px; }
 .zfl-store-active.woocommerce-account .zfl-account-welcome { padding: 17px; }
 .zfl-store-active.woocommerce-account .woocommerce table.shop_table { display: block; overflow-x: auto; white-space: nowrap; }
 .zfl-store-active.woocommerce-account .woocommerce table.woocommerce-orders-table { table-layout: auto; }
 .zfl-store-active.woocommerce-account .woocommerce-orders-table__cell-order-actions { min-width: 190px; }
}

@media (max-width: 768px) {
 html:not(.dark-mode) .zfl-store-active .zsl-mobile-search-toggle,
 html.zfl-theme-light .zfl-store-active .zsl-mobile-search-toggle { border-color: #d6dae1; background: #fff; color: #17191e; }
 html:not(.dark-mode) .zfl-store-active .zsl-mobile-search-toggle.zsl-mobile-search-open,
 html.zfl-theme-light .zfl-store-active .zsl-mobile-search-toggle.zsl-mobile-search-open { background: #fff; border-color: #d4a900; color: #17191e; }
 @media (prefers-reduced-motion: reduce) {
  .zfl-store-active .zsl-mobile-search-toggle,
  .zfl-store-active .zsl-mobile-search-toggle svg,
  .zfl-store-active .zsl-search { transition-duration: .01ms !important; }
 }
}

/* La tarjeta de disponibilidad debe conservar contraste real en modo claro. */
html:not(.dark-mode) .zfl-store-active .zfh-side-delivery :is(h2,p,small,strong,span) { color: #17191e !important; }
html:not(.dark-mode) .zfl-store-active .zfh-side-delivery .zfh-side-link { color: #a66f00 !important; }
html.zfl-theme-light .zfl-store-active .zfh-side-delivery :is(h2,p,small,strong,span) { color: #17191e !important; }
html.zfl-theme-light .zfl-store-active .zfh-side-delivery .zfh-side-link { color: #a66f00 !important; }

/* Menú de categorías: compacto por defecto, explícito al abrirse. */
.zfl-store-active .zsl-nav-categories summary { padding: 12px 0; }
.zfl-store-active .zsl-nav-categories-list a,
.zfl-store-active .zsl-nav-tracking { padding: 9px 12px !important; }
.zfl-store-active .zsl-nav-tracking { color: inherit !important; }
html.zfl-theme-light .zfl-store-active .zsl-nav-categories-list a:hover,
html.zfl-theme-light .zfl-store-active .zsl-nav-tracking:hover { color: #8a6500 !important; }

/* El botón de compartir se comporta visualmente como un enlace de categoría. */
body.zfl-store-active .zsl-nav button.zsl-nav-share {
    appearance: none !important;
    -webkit-appearance: none !important;
    display: inline-block !important;
    margin: 0 !important;
    padding: 12px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: inherit !important;
    font: inherit !important;
    font-size: 13px !important;
    line-height: inherit !important;
}
body.zfl-store-active .zsl-nav button.zsl-nav-share:hover,
body.zfl-store-active .zsl-nav button.zsl-nav-share:focus-visible { color: #ffcc00 !important; }

/* Las fotos de catálogo son el elemento principal de la tarjeta. */
.zfl-store-active .zfh-card-img img {
    padding: 0 !important;
    object-fit: cover !important;
}

/* Dos filas de descubrimiento: deslizable, sin duplicar flechas ni controles. */
.zfl-store-active .zfh-home-row { min-width: 0; }
.zfl-store-active .zfh-home-row { position: relative; }
.zfl-store-active .zfh-product-row {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 12px !important;
    overflow-x: auto;
    padding: 2px 2px 13px;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scroll-padding-inline: 2px;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y;
    scrollbar-width: none;
    cursor: grab;
}
.zfl-store-active .zfh-product-row::-webkit-scrollbar { display: none; }
.zfl-store-active .zfh-product-row:active { cursor: grabbing; }
.zfl-store-active .zfh-product-row.is-dragging { cursor: grabbing; user-select: none; }
.zfl-store-active .zfh-product-row :is(a,img) { -webkit-user-drag: none; user-select: none; }
.zfl-store-active .zfh-product-row .zfh-card {
    flex: 0 0 214px;
    min-width: 214px;
    scroll-snap-align: start;
}
.zfl-store-active .zfh-row-controls {
    position: absolute;
    z-index: 4;
    top: calc(50% + 22px);
    right: -15px;
    left: -15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    pointer-events: none;
}
.zfl-store-active .zfh-row-arrow {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    padding: 0;
    border: 1px solid #4a5361;
    border-radius: 50%;
    background: #202530;
    color: #fff;
    cursor: pointer;
    pointer-events: auto;
    font: 500 28px/1 Arial, sans-serif;
    transition: transform .16s ease, border-color .16s ease, background .16s ease;
}
.zfl-store-active .zfh-row-arrow:hover:not(:disabled) { border-color: #ffcc00; background: #2d333e; transform: translateY(-1px); }
.zfl-store-active .zfh-row-arrow:disabled { opacity: .32; cursor: default; }
html.zfl-theme-light .zfl-store-active .zfh-row-arrow { border-color: #d3d7d1; background: #fff; color: #252a31; }
@media (max-width: 650px) { .zfl-store-active .zfh-row-controls { display: none; } }
/* En escritorio las categorías conservan la cuadrícula original; el carrusel es móvil. */
@media (min-width: 651px) {
    .zfl-store-active .zfh-cats-cards {
        display: grid !important;
        grid-template-columns: repeat(auto-fit, 124px) !important;
        justify-content: space-between;
        overflow: visible !important;
        cursor: default;
    }
    .zfl-store-active button.zfh-catcard {
        width: auto !important;
        min-width: 0 !important;
        max-width: none;
    }
}
@media (max-width: 650px) {
    .zfl-store-active .zfh-product-row { gap: 9px !important; }
    .zfl-store-active .zfh-product-row .zfh-card { flex-basis: 158px; min-width: 158px; }
}

/* Orden de la home: descubrimiento primero, categorías después. */
.zfl-store-active .zfh { display: flex; flex-direction: column; }
.zfl-store-active .zfh-hero-grid { order: 1; }
.zfl-store-active .zfh-home-row { order: 2; }
.zfl-store-active .zfh-catssec { order: 3; }
.zfl-store-active .zfh-products { order: 4; }
.zfl-store-active .zfh-trust { order: 5; }
.zfl-store-active .zfh-how { order: 6; }

/* El contenedor de carrito no es una grilla: solo la lista interna lo es. */
.zfl-store-active .zfl-cart-content { display: block; }
.zfl-store-active .zfl-cart-item-img { width: 100%; height: 150px; padding: 10px; }
.zfl-store-active .zfl-cart-item-info { width: 100%; padding-right: 0; }
.zfl-store-active .zfl-cart-item-price-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 6px; }
.zfl-store-active .zfl-cart-item-price { margin: 0; }
.zfl-store-active .zfl-cart-item-sub { display: block !important; margin: 0; }
.zfl-store-active .zfl-cart-item-qty { align-self: center; }
@media (max-width: 650px) {
    .zfl-store-active .zfl-cart { width: min(calc(100% - 24px), 480px); margin-inline: auto; padding: 20px 14px; }
    .zfl-store-active .zfl-cart-items { grid-template-columns: minmax(0,1fr) !important; }
    .zfl-store-active .zfl-cart-item { min-height: 0; }
    .zfl-store-active .zfl-cart-item-img { width: 100%; height: 145px; }
}
/* Página no encontrada: evita los bloques heredados del tema y ofrece una salida clara. */
.zfl-404 {
    display: grid;
    min-height: min(62vh, 620px);
    padding: clamp(28px, 7vw, 92px) 20px;
    place-items: center;
}
.zfl-404-card {
    width: min(100%, 600px);
    padding: clamp(30px, 6vw, 60px);
    border: 1px solid var(--zfl-border, #334155);
    border-radius: 24px;
    background: var(--zfl-surface, #1b2029);
    box-shadow: 0 24px 64px rgba(0, 0, 0, .18);
    text-align: center;
}
.zfl-404-code { margin: 0; color: #ffcc00; font-size: clamp(60px, 13vw, 110px); font-weight: 900; letter-spacing: -.08em; line-height: .8; }
.zfl-404-card h1 { margin: 26px 0 12px; font-size: clamp(26px, 4vw, 38px); }
.zfl-404-card p:not(.zfl-404-code) { margin: 0 auto; max-width: 44ch; color: var(--zfl-muted, #a9b1bd); line-height: 1.6; }
.zfl-404-action { display: inline-flex; margin-top: 26px; padding: 13px 20px; border-radius: 10px; background: #ffcc00; color: #15171c; font-weight: 800; text-decoration: none; }
.zfl-404-action:hover { background: #ffe16a; color: #111; }

/* Anti-spam: queda disponible para lectores de código, pero fuera de la interfaz. */
.zfl-honeypot { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; }

/* Ficha de producto: una lectura más cálida y menos "de panel". */
.zfl-store-active .zfl-sp-info {
    align-self: center;
    padding: clamp(20px, 3vw, 32px) !important;
    border: 1px solid rgba(120, 135, 155, .26);
    border-radius: 20px;
    background: linear-gradient(145deg, rgba(31, 37, 47, .72), rgba(20, 24, 31, .46));
    box-shadow: 0 18px 42px rgba(0, 0, 0, .14);
}
.zfl-store-active .zfl-sp-name {
    margin: 0 !important;
    color: #f5f1e7 !important;
    font-size: clamp(25px, 2.45vw, 32px) !important;
    font-weight: 750 !important;
    letter-spacing: -.035em !important;
    line-height: 1.16 !important;
}
.zfl-store-active .zfl-sp-prices {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px !important;
    margin: 3px 0 1px;
}
.zfl-store-active .zfl-sp-price-item {
    display: flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid rgba(120, 135, 155, .22);
    border-radius: 10px;
    background: rgba(255, 255, 255, .035);
    color: #bdc6d2 !important;
    font-size: 14px !important;
    font-weight: 650 !important;
    letter-spacing: -.01em;
}
.zfl-store-active .zfl-sp-price-item:first-child {
    grid-column: 1 / -1;
    min-height: 46px;
    border-color: rgba(255, 204, 0, .36);
    background: linear-gradient(90deg, rgba(255, 204, 0, .16), rgba(255, 204, 0, .055));
    color: #ffe08a !important;
    font-size: 18px !important;
    font-weight: 760 !important;
}
.zfl-store-active .zfl-sp-meta { margin-top: 1px; }
.zfl-store-active .zfl-sp-add { margin-top: 5px; gap: 12px; }
.zfl-store-active .zfl-sp-add-btn,
.zfl-store-active .zfl-sp-wa { min-height: 52px; border-radius: 13px !important; }
@media (max-width: 768px) {
    .zfl-store-active .zfl-sp-info { padding: 20px !important; border-radius: 16px; }
    .zfl-store-active .zfl-sp-prices { grid-template-columns: 1fr 1fr; }
    .zfl-store-active .zfl-sp-price-item { font-size: 13px !important; }
}

/* Catálogo principal: tarjetas más ligeras y seis productos visibles en escritorio. */
@media (min-width: 1120px) {
    .zfl-store-active .zfh-grid { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; gap: 12px !important; }
}
.zfl-store-active .zfh-grid .zfh-card { min-width: 0; }
.zfl-store-active .zfh-grid .zfh-card-img { aspect-ratio: 1 / 1; display: grid; place-items: center; }
.zfl-store-active .zfh-grid .zfh-card-img img {
    width: 100% !important;
    height: 100% !important;
    padding: 7px !important;
    object-fit: contain !important;
    object-position: center;
}
.zfl-store-active .zfh-grid .zfh-card-body { padding: 11px !important; gap: 8px !important; }
.zfl-store-active .zfh-grid .zfh-card-name { font-size: 13px !important; line-height: 1.35; }
.zfl-store-active .zfh-grid .zfh-card-price { font-size: 17px !important; }
.zfl-store-active .zfh-grid .zfh-card-add { padding: 10px 7px !important; }
