/* --------------------------------------------------
   ROOT / RESET
-------------------------------------------------- */

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 164px;
}

body {
    min-height: 100vh;
    margin: 0;
    color: var(--text);
    background: var(--page-bg);
    font-family: var(--font-body), Outfit, Arial, sans-serif;
    overflow-x: hidden;
}

button,
input {
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

button {
    color: inherit;
}

[hidden] {
    display: none !important;
}

.page-background {
    position: fixed;
    inset: 0;
    z-index: -2;
    pointer-events: none;
    background-color: var(--page-bg);
}

.background-degradado .page-background {
    background-image: var(--background-gradient);
}

.background-imagen .page-background {
    background-color: var(--page-bg);
    background-image: var(--background-image);
    background-position: var(--background-position);
    background-size: var(--background-size);
    background-repeat: var(--background-repeat);
    background-attachment: var(--background-attachment);
}

.background-imagen .page-background::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, var(--background-overlay));
}

/* --------------------------------------------------
   HEADER BASE
-------------------------------------------------- */

.catalog-header {
    width: min(calc(100% - 40px), calc(var(--content-width) + 80px));
    margin: 0 auto;
    padding-top: var(--ppw-header-padding-top, 24px);
}

.catalog-cover {
    position: relative;
    min-height: var(--cover-height);
    overflow: hidden;
    border-radius: var(--cover-radius);
    background-color: var(--brand);
    background-image:
        linear-gradient(
            135deg,
            rgba(13, 17, 31, var(--cover-overlay)),
            rgba(13, 17, 31, calc(var(--cover-overlay) * .35))
        ),
        var(--cover-image),
        linear-gradient(135deg, var(--brand), var(--brand-2));
    background-position: center, var(--cover-position), center;
    background-size: cover;
    background-repeat: no-repeat;
    box-shadow: var(--ppw-cover-shadow, 0 28px 70px rgba(22, 27, 39, .13));
}

.business {
    position: relative;
}

.business-logo {
    width: var(--logo-width);
    height: var(--logo-width);
    flex: 0 0 var(--logo-width);
    overflow: hidden;
    border: 6px solid var(--logo-bg);
    border-radius: var(--logo-radius);
    background: var(--logo-bg);
    box-shadow: var(--logo-shadow);
}

.business-logo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: var(--logo-fit, contain);
}

.business-logo--placeholder {
    display: grid;
    place-items: center;
    color: var(--brand);
    font-size: clamp(2rem, 4vw, 2.65rem);
    font-weight: 800;
}

.business-copy {
    min-width: 0;
}

.powered {
    display: inline-block;
    margin-bottom: 3px;
    color: var(--brand);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.business h1 {
    margin: 0;
    color: var(--text);
    font-family: var(--font-title), Outfit, sans-serif;
    font-size: var(--ppw-business-title-size, clamp(2rem, 4.3vw, 2.75rem));
    line-height: var(--ppw-business-title-line-height, 1.05);
    letter-spacing: var(--ppw-business-title-letter-spacing, -.035em);
}

.business-description {
    max-width: 650px;
    margin: 8px 0 0;
    color: var(--muted);
    font-size: var(--ppw-business-description-size, 1rem);
    line-height: var(--ppw-business-description-line-height, 1.5);
}

.business-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 15px;
    align-items: center;
    margin-top: 10px;
    color: var(--muted);
    font-size: .88rem;
}

.business-meta span,
.business-meta a,
.share-catalog {
    display: inline-flex;
    gap: 6px;
    align-items: center;
}

.business-meta a {
    color: inherit;
    text-decoration: none;
}

.business-meta a:hover {
    color: var(--brand);
}

.share-catalog {
    padding: 0;
    border: 0;
    color: inherit;
    background: transparent;
    cursor: pointer;
}

.share-catalog:hover {
    color: var(--brand);
}

/* --------------------------------------------------
   HEADER: PORTADA + LOGO SUPERPUESTO
-------------------------------------------------- */

.business--overlap {
    display: grid;
    grid-template-columns: var(--logo-width) minmax(0, 1fr);
    gap: 22px;
    align-items: start;
    margin: calc(var(--logo-width) * -.46) 30px 0;
}

.business--overlap .business-copy {
    padding-top: calc(var(--logo-width) * .5);
}

/* --------------------------------------------------
   HEADER: SOLO LOGO
-------------------------------------------------- */

.catalog-header--logo-only {
    padding-top: 44px;
}

.business--centered {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.business--centered .business-logo {
    margin-bottom: 20px;
}

.business--centered .business-meta {
    justify-content: center;
}

/* --------------------------------------------------
   HEADER: LOGO DENTRO DE PORTADA
-------------------------------------------------- */

.catalog-cover--content {
    min-height: max(var(--cover-height), 330px);
    display: grid;
    place-items: center;
    padding: 44px 24px;
}

.business--inside {
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #fff;
    text-align: center;
}

.business--inside .business-logo {
    margin-bottom: 18px;
}

.business--inside .powered,
.business--inside h1 {
    color: var(--header-text, #fff);
}

.business--inside .business-description,
.business--inside .business-meta,
.business--inside .business-meta a,
.business--inside .share-catalog {
    color: var(--header-text-soft, rgba(255,255,255,.82));
}

.business--inside .business-meta {
    justify-content: center;
}

/* --------------------------------------------------
   HEADER: COMPACTO
-------------------------------------------------- */

.catalog-header--compact {
    padding-top: 30px;
}

.business--compact {
    display: grid;
    grid-template-columns: min(90px, var(--logo-width)) minmax(0, 1fr);
    gap: 18px;
    align-items: center;
    padding: 18px;
    border: 1px solid rgba(28, 33, 45, .08);
    border-radius: 22px;
    background: color-mix(in srgb, var(--card) 94%, transparent);
    box-shadow: 0 12px 36px rgba(28, 33, 45, .06);
    backdrop-filter: blur(14px);
}

.business--compact .business-logo {
    width: min(90px, var(--logo-width));
    height: min(90px, var(--logo-width));
}

.business--compact h1 {
    font-size: clamp(1.55rem, 3.5vw, 2rem);
}

/* --------------------------------------------------
   CONTENIDO / HERRAMIENTAS
-------------------------------------------------- */

.catalog-main {
    width: min(calc(100% - 40px), var(--content-width));
    margin: var(--ppw-main-margin-top, 46px) auto var(--ppw-main-margin-bottom, 120px);
}

.catalog-tools {
    position: sticky;
    top: 0;
    z-index: 20;
    padding-top: 10px;
    background: linear-gradient(to bottom, var(--page-bg) 0 82%, transparent);
}

.search-box {
    height: var(--ppw-search-height, 58px);
    display: flex;
    gap: 12px;
    align-items: center;
    padding: var(--ppw-search-padding, 0 17px);
    border: var(--ppw-search-border, 1px solid rgba(28, 33, 45, .10));
    border-radius: var(--ppw-search-radius, 18px);
    background: var(--ppw-search-bg, color-mix(in srgb, var(--card) 96%, transparent));
    box-shadow: var(--ppw-search-shadow, 0 14px 38px rgba(28, 33, 45, .08));
    backdrop-filter: blur(14px);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.search-box:focus-within {
    border-color: color-mix(in srgb, var(--brand) 55%, white);
    box-shadow: 0 16px 42px color-mix(in srgb, var(--brand) 15%, transparent);
    transform: translateY(-1px);
}

.search-box > i {
    color: var(--muted);
    font-size: 1.05rem;
}

.search-box input {
    width: 100%;
    border: 0;
    outline: 0;
    color: var(--text);
    background: transparent;
    font-size: 1rem;
}

.search-box input::placeholder {
    color: color-mix(in srgb, var(--muted) 78%, white);
}

.search-box button {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 50%;
    color: var(--muted);
    background: transparent;
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    transition: .2s ease;
}

.search-box button.visible {
    opacity: 1;
    pointer-events: auto;
}

.search-box button:hover {
    color: var(--text);
    background: rgba(28, 33, 45, .06);
}

/* --------------------------------------------------
   CATEGORÍAS
-------------------------------------------------- */

.category-nav-wrap {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    padding: 14px 0 12px;
}

.category-nav {
    display: flex;
    gap: var(--ppw-category-gap, 9px);
    overflow-x: auto;
    padding: 1px;
    scroll-behavior: smooth;
    scrollbar-width: none;
}

.category-nav::-webkit-scrollbar {
    display: none;
}

.category-nav button {
    min-height: var(--ppw-category-nav-height, var(--ppw-category-height, 40px));
    padding: var(--ppw-category-nav-padding, 9px 16px);
    border: var(--ppw-category-nav-border, 1px solid rgba(28, 33, 45, .11));
    border-radius: var(--ppw-category-nav-radius, 999px);
    color: var(--ppw-category-nav-color, var(--ppw-category-color, var(--muted)));
    background: var(--ppw-category-nav-bg, var(--ppw-category-bg, color-mix(in srgb, var(--card) 96%, transparent)));
    font-weight: var(--ppw-category-nav-font-weight, var(--ppw-category-font-weight, 650));
    white-space: nowrap;
    cursor: pointer;
    transition: transform .18s ease, color .18s ease, background .18s ease, border-color .18s ease;
}

.category-nav button:hover {
    color: var(--text);
    transform: translateY(-1px);
}

.category-nav button.active {
    border-color: var(--ppw-category-active-border, var(--brand));
    color: var(--ppw-category-active-color, #fff);
    background: var(--ppw-category-active-bg, var(--brand));
    box-shadow: var(--ppw-category-active-shadow, 0 8px 18px color-mix(in srgb, var(--brand) 24%, transparent));
}

.category-arrow {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: var(--ppw-search-border, 1px solid rgba(28, 33, 45, .10));
    border-radius: 50%;
    color: var(--muted);
    background: var(--card);
    cursor: pointer;
}

.category-arrow:hover {
    color: var(--brand);
}

/* --------------------------------------------------
   AVISOS / ESTADOS VACÍOS
-------------------------------------------------- */

.catalog-notice,
.catalog-footer-text {
    margin: 18px 0;
    padding: 15px 18px;
    border: 1px solid color-mix(in srgb, var(--brand) 20%, transparent);
    border-radius: 16px;
    color: var(--muted);
    background: color-mix(in srgb, var(--brand) 7%, var(--card));
    line-height: 1.55;
    text-align: center;
}

.catalog-empty {
    padding: 70px 20px;
    color: var(--muted);
    text-align: center;
}

.catalog-empty > i {
    font-size: 2rem;
}

.catalog-empty h3 {
    margin: 14px 0 5px;
    color: var(--text);
}

.catalog-empty p {
    margin: 0;
}

/* --------------------------------------------------
   SECCIONES / PRODUCTOS
-------------------------------------------------- */

.category-section {
    padding-top: 22px;
}

.category-title {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    margin: var(--ppw-category-title-margin, 24px 0 16px);
}

.category-title > span {
    padding-top: 7px;
    color: var(--brand);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .06em;
}

.category-title h2 {
    margin: 0;
    color: var(--text);
    font-family: var(--font-title), Outfit, sans-serif;
    font-size: var(--ppw-category-title-size, clamp(1.55rem, 3vw, 1.9rem));
    line-height: 1.1;
    letter-spacing: var(--ppw-category-title-letter-spacing, -.025em);
}

.category-title p {
    margin: 5px 0 0;
    color: var(--muted);
    line-height: 1.45;
}

.products-grid {
    display: grid;
    grid-template-columns: var(--ppw-products-columns, repeat(2, minmax(0, 1fr)));
    gap: var(--ppw-products-gap, 15px);
}

.product-card {
    min-height: var(--ppw-product-min-height, 166px);
    display: flex;
    gap: var(--ppw-product-gap, 15px);
    overflow: hidden;
    padding: var(--ppw-product-padding, 17px);
    border: var(--ppw-product-border, 1px solid rgba(28, 33, 45, .075));
    border-radius: var(--ppw-product-radius, var(--radius));
    background: var(--ppw-product-bg, var(--card));
    box-shadow: var(--ppw-product-shadow, var(--card-shadow));
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.product-card:hover {
    border-color: color-mix(in srgb, var(--brand) 18%, transparent);
    box-shadow: 0 18px 42px rgba(28, 33, 45, .10);
    transform: translateY(-2px);
}

.product-content {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.product-top {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    align-items: flex-start;
}

.product-card h3 {
    margin: 0;
    color: var(--text);
    font-family: var(--font-title), Outfit, sans-serif;
    font-size: var(--ppw-product-name-size, 1.06rem);
    line-height: var(--ppw-product-name-line-height, 1.2);
}

.product-card p {
    margin: var(--ppw-product-description-margin, 7px 0 10px);
    color: var(--ppw-product-description-color, var(--muted));
    font-size: var(--ppw-product-description-size, .88rem);
    line-height: var(--ppw-product-description-line-height, 1.45);
}

.featured {
    display: inline-flex;
    gap: 4px;
    align-items: center;
    padding: 4px 7px;
    border-radius: 999px;
    color: #9a6500;
    background: #fff2bd;
    font-size: .63rem;
    font-weight: 750;
}

.product-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-bottom: 10px;
}

.product-tags:empty {
    display: none;
}

.product-tags span {
    display: inline-flex;
    gap: 4px;
    align-items: center;
    color: var(--muted);
    font-size: .7rem;
}

.product-bottom {
    display: flex;
    gap: 10px;
    align-items: flex-end;
    justify-content: space-between;
    margin-top: auto;
}

.price del {
    display: block;
    margin-bottom: 1px;
    color: color-mix(in srgb, var(--muted) 70%, white);
    font-size: .75rem;
}

.price strong {
    color: var(--ppw-price-color, var(--brand));
    font-size: var(--ppw-price-size, 1.12rem);
    line-height: 1;
}

.add-btn {
    min-width: 40px;
    min-height: 40px;
    display: inline-flex;
    gap: 6px;
    align-items: center;
    justify-content: center;
    padding: 9px 12px;
    border: 0;
    border-radius: var(--ppw-add-radius, 13px);
    color: var(--ppw-add-color, var(--button-text));
    background: var(--ppw-add-bg, var(--button));
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 8px 18px color-mix(in srgb, var(--button) 24%, transparent);
    transition: transform .16s ease, filter .16s ease;
}

.add-btn:hover {
    filter: brightness(.96);
    transform: translateY(-1px);
}

.add-btn span {
    font-size: .78rem;
}

.sold-out {
    padding: 7px 10px;
    border-radius: 999px;
    color: #9a4b4b;
    background: #fff0f0;
    font-size: .76rem;
    font-weight: 700;
}

.product-image {
    width: var(--ppw-product-image-width, 118px);
    min-height: var(--ppw-product-image-height, 132px);
    flex: 0 0 var(--ppw-product-image-width, 118px);
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: var(--ppw-product-image-radius, calc(var(--radius) - 6px));
    color: var(--brand);
    background-color: var(--ppw-product-image-bg, color-mix(in srgb, var(--brand) 10%, #f3f3ef));
    background-position: center;
    background-size: cover;
    font-size: 2rem;
    font-weight: 800;
}

/* --------------------------------------------------
   CARRITO INFERIOR
-------------------------------------------------- */

.cart-bar {
    position: fixed;
    right: 50%;
    bottom: 18px;
    z-index: 50;
    width: min(calc(100% - 32px), 660px);
    min-height: 66px;
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    gap: 13px;
    align-items: center;
    padding: 10px 13px;
    border: 0;
    border-radius: var(--ppw-cart-radius, 20px);
    color: var(--ppw-cart-color, #fff);
    background: var(--ppw-cart-bg, #151924);
    box-shadow: var(--ppw-cart-shadow, 0 22px 60px rgba(16, 19, 28, .30));
    cursor: pointer;
    transform: translateX(50%);
    animation: cartIn .24s ease both;
}

@keyframes cartIn {
    from {
        opacity: 0;
        transform: translate(50%, 12px);
    }
}

.cart-bar-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: rgba(255, 255, 255, .10);
    font-size: 1.1rem;
}

.cart-bar-copy,
.cart-bar-total {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.cart-bar-copy small,
.cart-bar-total small {
    color: rgba(255, 255, 255, .62);
    font-size: .69rem;
}

.cart-bar-total {
    align-items: flex-end;
}

.cart-bar-action {
    display: inline-flex;
    gap: 7px;
    align-items: center;
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(255, 255, 255, .10);
    font-size: .78rem;
    font-weight: 700;
}

/* --------------------------------------------------
   DRAWER DEL PEDIDO
-------------------------------------------------- */

.drawer-backdrop {
    position: fixed;
    inset: 0;
    z-index: 79;
    visibility: hidden;
    background: rgba(12, 15, 23, .48);
    opacity: 0;
    backdrop-filter: blur(3px);
    transition: .24s ease;
}

.drawer-backdrop.open {
    visibility: visible;
    opacity: 1;
}

.cart-drawer {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 80;
    width: min(430px, 100%);
    display: flex;
    flex-direction: column;
    padding: var(--ppw-drawer-padding, 22px);
    background: var(--ppw-drawer-bg, var(--card));
    box-shadow: var(--ppw-drawer-shadow, -24px 0 70px rgba(16, 20, 30, .20));
    transform: translateX(105%);
    transition: transform .28s ease;
}

.cart-drawer.open {
    transform: translateX(0);
}

.drawer-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding-bottom: 17px;
    border-bottom: 1px solid rgba(28, 33, 45, .09);
}

.drawer-head small {
    color: var(--muted);
}

.drawer-head h2 {
    margin: 2px 0 0;
    font-size: 1.45rem;
}

.drawer-head button {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: rgba(28, 33, 45, .06);
    cursor: pointer;
}

.cart-items {
    flex: 1;
    overflow: auto;
    padding: 12px 0;
}

.cart-item {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    padding: 13px 0;
    border-bottom: 1px solid rgba(28, 33, 45, .07);
}

.cart-item strong,
.cart-item small {
    display: block;
}

.cart-item small {
    margin-top: 3px;
    color: var(--muted);
}

.cart-item-controls {
    display: flex;
    gap: 9px;
    align-items: center;
}

.cart-item-controls button {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border: var(--ppw-search-border, 1px solid rgba(28, 33, 45, .10));
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
}

.drawer-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 0;
    border-top: 1px solid rgba(28, 33, 45, .09);
    font-size: 1.12rem;
}

.drawer-total strong {
    color: var(--brand);
    font-size: 1.35rem;
}

.cart-note {
    margin: 0 0 13px;
    color: var(--muted);
    font-size: .78rem;
    line-height: 1.45;
}

.send-order {
    min-height: 50px;
    border: 0;
    border-radius: var(--ppw-checkout-button-radius, 15px);
    color: var(--ppw-checkout-button-color, var(--button-text));
    background: var(--ppw-checkout-button-bg, var(--button));
    font-weight: 750;
}

.send-order:disabled {
    cursor: not-allowed;
    opacity: .45;
}

/* --------------------------------------------------
   TOAST / FOOTER
-------------------------------------------------- */

.toast-message {
    position: fixed;
    left: 50%;
    bottom: 98px;
    z-index: 90;
    max-width: calc(100% - 32px);
    padding: 10px 15px;
    border-radius: 12px;
    color: #fff;
    background: #151924;
    box-shadow: 0 14px 34px rgba(16, 19, 28, .22);
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 8px);
    transition: .22s ease;
}

.toast-message.visible {
    opacity: 1;
    transform: translate(-50%, 0);
}

.catalog-footer {
    padding: var(--ppw-footer-padding, 10px 20px 34px);
    color: var(--ppw-footer-color, var(--muted));
    text-align: center;
    font-size: .82rem;
}

.catalog-footer strong {
    color: var(--brand);
}

/* --------------------------------------------------
   RESPONSIVE
-------------------------------------------------- */

@media (max-width: 820px) {
    .catalog-header {
        width: min(calc(100% - 28px), calc(var(--content-width) + 80px));
        padding-top: 14px;
    }

    .catalog-main {
        width: min(calc(100% - 28px), var(--content-width));
        margin-top: 38px;
    }

    .products-grid {
        grid-template-columns: 1fr;
    }

    .product-card {
        min-height: 154px;
    }

    .category-arrow {
        display: none;
    }

    .category-nav-wrap {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 620px) {
    html {
        scroll-padding-top: 150px;
    }

    .catalog-cover {
        min-height: 150px;
        background-image:
            linear-gradient(
                135deg,
                rgba(13, 17, 31, var(--cover-overlay)),
                rgba(13, 17, 31, calc(var(--cover-overlay) * .35))
            ),
            var(--cover-image-mobile),
            linear-gradient(135deg, var(--brand), var(--brand-2));
    }

    .business--overlap {
        grid-template-columns: 82px minmax(0, 1fr);
        gap: 14px;
        margin: -40px 14px 0;
    }

    .business--overlap .business-logo {
        width: 82px;
        height: 82px;
        border-width: 4px;
    }

    .business--overlap .business-copy {
        padding-top: 45px;
    }

    .business h1 {
        font-size: 1.82rem;
    }

    .business-description {
        font-size: .9rem;
    }

    .business-meta {
        gap: 7px 12px;
        font-size: .8rem;
    }

    .catalog-header--logo-only {
        padding-top: 28px;
    }

    .business--centered .business-logo {
        width: 94px;
        height: 94px;
    }

    .catalog-cover--content {
        min-height: 310px;
    }

    .business--inside .business-logo {
        width: 92px;
        height: 92px;
    }

    .business--compact {
        grid-template-columns: 72px minmax(0, 1fr);
        gap: 13px;
        padding: 14px;
    }

    .business--compact .business-logo {
        width: 72px;
        height: 72px;
    }

    .catalog-main {
        margin-top: 30px;
        margin-bottom: 108px;
    }

    .catalog-tools {
        padding-top: 7px;
    }

    .search-box {
        height: 54px;
        border-radius: 16px;
    }

    .category-nav-wrap {
        padding-top: 11px;
    }

    .category-nav button {
        min-height: 38px;
        padding: 8px 14px;
        font-size: .88rem;
    }

    .category-section {
        padding-top: 14px;
    }

    .category-title {
        margin-top: 18px;
    }

    .product-card {
        min-height: 146px;
        padding: 14px;
    }

    .product-image {
        width: 108px;
        min-height: 118px;
        flex-basis: 108px;
    }

    .add-btn {
        width: 40px;
        padding: 9px;
    }

    .add-btn span {
        display: none;
    }

    .cart-bar {
        bottom: 12px;
        grid-template-columns: auto 1fr auto;
        min-height: 62px;
        border-radius: 18px;
    }

    .cart-bar-total {
        display: none;
    }

    .cart-bar-action {
        padding: 9px 10px;
    }

    .background-imagen .page-background {
        background-image: var(--background-image-mobile);
    }
}

@media (max-width: 430px) {
    .catalog-header,
    .catalog-main {
        width: calc(100% - 22px);
    }

    .business--overlap {
        grid-template-columns: 74px minmax(0, 1fr);
        gap: 12px;
        margin-left: 10px;
        margin-right: 10px;
    }

    .business--overlap .business-logo {
        width: 74px;
        height: 74px;
    }

    .business--overlap .business-copy {
        padding-top: 40px;
    }

    .business h1 {
        font-size: 1.55rem;
    }

    .business-meta {
        margin-top: 8px;
    }

    .product-image {
        width: 96px;
        min-height: 110px;
        flex-basis: 96px;
    }

    .product-card h3 {
        font-size: 1rem;
    }

    .product-card p {
        font-size: .82rem;
    }

    .cart-bar-action {
        font-size: 0;
    }

    .cart-bar-action i {
        font-size: .9rem;
    }
}


/* --------------------------------------------------
   PPW-UX-001: HEADER CON FONDO DECORATIVO FULL WIDTH
-------------------------------------------------- */

.catalog-header-full {
    width: 100%;
    padding: var(--header-full-padding-top) 20px var(--header-full-padding-bottom);
    background-color: var(--header-full-bg-color);
    background-image: var(--header-full-bg-image);
    background-position: var(--header-full-bg-position);
    background-size: var(--header-full-bg-size);
    background-repeat: var(--header-full-bg-repeat);
}

.catalog-header-full__inner {
    width: min(100%, var(--content-width));
    margin: 0 auto;
}

.business--full-background {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.business--full-background .business-logo {
    margin-bottom: 14px;
}

.business--full-background .business-meta {
    justify-content: center;
}

.business--full-background .powered,
.business--full-background h1 { color: var(--header-text, #fff); }
.business--full-background .business-meta,
.business--full-background .business-meta a,
.business--full-background .share-catalog,
.business--full-background .business-description {
    color: var(--header-text-soft, rgba(255,255,255,.82));
}

.business--full-background .business-description {
    margin-right: auto;
    margin-left: auto;
}

/* --------------------------------------------------
   PPW-UX-001: MICROINTERACCIONES DEL CARRITO
-------------------------------------------------- */

.add-btn.is-added {
    transform: scale(.94);
}

.add-btn.is-added::after {
    content: "✓";
}

.add-btn.is-added i,
.add-btn.is-added span {
    display: none;
}

.cart-bar.is-bumping {
    animation: cartBump .3s ease;
}

@keyframes cartBump {
    0%, 100% { transform: translateX(50%) scale(1); }
    50% { transform: translateX(50%) scale(1.035); }
}

/* --------------------------------------------------
   PPW-UX-001: BOTTOM SHEET EN MOBILE
-------------------------------------------------- */

@media (max-width: 767px) {
    .catalog-header-full {
        padding-right: 14px;
        padding-left: 14px;
        background-image: var(--header-full-bg-image-mobile);
    }

    .catalog-header-full .business-logo {
        width: min(96px, var(--logo-width));
        height: min(96px, var(--logo-width));
    }

    .cart-drawer {
        top: auto;
        right: 0;
        bottom: 0;
        left: 0;
        width: 100%;
        max-height: min(84vh, 760px);
        padding: 12px 18px max(18px, env(safe-area-inset-bottom));
        border-radius: 26px 26px 0 0;
        transform: translateY(105%);
        box-shadow: 0 -24px 70px rgba(16, 20, 30, .22);
    }

    .cart-drawer::before {
        content: "";
        width: 44px;
        height: 5px;
        flex: 0 0 auto;
        align-self: center;
        margin: 0 0 10px;
        border-radius: 999px;
        background: rgba(28, 33, 45, .18);
    }

    .cart-drawer.open {
        transform: translateY(0);
    }
}

/* PPW-CAT-002: subcategorías */
.subcategory-nav{display:flex;gap:8px;overflow-x:auto;padding:10px 2px 2px;scrollbar-width:none}.subcategory-nav::-webkit-scrollbar{display:none}.subcategory-nav[hidden]{display:none}.subcategory-nav button{border:1px solid rgba(20,83,45,.14);background:#fff;color:var(--text);border-radius:999px;padding:8px 14px;font:inherit;font-size:.88rem;font-weight:700;white-space:nowrap;cursor:pointer}.subcategory-nav button.active{background:var(--brand);border-color:var(--brand);color:#fff}.subcategory-section{margin-top:30px}.subcategory-title{margin-bottom:14px}.subcategory-title h3{margin:0;font-size:1.25rem}.subcategory-title p{margin:4px 0 0;color:var(--muted)}

/* --------------------------------------------------
   PPW-FLOW-001: CHECKOUT Y CARRITO PERSISTENTE
-------------------------------------------------- */
.cart-item-copy{min-width:0;flex:1}.cart-item-controls{flex:0 0 auto}.cart-item-controls .cart-remove{border-color:transparent;color:#a33;background:transparent}.cart-item-controls .cart-remove:hover{background:#fff0f0}.cart-empty{display:grid;place-items:center;gap:8px;padding:42px 15px;color:var(--muted);text-align:center}.cart-empty i{font-size:1.8rem}.cart-empty p{margin:0}.cart-minimum{margin:0 0 14px;padding:11px 13px;border-radius:12px;color:#8a5b00;background:#fff5d6;font-size:.82rem;line-height:1.4}.checkout-form{display:grid;gap:13px;padding-top:2px}.checkout-field{display:grid;gap:6px}.checkout-field>span,.checkout-delivery legend{color:var(--text);font-size:.78rem;font-weight:750}.checkout-field input,.checkout-field textarea{width:100%;border:1px solid rgba(28,33,45,.12);border-radius:12px;outline:0;background:#fff;padding:11px 12px;color:var(--text);resize:vertical}.checkout-field input:focus,.checkout-field textarea:focus{border-color:color-mix(in srgb,var(--brand) 55%,white);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 11%,transparent)}.checkout-delivery{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;border:0}.checkout-delivery legend{grid-column:1/-1;margin-bottom:1px}.checkout-delivery label{display:flex;align-items:center;gap:7px;padding:10px;border:1px solid rgba(28,33,45,.11);border-radius:12px;background:#fff;font-size:.82rem;cursor:pointer}.checkout-delivery input{accent-color:var(--brand)}.checkout-error{margin:0;padding:10px 12px;border-radius:11px;color:#9c2e2e;background:#fff0f0;font-size:.82rem;line-height:1.4}.send-order{display:flex;align-items:center;justify-content:center;gap:9px;cursor:pointer}.checkout-spinner{width:17px;height:17px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:checkoutSpin .7s linear infinite}@keyframes checkoutSpin{to{transform:rotate(360deg)}}
@media(max-width:767px){.cart-drawer{overflow:hidden}.cart-items{min-height:90px}.checkout-form{overflow-y:auto;padding-bottom:2px}.checkout-delivery{grid-template-columns:1fr}.checkout-delivery legend{grid-column:auto}.cart-item{align-items:flex-start}.cart-item-controls{gap:6px}.cart-item-controls button{width:30px;height:30px}}


/* ==================================================
   PPW-CATALOGO-001A · Catálogo sin imágenes
================================================== */
.catalog-without-images .product-card{min-height:142px;padding:19px 20px;}
.catalog-without-images .product-content{width:100%;}
.catalog-without-images .product-card p{max-width:100%;}
.catalog-without-images .product-bottom{padding-top:4px;}
.catalog-without-images .products-grid{align-items:stretch;}
@media (max-width:680px){
  .catalog-without-images .product-card{min-height:132px;padding:16px;}
  .catalog-without-images .product-card h3{font-size:1.02rem;}
}

/* --------------------------------------------------
   PPW-CATALOGO-001B · UX & CONVERSIÓN
-------------------------------------------------- */

:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--brand) 34%, transparent);
    outline-offset: 3px;
}

.catalog-status {
    position: relative;
    z-index: 8;
    width: min(calc(100% - 32px), var(--content-width));
    margin: -2px auto 0;
}

.catalog-status__inner {
    display: flex;
    gap: 10px;
    align-items: stretch;
    overflow-x: auto;
    padding: 10px;
    border: 1px solid color-mix(in srgb, var(--text) 8%, transparent);
    border-radius: 20px;
    background: color-mix(in srgb, var(--card) 94%, transparent);
    box-shadow: 0 16px 44px rgba(20, 24, 34, .08);
    backdrop-filter: blur(14px);
    scrollbar-width: none;
}

.catalog-status__inner::-webkit-scrollbar { display: none; }

.catalog-status__item {
    min-width: max-content;
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 8px 12px;
    border-radius: 14px;
    color: var(--text);
    text-decoration: none;
}

.catalog-status__item + .catalog-status__item {
    border-left: 1px solid color-mix(in srgb, var(--text) 8%, transparent);
    border-radius: 0 14px 14px 0;
}

.catalog-status__icon {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    flex: 0 0 34px;
    border-radius: 11px;
    color: var(--brand);
    background: color-mix(in srgb, var(--brand) 10%, var(--card));
}

.catalog-status__item span:not(.catalog-status__icon) {
    display: flex;
    flex-direction: column;
}

.catalog-status__item small {
    color: var(--muted);
    font-size: .66rem;
    line-height: 1.1;
}

.catalog-status__item strong {
    margin-top: 2px;
    font-size: .82rem;
    line-height: 1.15;
}

.catalog-status__item--state.is-open .catalog-status__icon {
    color: #16794c;
    background: #e9f8f0;
}

.catalog-status__item--state.is-closed .catalog-status__icon {
    color: #a65b18;
    background: #fff4e8;
}

.catalog-status__item--browse {
    margin-left: auto;
    transition: background .18s ease, transform .18s ease;
}

.catalog-status__item--browse:hover {
    background: color-mix(in srgb, var(--brand) 7%, transparent);
    transform: translateY(-1px);
}

.catalog-main {
    padding-bottom: 116px;
}

.catalog-tools {
    position: sticky;
    top: 0;
    z-index: 35;
    margin-top: 14px;
    padding-top: 10px;
    padding-bottom: 4px;
    background: linear-gradient(to bottom, color-mix(in srgb, var(--page-bg) 96%, transparent) 72%, transparent);
    backdrop-filter: blur(12px);
}

.search-box {
    min-height: 50px;
    box-shadow: 0 10px 28px rgba(20, 24, 34, .06);
}

.search-box:focus-within {
    border-color: color-mix(in srgb, var(--brand) 48%, transparent);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand) 10%, transparent), 0 12px 30px rgba(20, 24, 34, .08);
}

.category-nav-wrap {
    margin-inline: -2px;
}

.category-nav button,
.subcategory-nav button {
    touch-action: manipulation;
}

.category-nav button.active {
    transform: translateY(-1px);
}

.category-section {
    scroll-margin-top: 152px;
}

.category-title {
    position: relative;
    padding-bottom: 11px;
}

.category-title::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 44px;
    height: 3px;
    border-radius: 999px;
    background: var(--brand);
}

.product-card {
    position: relative;
    isolation: isolate;
}

.product-card::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--brand) 0%, transparent);
    transition: box-shadow .18s ease;
}

.product-card:focus-within::after {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 14%, transparent);
}

.product-card h3 {
    font-size: 1.1rem;
    letter-spacing: -.012em;
}

.product-card p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.price strong {
    font-size: 1.22rem;
    letter-spacing: -.02em;
}

.add-btn {
    min-width: 44px;
    min-height: 44px;
}

.add-btn:active {
    transform: scale(.96);
}

.add-btn.is-added {
    animation: ppwAddSuccess .6s ease;
}

@keyframes ppwAddSuccess {
    0%, 100% { transform: scale(1); }
    45% { transform: scale(1.12); }
}

.cart-bar {
    border: 1px solid rgba(255, 255, 255, .08);
}

.cart-bar.is-bumping {
    animation: ppwCartBump .32s ease;
}

@keyframes ppwCartBump {
    50% { transform: translateX(50%) scale(1.025); }
}

.cart-drawer {
    overscroll-behavior: contain;
}

.cart-item-copy {
    min-width: 0;
}

.cart-item-copy strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.checkout-field input,
.checkout-field textarea {
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.checkout-field input:focus,
.checkout-field textarea:focus {
    border-color: color-mix(in srgb, var(--brand) 50%, transparent);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand) 10%, transparent);
}

.send-order:not(:disabled) {
    cursor: pointer;
    box-shadow: 0 12px 28px color-mix(in srgb, var(--button) 24%, transparent);
    transition: transform .18s ease, filter .18s ease, box-shadow .18s ease;
}

.send-order:not(:disabled):hover {
    filter: brightness(.97);
    transform: translateY(-1px);
}

@media (max-width: 700px) {
    html { scroll-padding-top: 136px; }

    .catalog-status {
        width: calc(100% - 20px);
    }

    .catalog-status__inner {
        padding: 7px;
        border-radius: 17px;
    }

    .catalog-status__item {
        padding: 7px 9px;
    }

    .catalog-status__item--browse {
        margin-left: 0;
    }

    .catalog-main {
        width: calc(100% - 20px);
        padding-bottom: 104px;
    }

    .catalog-tools {
        margin-inline: -10px;
        padding-inline: 10px;
    }

    .category-arrow {
        display: none;
    }

    .category-nav-wrap {
        display: block;
    }

    .category-nav {
        margin-inline: -10px;
        padding: 2px 10px 8px;
        scroll-padding-inline: 10px;
        scroll-snap-type: x proximity;
    }

    .category-nav button {
        min-height: 42px;
        scroll-snap-align: start;
    }

    .category-title {
        margin-top: 18px;
    }

    .products-grid {
        grid-template-columns: 1fr;
        gap: 11px;
    }

    .product-card {
        min-height: 150px;
        padding: 14px;
    }

    .product-image {
        width: 104px;
        min-height: 122px;
        flex-basis: 104px;
    }

    .cart-bar {
        bottom: max(10px, env(safe-area-inset-bottom));
        width: calc(100% - 20px);
        min-height: 62px;
        grid-template-columns: auto 1fr auto;
        gap: 10px;
        border-radius: 18px;
    }

    .cart-bar-action {
        display: none;
    }

    .cart-drawer {
        top: auto;
        width: 100%;
        max-height: min(92dvh, 780px);
        padding: 18px 16px calc(18px + env(safe-area-inset-bottom));
        border-radius: 24px 24px 0 0;
        transform: translateY(105%);
    }

    .cart-drawer.open {
        transform: translateY(0);
    }
}

@media (max-width: 390px) {
    .product-card {
        gap: 11px;
    }

    .product-image {
        width: 92px;
        flex-basis: 92px;
    }

    .add-btn span {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}


/* --------------------------------------------------
   001D · LAYOUTS DE PRODUCTO
   El tema elige el layout desde catalogo_temas.layout.
-------------------------------------------------- */

.layout-editorial .products-grid,
.layout-minimal .products-grid {
    grid-template-columns: var(--ppw-products-columns, 1fr);
}

.layout-editorial .product-card,
.layout-minimal .product-card {
    min-height: var(--ppw-product-min-height, 148px);
}

.layout-editorial .product-card:hover,
.layout-minimal .product-card:hover {
    transform: var(--ppw-product-hover-transform, none);
    box-shadow: var(--ppw-product-hover-shadow, var(--ppw-product-shadow, none));
}

.layout-editorial .product-image {
    order: -1;
    width: var(--ppw-product-image-width, 170px);
    min-height: var(--ppw-product-image-height, 170px);
    flex-basis: var(--ppw-product-image-width, 170px);
}

.layout-fast-food .products-grid,
.layout-compacto .products-grid {
    grid-template-columns: var(--ppw-products-columns, repeat(2, minmax(0, 1fr)));
}

.layout-fast-food .product-card,
.layout-compacto .product-card {
    align-items: center;
}

.layout-fast-food .product-image,
.layout-compacto .product-image {
    order: -1;
}

.layout-grid .products-grid,
.layout-tienda .products-grid {
    grid-template-columns: var(--ppw-products-columns, repeat(3, minmax(0, 1fr)));
}

.layout-grid .product-card,
.layout-tienda .product-card {
    flex-direction: column;
}

.layout-grid .product-image,
.layout-tienda .product-image {
    order: -1;
    width: 100%;
    min-height: var(--ppw-product-image-height, 190px);
    flex-basis: auto;
}

/* Ajustes de contraste controlados por variables del tema. */
.drawer-head,
.drawer-total {
    border-color: var(--ppw-divider-color, rgba(28, 33, 45, .09));
}

.cart-item {
    border-color: var(--ppw-divider-color, rgba(28, 33, 45, .07));
}

.cart-item-controls button,
.drawer-head button {
    color: var(--ppw-control-color, var(--text));
    background: var(--ppw-control-bg, #fff);
}

.featured {
    color: var(--ppw-featured-color, #9a6500);
    background: var(--ppw-featured-bg, #fff2bd);
}

.product-tags span {
    color: var(--ppw-tag-color, var(--muted));
}

@media (max-width: 980px) {
    .layout-grid .products-grid,
    .layout-tienda .products-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .layout-editorial .product-image,
    .layout-minimal .product-image {
        width: var(--ppw-product-image-width-mobile, 112px);
        min-height: var(--ppw-product-image-height-mobile, 126px);
        flex-basis: var(--ppw-product-image-width-mobile, 112px);
    }

    .layout-grid .products-grid,
    .layout-tienda .products-grid,
    .layout-fast-food .products-grid,
    .layout-compacto .products-grid {
        grid-template-columns: 1fr;
    }
}


/* --------------------------------------------------
   LAYOUT ACCORDION / DESPLEGABLE
-------------------------------------------------- */
.layout-accordion .category-nav-wrap,
.layout-accordion .subcategory-nav {
    display: none !important;
}

.catalog-accordion {
    margin-top: 28px;
    border-top: 1px solid color-mix(in srgb, var(--text) 22%, transparent);
}

.accordion-category {
    border-bottom: 1px solid color-mix(in srgb, var(--text) 22%, transparent);
}

.accordion-category > summary {
    min-height: 70px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 8px;
    color: var(--brand);
    cursor: pointer;
    list-style: none;
    font-family: var(--font-title), Outfit, sans-serif;
    font-size: clamp(1rem, 2.2vw, 1.15rem);
    font-weight: 800;
    text-transform: uppercase;
}

.accordion-category > summary::-webkit-details-marker { display: none; }
.accordion-category > summary:hover { color: var(--brand-2); }
.accordion-category__icon { transition: transform .2s ease; }
.accordion-category[open] .accordion-category__icon { transform: rotate(45deg); }
.accordion-category__content { padding: 0 8px 26px; }
.accordion-category__description { margin: -4px 0 18px; color: var(--muted); }
.layout-accordion .products-grid { grid-template-columns: 1fr; gap: 0; }
.layout-accordion .product-card {
    min-height: auto;
    padding: 16px 0;
    border-width: 0 0 1px;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.layout-accordion .product-card:hover { transform: none; box-shadow: none; }
.layout-accordion .product-image { width: 104px; height: 82px; }
.layout-accordion .subcategory-section { margin-top: 24px; }
.layout-accordion .subcategory-title { padding-bottom: 8px; border-bottom: 1px dashed color-mix(in srgb, var(--text) 18%, transparent); }

@media (max-width: 680px) {
    .accordion-category > summary { min-height: 60px; padding: 15px 4px; }
    .accordion-category__content { padding: 0 4px 22px; }
    .layout-accordion .product-card { padding: 14px 0; }
}


/* PPW-CATALOGO-001F · Branding avanzado */
.logo-without-card .business-logo {
    height: auto;
    min-height: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.logo-without-card .business-logo img {
    height: auto;
    max-height: var(--logo-width);
}

.catalog-header--full-width {
    width: 100%;
    max-width: none;
    padding-top: 0;
}

.catalog-header--full-width .catalog-cover {
    border-radius: 0;
}

@media (max-width: 760px) {
    .catalog-header--full-width {
        width: 100%;
    }
}

/* ==================================================
   PPW-002A · Overrides de catálogo administrados por Superadmin
================================================== */

/* Separación segura entre cualquier encabezado y el estado del catálogo. */
.catalog-status {
    margin-top: var(--ppw-status-margin-top, 24px);
    margin-bottom: var(--ppw-status-margin-bottom, 0px);
}

body.header-logo_sobre_portada .catalog-status,
body.header-portada_logo_superpuesto .catalog-status {
    margin-top: var(--ppw-status-overlay-margin-top, 30px);
}

/* Títulos de categorías: cada propiedad puede sobrescribirse por empresa. */
.category-title {
    display: block;
    margin: var(--ppw-category-title-margin, 24px 0 16px);
    padding: var(--ppw-category-title-padding, 0 0 11px);
    border: var(--ppw-category-title-border, 0);
    border-radius: var(--ppw-category-title-radius, 0);
    background-color: var(--ppw-category-bg-color, transparent);
    background-image: var(--ppw-category-bg-image, none);
    background-position: var(--ppw-category-bg-position, center);
    background-size: var(--ppw-category-bg-size, cover);
    background-repeat: var(--ppw-category-bg-repeat, no-repeat);
    text-align: var(--ppw-category-text-align, left);
    overflow: hidden;
}

.category-title__content {
    width: 100%;
}

.category-title h2 {
    color: var(--ppw-category-text-color, var(--text));
    font-family: var(--font-category, var(--font-title)), Outfit, sans-serif;
    font-size: var(--ppw-category-title-size, clamp(1.55rem, 3vw, 1.9rem));
    font-weight: var(--ppw-category-title-weight, 700);
    line-height: var(--ppw-category-title-line-height, 1.1);
    letter-spacing: var(--ppw-category-title-letter-spacing, -.025em);
    text-transform: var(--ppw-category-text-transform, none);
}

.category-title p {
    color: var(--ppw-category-description-color, var(--muted));
    text-align: inherit;
}

.category-title::after {
    display: var(--ppw-category-decoration-display, block);
    left: var(--ppw-category-decoration-left, 0);
    right: var(--ppw-category-decoration-right, auto);
    width: var(--ppw-category-decoration-width, 44px);
    height: var(--ppw-category-decoration-height, 3px);
    background: var(--ppw-category-decoration-color, var(--brand));
}

/* Editorial Fresh sin imágenes: mayor densidad sin perder legibilidad. */
.theme-editorial-fresh.catalog-without-images .products-grid {
    gap: var(--ppw-editorial-compact-gap, 10px);
}

.theme-editorial-fresh.catalog-without-images .product-card {
    min-height: 0;
    gap: 0;
    padding: var(--ppw-editorial-compact-padding, 13px 15px);
}

.theme-editorial-fresh.catalog-without-images .product-content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 14px;
    align-items: center;
}

.theme-editorial-fresh.catalog-without-images .product-top,
.theme-editorial-fresh.catalog-without-images .product-card > .product-content > p,
.theme-editorial-fresh.catalog-without-images .product-tags {
    grid-column: 1;
}

.theme-editorial-fresh.catalog-without-images .product-card h3 {
    font-size: var(--ppw-editorial-compact-title-size, .98rem);
    line-height: 1.2;
}

.theme-editorial-fresh.catalog-without-images .product-card p {
    margin-top: 4px;
    font-size: var(--ppw-editorial-compact-description-size, .82rem);
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: var(--ppw-editorial-compact-description-lines, 2);
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.theme-editorial-fresh.catalog-without-images .product-tags {
    margin-top: 6px;
}

.theme-editorial-fresh.catalog-without-images .product-bottom {
    grid-column: 2;
    grid-row: 1 / span 3;
    align-self: center;
    min-width: max-content;
    padding: 0;
    gap: 10px;
}

.theme-editorial-fresh.catalog-without-images .add-btn span {
    display: none;
}

.theme-editorial-fresh.catalog-without-images .add-btn {
    width: 38px;
    min-width: 38px;
    height: 38px;
    min-height: 38px;
    flex: 0 0 38px;
    padding: 0;
    border-radius: 50%;
}

@media (max-width: 680px) {
    .catalog-status {
        margin-top: var(--ppw-status-margin-top-mobile, 18px);
    }

    .header-logo_sobre_portada + .catalog-status,
    .header-portada_logo_superpuesto + .catalog-status {
        margin-top: var(--ppw-status-overlay-margin-top-mobile, 24px);
    }

    .theme-editorial-fresh.catalog-without-images .product-card {
        padding: var(--ppw-editorial-compact-padding-mobile, 12px 13px);
    }

    .theme-editorial-fresh.catalog-without-images .product-content {
        column-gap: 10px;
    }

    .theme-editorial-fresh.catalog-without-images .product-bottom {
        flex-direction: column;
        align-items: flex-end;
        gap: 7px;
    }
}


/* PPW-CORE-001B: disponibilidad y forma de pago */
.catalog-status__item--hours{appearance:none;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer}.catalog-status__item--hours>i{margin-left:auto;transition:transform .2s ease}.catalog-status__item--hours.is-open>i{transform:rotate(180deg)}
.catalog-hours{max-width:var(--content-width,1040px);margin:12px auto 0;padding:0 16px}.catalog-hours__inner{padding:18px;border:1px solid rgba(28,33,45,.09);border-radius:18px;background:var(--card,#fff);box-shadow:0 10px 30px rgba(28,33,45,.06)}.catalog-hours__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.catalog-hours__heading small{display:block;color:var(--brand);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.catalog-hours__heading h2{margin:3px 0 0;font-size:1.08rem}.catalog-hours__heading button{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;background:rgba(28,33,45,.06);cursor:pointer}.catalog-hours__summary{margin:12px 0 0;color:var(--muted)}.catalog-hours__list{display:grid;gap:0;margin-top:12px}.catalog-hours__list div{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-top:1px solid rgba(28,33,45,.08)}.catalog-hours__list span{color:var(--muted)}.catalog-hours__list strong{text-align:right}.catalog-closed-message{display:flex;gap:12px;max-width:var(--content-width,1040px);margin:14px auto 0;padding:14px 18px;border-radius:16px;background:#fff5e7;color:#7a4a00}.catalog-closed-message i{font-size:1.15rem}.catalog-closed-message div{display:grid;gap:3px}.catalog-closed-message span{font-size:.88rem;line-height:1.45}.checkout-field select{width:100%;border:1px solid rgba(28,33,45,.12);border-radius:12px;outline:0;background:#fff;padding:11px 12px;color:var(--text)}.checkout-field select:focus{border-color:color-mix(in srgb,var(--brand) 55%,white);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 11%,transparent)}.checkout-field>small{color:var(--muted);font-size:.72rem;line-height:1.35}
@media(max-width:700px){.catalog-hours,.catalog-closed-message{margin-left:12px;margin-right:12px;padding-left:14px;padding-right:14px}.catalog-hours{padding:0}.catalog-hours__list div{gap:12px}.catalog-status__item--hours{min-width:210px}}

/* --------------------------------------------------
   MKT-002A · CARD PREMIUM UNIVERSAL
   Mantiene colores, tipografías, radios y sombras de cada tema.
-------------------------------------------------- */
.product-card.product-card--with-image {
    min-height: var(--ppw-product-premium-min-height, 168px);
    align-items: stretch;
}

.product-card.product-card--with-image .product-content {
    min-height: var(--ppw-product-premium-content-height, 134px);
}

.product-card.product-card--with-image .product-image {
    order: 2 !important;
    width: var(--ppw-product-image-square, 134px) !important;
    height: var(--ppw-product-image-square, 134px);
    min-height: 0 !important;
    flex: 0 0 var(--ppw-product-image-square, 134px) !important;
    align-self: center;
    padding: 0;
    border: 0;
    appearance: none;
    cursor: default;
    aspect-ratio: 1 / 1;
}

.product-card.product-card--with-image .product-image--zoomable {
    position: relative;
    cursor: zoom-in;
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.product-card.product-card--with-image .product-image--zoomable:hover,
.product-card.product-card--with-image .product-image--zoomable:focus-visible {
    transform: scale(1.018);
    box-shadow: 0 10px 24px rgba(20, 25, 35, .16);
    filter: saturate(1.03);
    outline: none;
}

.product-image__zoom {
    position: absolute;
    right: 8px;
    bottom: 8px;
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    color: #fff;
    background: rgba(15, 19, 26, .72);
    font-size: .75rem;
    opacity: 0;
    transform: translateY(3px);
    transition: opacity .18s ease, transform .18s ease;
    backdrop-filter: blur(6px);
}

.product-image--zoomable:hover .product-image__zoom,
.product-image--zoomable:focus-visible .product-image__zoom {
    opacity: 1;
    transform: translateY(0);
}

.product-card.product-card--with-image .product-bottom {
    padding-top: 8px;
}

/* Todos los layouts conservan sus columnas, pero la foto se muestra a la derecha. */
.layout-grid .product-card,
.layout-tienda .product-card {
    flex-direction: row;
}

.layout-grid .product-image,
.layout-tienda .product-image,
.layout-editorial .product-image,
.layout-minimal .product-image,
.layout-fast-food .product-image,
.layout-compacto .product-image {
    order: 2;
}

.product-lightbox[hidden] { display: none; }
body.product-lightbox-open { overflow: hidden; }

.product-lightbox {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: grid;
    place-items: center;
    padding: 20px;
}

.product-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(10, 13, 18, .76);
    backdrop-filter: blur(8px);
}

.product-lightbox__dialog {
    position: relative;
    z-index: 1;
    width: min(92vw, 760px);
    max-height: 92dvh;
    overflow: auto;
    border: var(--ppw-product-border, 1px solid rgba(255,255,255,.12));
    border-radius: max(var(--ppw-product-radius, var(--radius)), 20px);
    color: var(--text);
    background: var(--card);
    box-shadow: 0 30px 90px rgba(0, 0, 0, .34);
    animation: ppwProductLightboxIn .2s ease both;
}

@keyframes ppwProductLightboxIn {
    from { opacity: 0; transform: translateY(10px) scale(.985); }
}

.product-lightbox__close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 2;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 13px;
    color: #fff;
    background: rgba(15, 19, 26, .72);
    cursor: pointer;
    backdrop-filter: blur(8px);
}

.product-lightbox__image-wrap {
    width: 100%;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: inherit;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    background: var(--ppw-product-image-bg, color-mix(in srgb, var(--brand) 8%, #f3f3ef));
}

.product-lightbox__image-wrap img {
    width: 100%;
    max-height: min(68dvh, 680px);
    display: block;
    object-fit: contain;
}

.product-lightbox__content {
    padding: 20px 22px 23px;
}

.product-lightbox__content h2 {
    margin: 0;
    color: var(--text);
    font-family: var(--font-title), Outfit, sans-serif;
    font-size: clamp(1.25rem, 3vw, 1.65rem);
}

.product-lightbox__content p {
    margin: 7px 0 0;
    color: var(--muted);
    line-height: 1.5;
}

.product-lightbox__content strong {
    display: block;
    margin-top: 14px;
    color: var(--ppw-price-color, var(--brand));
    font-size: 1.3rem;
}

@media (max-width: 700px) {
    .product-card.product-card--with-image {
        min-height: 148px;
        gap: 12px;
    }

    .product-card.product-card--with-image .product-content {
        min-height: 120px;
    }

    .product-card.product-card--with-image .product-image {
        width: var(--ppw-product-image-square-mobile, 110px) !important;
        height: var(--ppw-product-image-square-mobile, 110px);
        flex-basis: var(--ppw-product-image-square-mobile, 110px) !important;
    }

    .product-image__zoom {
        opacity: 1;
        transform: none;
    }
}

@media (max-width: 390px) {
    .product-card.product-card--with-image .product-image {
        width: var(--ppw-product-image-square-small, 92px) !important;
        height: var(--ppw-product-image-square-small, 92px);
        flex-basis: var(--ppw-product-image-square-small, 92px) !important;
    }

    .product-card.product-card--with-image .product-content {
        min-height: 108px;
    }
}


/* MKT-002B | Bienvenida comercial para Patagonia Market */
.welcome-demo[hidden] { display: none !important; }
.welcome-demo { position: fixed; inset: 0; z-index: 1250; display: grid; place-items: center; padding: 24px; }
.welcome-demo__backdrop { position: absolute; inset: 0; background: rgba(16, 24, 20, .64); backdrop-filter: blur(5px); }
.welcome-demo__dialog {
    position: relative; z-index: 1; width: min(100%, 520px); max-height: calc(100vh - 48px); overflow: auto;
    padding: 34px; border-radius: max(18px, var(--card-radius, 20px)); text-align: center;
    color: var(--text-color, #243129); background: var(--card-color, #fff);
    box-shadow: 0 28px 80px rgba(10, 25, 17, .28); font-family: var(--font-body, Outfit, sans-serif);
}
.welcome-demo__close { position: absolute; top: 16px; right: 16px; width: 38px; height: 38px; border: 0; border-radius: 50%; background: color-mix(in srgb, var(--primary-color, #243a2d) 8%, transparent); color: var(--text-color, #243129); cursor: pointer; }
.welcome-demo__eyebrow { display: block; margin-bottom: 14px; color: var(--secondary-color, #b5713e); font-size: .72rem; font-weight: 800; letter-spacing: .14em; }
.welcome-demo__icon { display: grid; place-items: center; width: 66px; height: 66px; margin: 0 auto 18px; border-radius: 22px; background: var(--primary-color, #243a2d); color: var(--button-text-color, #fff); font-size: 1.8rem; box-shadow: 0 12px 28px color-mix(in srgb, var(--primary-color, #243a2d) 30%, transparent); }
.welcome-demo h2 { margin: 0 0 10px; font-family: var(--font-title, Outfit, sans-serif); font-size: clamp(1.75rem, 5vw, 2.35rem); line-height: 1.06; }
.welcome-demo p { margin: 0 auto; max-width: 410px; color: var(--muted-color, #716b60); line-height: 1.55; }
.welcome-demo__features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 24px 0 18px; text-align: left; }
.welcome-demo__features span { display: flex; align-items: center; gap: 9px; padding: 12px; border-radius: 14px; background: color-mix(in srgb, var(--primary-color, #243a2d) 7%, var(--card-color, #fff)); font-size: .86rem; font-weight: 700; }
.welcome-demo__features i { color: var(--secondary-color, #b5713e); font-size: 1.05rem; }
.welcome-demo__note { font-size: .88rem; }
.welcome-demo__primary { width: 100%; margin-top: 22px; padding: 14px 20px; border: 0; border-radius: 14px; background: var(--button-color, var(--primary-color, #243a2d)); color: var(--button-text-color, #fff); font: inherit; font-weight: 800; cursor: pointer; box-shadow: 0 10px 24px color-mix(in srgb, var(--button-color, #243a2d) 25%, transparent); }
.welcome-demo__remember { display: inline-flex; align-items: center; gap: 8px; margin-top: 15px; color: var(--muted-color, #716b60); font-size: .78rem; cursor: pointer; }
body.welcome-demo-open { overflow: hidden; }
@media (max-width: 560px) {
    .welcome-demo { padding: 14px; }
    .welcome-demo__dialog { padding: 30px 20px 24px; }
    .welcome-demo__features { grid-template-columns: 1fr; }
}


/* MKT-003A — Circuito comercial demo */
.demo-modal__conversion {
    display: grid;
    gap: 5px;
    margin: 16px 0 4px;
    padding: 14px 16px;
    border-radius: 14px;
    background: color-mix(in srgb, var(--ppw-primary, #176b45) 8%, #fff);
    border: 1px solid color-mix(in srgb, var(--ppw-primary, #176b45) 18%, transparent);
}
.demo-modal__conversion strong { font-size: 1rem; }
.demo-modal__conversion span { color: var(--ppw-text-muted, #667085); line-height: 1.45; }
.demo-modal__panel {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 0 18px;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 700;
    color: var(--ppw-primary, #176b45);
    border: 1px solid color-mix(in srgb, var(--ppw-primary, #176b45) 35%, transparent);
    background: #fff;
}
.demo-modal__panel:hover { background: color-mix(in srgb, var(--ppw-primary, #176b45) 6%, #fff); }
.demo-modal__preview > span { display: inline-flex; align-items: center; gap: 7px; }
@media (max-width: 640px) {
    .demo-modal__actions { grid-template-columns: 1fr !important; }
    .demo-modal__primary, .demo-modal__panel, .demo-modal__secondary { width: 100%; }
}

/* MKT-003B — Modal final visible por encima del carrito */
.demo-modal[hidden] { display: none !important; }
.demo-modal {
    position: fixed;
    inset: 0;
    z-index: 2100;
    display: grid;
    place-items: center;
    padding: 24px;
}
.demo-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(11, 22, 17, .72);
    backdrop-filter: blur(5px);
}
.demo-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(100%, 660px);
    max-height: calc(100vh - 48px);
    overflow-y: auto;
    padding: 32px;
    border-radius: max(18px, var(--ppw-card-radius, 20px));
    color: var(--ppw-text, #202b25);
    background: var(--ppw-card-bg, #fff);
    box-shadow: 0 30px 90px rgba(0, 0, 0, .32);
}
.demo-modal__close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 50%;
    color: var(--ppw-text, #202b25);
    background: rgba(30, 45, 37, .08);
    cursor: pointer;
}
.demo-modal__icon {
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    margin-bottom: 18px;
    border-radius: 20px;
    color: #fff;
    background: #25d366;
    font-size: 1.8rem;
}
.demo-modal h2 {
    margin: 0 48px 10px 0;
    font-family: var(--ppw-font-title, inherit);
    font-size: clamp(1.65rem, 4vw, 2.15rem);
    line-height: 1.1;
}
.demo-modal__dialog > p {
    margin: 0 0 18px;
    color: var(--ppw-text-muted, #667085);
    line-height: 1.55;
}
.demo-modal__preview {
    padding: 16px;
    border: 1px solid rgba(20, 40, 30, .12);
    border-radius: 16px;
    background: #f7faf8;
}
.demo-modal__preview > span {
    margin-bottom: 10px;
    color: var(--ppw-primary, #176b45);
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.demo-modal__preview pre {
    margin: 0;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    color: #243129;
    font: 500 .92rem/1.55 var(--ppw-font-body, inherit);
}
.demo-modal__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 18px;
}
.demo-modal__primary,
.demo-modal__panel,
.demo-modal__secondary {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 16px;
    border-radius: 12px;
    font: inherit;
    font-weight: 800;
    text-align: center;
    cursor: pointer;
}
.demo-modal__primary {
    color: #fff;
    text-decoration: none;
    border: 1px solid var(--ppw-primary, #176b45);
    background: var(--ppw-primary, #176b45);
}
.demo-modal__secondary {
    grid-column: 1 / -1;
    color: var(--ppw-text, #202b25);
    border: 1px solid rgba(20, 40, 30, .16);
    background: #fff;
}
body.demo-modal-open { overflow: hidden; }

@media (max-width: 640px) {
    .demo-modal { padding: 12px; }
    .demo-modal__dialog { padding: 26px 18px 20px; max-height: calc(100vh - 24px); }
    .demo-modal__actions { grid-template-columns: 1fr; }
    .demo-modal__secondary { grid-column: auto; }
}
