/*
Theme Name: Inogar
Theme URI: https://www.inogar.es
Author: Inogar
Author URI: https://www.inogar.es
Description: Tema oficial de Muebles Inogar - Sofás, Colchones y Muebles en Moraleja y Coria, Extremadura.
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: inogar
*/

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --azul:#1e3a5f;--azul2:#2d5a8e;--dorado:#c8973e;
  --crema:#f7f3ee;--blanco:#fff;--oscuro:#2c2c2c;
  --gris:#6b6b6b;--gris-oscuro:#333;--borde:#e0d8cc;
  --sombra:0 4px 20px rgba(0,0,0,.08);
  --sombra2:0 8px 30px rgba(0,0,0,.15);
  --radio:8px;--trans:all .3s ease;
  --title:'Playfair Display',Georgia,serif;
  --body:'Lato',Arial,sans-serif;
}
html{scroll-behavior:smooth}
body{font-family:var(--body);font-size:16px;color:var(--oscuro);background:var(--blanco);line-height:1.7}
img{max-width:100%;height:auto;display:block}
a{color:var(--azul);text-decoration:none;transition:var(--trans)}
a:hover{color:var(--dorado)}
ul{list-style:none}
h1,h2,h3,h4,h5{font-family:var(--title);font-weight:700;line-height:1.3;color:var(--azul)}

.container{max-width:1200px;margin:0 auto;padding:0 20px}
.sec-title{font-size:2.2rem;margin-bottom:10px;text-align:center}
.sec-sub{font-size:1.05rem;color:var(--gris);text-align:center;margin-bottom:40px}

.btn{display:inline-block;padding:13px 32px;border-radius:var(--radio);font-family:var(--body);font-size:15px;font-weight:700;letter-spacing:.5px;cursor:pointer;transition:var(--trans);border:2px solid transparent}
.btn-primary{background:var(--dorado);color:var(--blanco);border-color:var(--dorado)}
.btn-primary:hover{background:transparent;color:var(--dorado)}
.btn-outline{background:transparent;color:var(--blanco);border-color:var(--blanco)}
.btn-outline:hover{background:var(--blanco);color:var(--azul)}
.btn-white{background:var(--blanco);color:var(--dorado);border-color:var(--blanco)}
.btn-white:hover{background:transparent;color:var(--blanco);border-color:var(--blanco)}

/* HEADER */
.site-header{position:sticky;top:0;z-index:1000;background:var(--azul);box-shadow:0 2px 15px rgba(0,0,0,.2)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;max-width:1200px;margin:0 auto}
.site-logo{display:flex;flex-direction:column;align-items:flex-start}
.logo-text{font-family:var(--title);font-size:1.9rem;font-weight:700;color:var(--blanco);letter-spacing:1px}
.logo-tag{font-size:.68rem;color:var(--dorado);letter-spacing:2px;text-transform:uppercase}
.site-nav ul{display:flex;gap:6px;align-items:center}
.site-nav ul li a{color:rgba(255,255,255,.85);font-size:13px;font-weight:600;letter-spacing:.5px;padding:8px 14px;border-radius:5px;transition:var(--trans);text-transform:uppercase}
.site-nav ul li a:hover,.site-nav ul li.current-menu-item a{color:var(--blanco);background:rgba(255,255,255,.1)}
.site-nav ul li.nav-cta a{background:var(--dorado);color:var(--blanco)}
.site-nav ul li.nav-cta a:hover{background:#b8832c}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:5px;flex-direction:column;gap:5px}
.menu-toggle span{display:block;width:25px;height:2px;background:var(--blanco);transition:var(--trans)}
.menu-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(30,58,95,.97);z-index:999;flex-direction:column;align-items:center;justify-content:center;gap:25px}
.menu-overlay.open{display:flex}
.menu-overlay ul{text-align:center}
.menu-overlay ul li{margin-bottom:20px}
.menu-overlay ul li a{color:var(--blanco);font-size:1.5rem;font-family:var(--title)}
.menu-close{position:absolute;top:20px;right:25px;background:none;border:none;color:var(--blanco);font-size:2rem;cursor:pointer}

/* HERO */
.hero{background:linear-gradient(135deg,var(--azul) 0%,var(--azul2) 100%);color:var(--blanco);padding:100px 20px;text-align:center;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23fff' fill-opacity='0.04' fill-rule='evenodd'%3E%3Cpath d='M0 40L40 0H20L0 20M40 40V20L20 40'/%3E%3C/g%3E%3C/svg%3E")}
.hero-content{position:relative;z-index:1;max-width:750px;margin:0 auto}
.hero h1{font-size:3.5rem;color:var(--blanco);margin-bottom:20px;text-shadow:0 2px 10px rgba(0,0,0,.2)}
.hero p{font-size:1.2rem;color:rgba(255,255,255,.85);margin-bottom:35px;line-height:1.8}
.hero-btns{display:flex;gap:15px;justify-content:center;flex-wrap:wrap}

/* CATEGORIES */
.cat-section{padding:80px 20px;background:var(--crema)}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px;margin-top:40px}
.cat-card{background:var(--blanco);border-radius:var(--radio);padding:28px 15px;text-align:center;box-shadow:var(--sombra);transition:var(--trans);border:2px solid transparent;cursor:pointer;text-decoration:none;display:block;color:inherit}
.cat-card:hover{transform:translateY(-5px);box-shadow:var(--sombra2);border-color:var(--dorado);color:inherit}
.cat-card .icon{font-size:2.5rem;display:block;margin-bottom:10px}
.cat-card h3{font-size:.95rem;color:var(--azul);font-family:var(--body);font-weight:700}

/* ABOUT */
.about-section{padding:80px 20px;background:var(--blanco)}
.about-inner{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.about-content h2{font-size:2rem;margin-bottom:20px}
.about-content p{color:var(--gris);margin-bottom:15px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px}
.stat{text-align:center}
.stat .num{font-family:var(--title);font-size:2.5rem;font-weight:700;color:var(--dorado);display:block}
.stat .lab{font-size:.82rem;color:var(--gris);text-transform:uppercase;letter-spacing:.5px}
.about-img{background:var(--crema);border-radius:12px;overflow:hidden;min-height:350px;display:flex;align-items:center;justify-content:center;border:3px solid var(--borde);text-align:center;color:var(--gris);padding:40px}
.about-img span{font-size:5rem;display:block;margin-bottom:10px}

/* CTA BANNER */
.cta-banner{background:var(--dorado);padding:60px 20px;text-align:center;color:var(--blanco)}
.cta-banner h2{font-size:2rem;color:var(--blanco);margin-bottom:10px}
.cta-banner p{font-size:1.1rem;margin-bottom:25px;opacity:.9}

/* FOOTER */
.site-footer{background:var(--oscuro);color:rgba(255,255,255,.75);padding:60px 20px 30px}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:40px;margin-bottom:40px}
.fcol h4{font-family:var(--title);font-size:1.1rem;color:var(--blanco);margin-bottom:15px;padding-bottom:8px;border-bottom:2px solid var(--dorado);display:inline-block}
.fcol .flogo{font-family:var(--title);font-size:1.8rem;font-weight:700;color:var(--blanco)}
.fcol .ftag{color:var(--dorado);font-size:.73rem;letter-spacing:2px;text-transform:uppercase;display:block;margin-bottom:15px}
.fcol p{font-size:.9rem;line-height:1.7;margin-bottom:8px}
.fcol ul li{margin-bottom:8px}
.fcol ul li a{color:rgba(255,255,255,.75);font-size:.9rem}
.fcol ul li a:hover{color:var(--dorado)}
.fcontact-item{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px;font-size:.9rem}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:25px;text-align:center;font-size:.85rem;color:rgba(255,255,255,.45)}

/* PAGE BANNER */
.page-banner{background:linear-gradient(135deg,var(--azul) 0%,var(--azul2) 100%);padding:60px 20px;text-align:center;color:var(--blanco)}
.page-banner h1{color:var(--blanco);font-size:2.5rem;margin-bottom:10px}
.page-banner p{color:rgba(255,255,255,.8);font-size:1.05rem}

/* STORES */
.stores-section{padding:80px 20px;background:var(--crema)}
.stores-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:30px;margin-top:50px}
.store-card{background:var(--blanco);border-radius:12px;overflow:hidden;box-shadow:var(--sombra);transition:var(--trans)}
.store-card:hover{transform:translateY(-5px);box-shadow:var(--sombra2)}
.store-head{background:var(--azul);padding:25px;color:var(--blanco)}
.store-num{background:var(--dorado);color:var(--blanco);width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;margin-bottom:12px}
.store-head h3{color:var(--blanco);font-size:1.3rem;margin-bottom:4px}
.store-head .store-sub{color:rgba(255,255,255,.7);font-size:.82rem;text-transform:uppercase;letter-spacing:1px}
.store-body{padding:25px}
.info-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid var(--borde)}
.info-row:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.info-row .iicon{font-size:1.2rem;flex-shrink:0;margin-top:2px}
.info-row label{font-size:.73rem;font-weight:700;color:var(--dorado);text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:3px}
.info-row span,.info-row a{font-size:.93rem;color:var(--oscuro)}
.info-row a:hover{color:var(--dorado)}
.sched{display:grid;grid-template-columns:1fr 1fr;gap:4px;font-size:.85rem}
.sched .sd{font-weight:600;color:var(--azul)}
.sched .st{color:var(--gris)}
.map-btn{display:block;background:var(--crema);border-top:1px solid var(--borde);padding:14px 20px;text-align:center;color:var(--azul);font-size:.9rem;font-weight:700;transition:var(--trans)}
.map-btn:hover{background:var(--dorado);color:var(--blanco)}

/* CATALOG */
.catalog-section{padding:80px 20px;background:var(--blanco)}
.cat-filter{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:50px}
.filt-btn{padding:9px 22px;border-radius:25px;border:2px solid var(--borde);background:var(--blanco);color:var(--oscuro);font-family:var(--body);font-size:14px;font-weight:600;cursor:pointer;transition:var(--trans)}
.filt-btn:hover,.filt-btn.active{background:var(--azul);color:var(--blanco);border-color:var(--azul)}
.prod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:25px}
.prod-card{background:var(--blanco);border-radius:var(--radio);overflow:hidden;box-shadow:var(--sombra);transition:var(--trans);border:1px solid var(--borde)}
.prod-card:hover{transform:translateY(-5px);box-shadow:var(--sombra2)}
.prod-img{width:100%;aspect-ratio:4/3;overflow:hidden;background:var(--crema);display:flex;align-items:center;justify-content:center;position:relative}
.prod-img img{width:100%;height:100%;object-fit:cover;transition:var(--trans)}
.prod-card:hover .prod-img img{transform:scale(1.05)}
.prod-img .no-img{font-size:3.5rem;color:var(--borde)}
.prod-badge{position:absolute;top:12px;left:12px;background:var(--dorado);color:var(--blanco);font-size:.73rem;font-weight:700;padding:4px 10px;border-radius:12px;text-transform:uppercase;letter-spacing:.5px}
.prod-body{padding:18px}
.prod-cat{font-size:.75rem;font-weight:700;color:var(--dorado);text-transform:uppercase;letter-spacing:1px;margin-bottom:7px}
.prod-title{font-size:1.05rem;color:var(--azul);margin-bottom:9px}
.prod-desc{font-size:.86rem;color:var(--gris);line-height:1.6;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.prod-price{font-family:var(--title);font-size:1.4rem;color:var(--azul);font-weight:700}
.prod-foot{padding:12px 18px;background:var(--crema);display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--borde)}
.prod-link{font-size:.85rem;font-weight:700;color:var(--azul)}
.prod-link:hover{color:var(--dorado)}
.no-prods{text-align:center;padding:60px 20px;color:var(--gris);grid-column:1/-1}
.no-prods span{font-size:4rem;display:block;margin-bottom:15px}
.no-prods h3{color:var(--azul);margin-bottom:10px}

/* SINGLE PRODUCT */
.single-prod-section{padding:60px 20px}
.breadcrumb{background:var(--crema);padding:12px 20px;border-bottom:1px solid var(--borde)}
.breadcrumb-inner{max-width:1200px;margin:0 auto;font-size:.85rem;color:var(--gris)}
.breadcrumb-inner a{color:var(--gris)}
.breadcrumb-inner a:hover{color:var(--azul)}
.sprod-inner{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;max-width:1000px;margin:0 auto}
.sprod-img{border-radius:12px;overflow:hidden;aspect-ratio:4/3;background:var(--crema);display:flex;align-items:center;justify-content:center}
.sprod-img img{width:100%;height:100%;object-fit:cover}
.sprod-info h1{font-size:2rem;margin-bottom:10px}
.sprod-cat{font-size:.82rem;font-weight:700;color:var(--dorado);text-transform:uppercase;letter-spacing:1px;margin-bottom:18px}
.sprod-price{font-family:var(--title);font-size:2rem;color:var(--azul);font-weight:700;margin-bottom:18px}
.sprod-desc{color:var(--gris);line-height:1.8;margin-bottom:28px}
.sprod-cta{background:var(--crema);border-radius:var(--radio);padding:22px;border-left:4px solid var(--dorado)}
.sprod-cta p{font-size:.9rem;color:var(--gris);margin-bottom:14px}
.phone-list{display:flex;flex-direction:column;gap:8px}
.phone-item{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--azul);font-size:1.05rem}
.back-link{display:inline-flex;align-items:center;gap:5px;font-size:.9rem;color:var(--gris);margin-bottom:25px}
.back-link:hover{color:var(--azul)}

/* GENERIC PAGE */
.page-content{padding:60px 20px;max-width:860px;margin:0 auto}
.page-content h1{font-size:2.2rem;margin-bottom:25px}
.page-content p{color:var(--gris);margin-bottom:15px}

/* RESPONSIVE */
@media(max-width:992px){
  .about-inner{grid-template-columns:1fr}
  .sprod-inner{grid-template-columns:1fr}
}
@media(max-width:768px){
  .hero h1{font-size:2.2rem}
  .menu-toggle{display:flex}
  .site-nav{display:none}
  .stores-grid{grid-template-columns:1fr}
  .sec-title{font-size:1.8rem}
  .cat-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:480px){
  .hero{padding:70px 20px}
  .hero h1{font-size:1.8rem}
  .cat-grid{grid-template-columns:repeat(2,1fr)}
  .prod-grid{grid-template-columns:1fr}
}

/* ================================================================
   GALERÍA DE FOTOS
================================================================ */
.galeria-section {
    padding: 80px 20px;
    background: var(--blanco);
}
.galeria-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
    margin-top: 40px;
}
.galeria-item {
    position: relative;
    border-radius: var(--radio);
    overflow: hidden;
    box-shadow: var(--sombra);
    aspect-ratio: 4/3;
    background: var(--crema);
}
.galeria-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}
.galeria-item:hover img {
    transform: scale(1.04);
}
.galeria-pie {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(transparent, rgba(30,58,95,0.85));
    color: #fff;
    font-size: .85rem;
    padding: 20px 12px 10px;
    text-align: center;
}

/* Galería — 1 foto: centrada grande */
.galeria-grid:has(.galeria-item:only-child) {
    grid-template-columns: minmax(0, 600px);
    justify-content: center;
}

/* ================================================================
   ÚLTIMAS NOVEDADES
================================================================ */
.novedades-section {
    padding: 80px 20px;
    background: var(--crema);
}

/* ================================================================
   MEJORAS HERO — fondo con imagen
================================================================ */
.hero {
    background-color: var(--azul);
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
}

/* ================================================================
   STORES — ajustes página tiendas
================================================================ */
.stores-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 28px;
    margin-top: 50px;
}
.store-card {
    background: var(--blanco);
    border-radius: var(--radio);
    box-shadow: var(--sombra);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform .25s, box-shadow .25s;
}
.store-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(30,58,95,.15);
}
.store-head {
    background: var(--azul);
    color: var(--blanco);
    padding: 30px 25px 22px;
    text-align: center;
}
.store-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px; height: 44px;
    border-radius: 50%;
    background: var(--dorado);
    color: var(--blanco);
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 12px;
}
.store-head h3 {
    font-size: 1.35rem;
    font-family: 'Playfair Display', serif;
    margin-bottom: 6px;
}
.store-sub {
    font-size: .85rem;
    opacity: .8;
}
.store-body {
    padding: 25px;
    flex: 1;
}
.info-row {
    display: flex;
    gap: 12px;
    margin-bottom: 16px;
    align-items: flex-start;
}
.iicon { font-size: 1.25rem; margin-top: 2px; flex-shrink: 0; }
.info-row label {
    display: block;
    font-size: .75rem;
    font-weight: 600;
    color: var(--dorado);
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: 3px;
}
.info-row span, .info-row a {
    font-size: .9rem;
    color: var(--gris);
    line-height: 1.5;
}
.info-row a { color: var(--azul); font-weight: 600; text-decoration: none; }
.info-row a:hover { text-decoration: underline; }
.sched {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2px 12px;
    font-size: .88rem;
}
.sd { font-weight: 600; color: var(--azul-claro); }
.st { color: var(--gris); }
.store-foot {
    padding: 18px 25px;
    border-top: 1px solid var(--crema);
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.btn-store-call, .btn-store-map {
    flex: 1;
    min-width: 120px;
    text-align: center;
    padding: 10px 14px;
    border-radius: 8px;
    font-size: .85rem;
    font-weight: 600;
    text-decoration: none;
    transition: background .2s;
}
.btn-store-call {
    background: var(--azul);
    color: var(--blanco);
}
.btn-store-call:hover { background: var(--azul-claro); }
.btn-store-map {
    background: transparent;
    color: var(--azul);
    border: 2px solid var(--azul);
}
.btn-store-map:hover { background: var(--azul); color: var(--blanco); }

.horario-box {
    background: var(--azul);
    color: var(--blanco);
    border-radius: var(--radio);
    padding: 40px;
    margin: 60px auto 0;
    max-width: 700px;
    text-align: center;
}
.horario-box h3 { font-size: 1.4rem; margin-bottom: 24px; font-family: 'Playfair Display',serif; }
.horario-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 20px;
    text-align: center;
}
.hg-col strong { display: block; color: var(--dorado); margin-bottom: 8px; font-size: .95rem; }
.hg-col span   { display: block; font-size: .88rem; opacity: .85; line-height: 1.7; }

.tiendas-cta {
    text-align: center;
    padding: 60px 20px 20px;
}
.tiendas-cta h2 {
    font-family: 'Playfair Display',serif;
    color: var(--azul);
    font-size: 1.8rem;
    margin-bottom: 12px;
}
.tiendas-cta p {
    color: var(--gris);
    max-width: 500px;
    margin: 0 auto 24px;
    font-size: 1rem;
    line-height: 1.7;
}

/* ================================================================
   RESPONSIVE AJUSTES
================================================================ */
@media (max-width: 640px) {
    .galeria-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
    .horario-grid { grid-template-columns: 1fr; gap: 12px; }
    .stores-grid  { grid-template-columns: 1fr; }
}
@media (max-width: 400px) {
    .galeria-grid { grid-template-columns: 1fr; }
}

/* ================================================================
   GALERÍA DE PRODUCTO — single-producto.php
================================================================ */
.sprod-gallery {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Imagen principal grande */
.sprod-main-img-wrap {
    position: relative;
    border-radius: var(--radio);
    overflow: hidden;
    background: var(--crema);
    aspect-ratio: 4/3;
    max-height: 480px;
}
.sprod-main-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    transition: opacity .25s;
}
.sprod-no-img {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 260px;
}
.sprod-no-img span { font-size: 4rem; }
.sprod-no-img p    { color: var(--gris); font-size: .9rem; margin-top: 10px; }

/* Insignia dentro de la imagen */
.sprod-badge-pos {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 2;
}

/* Tira de miniaturas */
.sprod-thumbs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.sprod-thumb {
    width: 72px;
    height: 72px;
    border-radius: 8px;
    overflow: hidden;
    border: 2px solid transparent;
    cursor: pointer;
    transition: border-color .2s, transform .2s;
    background: var(--crema);
    flex-shrink: 0;
}
.sprod-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.sprod-thumb:hover {
    border-color: var(--azul-claro);
    transform: scale(1.05);
}
.sprod-thumb.active {
    border-color: var(--dorado);
    box-shadow: 0 0 0 2px var(--dorado);
}

/* Miniatura de vídeo */
.sprod-thumb-video {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--azul);
    color: var(--blanco);
}
.thumb-play {
    font-size: 1.6rem;
    line-height: 1;
    margin-bottom: 2px;
}
.sprod-thumb-video small {
    font-size: .65rem;
    opacity: .85;
    letter-spacing: .03em;
    text-transform: uppercase;
}

/* Bloque del vídeo */
#sprod-video-wrap {
    border-radius: var(--radio);
    overflow: hidden;
    background: #000;
    aspect-ratio: 16/9;
}
#sprod-video-wrap iframe,
#sprod-video-wrap video {
    width: 100%;
    height: 100%;
    display: block;
    border: none;
}

/* Extracto en ficha de producto */
.sprod-excerpt {
    font-size: 1rem;
    color: var(--gris);
    line-height: 1.7;
    border-left: 3px solid var(--dorado);
    padding-left: 14px;
    margin-bottom: 18px;
    font-style: italic;
}

/* Responsive galería producto */
@media (max-width: 640px) {
    .sprod-main-img-wrap { aspect-ratio: 3/2; }
    .sprod-thumb { width: 60px; height: 60px; }
    #sprod-video-wrap { aspect-ratio: 16/9; }
}

/* ================================================================
   CATÁLOGO — Layout con sidebar jerárquico
================================================================ */

/* Layout principal: sidebar + grid */
.catalog-layout {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 32px;
    align-items: start;
    padding: 48px 0 80px;
}

/* ── Sidebar ── */
.cat-sidebar {
    position: sticky;
    top: 90px;
}

.sidebar-mobile-toggle {
    display: none; /* visible solo en móvil */
    width: 100%;
    background: var(--azul);
    color: var(--blanco);
    border: none;
    border-radius: var(--radio);
    padding: 14px 18px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}
.sidebar-arrow { font-size: .9rem; }

.sidebar-panel {
    background: var(--blanco);
    border-radius: var(--radio);
    box-shadow: var(--sombra);
    overflow: hidden;
}

.sidebar-title {
    font-family: 'Playfair Display', serif;
    font-size: 1.05rem;
    color: var(--blanco);
    background: var(--azul);
    padding: 16px 20px;
    margin: 0;
    letter-spacing: .02em;
}

/* ── Árbol de categorías ── */
.cat-tree {
    list-style: none;
    margin: 0;
    padding: 10px 0;
}
.cat-subtree {
    list-style: none;
    margin: 0;
    padding: 0;
}

.cat-node-row {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 2px 14px;
}
.cat-node-row:hover {
    background: var(--crema);
}

/* Botón de expandir ▶ / ▼ */
.cat-toggle {
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px 6px;
    border-radius: 4px;
    color: var(--azul);
    flex-shrink: 0;
    line-height: 1;
    font-size: .8rem;
    transition: background .15s;
}
.cat-toggle:hover { background: rgba(30,58,95,.1); }
.cat-arrow { display: inline-block; transition: transform .2s; font-size: .75rem; }
.cat-node.open > .cat-node-row > .cat-toggle .cat-arrow { transform: rotate(0deg); }

/* Punto · para nodos hoja */
.cat-dot {
    width: 22px;
    text-align: center;
    color: var(--dorado);
    flex-shrink: 0;
    font-size: .7rem;
    line-height: 1;
}

/* Etiqueta clicable de categoría */
.cat-label {
    background: none;
    border: none;
    cursor: pointer;
    font-size: .9rem;
    color: var(--gris-oscuro);
    text-align: left;
    padding: 6px 4px;
    flex: 1;
    border-radius: 4px;
    transition: color .15s;
    display: flex;
    align-items: center;
    gap: 6px;
    line-height: 1.3;
}
.cat-label:hover { color: var(--azul); }
.cat-label.active {
    color: var(--azul);
    font-weight: 700;
}
.cat-label.active::before {
    content: '';
    display: inline-block;
    width: 3px;
    height: 14px;
    background: var(--dorado);
    border-radius: 2px;
    flex-shrink: 0;
}

/* Contador de productos */
.cat-count {
    font-size: .75rem;
    color: #aaa;
    font-weight: 400;
}

/* ── Buscador dentro del sidebar ── */
.cat-search-wrap {
    padding: 14px 16px;
    border-top: 1px solid var(--crema);
}
.prod-search-input {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #ddd;
    border-radius: 20px;
    font-size: .88rem;
    color: var(--gris-oscuro);
    outline: none;
    transition: border-color .2s, box-shadow .2s;
    box-sizing: border-box;
}
.prod-search-input:focus {
    border-color: var(--azul);
    box-shadow: 0 0 0 3px rgba(30,58,95,.1);
}

/* ── Main: cabecera del grid ── */
.catalog-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
}
.catalog-current-cat {
    font-family: 'Playfair Display', serif;
    font-size: 1.4rem;
    color: var(--azul);
    margin: 0;
}
.catalog-count {
    font-size: .85rem;
    color: var(--gris);
    background: var(--crema);
    padding: 3px 10px;
    border-radius: 20px;
}

/* Migas de pan de categoría */
.catalog-breadcrumb {
    font-size: .85rem;
    color: var(--gris);
    padding: 6px 0 18px;
    border-bottom: 1px solid var(--crema);
    margin-bottom: 24px;
}

/* ── Ajuste nodos con sangría ── */
.cat-node { margin: 0; padding: 0; }
.cat-node > .cat-node-row { cursor: default; }

/* ── Animación subtree ── */
.cat-subtree { transition: none; }

/* ================================================================
   RESPONSIVE — Catálogo
================================================================ */
@media (max-width: 900px) {
    .catalog-layout {
        grid-template-columns: 1fr;
        gap: 0;
        padding-top: 24px;
    }

    .cat-sidebar {
        position: static;
        margin-bottom: 24px;
    }

    .sidebar-mobile-toggle {
        display: flex;
    }

    .sidebar-panel {
        display: none;
        border-radius: 0 0 var(--radio) var(--radio);
    }
    .sidebar-panel.open {
        display: block;
    }
}

@media (max-width: 600px) {
    .catalog-header { flex-direction: column; align-items: flex-start; }
}
