/* ============================================================
   PUEBLOS ORIGINARIOS BOUTIQUE
   SITE.CSS REORGANIZADO — v1.3.0
   ------------------------------------------------------------
   Estructura:
   01. Reset y variables
   02. Layout general
   03. Header y navegación
   04. Botones
   05. Hero
   06. Secciones generales
   07. Catálogo y tarjetas de producto
   08. Categorías
   09. Secciones institucionales
   10. Página de catálogo
   11. Ficha individual y galería
   12. Nosotros / Contacto / Flujo de compra
   13. Footer
   14. WhatsApp flotante
   15. Accesibilidad
   16. Responsive
   ============================================================ */


/* ============================================================
   01. RESET Y VARIABLES
   ============================================================ */

*,
*::before,
*::after{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

:root{
    --brown:#3A2418;
    --leather:#6B4226;
    --terra:#A45C32;
    --sand:#D8B98A;
    --beige:#F2E7D5;
    --cream:#FAF6EE;
    --gold:#C69C5D;
    --olive:#66704A;

    --ink:#211B17;
    --white:#FFFFFF;
    --muted:#75685F;
    --line:#E1D4C3;

    --shadow:0 18px 50px rgba(58,36,24,.10);
    --shadow-soft:0 10px 30px rgba(58,36,24,.08);

    --radius:22px;
    --radius-sm:14px;
    --radius-lg:28px;

    /* Escala visual del catálogo */
    --container-max:1380px;
    --catalog-gap:34px;
    --gallery-max:860px;

    --serif:Georgia,'Times New Roman',serif;
    --sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}

body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:var(--sans);
    line-height:1.6;
}

body,
button,
input{
    font-size:16px;
}

img{
    display:block;
    max-width:100%;
}

a{
    color:inherit;
}

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

[hidden]{
    display:none!important;
}


/* ============================================================
   02. LAYOUT GENERAL
   ============================================================ */

.container{
    width:min(var(--container-max),calc(100% - 48px));
    margin-inline:auto;
}

.narrow{
    max-width:850px;
}

.section{
    padding:88px 0;
}

.section-soft{
    background:var(--beige);
}

.section-dark{
    background:var(--brown);
    color:var(--white);
}

.section-head{
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:30px;
    margin-bottom:36px;
}

.section-head h2,
.roots-copy h2,
.visit h2,
.manifesto blockquote,
.purchase-path h2{
    margin:8px 0 0;
    font-family:var(--serif);
    font-size:clamp(2.1rem,4vw,3.6rem);
    line-height:1.04;
}

.section-head p{
    max-width:650px;
    color:rgba(255,255,255,.72);
}

.section-head.light .kicker{
    color:var(--sand);
}

.kicker,
.eyebrow{
    color:var(--terra);
    font-size:.76rem;
    font-weight:800;
    letter-spacing:.18em;
    text-transform:uppercase;
}

.text-link{
    color:var(--leather);
    font-weight:800;
}


/* ============================================================
   03. HEADER Y NAVEGACIÓN
   ============================================================ */

.site-header{
    position:sticky;
    top:0;
    z-index:100;
    background:rgba(250,246,238,.93);
    backdrop-filter:blur(16px);
    border-bottom:1px solid rgba(107,66,38,.12);
}

.nav-wrap{
    height:82px;
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.brand-link{
    display:flex;
    align-items:center;
    gap:12px;
    text-decoration:none;
}

.brand-mark{
    width:46px;
    height:46px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--brown);
    color:var(--cream);
    font-family:var(--serif);
    font-weight:700;
}

.brand-copy{
    display:flex;
    flex-direction:column;
    line-height:1.08;
}

.brand-copy strong{
    font-family:var(--serif);
    font-size:1.05rem;
}

.brand-copy small{
    color:var(--leather);
    font-size:.72rem;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.main-nav{
    display:flex;
    align-items:center;
    gap:6px;
}

.main-nav a{
    padding:10px 13px;
    border-radius:999px;
    text-decoration:none;
    font-size:.92rem;
}

.main-nav a.active{
    background:var(--beige);
    color:var(--brown);
    font-weight:700;
}

.main-nav .nav-cta{
    margin-left:5px;
    background:var(--brown);
    color:var(--white);
}

.menu-button{
    display:none;
    width:44px;
    height:44px;
    padding:9px;
    border:0;
    border-radius:10px;
    background:transparent;
    cursor:pointer;
}

.menu-button span:not(.sr-only){
    height:2px;
    display:block;
    margin:5px 0;
    background:var(--brown);
}

.menu-button:focus-visible{
    background:var(--beige);
}


/* ============================================================
   04. BOTONES
   ============================================================ */

.hero-actions,
.actions,
.product-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.button{
    min-height:48px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:11px 18px;
    border:1px solid transparent;
    border-radius:999px;
    text-decoration:none;
    font-weight:800;
    transition:transform .2s ease,box-shadow .2s ease;
}

.button:hover{
    transform:translateY(-2px);
}

.button-primary{
    background:var(--brown);
    color:var(--white);
}

.button-outline{
    border-color:var(--brown);
    background:transparent;
    color:var(--brown);
}

.button-ghost{
    border-color:rgba(58,36,24,.15);
    background:rgba(255,255,255,.70);
}

.button-whatsapp{
    background:var(--olive);
    color:var(--white);
}

.button-sand{
    background:var(--sand);
    color:var(--brown);
}

.button-large{
    width:100%;
    min-height:56px;
}


/* ============================================================
   05. HERO PRINCIPAL
   ============================================================ */

.hero{
    padding:54px 0 70px;
    background:
        radial-gradient(circle at 86% 22%,rgba(198,156,93,.20),transparent 32%),
        linear-gradient(180deg,#FBF7EF,#F4E8D5);
}

.hero-grid{
    display:grid;
    grid-template-columns:1.02fr .98fr;
    gap:54px;
    align-items:center;
}

.hero-copy h1,
.page-hero h1{
    margin:16px 0 24px;
    font-family:var(--serif);
    font-size:clamp(3rem,6vw,5.9rem);
    line-height:.95;
    letter-spacing:-.045em;
}

.hero-copy h1 em{
    color:var(--terra);
    font-weight:400;
}

.hero-copy>p{
    max-width:650px;
    color:#574B43;
    font-size:1.15rem;
}

.hero-notes{
    display:flex;
    flex-wrap:wrap;
    gap:18px;
    margin-top:26px;
    color:var(--muted);
    font-size:.86rem;
}

.hero-notes span::before{
    content:'✦';
    margin-right:6px;
    color:var(--gold);
}

.hero-visual{
    position:relative;
    min-height:610px;
}

.hero-visual>img{
    width:100%;
    height:610px;
    object-fit:cover;
    border-radius:180px 180px 28px 28px;
    background:var(--beige);
    box-shadow:var(--shadow);
}

.hero-product{
    position:absolute;
    right:-16px;
    bottom:28px;
    width:min(310px,78%);
    display:grid;
    gap:3px;
    padding:17px 18px;
    border:1px solid rgba(58,36,24,.12);
    border-radius:18px;
    background:rgba(250,246,238,.95);
    box-shadow:var(--shadow);
    text-decoration:none;
}

.hero-product small,
.hero-product span{
    color:var(--muted);
    font-size:.8rem;
}

.hero-product strong{
    font-family:var(--serif);
    font-size:1.15rem;
}


/* ============================================================
   06. CABECERAS INTERNAS
   ============================================================ */

.page-hero{
    padding:92px 0;
    background:linear-gradient(135deg,#EFE0C8,#FBF7EF);
}

.page-hero.compact{
    padding:70px 0;
}

.page-hero p{
    max-width:720px;
    color:var(--muted);
    font-size:1.12rem;
}


/* ============================================================
   07. CATÁLOGO Y TARJETAS DE PRODUCTO
   ------------------------------------------------------------
   CAMBIO PRINCIPAL:
   - 2 tarjetas por fila en escritorio.
   - Más ancho útil para cada fotografía.
   - Imagen cuadrada completa, sin crop.
   ============================================================ */

.product-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:var(--catalog-gap);
}

.product-card{
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:rgba(255,255,255,.82);
    transition:transform .25s ease,box-shadow .25s ease;
}

.product-card:hover{
    transform:translateY(-5px);
    box-shadow:var(--shadow);
}

.product-image-link{
    position:relative;
    width:100%;
    aspect-ratio:1/1;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    overflow:hidden;
    background:linear-gradient(145deg,#F7EEDD,#EEE0CA);
}

.product-image-link img{
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
    border-radius:0;
    background:var(--beige);
    transition:transform .35s ease;
}

.product-card:hover .product-image-link img{
    transform:scale(1.015);
}

.stock-pill{
    position:absolute;
    top:14px;
    left:14px;
    padding:6px 10px;
    border-radius:999px;
    background:var(--white);
    box-shadow:0 4px 15px rgba(0,0,0,.08);
    font-size:.72rem;
    font-weight:800;
}

.stock-pill.available{color:#3C6030}
.stock-pill.low{color:#835E18}
.stock-pill.sold{color:#84362E}
.stock-pill.soon{color:#5D526D}

.stock-pill.inline{
    position:static;
    display:inline-block;
    background:var(--beige);
    box-shadow:none;
}

.product-card-body{
    padding:20px 20px 22px;
}

.product-card h3{
    margin:6px 0;
    font-family:var(--serif);
    font-size:1.48rem;
    line-height:1.15;
}

.product-card h3 a{
    text-decoration:none;
}

.product-card p{
    display:-webkit-box;
    overflow:hidden;
    color:var(--muted);
    font-size:.92rem;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}

.product-price{
    margin:14px 0;
    color:var(--brown);
    font-weight:900;
}

.product-actions .button{
    flex:1;
    min-height:42px;
    padding:8px 10px;
    font-size:.82rem;
}


/* ============================================================
   08. CATEGORÍAS
   ============================================================ */

.category-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
}

.category-tile{
    min-height:180px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding:22px;
    border:1px solid #D9C19C;
    border-radius:18px;
    background:linear-gradient(145deg,#FFF8EE,#E6CFAA);
    text-decoration:none;
    transition:transform .2s ease;
}

.category-tile:nth-child(even){
    background:linear-gradient(145deg,#6B4226,#3A2418);
    color:var(--white);
}

.category-tile:hover{
    transform:translateY(-4px);
}

.category-tile strong{
    font-family:var(--serif);
    font-size:1.55rem;
}

.category-number{
    font-size:.74rem;
    letter-spacing:.15em;
}


/* ============================================================
   09. SECCIONES INSTITUCIONALES
   ============================================================ */

.roots-grid,
.visit-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:center;
}

.roots-art{
    min-height:520px;
    display:grid;
    place-items:center;
    border-radius:28px;
    background:
        repeating-linear-gradient(
            45deg,
            transparent 0 28px,
            rgba(255,255,255,.03) 28px 30px
        ),
        linear-gradient(135deg,var(--leather),var(--brown));
    box-shadow:var(--shadow);
}

.woven-mark{
    width:230px;
    height:230px;
    display:grid;
    place-items:center;
    border:2px solid rgba(242,231,213,.55);
    outline:18px double rgba(216,185,138,.25);
    color:var(--beige);
    font:700 6rem var(--serif);
    transform:rotate(45deg);
}

.roots-copy p{
    color:var(--muted);
    font-size:1.05rem;
}

.visit-card{
    padding:32px;
    border-radius:26px;
    background:var(--brown);
    color:var(--white);
}

.visit-card ol{
    padding:0;
    list-style:none;
    counter-reset:steps;
}

.visit-card li{
    padding:15px 0;
    border-bottom:1px solid rgba(255,255,255,.13);
    font:1.3rem var(--serif);
    counter-increment:steps;
}

.visit-card li::before{
    content:'0' counter(steps);
    margin-right:18px;
    color:var(--sand);
    font:700 .7rem var(--sans);
}


/* ============================================================
   10. PÁGINA DE CATÁLOGO
   ============================================================ */

.filter-row{
    display:flex;
    gap:8px;
    overflow:auto;
    padding:4px 0 18px;
    scrollbar-width:thin;
}

.filter-chip{
    padding:8px 13px;
    border:1px solid var(--line);
    border-radius:999px;
    background:var(--white);
    white-space:nowrap;
    text-decoration:none;
    font-size:.86rem;
}

.filter-chip.active{
    border-color:var(--brown);
    background:var(--brown);
    color:var(--white);
}

.catalog-count{
    margin-bottom:22px;
    color:var(--muted);
}

.catalog-count strong{
    color:var(--brown);
}

.empty-panel,
.empty-state{
    padding:60px 20px;
    border:1px dashed #CDBB9F;
    border-radius:24px;
    text-align:center;
}


/* ============================================================
   11. FICHA INDIVIDUAL Y GALERÍA
   ------------------------------------------------------------
   La galería queda MÁS GRANDE que antes, pero ordenada.
   No usa object-fit:cover.
   La pieza completa siempre queda visible.
   ============================================================ */

.product-detail{
    padding-top:58px;
}

.product-detail-grid{
    display:grid;
    grid-template-columns:minmax(0,1.32fr) minmax(360px,.68fr);
    gap:56px;
    align-items:start;
}

/* Zona completa reservada a las imágenes */
.product-gallery{
    width:100%;
    max-width:var(--gallery-max);
    margin-inline:auto;
}

/* Imagen principal */
.gallery-main{
    width:100%;
    aspect-ratio:1/1;
    display:grid;
    place-items:center;
    padding:0;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:28px;
    background:linear-gradient(145deg,#F8F0E3,#EFE1CC);
    box-shadow:var(--shadow-soft);
}

.gallery-main img{
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
    border-radius:0;
    background:var(--beige);
}

/* Miniaturas */
.gallery-thumbs{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
    margin-top:12px;
}

.gallery-thumb{
    min-width:56px;
    min-height:56px;
    aspect-ratio:1/1;
    padding:5px;
    overflow:hidden;
    border:2px solid transparent;
    border-radius:12px;
    background:var(--beige);
    cursor:pointer;
}

.gallery-thumb.active{
    border-color:var(--terra);
}

.gallery-thumb img{
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
    border-radius:8px;
}

/* Información del producto */
.product-info{
    position:sticky;
    top:112px;
}

.product-info h1{
    margin:12px 0 18px;
    font:clamp(2.6rem,5vw,4.5rem)/.98 var(--serif);
}

.eyebrow.link{
    text-decoration:none;
}

.lead{
    color:var(--muted);
    font-size:1.12rem;
}

.detail-price{
    display:grid;
    margin:25px 0;
}

.detail-price small{
    color:var(--muted);
}

.detail-price strong{
    color:var(--brown);
    font:2.1rem var(--serif);
}

.product-description{
    padding-top:20px;
    border-top:1px solid var(--line);
}

.spec-list{
    margin:22px 0;
}

.spec-list>div{
    display:grid;
    grid-template-columns:130px 1fr;
    padding:12px 0;
    border-top:1px solid var(--line);
}

.spec-list dt{
    font-weight:800;
}

.spec-list dd{
    margin:0;
    color:var(--muted);
}

.purchase-box{
    display:grid;
    gap:7px;
    padding:22px;
    border-radius:20px;
    background:var(--beige);
}

.purchase-box small{
    color:var(--muted);
}


/* ============================================================
   12. NOSOTROS / CONTACTO / FLUJO DE COMPRA
   ============================================================ */

.story-grid,
.contact-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
}

.story-card,
.contact-card{
    padding:28px;
    border:1px solid var(--line);
    border-radius:22px;
    background:var(--white);
}

.story-card>span,
.contact-icon{
    color:var(--terra);
    font-size:.75rem;
    font-weight:800;
    letter-spacing:.18em;
}

.story-card h2,
.contact-card h2{
    margin:12px 0;
    font:2rem var(--serif);
}

.manifesto{
    max-width:850px;
    text-align:center;
}

.manifesto .kicker{
    color:var(--sand);
}

.manifesto blockquote{
    margin:16px 0;
}

.manifesto p{
    color:rgba(255,255,255,.72);
}

.contact-card .button{
    margin-top:10px;
}

.purchase-path{
    text-align:center;
}

.path-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
    margin-top:34px;
}

.path-grid>div{
    padding:20px;
    border:1px solid var(--line);
    border-radius:18px;
    background:var(--white);
}

.path-grid span{
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    margin:0 auto 10px;
    border-radius:50%;
    background:var(--brown);
    color:var(--white);
}

.path-grid strong{
    font:1.25rem var(--serif);
}

.path-grid p{
    color:var(--muted);
    font-size:.88rem;
}


/* ============================================================
   13. FOOTER
   ============================================================ */

.site-footer{
    padding:58px 0 20px;
    background:#211B17;
    color:#F7EEE2;
}

.footer-grid{
    display:grid;
    grid-template-columns:1.5fr 1.2fr .8fr 1fr;
    gap:36px;
}

.footer-grid h3{
    color:var(--sand);
    font-size:.8rem;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.footer-grid a{
    display:block;
    margin:6px 0;
    color:#F7EEE2;
    text-decoration:none;
}

.footer-grid p{
    color:#CBBDAF;
}

.footer-brand{
    font:2rem var(--serif);
}

.footer-bottom{
    display:flex;
    justify-content:space-between;
    margin-top:34px;
    padding-top:18px;
    border-top:1px solid rgba(255,255,255,.10);
    color:#A99D94;
    font-size:.78rem;
}


/* ============================================================
   14. WHATSAPP FLOTANTE
   ============================================================ */

.floating-whatsapp{
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:90;
    display:flex;
    align-items:center;
    gap:8px;
    padding:9px 15px 9px 9px;
    border-radius:999px;
    background:var(--olive);
    box-shadow:0 10px 25px rgba(45,65,37,.25);
    color:var(--white);
    text-decoration:none;
}

.floating-whatsapp span{
    width:35px;
    height:35px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:rgba(255,255,255,.16);
    font-size:.72rem;
}

.floating-whatsapp b{
    font-size:.82rem;
}


/* ============================================================
   15. ACCESIBILIDAD
   ============================================================ */

.sr-only{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}

.skip-link{
    position:fixed;
    top:-80px;
    left:16px;
    z-index:999;
    padding:10px 14px;
    background:var(--white);
}

.skip-link:focus{
    top:16px;
}

:focus-visible{
    outline:3px solid var(--gold);
    outline-offset:3px;
}

.not-found{
    min-height:60vh;
    display:grid;
    align-items:center;
}


/* ============================================================
   16. RESPONSIVE — TABLET
   ============================================================ */

@media(max-width:1000px){

    .product-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:22px;
    }

    .category-grid{
        grid-template-columns:repeat(3,1fr);
    }

    .hero-grid,
    .roots-grid,
    .visit-grid{
        gap:34px;
    }

    .hero-visual,
    .hero-visual>img{
        min-height:520px;
        height:520px;
    }

    .story-grid,
    .contact-grid{
        grid-template-columns:1fr 1fr;
    }

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

    .product-detail-grid{
        grid-template-columns:1fr;
        gap:34px;
    }

    .product-gallery{
        max-width:760px;
    }

    .gallery-main{
        aspect-ratio:1/1;
    }

    .product-info{
        position:static;
        max-width:760px;
        margin-inline:auto;
    }
}


/* ============================================================
   17. RESPONSIVE — CELULAR
   ============================================================ */

@media(max-width:760px){

    body.menu-open{
        overflow:hidden;
    }

    .container{
        width:min(100% - 28px,var(--container-max));
    }

    .nav-wrap{
        height:70px;
    }

    .menu-button{
        display:block;
    }

    .main-nav{
        position:absolute;
        top:70px;
        left:14px;
        right:14px;
        max-height:calc(100dvh - 90px);
        display:none;
        overflow:auto;
        padding:12px;
        border:1px solid var(--line);
        border-radius:18px;
        background:var(--cream);
        box-shadow:var(--shadow);
    }

    .main-nav.open{
        display:grid;
    }

    .main-nav a{
        min-height:48px;
        display:flex;
        align-items:center;
        padding:12px;
    }

    .main-nav .nav-cta{
        margin:4px 0 0;
        text-align:center;
    }

    .hero{
        padding-top:28px;
        padding-bottom:48px;
    }

    .hero-grid,
    .roots-grid,
    .visit-grid{
        grid-template-columns:1fr;
        gap:30px;
    }

    .hero-copy h1,
    .page-hero h1{
        font-size:clamp(2.8rem,14vw,4.3rem);
    }

    .hero-visual{
        min-height:auto;
    }

    .hero-visual>img{
        height:auto;
        min-height:0;
        aspect-ratio:4/5;
        border-radius:120px 120px 24px 24px;
    }

    .hero-product{
        position:relative;
        right:auto;
        bottom:auto;
        width:calc(100% - 22px);
        margin:-42px auto 0;
    }

    .section{
        padding:58px 0;
    }

    .section-head{
        align-items:flex-start;
        flex-direction:column;
    }

    .product-grid{
        grid-template-columns:1fr;
        gap:24px;
    }

    /* En móvil la tarjeta queda grande y legible */
    .product-card{
        max-width:680px;
        margin-inline:auto;
    }

    .product-image-link{
        padding:0;
    }

    .product-card-body{
        padding:20px;
    }

    .product-actions{
        display:grid;
        grid-template-columns:1fr 1fr;
    }

    .product-actions .button{
        width:100%;
    }

    .category-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .product-detail{
        padding-top:30px;
    }

    /* Galería móvil grande, pero sin ocupar más que la pantalla */
    .product-gallery{
        width:100%;
        max-width:680px;
    }

    .gallery-main{
        aspect-ratio:1/1;
        padding:0;
        border-radius:20px;
    }

    .gallery-main img{
        border-radius:0;
    }

    .gallery-thumbs{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }

    .product-info h1{
        font-size:clamp(2.1rem,10vw,3.2rem);
    }

    .purchase-box{
        margin-bottom:70px;
    }

    .story-grid,
    .contact-grid,
    .path-grid{
        grid-template-columns:1fr;
    }

    .contact-card .button{
        width:100%;
    }

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

    .footer-bottom{
        flex-direction:column;
        gap:6px;
    }

    .floating-whatsapp{
        right:max(14px,env(safe-area-inset-right));
        bottom:max(14px,env(safe-area-inset-bottom));
        padding:9px;
    }

    .floating-whatsapp b{
        display:none;
    }

    .spec-list>div{
        grid-template-columns:1fr;
        gap:3px;
    }
}


/* ============================================================
   18. RESPONSIVE — CELULAR PEQUEÑO
   ============================================================ */

@media(max-width:520px){

    .container{
        width:min(100% - 24px,var(--container-max));
    }

    .brand-copy strong{
        font-size:.96rem;
    }

    .hero-copy h1,
    .page-hero h1{
        font-size:clamp(2.55rem,13vw,3.7rem);
    }

    .hero-copy>p,
    .page-hero p{
        font-size:1rem;
    }

    .hero-actions{
        display:grid;
        grid-template-columns:1fr;
    }

    .hero-actions .button{
        width:100%;
    }

    .category-grid{
        grid-template-columns:1fr 1fr;
        gap:10px;
    }

    .category-tile{
        min-height:126px;
        padding:16px;
    }

    .category-tile strong{
        font-size:1.25rem;
    }

    .product-actions{
        grid-template-columns:1fr;
    }

    .gallery-thumbs{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }

    .footer-grid{
        gap:22px;
    }
}

@media(max-width:360px){

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

    .brand-copy small{
        display:none;
    }
}


/* ============================================================
   19. ESCALA VISUAL DEL CATÁLOGO
   ------------------------------------------------------------
   Reglas finales deliberadas para que las fotografías sean
   protagonistas y no vuelvan a reducirse por otra regla.
   ============================================================ */

@media(min-width:1001px){
    .catalog-section .product-grid,
    .section .product-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .product-image-link{
        min-height:520px;
    }

    .product-detail-grid{
        grid-template-columns:minmax(0,1.32fr) minmax(360px,.68fr);
    }
}

@media(min-width:1200px){
    .product-image-link{
        min-height:600px;
    }
}

@media(max-width:1000px) and (min-width:761px){
    .product-image-link{
        min-height:430px;
    }
}

/* ============================================================
   20. MOVIMIENTO REDUCIDO
   ============================================================ */

@media(prefers-reduced-motion:reduce){

    html{
        scroll-behavior:auto;
    }

    *,
    *::before,
    *::after{
        scroll-behavior:auto!important;
        transition:none!important;
        animation:none!important;
    }
}
/* ============================================================
   18. CAMPAÑA PRINCIPAL — PRÓXIMAMENTE EN CÓRDOBA
   ------------------------------------------------------------
   Se activa con home_banner_enabled = 1 en la tabla settings.
   La pieza publicitaria se muestra completa: no se recorta.
   ============================================================ */

.hero-campaign{
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(circle at 80% 16%,rgba(198,156,93,.24),transparent 34%),
        linear-gradient(135deg,#FBF7EF 0%,#EFE0C8 58%,#E5CDA9 100%);
}

.hero-campaign::before{
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:.25;
    background-image:
        linear-gradient(45deg,transparent 48%,rgba(107,66,38,.08) 49%,rgba(107,66,38,.08) 51%,transparent 52%);
    background-size:34px 34px;
}

.hero-campaign .hero-grid{
    position:relative;
    z-index:1;
    grid-template-columns:minmax(0,.88fr) minmax(420px,1.12fr);
    gap:58px;
}

.hero-campaign-copy h1{
    max-width:720px;
}

.hero-campaign-copy>p{
    max-width:610px;
    font-size:1.18rem;
}

.hero-visual--campaign{
    min-height:0;
    display:grid;
    place-items:center;
}

.hero-visual--campaign>img{
    width:100%;
    height:auto;
    max-height:720px;
    aspect-ratio:1/1;
    object-fit:contain;
    object-position:center;
    border-radius:28px;
    background:#1f140e;
    box-shadow:0 28px 70px rgba(58,36,24,.22);
}

.hero-campaign-card{
    right:18px;
    bottom:18px;
    width:min(330px,82%);
    border-color:rgba(198,156,93,.35);
    background:rgba(250,246,238,.96);
}

@media(max-width:1000px){
    .hero-campaign .hero-grid{
        grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);
        gap:36px;
    }

    .hero-visual--campaign>img{
        max-height:620px;
    }
}

@media(max-width:760px){
    .hero-campaign .hero-grid{
        grid-template-columns:1fr;
    }

    .hero-campaign-copy{
        text-align:left;
    }

    .hero-visual--campaign{
        width:min(100%,620px);
        margin-inline:auto;
    }

    .hero-visual--campaign>img{
        width:100%;
        height:auto;
        max-height:none;
        aspect-ratio:1/1;
        object-fit:contain;
        border-radius:22px;
    }

    .hero-campaign-card{
        position:relative;
        right:auto;
        bottom:auto;
        width:calc(100% - 24px);
        margin:-44px auto 0;
    }
}

@media(max-width:520px){
    .hero-campaign{
        padding-top:30px;
    }

    .hero-campaign-copy>p{
        font-size:1rem;
    }

    .hero-visual--campaign>img{
        border-radius:18px;
    }
}
