/* ═══ CATALOG — EDITORIAL LAYOUT ═══ */

    /* Override mut-page padding for full catalog layout */
    .mut-page.eca-page-outer {
        padding: 0 !important;
        max-width: none !important;
    }

    /* Page wrapper */
    .eca-page {
        display: flex;
        min-height: 100vh;
        padding-top: 0;
        max-width: 1600px;
        margin: 0 auto;
        padding: 0 24px;
    }
    @media (max-width: 575px) { .eca-page { padding: 0 12px; } }

    /* ─── SIDEBAR ─── */
    .eca-sidebar {
        width: 210px;
        flex-shrink: 0;
        padding: 36px 20px 36px 0;
        position: sticky;
        top: 116px;
        height: calc(100vh - 116px);
        overflow-y: auto;
        border-right: 1px solid var(--c-outline-var);
    }
    @media (max-width: 991px) { .eca-sidebar { display: none; } }

    .eca-sidebar-heading {
        font-size: 11px; font-weight: 800; text-transform: uppercase;
        letter-spacing: 0.18em; color: var(--c-on-surface); margin-bottom: 2px;
    }
    .eca-sidebar-sub {
        font-size: 9px; font-weight: 600; text-transform: uppercase;
        letter-spacing: 0.2em; color: var(--c-primary-light); margin-bottom: 24px;
    }

    /* Section title (CATEGORÍAS / MARCAS) */
    .eca-filter-section-title {
        display: flex; align-items: center; gap: 8px;
        font-size: 9px; font-weight: 800; text-transform: uppercase;
        letter-spacing: 0.18em; color: var(--c-on-surface);
        margin: 20px 0 10px; padding-bottom: 8px;
        border-bottom: 2px solid var(--c-on-surface);
    }
    .eca-filter-section-title:first-child { margin-top: 0; }
    .eca-filter-section-title i { font-size: 11px; color: var(--c-primary); }

    /* Category group title (RELOJES, etc.) */
    .eca-filter-cat-title {
        font-size: 10px; font-weight: 700; text-transform: uppercase;
        letter-spacing: 0.1em; color: var(--c-on-surface);
        margin: 12px 0 4px; display: block;
        padding: 4px 0 4px 8px;
        border-left: 2px solid var(--c-primary);
    }

    /* Filter items */
    .eca-filter-list { list-style: none; padding: 0; margin: 0 0 4px; }
    .eca-filter-item { display: block; }
    .eca-filter-item a {
        display: flex; align-items: center; gap: 0;
        padding: 5px 8px;
        text-decoration: none;
        transition: background 0.12s;
    }
    .eca-filter-item a:hover { background: var(--c-container-low); }

    /* Hidden native checkbox — indicator lives on .fil-label::before */
    .eca-filter-item a input[type="checkbox"] {
        display: none;
    }

    /* Dot indicator via ::before on the label */
    .eca-filter-item a .fil-label {
        font-family: var(--font-sans);
        font-size: 12px; font-weight: 400;
        color: var(--c-on-surface);
        line-height: 1.4; cursor: pointer;
        word-break: break-word;
        display: flex; align-items: center; gap: 8px;
    }
    .eca-filter-item a .fil-label::before {
        content: '';
        flex-shrink: 0;
        width: 5px; height: 5px;
        border-radius: 50%;
        background: #d4d4d4;
        transition: background 0.15s, transform 0.15s;
    }
    .eca-filter-item a:hover .fil-label { color: var(--c-primary); }
    .eca-filter-item a:hover .fil-label::before { background: var(--c-primary-light); }
    .eca-filter-item a input:checked ~ .fil-label {
        color: var(--c-primary); font-weight: 600;
    }
    .eca-filter-item a input:checked ~ .fil-label::before {
        background: var(--c-primary);
        transform: scale(1.4);
    }

    /* ─── MAIN CONTENT ─── */
    .eca-main {
        flex: 1;
        min-width: 0;
        padding: 40px 0 64px 40px;
    }
    @media (max-width: 991px) { .eca-main { padding: 24px 0 48px 0; } }

    /* ─── TOP BAR ─── */
    .eca-topbar {
        display: flex; align-items: center; justify-content: space-between;
        margin-bottom: 32px; gap: 12px; flex-wrap: wrap;
    }
    .eca-topbar-left { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
    .eca-filter-toggle {
        display: none; align-items: center; gap: 6px;
        font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.15em;
        background: none; border: 1px solid var(--c-outline-var);
        color: var(--c-on-surface); padding: 8px 16px; cursor: pointer;
        transition: all 0.15s;
    }
    .eca-filter-toggle:hover { border-color: var(--c-primary); color: var(--c-primary); }
    @media (max-width: 991px) { .eca-filter-toggle { display: flex; } }

    .eca-sort-wrap { display: flex; align-items: center; gap: 8px; }
    .eca-sort-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.15em; color: var(--c-on-var); }
    .eca-sort-select {
        font-family: var(--font-sans); font-size: 11px; font-weight: 600;
        text-transform: uppercase; letter-spacing: 0.08em;
        border: 1px solid var(--c-outline-var); background: #fff;
        padding: 7px 28px 7px 10px; color: var(--c-on-surface);
        appearance: none; cursor: pointer;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%237f5621'/%3E%3C/svg%3E");
        background-repeat: no-repeat; background-position: right 10px center;
        outline: none; transition: border-color 0.15s;
    }
    .eca-sort-select:focus { border-color: var(--c-primary); }

    .eca-clear-btn {
        display: inline-flex; align-items: center; gap: 6px;
        font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em;
        border: 1px solid var(--c-outline-var); color: var(--c-on-var);
        padding: 7px 14px; text-decoration: none; transition: all 0.15s;
        background: none;
    }
    .eca-clear-btn:hover { border-color: var(--c-primary); color: var(--c-primary); }

    /* ─── EDITORIAL HEADER ─── */
    .eca-header {
        margin-bottom: 48px;
        max-width: 640px;
    }
    .eca-header-label {
        font-size: 10px; font-weight: 700; text-transform: uppercase;
        letter-spacing: 0.3em; color: var(--c-primary); margin-bottom: 12px; display: block;
    }
    .eca-header-title {
        font-family: var(--font-serif);
        font-size: 3rem; font-weight: 300; line-height: 1.1;
        letter-spacing: -0.02em; color: var(--c-on-surface);
        margin: 0 0 16px;
    }
    @media (max-width: 575px) { .eca-header-title { font-size: 2rem; } }
    .eca-header-desc {
        font-size: 13px; color: var(--c-on-var); line-height: 1.7; margin: 0;
    }

    /* ─── PRODUCT GRID ─── */
    .eca-grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 28px 20px;
    }
    @media (max-width: 1199px) { .eca-grid { grid-template-columns: repeat(3, 1fr); gap: 24px 16px; } }
    @media (max-width: 767px) { .eca-grid { grid-template-columns: repeat(2, 1fr); gap: 16px 10px; } }

    /* ─── PRODUCT CARD ─── */
    .eca-card { display: flex; flex-direction: column; gap: 0; height: 100%; }
    .eca-card-img-wrap {
        display: block; position: relative;
        aspect-ratio: 4 / 5;
        overflow: hidden;
        background: var(--c-container-low);
    }
    .eca-card-img-wrap img {
        width: 100%; height: 100%; object-fit: cover;
        transition: transform 0.7s ease;
    }
    .eca-card:hover .eca-card-img-wrap img { transform: scale(1.06); }

    .eca-card-info {
        background: #fff;
        padding: 14px 4px 16px;
        flex: 1;
        display: flex;
        flex-direction: column;
    }
    .eca-card-price-row { margin-top: auto; padding-top: 8px; }
    .eca-cart { margin-top: 12px; }
    .eca-card-brand {
        font-size: 9px; font-weight: 800; text-transform: uppercase;
        letter-spacing: 0.2em; color: var(--c-on-surface); margin-bottom: 4px;
    }
    .eca-card-name {
        font-family: var(--font-serif);
        font-size: 1.1rem; font-style: italic; font-weight: 400;
        color: var(--c-on-surface); line-height: 1.3; margin-bottom: 10px;
    }
    .eca-card-name a { color: inherit; text-decoration: none; }
    .eca-card-name a:hover { color: var(--c-primary); }
    .eca-card-price-row {
        display: flex; align-items: baseline; justify-content: space-between;
        margin-bottom: 14px;
    }
    .eca-card-price {
        font-family: var(--font-sans); font-size: 13px; font-weight: 600;
        color: var(--c-on-surface);
    }
    .eca-card-subcat {
        font-size: 10px; color: var(--c-on-var); text-transform: uppercase;
        letter-spacing: 0.1em;
    }

    /* ─── CART CONTROLS (authenticated) ─── */
    .eca-qty-row {
        display: flex; align-items: center;
        border: 1px solid var(--c-outline-var); overflow: hidden;
        height: 34px; margin-bottom: 8px;
    }
    .eca-qty-btn {
        width: 34px; height: 100%;
        background: var(--c-container-low); border: none; outline: none;
        font-size: 15px; font-weight: 600; color: var(--c-on-surface);
        cursor: pointer; flex-shrink: 0; transition: background 0.15s, color 0.15s;
        display: flex; align-items: center; justify-content: center;
    }
    .eca-qty-btn:hover { background: var(--c-primary); color: #fff; }
    .eca-qty-input {
        flex: 1; height: 100%; border: none; outline: none;
        text-align: center; font-size: 12px; font-weight: 700;
        background: #fff; color: var(--c-on-surface);
        -moz-appearance: textfield;
    }
    .eca-qty-input::-webkit-outer-spin-button,
    .eca-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; }

    .eca-add-btn {
        width: 100%; height: 40px;
        background: var(--c-on-surface); color: #fff;
        border: none; cursor: pointer;
        font-family: var(--font-sans); font-size: 10px; font-weight: 800;
        text-transform: uppercase; letter-spacing: 0.15em;
        display: flex; align-items: center; justify-content: center; gap: 6px;
        transition: background 0.2s, opacity 0.2s;
    }
    .eca-add-btn:hover { background: var(--c-primary); }

    .eca-out-of-stock {
        width: 100%; height: 40px;
        background: var(--c-container-low);
        border: 1px solid var(--c-outline-var);
        font-size: 10px; font-weight: 700; text-transform: uppercase;
        letter-spacing: 0.12em; color: var(--c-on-var);
        display: flex; align-items: center; justify-content: center; gap: 6px;
    }
    .eca-out-of-stock a { color: var(--c-primary); text-decoration: underline; cursor: pointer; }

    /* ─── MOBILE FILTER DRAWER ─── */
    .eca-filter-drawer {
        display: none; position: fixed; inset: 0; z-index: 9999;
    }
    .eca-filter-drawer.open { display: flex; }
    .eca-filter-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.45); }
    .eca-filter-panel {
        position: relative; width: 280px; max-width: 90vw;
        background: #fff; height: 100%; overflow-y: auto;
        box-shadow: 4px 0 24px rgba(0,0,0,0.12);
        display: flex; flex-direction: column;
    }
    .eca-filter-panel-head {
        display: flex; align-items: center; justify-content: space-between;
        padding: 20px 24px; border-bottom: 1px solid var(--c-outline-var);
        font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.15em;
        flex-shrink: 0;
    }
    .eca-filter-panel-close {
        background: none; border: none; cursor: pointer; font-size: 20px;
        color: var(--c-on-surface); padding: 2px;
    }
    .eca-filter-panel-body { padding: 24px; flex: 1; overflow-y: auto; }