/* =================================================
RESET
================================================= */

*{
    box-sizing:border-box;
    margin:0;
    padding:0;
}

img{
    max-width:100%;
    display:block;
}

ul{
    list-style:none;
}

a{
    text-decoration:none;
    color:inherit;
}

/* =================================================
BASE
================================================= */

body{
    font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
    color:#222;
    background:#ffffff;
    padding-top:72px;
    margin:0;
}

.container{
    width:90%;
    max-width:1200px;
    margin:auto;
}

/* =================================================
HEADER
================================================= */

.header{
    position:fixed;
    top:0;
    left:0;
    right:0;
    height:72px;
    background:#ffffff;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 2rem;
    box-shadow:0 2px 4px rgba(0,0,0,0.08);
    z-index:9999;
}

.header__logo{
    display:flex;
    align-items:center;
    gap:0.75rem;
}

.logo-circle{
    width:40px;
    height:40px;
    border-radius:50%;
    background:#c81414;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:700;
    font-size:0.9rem;
}

.logo-text{
    font-weight:700;
    font-size:1.1rem;
}

.header__nav{
    display:flex;
    gap:1.5rem;
}

.header__nav a{
    color:#333;
    font-size:0.95rem;
}

.header__nav a:hover{
    color:#c81414;
}

.header__cart{
    display:inline-flex;
    align-items:center;
    gap:0.4rem;
    padding:0.4rem 1rem;
    border-radius:999px;
    background:#c81414;
    color:#fff;
    font-size:0.9rem;
    font-weight:600;
}

.header__cart:hover{
    background:#a31212;
}

@media (max-width:768px){
    .header{
        flex-direction:column;
        height:auto;
        padding:1rem;
        gap:1rem;
    }

    .header__nav{
        flex-wrap:wrap;
        justify-content:center;
        gap:1rem;
    }
}

/* =================================================
AVISO PROYECTO
================================================= */

.project-banner{
    position:fixed;
    top:72px;
    left:0;
    width:100%;
    background:linear-gradient(90deg,#c81414,#ff3c3c);
    color:#fff;
    padding:10px;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:10px;
    z-index:9998;
}

.project-banner.hide{
    opacity:0;
    transform:translateY(-20px);
    transition:0.3s ease;
}

.close-banner{
    cursor:pointer;
    font-weight:bold;
}

main{
    margin-top:0px;
}

/* =================================================
HERO
================================================= */

.hero-section{
    position:relative;
    height:60vh;
    min-height:350px;
    margin-top:0;
    z-index:0;
    display:flex;
    align-items:center;
    flex-direction:column;
    justify-content:center;
    background:url("../img/carniceria.jpg") center/cover no-repeat;
    overflow:hidden;
}

.hero-section.hero-contact::before,
.hero-section.hero-cart-page::before,
.hero-section.hero-blur::before{
    content:'';
    position:absolute;
    inset:0;
    background:url("../img/carniceria.jpg") center/cover no-repeat;
    filter:blur(8px);
    transform:scale(1.2);
    z-index:0;
}

.hero-section.hero-contact::after,
.hero-section.hero-cart-page::after,
.hero-section.hero-blur::after{
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(rgba(0,0,0,0.55), rgba(0,0,0,0.75));
    z-index:1;
}

.hero-content{
    position:relative;
    z-index:2;
    text-align:center;
    color:white;
    max-width:800px;
    padding:0 1rem;
}

.hero-team{
    position:relative;
    z-index:3;
}

.hero-content h1{
    font-size:3rem;
    margin-bottom:25px;
    color:#ffffff;
    text-shadow:0 4px 20px rgba(0,0,0,0.8);
}

.hero-content h1 span{
    color:#f5e6d3;
    text-shadow:0 0 15px rgba(245,230,211,0.4);
}

.hero-text{
    font-size:1.2rem;
    line-height:1.6;
    max-width:600px;
    margin:15px auto;
    background:linear-gradient(90deg, #ffffff, #f5e6d3);
    background-clip:text;
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    text-shadow:0 2px 10px rgba(0,0,0,0.4);
}

.hero-cta{
    position:relative;
    display:inline-block;
    margin-top:8px;
    font-size:1.2rem;
    font-weight:500;
    color:#f5e6d3;
    overflow:hidden;
}

.hero-cta::after{
    content:'';
    position:absolute;
    top:0;
    left:-120%;
    width:120%;
    height:100%;
    background:linear-gradient(120deg, transparent, rgba(255,255,255,0.8), transparent);
    animation:shineCTA 2.5s linear infinite;
}

@keyframes shineCTA{
    0%{ left:-120%; }
    100%{ left:120%; }
}

.hero__buttons{
    margin-top:2rem;
    display:flex;
    gap:1rem;
    justify-content:center;
}

.hero-subtitle{
    color:#eaeaea;
    font-size:1.1rem;
    position:relative;
    overflow:hidden;
}

.hero-subtitle::after{
    display:none !important;
}

.hero__avatars{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:20px;
}

.avatar{
    width:110px;
    height:110px;
    border-radius:50%;
    overflow:hidden;
}

.avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform 0.3s ease, box-shadow 0.3s ease;
}

.hero__avatars .avatar:hover{
    transform:translateY(-6px);
}

.hero__avatars .avatar:hover img{
    transform:scale(1.1);
    box-shadow:0 15px 30px rgba(0,0,0,0.4);
}

.hero-team{
    display:flex !important;
    flex-direction:row !important;
    justify-content:center;
    align-items:center;
    gap:20px;
    margin-bottom:20px;
}

.hero-team img{
    width:110px;
    height:110px;
    object-fit:cover;
    border-radius:50%;
    border:4px solid #fff;
    box-shadow:0 10px 25px rgba(0,0,0,0.5);
    transition:transform 0.3s ease;
}

.hero-team img:hover{
    transform:scale(1.1);
}

.hero-member{
    text-align:center;
}

.hero-member p{
    margin-top:8px;
    color:#fff;
    font-size:0.9rem;
}

.hero-member:hover p{
    color:#c81414;
    transform:translateY(-2px);
    text-shadow:0 0 10px rgba(200,20,20,0.5);
}

.hero-login{
    background:
        linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.6)),
        url('../img/carniceria.jpg') center/cover no-repeat;
}

.hero-login h1,
.hero-login p{
    text-shadow:0 2px 6px rgba(0,0,0,0.7);
}

/* =================================================
BOTONES
================================================= */

.btn{
    display:inline-block;
    padding:0.8rem 1.8rem;
    border-radius:999px;
    font-weight:600;
    font-size:0.95rem;
    transition:all .25s ease;
    letter-spacing:0.5px;
}

.btn:hover{
    transform:scale(1.05);
    box-shadow:0 8px 18px rgba(0,0,0,0.2);
}

.btn-primary{
    background:#c81414;
    color:#fff;
    box-shadow:0 4px 10px rgba(200,20,20,0.3);
}

.btn-primary:hover{
    background:#a31212;
}

.btn-secondary{
    background:#fff;
    color:#c81414;
    border:1px solid #c81414;
}

.btn-secondary:hover{
    background:#f4e4cf;
}

.btn-card{
    padding:0.45rem 1.4rem;
    font-size:0.85rem;
    font-weight:500;
    border-radius:999px;
    min-width:110px;
    text-align:center;
}

.btn-small{
    padding:0.5rem 1.2rem;
    font-size:0.85rem;
    font-weight:500;
}

.btn-volver{
    margin-top:2rem;
    display:inline-block;
}

/* =================================================
INICIO BENEFICIOS
================================================= */

.benefits{
    background:#f4e4cf;
    padding:2.5rem 2rem;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:2rem;
    text-align:center;
}

.benefit{
    transition:all .25s ease;
}

.benefit:hover{
    transform:translateY(-5px);
}

.benefit__icon{
    width:60px;
    height:60px;
    margin:auto;
    border-radius:50%;
    background:#c81414;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.5rem;
    transition:transform .2s ease;
}

.benefit h3{
    margin:0.5rem 0;
}

.benefit p{
    font-size:0.9rem;
}

@media (max-width:900px){
    .benefits{
        grid-template-columns:1fr 1fr;
    }
}

@media (max-width:600px){
    .benefits{
        grid-template-columns:1fr;
    }
}

/* =================================================
PRODUCTOS / TARJETAS
================================================= */

.products{
    padding-top:2rem;
}

.products h2{
    margin-top:2.5rem;
    margin-bottom:1.5rem;
    text-align:center;
}

.products-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
    justify-content:center;
    gap:2rem;
    max-width:1200px;
    margin:0 auto 4rem;
    padding:0 2rem;
    align-items:stretch;
}

.product-card{
    background:#fff;
    border-radius:10px;
    box-shadow:0 4px 12px rgba(0,0,0,0.08);
    overflow:hidden;
    transition:.25s;
    width:340px;
    max-width:340px;
    min-height:500px;
    position:relative;
    display:flex;
    flex-direction:column;
}

.product-card:hover{
    transform:translateY(-10px) scale(1.02);
    box-shadow:0 20px 40px rgba(0,0,0,0.2);
}

.product-card img{
    width:100%;
    height:200px;
    object-fit:cover;
    border-bottom:1px solid #fff;
    object-position:center;
}

.product-card__body{
    display:flex;
    flex-direction:column;
    gap:0.8rem;
    padding:1rem;
    flex:1;
}

.product-card__body h3{
    font-size:1.2rem;
    margin-bottom:0.5rem;
}

.product-card__body p{
    font-size:1rem;
    color:#555;
}

.product-subtitle{
    font-size:0.9rem;
    color:#777;
    margin-bottom:6px;
}

.product-tags{
    margin:15px 0;
}

.product-tags span{
    background:#f4e4cf;
    padding:4px 8px;
    border-radius:6px;
    font-size:0.75rem;
    margin-right:6px;
}

.product-card__body .product-tags:nth-of-type(1) span{
    background:#e8d3b0;
    color:#333;
}

.product-card__body .product-tags:nth-of-type(2) span{
    background:#f4e4cf;
    color:#333;
}

.product-card__body .product-tags:nth-of-type(3) span{
    background:#e8f0e8;
    color:#2e5d34;
    font-weight:500;
}

.product-card__body .product-tags:nth-of-type(1) span:first-child{
    background:#c9a97f;
    color:#fff;
}

.product-card__body .product-tags:nth-of-type(1) span:last-child{
    background:#e8d3b0;
}

.product-bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    margin-top:auto;
    padding:0 0.8rem 0.8rem 0.8rem;
    flex-wrap:wrap;
}

.product-actions{
    margin-top:1.5rem;
    display:flex;
    flex-direction:column;
    gap:0.8rem;
}

.product-actions form{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.price-box{
    margin-top:5px;
    margin-bottom:10px;
    display:flex;
    gap:10px;
    align-items:center;
    flex-wrap:wrap;
}

.price{
    font-weight:800;
    font-size:1.1rem;
    color:#c81414;
    margin-left:5px;
    white-space:nowrap;
}

.old-price,
.price-old{
    text-decoration:line-through;
    color:#999;
    margin-right:8px;
    font-size:14px;
    white-space:nowrap;
}

.offer-price,
.price-new{
    color:#e60023;
    font-weight:bold;
    font-size:18px;
    white-space:nowrap;
}

.offer-badge{
    background:#c81414;
    color:#fff;
    padding:4px 10px;
    border-radius:20px;
    font-size:0.75rem;
    font-weight:600;
    display:inline-block;
    margin-left:8px;
    margin-top:8px;
    margin-bottom:5px;
    transition:0.2s;
}

.offer-badge:hover{
    background:#a80f0f;
}

.badge-oferta{
    position:absolute;
    top:10px;
    left:10px;
    background:#e60000;
    color:white;
    padding:5px 10px;
    font-size:12px;
    border-radius:5px;
    font-weight:bold;
}

@media (max-width:900px){
    .products-grid{
        grid-template-columns:1fr 1fr;
    }
}

@media (max-width:600px){
    .products-grid{
        grid-template-columns:1fr;
    }
}

/* =================================================
DETALLE PRODUCTO
================================================= */

.product-detail{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:3rem;
    max-width:1100px;
    margin:4rem auto;
    padding:0 2rem;
    align-items:start;
    margin-bottom:4rem;
}

.product-detail__image{
    background:#111;
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 12px 30px rgba(0,0,0,0.12);
}

.product-detail__image img{
    width:100%;
    height:420px;
    object-fit:cover;
    display:block;
}

.product-detail__info{
    background:#fff;
    border-radius:16px;
    padding:2rem;
    box-shadow:0 12px 30px rgba(0,0,0,0.08);
    display:flex;
    flex-direction:column;
    gap:1rem;
}

.product-detail__info h2{
    font-size:2rem;
    margin-bottom:0.2rem;
}

.product-desc{
    color:#666;
    line-height:1.6;
    margin-bottom:0.5rem;
}

.product-detail__meta{
    display:flex;
    flex-direction:column;
    gap:0.5rem;
    padding:1rem;
    background:#faf7f2;
    border-radius:12px;
    border:1px solid #eee;
}

.product-detail__meta p{
    margin:0;
    line-height:1.5;
}

.product-price{
    display:flex;
    align-items:center;
    gap:0.8rem;
    font-size:1.8rem;
    font-weight:700;
    color:#c81414;
}

.product-buy{
    margin-top:0.4rem;
    padding-top:1rem;
    border-top:1px solid #eee;
}

.product-buy form{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.product-buy label{
    font-weight:600;
    color:#333;
}

.product-buy input,
.product-buy select{
    width:100%;
    padding:0.8rem 0.9rem;
    border:1px solid #d8d8d8;
    border-radius:10px;
    font-size:1rem;
    background:#fff;
}

.product-buy input:focus,
.product-buy select:focus{
    outline:none;
    border-color:#c81414;
    box-shadow:0 0 0 3px rgba(200,20,20,0.12);
}

.product-buy button{
    margin-top:0.8rem;
}

.product-stock-warning{
    background:#fff1f0;
    color:#b42318;
    border:1px solid #f3b3ad;
    padding:0.9rem 1rem;
    border-radius:12px;
    font-weight:500;
}

.product-cut-note{
    background:#f8f1e7;
    color:#6b4f2a;
    border:1px solid #e8d3b0;
    padding:0.85rem 1rem;
    border-radius:12px;
    font-size:0.95rem;
}

.product-buy__disabled{
    opacity:0.7;
    cursor:not-allowed;
}

@media (max-width:900px){
    .product-detail{
        grid-template-columns:1fr;
    }

    .product-detail__image img{
        height:300px;
    }

    .product-detail__info{
        padding:1.4rem;
    }

    .product-detail__info h2{
        font-size:1.6rem;
    }
}

/* =================================================
OFERTAS
================================================= */

.offers{
    background:#f4e4cf;
    padding:4rem 0;
}

.offers h2{
    text-align:center;
    margin-bottom:1.5rem;
}

.offers__text{
    text-align:center;
    margin-bottom:2rem;
    color:#555;
}

.offers-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:2rem;
    max-width:960px;
    margin:0 auto;
    align-items:stretch;
}

.offers-grid .product-card{
    width:100%;
    max-width:260px;
    min-height:420px;
    margin:0 auto;
}

.offers-grid .product-card img{
    height:160px;
    object-fit:cover;
}

.offers-grid .product-card__body{
    display:flex;
    flex-direction:column;
    gap:0.7rem;
    min-height:260px;
    flex:1;
}

.offers-grid .product-card__body h3{
    font-size:1rem;
    margin-bottom:4px;
}

.offers-grid .product-subtitle{
    font-size:0.9rem;
    margin-bottom:4px;
}

.offers-grid .price,
.offers-grid .price-new,
.offers-grid .price-old{
    font-size:0.95rem;
}

.offers-grid .btn-small{
    margin-top:auto;
}

.ofertas-bg{
    background-color:#f8f1e7;
    padding:40px 0;
}

.products.ofertas-bg{
    background-color:#f8f1e7;
}

.products.ofertas-bg .products-grid{
    align-items:stretch;
}

.products.ofertas-bg .product-card{
    display:flex;
    flex-direction:column;
    height:100%;
}

.products.ofertas-bg .product-card__body{
    display:flex;
    flex-direction:column;
    flex:1;
}

.products.ofertas-bg .product-bottom{
    margin-top:auto;
}

.products.ofertas-bg .btn,
.offers .btn{
    white-space:nowrap;
}

@media (max-width:900px){
    .offers-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        max-width:680px;
    }
}

@media (max-width:600px){
    .offers-grid{
        grid-template-columns:1fr;
        max-width:320px;
    }
}

/* =================================================
RECETAS
================================================= */

.recipes{
    padding:4rem 0;
    background-color:#f8f1e7;
}

.recipes-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:2rem;
    max-width:900px;
    margin:0 auto;
    padding:0 2rem;
}

.recipes-grid .product-card{
    display:flex;
    flex-direction:column;
    min-height:460px;
}

.recipes-grid .product-card__body{
    display:flex;
    flex-direction:column;
    flex:1;
}

.recipes-grid .product-card__body p{
    margin-bottom:18px;
}

.recipes-grid .product-card__body .btn{
    margin-top:auto;
}

.recipe-ingredients{
    list-style:none;
    padding:0;
}

.recipe-ingredients li{
    position:relative;
    padding-left:18px;
    margin-bottom:6px;
}

.recipe-ingredients li::before{
    content:"•";
    position:absolute;
    left:0;
    color:#c40000;
    font-weight:bold;
}

.modal{
    position:fixed;
    inset:0;
    background:rgba(0, 0, 0, 0.5);
    display:flex;
    align-items:center;
    justify-content:center;
    z-index:1000;
}

.modal[hidden]{
    display:none;
}

.modal__content{
    background:#fff8f0;
    max-width:600px;
    width:90%;
    max-height:80vh;
    overflow-y:auto;
    padding:2rem;
    border-radius:12px;
    position:relative;
    animation:fadeIn 0.3s ease;
}

.modal__content h2{
    margin-bottom:1rem;
    margin-top:3rem;
}

.modal__content h3{
    margin-top:1rem;
    margin-bottom:0.5rem;
}

.modal__content ul,
.modal__content ol{
    margin-left:1.2rem;
}

.modal__content li{
    margin-bottom:5px;
}

.modal__close{
    border:none;
    background:transparent;
    font-size:1.5rem;
    cursor:pointer;
    position:absolute;
    top:1rem;
    right:1.5rem;
}

.recipe-box{
    background:#fff3e6;
    padding:15px;
    border-radius:10px;
    margin-bottom:15px;
    border:1px solid #f1d5b8;
}

.recipe{
    display:none;
}

.recipe-modal-img{
    width:100%;
    border-radius:10px;
    margin-bottom:15px;
    object-fit:cover;
    max-height:250px;
}

.recipe-box ul{
    list-style:none;
    padding-left:0;
}

.recipe-box li{
    position:relative;
    padding-left:18px;
    margin-bottom:6px;
    line-height:1.4;
}

.recipe-box li::before{
    content:"";
    width:6px;
    height:6px;
    background:#c40000;
    border-radius:50%;
    position:absolute;
    left:0;
    top:8px;
}

@keyframes fadeIn{
    from{
        opacity:0;
        transform:translateY(10px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}

.reveal{
    opacity:0;
    transform:translateY(30px);
    transition:all .6s ease;
}

.reveal.active{
    opacity:1;
    transform:translateY(0);
}

@media (max-width:600px){
    .recipes-grid{
        grid-template-columns:1fr;
    }
}

/* =================================================
QUIENES SOMOS
================================================= */

.about-split{
    display:grid;
    grid-template-columns:1.2fr 1fr;
    min-height:520px;
    height:auto;
    align-items:stretch;
    overflow:hidden;
}

.about-split.reverse{
    grid-template-columns:1fr 1.2fr;
    min-height:520px;
    height:auto;
}

.about-split.reverse .about-split__image{
    order:2;
}

.about-split.reverse .about-split__content{
    order:1;
}

.about-split__image{
    display:flex;
    height:100%;
    min-height:320px;
}

.about-split__image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    object-position:center;
}

.about-split__content{
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:60px 80px;
    gap:16px;
    background:#f4e4cf;
    color:#222;
}

.about-split__content h2{
    color:#c81414;
    margin-bottom:8px;
    font-size:2rem;
}

.about-split__content p,
.about-split__content li{
    line-height:1.7;
    color:#333;
    font-size:1rem;
}

.about-split__content ul{
    list-style:disc;
    padding-left:20px;
    margin-top:8px;
}

.about-split__content li{
    margin-bottom:8px;
}

.about-highlight{
    border-left:5px solid #c81414;
}

.about-mini-note{
    margin-top:12px;
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-weight:600;
    color:#333;
}

.about-mini-note__icon{
    width:34px;
    height:34px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#fff;
    border:1px solid #e0b36b;
    color:#c81414;
    font-weight:700;
    flex-shrink:0;
}

.about-full{
    width:100%;
    padding:45px 2rem;
    text-align:center;
    background:#f9f3e8;
}

.compromiso-title{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    margin-bottom:14px;
}

.compromiso-icon{
    width:46px;
    height:46px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#fff;
    border:1px solid #e0b36b;
    color:#c81414;
    font-weight:700;
    font-size:1.2rem;
    flex-shrink:0;
}

.compromiso-title h2{
    font-size:1.9rem;
    margin:0;
    color:#1f1f1f;
}

.about-full p{
    max-width:760px;
    margin:0 auto;
    line-height:1.7;
    color:#333;
    font-size:1rem;
}

.filosofia{
    background:#f4e4cf;
    padding:4rem 2rem;
}

.filosofia h2{
    text-align:center;
    font-size:2rem;
    margin-bottom:3rem;
}

.filosofia-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:2rem;
    max-width:1000px;
    margin:auto;
}

.filosofia-item{
    background:#fff;
    padding:1.5rem;
    border-radius:16px;
    box-shadow:0 10px 25px rgba(0,0,0,0.08);
    display:flex;
    gap:1rem;
    align-items:flex-start;
    transition:0.3s ease;
}

.filosofia-item__dot{
    width:50px;
    height:50px;
    background:#c81414;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:1.2rem;
    flex-shrink:0;
}

.filosofia-item h3{
    margin-bottom:5px;
}

.filosofia-item:hover{
    transform:translateY(-6px);
    box-shadow:0 20px 40px rgba(0,0,0,0.15);
}

.filosofia--home .filosofia-item{
    background:none;
    padding:0;
    box-shadow:none;
}

@media (max-width:900px){
    .about-split,
    .about-split.reverse{
        grid-template-columns:1fr;
        min-height:auto;
        height:auto;
    }

    .about-split__content{
        padding:40px 25px;
    }

    .about-split__image{
        min-height:260px;
    }

    .compromiso-title{
        flex-direction:column;
        gap:10px;
    }

    .compromiso-title h2{
        font-size:1.7rem;
        text-align:center;
    }
}

@media (max-width:700px){
    .filosofia-grid{
        grid-template-columns:1fr;
    }
}

/* =================================================
CONTACTO
================================================= */

.contact-section{
    max-width:1100px;
    margin:4rem auto;
    padding:0 2rem;
}

.contact-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:3rem;
}

.contact-info{
    background:#ffffff;
    padding:2rem;
    border-radius:12px;
    border:1.5px solid rgba(232,211,176,0.7);
    box-shadow:0 10px 30px rgba(0,0,0,0.08);
    transition:all 0.25s ease;
}

.contact-info:hover{
    transform:translateY(-4px);
    box-shadow:0 20px 45px rgba(0,0,0,0.12);
}

.contact-form{
    background:#f4e4cf;
    padding:2rem;
    border-radius:12px;
    box-shadow:0 10px 30px rgba(0,0,0,0.08);
}

.contact-box{
    margin-top:10px;
}

.contact-form label{
    display:block;
    margin-bottom:0.4rem;
    font-weight:600;
}

.contact-form input,
.contact-form textarea{
    width:100%;
    padding:0.85rem 1rem;
    border:1px solid #ddd;
    border-radius:8px;
    font-size:1rem;
    margin-bottom:1rem;
    background:#ffffff;
    color:#333;
    transition:all 0.25s ease;
}

.contact-form input:focus,
.contact-form textarea:focus{
    outline:none;
    border-color:#c81414;
    box-shadow:0 0 0 3px rgba(200,20,20,0.15);
}

.contact-form button{
    margin-top:25px;
}

.contact-info h2{
    color:#222;
    font-weight:700;
    margin-bottom:1.5rem;
    display:inline-block;
    position:relative;
}

.contact-form h2{
    margin-bottom:1.5rem;
}

.contact-info h2::after{
    content:'';
    display:block;
    width:100%;
    height:3px;
    background:#e8d3b0;
    margin-top:8px;
    transform:scaleX(0);
    transform-origin:left;
    animation:lineReveal 2s ease infinite;
}

@keyframes lineReveal{
    to{
        transform:scaleX(1);
    }
}

.contact-info p{
    margin-bottom:1.5rem;
    line-height:1.6;
    color:#333;
}

.contact-info li{
    color:#333;
}

.contact-info strong{
    color:#c9a97f;
    font-weight:600;
}

.contact-list li{
    margin-bottom:25px;
    line-height:1.5;
}

.contact-info h3{
    text-align:center;
    margin:30px 0 15px;
    font-size:1.4rem;
    font-weight:700;
    color:#222;
    position:relative;
}

.contact-info h3::after{
    content:'';
    display:block;
    width:100px;
    height:3px;
    background:#e8d3b0;
    margin:8px auto 0;
}

.schedule{
    margin-top:15px;
}

.schedule li{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:10px 14px;
    margin-bottom:10px;
    background:#f9f9f9;
    border-radius:8px;
    transition:0.2s ease;
}

.schedule li:hover{
    background:#f4e4cf;
    transform:translateX(4px);
}

.schedule .day{
    font-weight:600;
    color:#c9a97f;
}

.schedule .time{
    color:#333;
}

.schedule .divider{
    color:#c81414;
    font-weight:700;
    margin:0 6px;
}

.schedule .closed .time{
    color:#c81414;
    font-weight:500;
}

.contact-card{
    background:#f4e4cf;
    padding:15px 18px;
    border-radius:10px;
    margin-bottom:15px;
    transition:all 0.25s ease;
    color:#333;
}

.contact-card:hover{
    transform:translateY(-3px);
    box-shadow:0 10px 25px rgba(0,0,0,0.12);
}

.map{
    width:100%;
    margin-left:calc(-50vw + 50%);
    margin-top:4rem;
    position:relative;
    overflow:hidden;
}

.map iframe{
    width:100%;
    height:400px;
    display:block;
    filter:brightness(0.75);
    transition:filter 0.8s ease, transform 0.4s ease;
}

.map-overlay{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,0.15);
    transition:0.4s ease;
    pointer-events:none;
}

.map:hover iframe{
    filter:brightness(1);
    transform:scale(1.02);
}

.map:hover .map-overlay{
    background:rgba(0,0,0,0.05);
}

.phone-link{
    display:inline-block;
    background:#c81414;
    color:#fff;
    padding:10px 18px;
    border-radius:30px;
    text-decoration:none;
    transition:0.3s;
}

.phone-link:hover{
    background:#a80f0f;
}

a[href^="mailto"]{
    color:#c81414;
    font-weight:600;
    border-bottom:1px solid transparent;
    transition:0.3s;
}

a[href^="mailto"]:hover{
    border-bottom:1px solid #c81414;
}

@media (max-width:900px){
    .contact-grid{
        grid-template-columns:1fr;
    }
}

/* =================================================
LOGIN CLIENTE
================================================= */

.user-login-page{
    min-height:calc(100vh - 200px);
    display:flex;
    align-items:center;
    justify-content:center;
    background:#f4e4cf;
    padding:40px 20px;
}

.login-box{
    background:#fff;
    padding:50px;
    border-radius:16px;
    box-shadow:0 20px 50px rgba(0,0,0,0.15);
    width:100%;
    max-width:600px;
}

.login-box h2{
    text-align:center;
    margin-bottom:25px;
}

.login-box input{
    width:100%;
    padding:12px;
    margin-top:5px;
    margin-bottom:20px;
    border-radius:10px;
    border:1px solid #ccc;
}

.login-box .btn{
    width:100%;
}

.login-link{
    margin-top:20px;
    text-align:center;
}

.login-link a{
    color:#c81414;
    font-weight:600;
}

/* =================================================
CARRITO
================================================= */

.empty-state{
    text-align:center;
    padding:3rem;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:1.2rem;
    max-width:400px;
    margin:auto;
}

.hero-cart{
    margin:20px 0;
    text-align:center;
    display:inline-block;
    animation:floatCart 3.5s ease-in-out infinite;
}

.hero-cart img{
    width:140px;
    display:block;
    margin:0 auto;
    filter:drop-shadow(0 15px 25px rgba(0,0,0,0.4));
    transition:transform 0.3s ease, filter 0.3s ease;
}

.hero-cart:hover img{
    transform:scale(1.1) rotate(-5deg);
    filter:drop-shadow(0 20px 35px rgba(0,0,0,0.6));
}

.hero-cart:hover{
    animation-play-state:paused;
}

@keyframes floatCart{
    0%{ transform:translateY(0); }
    50%{ transform:translateY(-12px); }
    100%{ transform:translateY(0); }
}

.cart{
    max-width:1000px;
    margin:3rem auto;
    padding:0 2rem;
}

.cart h2{
    margin-bottom:2rem;
    text-align:center;
}

.cart-items{
    display:flex;
    flex-direction:column;
    gap:1.5rem;
}

.cart-item{
    display:flex;
    align-items:flex-start;
    gap:1.5rem;
    background:#fff;
    padding:1rem;
    border-radius:12px;
    box-shadow:0 6px 16px rgba(0,0,0,0.08);
    transition:transform 0.2s ease, box-shadow 0.2s ease;
}

.cart-item:hover{
    transform:translateY(-3px);
    box-shadow:0 10px 22px rgba(0,0,0,0.12);
}

.cart-item img{
    width:100px;
    height:80px;
    object-fit:cover;
    border-radius:8px;
}

.cart-item__info{
    flex:1;
}

.cart-item__actions{
    display:flex;
    gap:1rem;
}

.cart-summary{
    margin-top:2.5rem;
    text-align:center;
    background:#fff;
    padding:1.5rem;
    border-radius:14px;
    box-shadow:0 10px 25px rgba(0,0,0,0.08);
}

.cart-summary h3{
    color:#c81414;
}

.cart-summary__buttons{
    display:flex;
    justify-content:center;
    gap:12px;
    flex-wrap:wrap;
    margin-top:16px;
}

.cart-alert{
    padding:15px 18px;
    border-radius:10px;
    margin-bottom:20px;
    font-weight:500;
}

.cart-alert--error{
    background:#fdecea;
    color:#8a1f17;
    border:1px solid #f5c2c0;
}

.cart-alert--ok{
    background:#edf7ed;
    color:#1e4620;
    border:1px solid #b7dfb9;
}

.cart-box{
    background:#fff;
    padding:2rem;
    border-radius:16px;
    box-shadow:0 12px 28px rgba(0,0,0,0.08);
}

.cart-box h2{
    margin-bottom:10px;
    text-align:left;
}

.cart-box p{
    color:#555;
    margin-bottom:1rem;
}

.cart-payment-box{
    margin-top:20px;
    padding:15px;
    border:1px solid #ddd;
    border-radius:12px;
    background:#fafafa;
}

.cart-payment-box h3{
    margin-bottom:15px;
}

.cart-payment-note{
    margin-top:10px;
    font-size:0.95rem;
    color:#555;
}

@media (max-width:700px){
    .cart-item{
        flex-direction:column;
    }

    .cart-item__actions{
        width:100%;
        flex-direction:column;
    }

    .cart-item__actions input,
    .cart-item__actions a{
        width:100%;
    }
}

/* =================================================
CHECKOUT
================================================= */

.checkout-box{
    max-width:1000px;
    margin:3rem auto;
    padding:2rem;
    background:#fff;
    border-radius:18px;
    box-shadow:0 12px 35px rgba(0,0,0,0.10);
}

.checkout-box h2{
    font-size:2rem;
    margin-bottom:1.5rem;
    color:#1f1f1f;
}

.checkout-form{
    display:flex;
    flex-direction:column;
    gap:1.2rem;
}

.checkout-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:1rem 1.5rem;
}

.checkout-field{
    display:flex;
    flex-direction:column;
    gap:0.45rem;
}

.checkout-field--full{
    grid-column:1 / -1;
}

.checkout-field label{
    font-weight:600;
    color:#2a2a2a;
}

.checkout-field input,
.checkout-field select,
.checkout-field textarea{
    width:100%;
    padding:0.9rem 1rem;
    border:1px solid #d7d7d7;
    border-radius:10px;
    font-size:1rem;
    background:#fff;
    color:#222;
    transition:border-color 0.2s ease, box-shadow 0.2s ease;
}

.checkout-field input:focus,
.checkout-field select:focus,
.checkout-field textarea:focus{
    outline:none;
    border-color:#c81414;
    box-shadow:0 0 0 3px rgba(200,20,20,0.12);
}

.checkout-field textarea{
    min-height:130px;
    resize:vertical;
}

.checkout-payment-box{
    margin-top:0.5rem;
    padding:1.2rem;
    border:1px solid #e2e2e2;
    border-radius:14px;
    background:#fafafa;
}

.checkout-payment-box h3{
    margin-bottom:1rem;
    font-size:1.6rem;
    color:#1f1f1f;
}

.checkout-actions{
    margin-top:0.5rem;
}

.checkout-actions .btn{
    min-width:220px;
    text-align:center;
}

.alert-box{
    max-width:1000px;
    margin:0 auto 1rem auto;
    padding:1rem 1.2rem;
    border-radius:12px;
    font-weight:500;
}

.alert-box--error{
    background:#fdecea;
    color:#8a1f17;
    border:1px solid #f5c2c0;
}

.alert-box--ok{
    background:#edf7ed;
    color:#1e4620;
    border:1px solid #b7dfb9;
}

.order-success-box{
    max-width:900px;
    margin:3rem auto;
    padding:2rem;
    background:#fff;
    border-radius:18px;
    box-shadow:0 12px 35px rgba(0,0,0,0.10);
    text-align:center;
}

.order-success-box h2{
    font-size:2rem;
    margin-bottom:1rem;
}

.order-success-box p{
    margin-bottom:1rem;
    color:#333;
}

.order-success-actions{
    margin-top:1.5rem;
    display:flex;
    justify-content:center;
    gap:1rem;
    flex-wrap:wrap;
}

@media (max-width:768px){
    .checkout-box{
        margin:2rem 1rem;
        padding:1.25rem;
    }

    .checkout-grid{
        grid-template-columns:1fr;
    }

    .checkout-actions .btn{
        width:100%;
        min-width:unset;
    }
}

/* =================================================
FOOTER
================================================= */

.footer{
    background:#171717;
    color:#f1f1f1;
    padding-top:2.5rem;
}

.footer__top{
    display:grid;
    grid-template-columns:2fr 1fr 1.5fr;
    gap:2rem;
    padding:0 2rem 2rem;
}

.footer__bottom{
    border-top:1px solid #333;
    padding:1rem;
    text-align:center;
    font-size:0.9rem;
    color:#888;
}

.footer__top h3,
.footer__top h4{
    color:#ffffff;
    margin-bottom:1rem;
}

.footer__top p{
    color:#b5b5b5;
    line-height:1.6;
}

.footer__top a{
    color:#b5b5b5;
    transition:all 0.3s ease;
}

.footer__top a:hover{
    color:#c81414;
    transform:translateX(3px);
}

.footer__top li{
    margin-bottom:8px;
}

.footer__top i{
    color:#c81414;
    margin-right:8px;
}

.footer__top > div:first-child h2{
    color:#ffffff;
}

.footer-phones{
    width:auto;
    margin-left:40px;
    margin-top:8px;
    display:flex;
    flex-direction:column;
    gap:10px;
    align-items:flex-start;
}

@media (max-width:768px){
    .footer__top{
        grid-template-columns:1fr;
    }
}
.products.ofertas-bg .product-bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    flex-wrap:nowrap;
}

.products.ofertas-bg .product-bottom form{
    margin:0;
}

.products.ofertas-bg .product-bottom .btn,
.products.ofertas-bg .product-bottom .btn-card{
    min-width:90px;
    text-align:center;
}

.products.ofertas-bg .product-card{
    display:flex;
    flex-direction:column;
}

.products.ofertas-bg .product-card__body{
    display:flex;
    flex-direction:column;
    flex:1;
}

.products.ofertas-bg .product-bottom{
    margin-top:auto;
}