*{
margin:0;
padding:0;
box-sizing:border-box;
}

body{
font-family:'Poppins', sans-serif;
color:#2e3d2f;
overflow-x:hidden;
}
body.loading{
    overflow: hidden;
}
/* ================= HEADER ================= */

.header{
background:#2e3d2f;
display:flex;
justify-content:space-between;
align-items:center;
padding:12px 25px;
position:fixed;
top:0;
left:0;
width:100%;
z-index:1000;
box-shadow:0 5px 20px rgba(0,0,0,0.2);
height:80px;
}
.logo img{
height:80px;
}

nav{
display:flex;
align-items:center;
}

nav a{
margin:0 12px;
text-decoration:none;
color:#f5f5f0;
font-weight:500;
transition:0.3s;
}

nav a:hover{
opacity:0.7;
}

.header .active{
background:#e8dcc0;
color:#2e3d2f;
padding:8px 14px;
border-radius:20px;
}

.btn-shop{
background:#e8dcc0;
color:#2e3d2f;
padding:8px 16px;
border-radius:30px;
font-weight:600;
}

/* ================= HAMBURGUESA ================= */

.menu-toggle{
display:none;
font-size:28px;
cursor:pointer;
color:#fff;
}

/* ================= HERO / SLIDER ================= */

.hero{
height:75vh;
min-height:500px;
position:relative;
overflow:hidden;
margin-top:80px; /* EXACTO igual al header */
}

.hero-slide{
position:absolute;
width:100%;
height:100%;
opacity:0;
transition:opacity 1s ease;
}

.hero-slide.active{
opacity:1;
}

.hero-slide img{
width:100%;
height:100%;
object-fit:cover;
}

.hero-content{
position:absolute;
top:50%;
left:10%;
transform:translateY(-50%);
color:#fff;
max-width:500px;
}

.hero-content h1{
font-size:55px;
font-family:'Playfair Display';
line-height:1.1;
}

.hero-content span{
font-style:italic;
}

.hero-content p{
margin:20px 0;
font-size:18px;
}

/* BOTONES */

.btn{
background:linear-gradient(135deg,#6f8f5f,#2e3d2f);
color:#fff;
padding:12px 28px;
border-radius:30px;
text-decoration:none;
font-weight:500;
transition:all 0.3s ease;
box-shadow:0 5px 20px rgba(0,0,0,0.3);
}

.btn:hover{
background:linear-gradient(135deg,#e8dcc0,#cbbf9a);
color:#2e3d2f;
transform:translateY(-2px) scale(1.03);
box-shadow:0 10px 25px rgba(0,0,0,0.4);
}

/* DOTS */

.hero-controls{
position:absolute;
bottom:20px;
left:50%;
transform:translateX(-50%);
}

.dot{
height:10px;
width:10px;
background:#ccc;
margin:5px;
display:inline-block;
border-radius:50%;
cursor:pointer;
}

.dot.active{
background:#6f8f5f;
}

/* ================= PRODUCTOS ================= */

.productos{
padding:80px 20px;
text-align:center;
}

.productos h2{
font-family:'Playfair Display';
margin-bottom:40px;
}

.grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
gap:20px;
}

.item{
transition:0.3s;
}

.item:hover{
transform:translateY(-5px);
}

.item img{
width:100%;
border-radius:12px;
}

/* ================= FRANQUICIA ================= */

.franquicia{
background:#2e3d2f;
color:#fff;
padding:60px 20px;
text-align:center;
}

/* ================= SUCURSALES ================= */

.sucursales{
padding:80px 20px;
text-align:center;
}

.card{
background:#fff;
padding:20px;
border-radius:12px;
box-shadow:0 5px 20px rgba(0,0,0,0.1);
transition:0.3s;
}

.card:hover{
transform:translateY(-5px);
}

/* ================= FOOTER ================= */

footer{
background:#1e2a1e;
color:#fff;
padding:40px 20px;
}

.footer-container{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
gap:20px;
}

footer a{
color:#fff;
display:block;
margin:5px 0;
text-decoration:none;
opacity:0.8;
}

footer a:hover{
opacity:1;
}

.logo-footer{
height:200px;
}

.copy{
text-align:center;
margin-top:20px;
font-size:14px;
opacity:0.7;
}

/* ================= WHATSAPP ================= */

.whatsapp{
position:fixed;
bottom:20px;
right:20px;
background:#25d366;
color:#fff;
padding:15px;
border-radius:50%;
font-size:25px;
box-shadow:0 5px 15px rgba(0,0,0,0.3);
animation:latido 1.5s infinite;
}

@keyframes latido{
0%{transform:scale(1);}
50%{transform:scale(1.15);}
100%{transform:scale(1);}
}

/* ================= RESPONSIVE ================= */

@media(max-width:768px){

.menu-toggle{
display:block;
}

nav{
position:absolute;
top:80px;
right:0;
background:#2e3d2f;
width:100%;
flex-direction:column;
align-items:center;
display:none;
padding:20px 0;
}

nav a{
margin:15px 0;
font-size:18px;
color:#fff;
}

nav.active{
display:flex;
}

.hero{
height:60vh;
}

.hero-content{
left:5%;
}

.hero-content h1{
font-size:35px;
}

}
@media(max-width:768px){

.header{
height:70px;
padding:10px 15px;
}

.hero{
margin-top:70px;
height:60vh;
}

.logo img{
height:50px;
}

}


/* SECCION FRANQUICIA */
.franquicia{
background:url('../img/slider1.png') center/cover;
position:relative;
color:#fff;
}

.franquicia::before{
content:"";
position:absolute;
width:100%;
height:100%;
background:rgba(0,0,0,0.6);
top:0;
left:0;
}

.franquicia-container{
position:relative;
z-index:2;
}
.franquicia-container{
display:grid;
grid-template-columns:1fr 1fr;
gap:40px;
align-items:center;
max-width:1200px;
margin:auto;
}

/* TEXTO */
.franquicia-texto h4{
color:#6f8f5f;
letter-spacing:2px;
margin-bottom:10px;
}

.franquicia-texto h2{
font-family:'Playfair Display';
font-size:45px;
margin-bottom:15px;
}

.franquicia-texto span{
font-style:italic;
color:#6f8f5f;
}

.franquicia-sub{
margin-bottom:20px;
color:#555;
}

/* LISTA */
.franquicia-lista{
list-style:none;
}

.franquicia-lista li{
margin:10px 0;
font-size:16px;
}

/* BOTON */
.btn-franquicia{
display:inline-block;
margin-top:25px;
background:linear-gradient(135deg,#6f8f5f,#2e3d2f);
color:#fff;
padding:14px 28px;
border-radius:30px;
text-decoration:none;
transition:0.3s;
}

.btn-franquicia:hover{
background:linear-gradient(135deg,#e8dcc0,#cbbf9a);
color:#2e3d2f;
transform:translateY(-2px);
}

/* IMAGEN */
.franquicia-img img{
width:100%;
border-radius:20px;
box-shadow:0 10px 30px rgba(0,0,0,0.2);
}

/* RESPONSIVE */
@media(max-width:768px){

.franquicia-container{
grid-template-columns:1fr;
}

.franquicia-texto h2{
font-size:32px;
}

}
.marcas{
padding:80px 20px;
background:linear-gradient(to bottom,#f4f4f1,#ffffff);
text-align:center;
}

.marcas h2{
font-family:'Playfair Display';
font-size:32px;
margin-bottom:50px;
color:#2e3d2f;
}

/* CONTENEDOR */
.marcas-wrapper{
position:relative;
overflow:hidden;
}

/* SLIDER */
.marcas-slider{
overflow:hidden;
}

/* TRACK */
.marcas-track{
display:flex;
align-items:center;
gap:80px;
animation:scroll 25s linear infinite;
}

/* LOGOS */
.marcas-track img{
height:55px;
opacity:0.5;
filter:grayscale(100%);
transition:all 0.4s ease;
}

.marcas-track img:hover{
opacity:1;
filter:grayscale(0%);
transform:scale(1.15);
}

/* EFECTO FADE LATERAL (clave estética) */
.fade-left,
.fade-right{
position:absolute;
top:0;
width:120px;
height:100%;
z-index:2;
pointer-events:none;
}

.fade-left{
left:0;
background:linear-gradient(to right,#f4f4f1,transparent);
}

.fade-right{
right:0;
background:linear-gradient(to left,#f4f4f1,transparent);
}

/* ANIMACION */
@keyframes scroll{
0%{transform:translateX(0);}
100%{transform:translateX(-50%);}
}

/* RESPONSIVE */
@media(max-width:768px){

.marcas-track{
gap:40px;
}

.marcas-track img{
height:40px;
}

}


.nosotros{
padding:100px 20px;
background:#f4f4f1;
}

.nosotros-container{
max-width:1200px;
margin:auto;
display:grid;
grid-template-columns:1fr 1fr;
gap:50px;
align-items:center;
}

/* TEXTO */
.nosotros-texto h4{
color:#6f8f5f;
letter-spacing:2px;
margin-bottom:10px;
}

.nosotros-texto h2{
font-family:'Playfair Display';
font-size:45px;
margin-bottom:20px;
}

.nosotros-texto span{
color:#6f8f5f;
font-style:italic;
}

.nosotros-texto p{
margin-bottom:15px;
color:#444;
line-height:1.6;
}

.nosotros-texto .highlight{
font-weight:600;
color:#2e3d2f;
}

/* IMAGEN */
.nosotros-img img{
width:100%;
border-radius:20px;
box-shadow:0 15px 40px rgba(0,0,0,0.15);
transition:0.4s;
}

.nosotros-img img:hover{
transform:scale(1.03);
}

/* RESPONSIVE */
@media(max-width:768px){

.nosotros-container{
grid-template-columns:1fr;
}

.nosotros-texto h2{
font-size:32px;
}

}

.productos{
padding:100px 20px;
background:#ffffff;
text-align:center;
}

.productos h2{
font-family:'Playfair Display', serif;
font-size:38px;
margin-bottom:50px;
color:#2e3d2f;
}

/* GRID */
.productos-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
gap:30px;
max-width:1200px;
margin:auto;
}

/* CARD */
.producto{
text-align:center;
transition:0.3s;
}

/* IMAGEN (CLAVE) */
.producto img{
width:100%;
height:220px; /* MISMO TAMAÑO */
object-fit:cover; /* recorta sin deformar */
border-radius:18px;
box-shadow:0 10px 25px rgba(0,0,0,0.1);
transition:0.4s;
}

/* HOVER */
.producto:hover img{
transform:scale(1.05);
box-shadow:0 15px 35px rgba(0,0,0,0.2);
}

/* TITULO */
.producto h3{
margin-top:15px;
font-size:18px;
color:#2e3d2f;
font-weight:500;
letter-spacing:0.5px;
}

/* RESPONSIVE */
@media(max-width:768px){

.productos h2{
font-size:28px;
}

.producto img{
height:180px;
}

}

/* ================= SUCURSALES ================= */

.sucursales{
padding:100px 20px;
background:#f9f9f6;
text-align:center;
}

.sucursales h2{
font-family:'Playfair Display';
font-size:38px;
margin-bottom:60px;
color:#2e3d2f;
}

/* GRID */
.sucursales-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
gap:40px;
max-width:1200px;
margin:auto;
}

/* CARD */
.sucursal{
background:#fff;
border-radius:18px;
overflow:hidden;
box-shadow:0 10px 30px rgba(0,0,0,0.1);
transition:0.4s;
}

.sucursal:hover{
transform:translateY(-8px);
box-shadow:0 20px 40px rgba(0,0,0,0.15);
}

/* IMAGEN */
.sucursal-img{
position:relative;
height:220px;
overflow:hidden;
}

.sucursal-img img{
width:100%;
height:100%;
object-fit:cover;
transition:0.4s;
}

.sucursal:hover img{
transform:scale(1.1);
}

/* OVERLAY */
.overlay{
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(46,61,47,0.7);
display:flex;
justify-content:center;
align-items:center;
opacity:0;
transition:0.3s;
}

.overlay a,
.overlay span{
color:#fff;
font-size:18px;
text-decoration:none;
background:#6f8f5f;
padding:10px 20px;
border-radius:30px;
}

.sucursal:hover .overlay{
opacity:1;
}

/* INFO */
.sucursal-info{
padding:20px;
}

.sucursal-info h3{
margin-bottom:8px;
color:#2e3d2f;
}

.sucursal-info p{
margin-bottom:10px;
color:#666;
}

.sucursal-info a{
text-decoration:none;
color:#6f8f5f;
font-weight:500;
}

/* FUTURA */
.futura .overlay{
opacity:1;
background:rgba(0,0,0,0.5);
}

/* RESPONSIVE */
@media(max-width:768px){

.sucursales h2{
font-size:28px;
}

.sucursal-img{
height:180px;
}

}
/* ================= PRELOADER PREMIUM ================= */

#preloader{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:#2e3d2f;
    display:flex;
    justify-content:center;
    align-items:center;
    z-index:999999; /* MUY IMPORTANTE */
}
#preloader{
    backdrop-filter: blur(10px);
}
/* CONTENEDOR */
.loader-container{
text-align:center;
}

/* LOGO */
.loader-logo{
    width:180px;
    opacity:0;
    transform:scale(0.8);
    animation:logoIn 1.2s ease forwards;
}

@keyframes logoIn{
    to{
        opacity:1;
        transform:scale(1);
    }
}

.loader-bar{
    width:180px;
    height:3px;
    background:rgba(255,255,255,0.2);
    margin-top:15px;
    overflow:hidden;
    border-radius:3px;
}

.loader-progress{
    width:0%;
    height:100%;
    background:#9fbf8f;
    animation:loadBar 1.8s ease forwards;
}

@keyframes loadBar{
    to{ width:100%; }
}
/* ANIMACION CARGA */
@keyframes loading{
0%{width:0%;}
100%{width:100%;}
}

.productos h2{
font-family:'Playfair Display', serif;
font-size:40px;
margin-bottom:60px;
color:#2e3d2f;
}

.producto h3{
margin-top:15px;
font-size:17px;
color:#2e3d2f;
font-weight:500;
letter-spacing:0.3px;
}

/* efecto extra premium */
.producto{
position:relative;
cursor:pointer;
}

.producto::after{
content:"";
position:absolute;
bottom:0;
left:50%;
width:0%;
height:2px;
background:#6f8f5f;
transition:0.3s;
transform:translateX(-50%);
}

.producto:hover::after{
width:40%;
}