/* =========================================================
   CATÁLOGO ADEGSO
   ========================================================= */

.catalog-topbar{
    background:linear-gradient(90deg,#0d1620 0%,#1d426b 100%);
    color:#fff;
}
.catalog-topbar-inner{
    min-height:78px;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(420px,620px);
    gap:28px;
    align-items:center;
}
.catalog-topbar-copy{
    min-width:0;
    display:flex;
    align-items:baseline;
    gap:18px;
}
.catalog-topbar-kicker{
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.14em;
    color:#9dc5e7;
    white-space:nowrap;
}
.catalog-topbar h1{
    margin:0;
    color:#fff;
    font-size:clamp(1.45rem,2.4vw,2.2rem);
    line-height:1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.catalog-search{
    display:flex;
    gap:8px;
    width:100%;
}
.catalog-search input{
    flex:1;
    min-width:0;
    height:42px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:10px;
    padding:0 15px;
    font:inherit;
    font-size:.88rem;
    outline:none;
    background:#fff;
    color:#15202b;
}
.catalog-search button{
    height:42px;
    border:0;
    border-radius:10px;
    padding:0 20px;
    background:#fff;
    color:#0d3f66;
    font:inherit;
    font-weight:800;
    cursor:pointer;
}

.catalog-shell{
    background:#fff;
    padding:42px 0 82px;
}
.catalog-shell-grid{
    display:grid;
    grid-template-columns:270px minmax(0,1fr);
    gap:40px;
    align-items:start;
}

/* Sidebar */
.catalog-sidebar{
    position:sticky;
    top:108px;
    min-width:0;
}
.catalog-sidebar-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:12px;
    padding-bottom:13px;
    margin-bottom:8px;
    border-bottom:1px solid rgba(21,32,43,.12);
}
.catalog-sidebar-head strong{
    font-size:1.18rem;
    color:#15202b;
}
.catalog-sidebar-head span{
    color:#7b8794;
    font-size:.72rem;
    white-space:nowrap;
}
.catalog-tree-all{
    display:block;
    padding:8px 10px;
    margin:0 0 2px;
    border-radius:7px;
    color:#15202b;
    font-size:.91rem;
    font-weight:700;
}
.catalog-tree-all:hover,
.catalog-tree-all.active{
    color:#0d3f66;
    background:#edf3f8;
}
.catalog-tree-list{
    margin:0;
    padding:0;
    list-style:none;
}
.catalog-tree-item{margin:1px 0}
.catalog-tree-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) 30px;
    align-items:center;
    border-radius:7px;
}
.catalog-tree-item:not(.has-children) .catalog-tree-row{
    grid-template-columns:1fr;
}
.catalog-tree-link{
    display:block;
    min-width:0;
    padding:7px 10px;
    font-size:.9rem;
    line-height:1.25;
    color:#263646;
    border-radius:7px;
}
.catalog-tree-link:hover{
    color:#0d3f66;
    background:#f4f7fa;
}
.catalog-tree-item.selected > .catalog-tree-row{
    background:#e9eef3;
}
.catalog-tree-item.selected > .catalog-tree-row .catalog-tree-link{
    color:#1f5f9a;
    font-weight:700;
}
.catalog-tree-toggle{
    width:30px;
    height:30px;
    border:0;
    padding:0;
    background:transparent;
    color:#15202b;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
}
.catalog-tree-chevron{
    display:block;
    font-size:1.05rem;
    line-height:1;
    transition:transform .2s ease;
}
.catalog-tree-item.open > .catalog-tree-row .catalog-tree-chevron{
    transform:rotate(180deg);
}
.catalog-tree-children{
    display:none;
    margin-left:13px;
    padding-left:9px;
    border-left:1px solid rgba(21,32,43,.10);
}
.catalog-tree-item.open > .catalog-tree-children{
    display:block;
}
.catalog-tree-children .catalog-tree-link{
    font-size:.85rem;
    padding-top:6px;
    padding-bottom:6px;
}

/* Main */
.catalog-main{min-width:0}
.catalog-main-head{min-height:32px;margin-bottom:18px}
.catalog-count{
    color:#667382;
    font-size:.88rem;
    margin-top:7px;
}
.catalog-category-path{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:7px;
    color:#7a8794;
    font-size:.8rem;
    font-weight:600;
}
.catalog-category-path a:hover,
.catalog-category-path a.active{
    color:#0d3f66;
}

/* Compact product grid */
.catalog-product-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:34px 18px;
}
.catalog-card{
    min-width:0;
    background:transparent;
    border:0;
    border-radius:0;
    overflow:visible;
    box-shadow:none;
    transition:none;
}
.catalog-card:hover{transform:none;box-shadow:none}
.catalog-card-image{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    aspect-ratio:1/1;
    padding:12px;
    background:#f4f4f3;
    overflow:hidden;
}
.catalog-card-image img{
    width:100%;
    height:100%;
    object-fit:contain;
    transition:transform .2s ease;
}
.catalog-card:hover .catalog-card-image img{
    transform:scale(1.025);
}
.catalog-card-body{
    padding:12px 0 0;
}
.catalog-card h2{
    margin:0 0 7px;
    font-size:.92rem;
    line-height:1.28;
    font-weight:750;
    color:#101820;
}
.catalog-card h2 a{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.catalog-card-meta{
    display:block;
    color:#334150;
    font-size:.78rem;
    font-weight:500;
    text-transform:none;
    letter-spacing:0;
}
.catalog-card-meta span{
    display:block;
    color:#24313d;
    font-size:.82rem;
}
.catalog-card-meta a{
    display:block;
    margin-top:4px;
    color:#7c8895;
    font-size:.68rem;
}
.catalog-card-meta a:hover{color:#0d3f66}

.catalog-pagination{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:8px;
    margin-top:52px;
}
.catalog-pagination a{
    min-width:38px;
    height:38px;
    padding:0 11px;
    border-radius:8px;
    border:1px solid rgba(21,32,43,.10);
    background:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:700;
    font-size:.85rem;
}
.catalog-pagination a.active,
.catalog-pagination a:hover{
    background:#0d3f66;
    color:#fff;
}
.catalog-empty{
    text-align:center;
    padding:70px 20px;
    background:#f7f9fb;
}
.catalog-empty p{
    color:#586574;
    margin-bottom:24px;
}

@media(max-width:1180px){
    .catalog-product-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
    .catalog-shell-grid{grid-template-columns:240px minmax(0,1fr);gap:28px}
    .catalog-topbar-inner{grid-template-columns:minmax(0,1fr) minmax(350px,500px)}
}
@media(max-width:930px){
    .catalog-topbar-inner{
        grid-template-columns:1fr;
        gap:12px;
        padding-top:15px;
        padding-bottom:15px;
    }
    .catalog-shell-grid{grid-template-columns:1fr}
    .catalog-sidebar{
        position:static;
        border:1px solid rgba(21,32,43,.10);
        border-radius:14px;
        padding:16px;
    }
    .catalog-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:680px){
    .catalog-topbar-copy{display:block}
    .catalog-topbar-kicker{display:block;margin-bottom:7px}
    .catalog-topbar h1{white-space:normal}
    .catalog-search input{font-size:.82rem}
    .catalog-search button{padding:0 15px}
    .catalog-product-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:26px 12px;
    }
    .catalog-card h2{font-size:.86rem}
}


.product-page{padding:38px 0 96px;background:#fff}
.product-breadcrumb{
    display:flex;flex-wrap:wrap;gap:8px;color:#73808c;font-size:.85rem;margin-bottom:34px
}
.product-layout{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.product-photo{
    aspect-ratio:1/1;background:#f4f4f3;border-radius:24px;padding:30px;
    display:flex;align-items:center;justify-content:center
}
.product-photo img{width:100%;height:100%;object-fit:contain}
.product-code{
    display:inline-block;color:#0d3f66;font-size:.8rem;font-weight:800;
    letter-spacing:.1em;margin-bottom:16px
}
.product-info h1{font-size:clamp(2rem,4vw,3.7rem);margin-bottom:12px}
.product-category{color:#586574;font-weight:600}
.product-status{
    display:inline-block;margin:14px 0;padding:8px 12px;border-radius:999px;
    background:#eaf8f1;color:#127346;font-size:.82rem;font-weight:800
}
.product-price{font-size:2rem;font-weight:800;margin:4px 0 16px}
.product-description{color:#586574;font-size:1.02rem;max-width:620px}
.product-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.spec-section{margin-top:80px;border-top:1px solid rgba(21,32,43,.1);padding-top:54px}
.spec-heading h2{font-size:clamp(1.8rem,3vw,2.7rem)}
.spec-table{margin:30px 0 0;border-top:1px solid rgba(21,32,43,.1)}
.spec-table div{
    display:grid;grid-template-columns:minmax(200px,.7fr) 1.3fr;
    gap:30px;padding:15px 4px;border-bottom:1px solid rgba(21,32,43,.1)
}
.spec-table dt{font-weight:700;color:#586574}
.spec-table dd{margin:0;font-weight:600}
.product-logistics{
    margin-top:24px;padding:18px 20px;border-radius:14px;background:#f5f7fa;color:#586574
}
@media(max-width:1050px){.catalog-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){
    .catalog-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .product-layout{grid-template-columns:1fr;gap:34px}
    .catalog-search{flex-direction:column}
    .catalog-search button{min-height:52px}
}
@media(max-width:520px){
    .catalog-product-grid{grid-template-columns:1fr 1fr;gap:10px}
    .catalog-card-body{padding:14px}
    .catalog-card-meta{display:block}
    .catalog-card-meta span{display:block}
    .catalog-card h2{font-size:.92rem}
    .catalog-card-footer .availability{font-size:.7rem}
    .spec-table div{grid-template-columns:1fr;gap:4px}
    .product-photo{padding:18px}
}

/* Navegación contextual de categorías */
.catalog-category-path{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    margin:0 0 14px;
    color:#73808c;
    font-size:.86rem;
    font-weight:600;
}
.catalog-category-path a:hover,
.catalog-category-path a.active{
    color:#0d3f66;
}