
/* ---------- 1. BASE Y COLORES ---------- */
:root{
  --bg:#f5eee3;          /* fondo general (crema) */
  --ink:#3a2418;         /* texto (marrón oscuro) */
  --acento:#a64b2a;      /* botones y detalles (terracota) */
  --acento-osc:#6e3a22;  /* botones al pasar el mouse */
  --verde:#5d6b3b;       /* rayita de los datos destacados */
  --arena:#eadcc8;       /* secciones alternas (beige) */
  --card:#fbf6ee;        /* tarjetas y menús */
  --linea:#dccbb0;       /* bordes suaves */
}
html{
  color-scheme:light;
  scroll-behavior:smooth;
  scroll-padding-top:env(safe-area-inset-top,0px);
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.6 Nunito,system-ui,sans-serif}
h1,h2,h3{font-family:Poppins,Nunito,system-ui,sans-serif;font-weight:600;line-height:1.05;letter-spacing:-.03em;margin:0}
a{color:inherit}
/* Cursores */
body{cursor:default}
a,button,summary,select,label{cursor:pointer}
input,textarea{cursor:text}
:focus-visible{outline:3px solid var(--acento);outline-offset:3px}
section{padding:10vh 5vw}


/* ---------- 2. BOTONES ---------- */
.btn{
  display:inline-block;background:var(--acento);color:#f4efe6;
  padding:14px 30px;border-radius:999px;text-decoration:none;
  font:500 .95rem Poppins,Nunito,system-ui,sans-serif;
  transition:background .3s,transform .3s,box-shadow .3s;
}
.btn::after{content:"\2192";display:inline-block;margin-left:12px;transition:transform .3s}   /* flecha → */
.btn:hover{background:var(--acento-osc);transform:translateY(-3px);box-shadow:0 10px 22px rgba(42,33,28,.25)}
.btn:hover::after{transform:translateX(6px)}
.btn:active{transform:translateY(0);box-shadow:none}


/* ---------- 3. MENÚ SUPERIOR ---------- */
nav{
  display:flex;justify-content:space-between;align-items:center;
  padding:20px 5vw;position:sticky;top:env(safe-area-inset-top,0px);z-index:5;
  background:var(--bg);border-bottom:1px solid var(--linea);
}
nav b{font:600 1.2rem Poppins,Nunito,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.burger{display:none}   /* el botón de 3 rayitas solo aparece en celular */
nav div a{margin-left:22px;text-decoration:none}
nav div a:hover{color:var(--acento)}

/* Desplegable "Productos" */
.dd{display:inline-block;position:relative;margin-left:22px}
.dd summary{cursor:pointer;list-style:none;padding:4px 0}
.dd summary::-webkit-details-marker{display:none}
.dd summary::after{content:"";display:inline-block;width:6px;height:6px;margin:0 0 3px 8px;border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg)}
.dd[open] summary::after{transform:rotate(-135deg);margin-bottom:-2px}
.dd summary:hover{color:var(--acento)}
.dd ul{
  position:absolute;right:0;top:calc(100% + 14px);min-width:210px;margin:0;padding:8px 0;list-style:none;
  background:var(--card);border:1px solid var(--linea);box-shadow:0 8px 24px rgba(60,40,20,.12);
}
.dd li a{display:block;margin:0;padding:9px 20px}
.dd li a:hover{background:var(--arena);color:var(--acento)}
.dd li:first-child{border-bottom:1px solid var(--linea);margin-bottom:6px}

@media(max-width:760px){      /* celular */
  nav{padding:12px 5vw}
  nav b{font-size:1rem}
  .burger{
    display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;margin-right:-8px;
    padding:0 10px;background:none;border:0;cursor:pointer;
  }
  .burger span{display:block;height:2px;background:var(--ink);border-radius:2px;transition:transform .3s,opacity .3s}
  .burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .burger[aria-expanded="true"] span:nth-child(2){opacity:0}
  .burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  #menu-nav{
    display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;padding:4px 5vw 14px;
    background:var(--bg);border-bottom:1px solid var(--linea);box-shadow:0 12px 24px rgba(60,40,20,.1);
    max-height:calc(100vh - 70px);overflow:auto;
  }
  #menu-nav.abierto{display:flex}
  #menu-nav>a,.dd summary{margin:0;padding:14px 4px;font-size:1.05rem;border-bottom:1px solid var(--linea)}
  .dd{display:block;margin:0}
  .dd summary{display:flex;justify-content:space-between;align-items:center}
  .dd ul{position:static;min-width:0;padding:2px 0 6px 14px;border:0;background:none;box-shadow:none}
  .dd li:first-child{border-bottom:0;margin-bottom:0}
  .dd li a{padding:11px 4px}
}


/* ---------- 4. INICIO ---------- */
.hero{position:relative;min-height:88vh;display:flex;align-items:center;padding:10vh 5vw;overflow:hidden;background:var(--bg)}
.hero-bg{position:absolute;inset:0;background:url(../imagenes/inicio.jpg) no-repeat right center/auto 100%}   /* foto del inicio: imagenes/inicio.jpg */
.hero::after{   /* degradado a la izquierda para que se lea el texto */
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,var(--bg) 0%,var(--bg) 28%,rgba(245,238,227,.88) 46%,rgba(245,238,227,0) 74%);
}
.hero-texto{position:relative;z-index:1;max-width:620px}
.eyebrow{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:22px}
.hero h1{font-size:clamp(2.8rem,6.6vw,5.4rem);letter-spacing:-.045em;line-height:.98;margin-bottom:24px}
.hero p{max-width:56ch;margin:0 0 16px}
.hero .btn{margin-top:16px}

@media(max-width:760px){      /* celular: el texto arriba y la foto ABAJO, sin quedar detrás del texto */
  .hero{min-height:0;flex-direction:column;align-items:stretch;padding-bottom:0}
  .hero-texto{order:1;max-width:none}
  .hero-bg{
    order:2;position:relative;inset:auto;
    width:calc(100% + 10vw);margin:0 -5vw 0;aspect-ratio:5/4;
    background-size:cover;background-position:center bottom;
    /* degradado largo: la foto aparece de a poco, de arriba hacia abajo */
    -webkit-mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.35) 14%,#000 48%);
            mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.35) 14%,#000 48%);
  }
  .hero::after{display:none}
}


/* ---------- 5. LA EMPRESA ---------- */
.about{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:center;background:var(--arena)}
.about h2,.productos h2{font-size:clamp(2.1rem,4vw,3.2rem)}
.about p{max-width:60ch;margin:0 0 16px}
.atext h2+p{margin-top:20px}
.fotobox{overflow:hidden}
.foto{display:block;width:100%;aspect-ratio:5/4;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.fotobox:hover .foto{transform:scale(1.07)}

/* Tres datos destacados (Desde 2000 / Envíos / Diseño propio) */
.facts{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:12px;padding-top:48px;border-top:1px solid var(--linea)}
.facts div{text-align:center}
.facts div::before{content:"";display:block;width:36px;height:3px;background:var(--verde);margin:0 auto 14px}
.facts strong{display:block;font:600 1.3rem Poppins,Nunito,system-ui,sans-serif}

@media(max-width:760px){
  .about{grid-template-columns:1fr}
  .facts{grid-template-columns:1fr;gap:24px;padding-top:32px}
}


/* ---------- 6. CATEGORÍAS (tarjetas con foto) ---------- */
.productos h2{margin-bottom:12px}
.productos>p{margin:0 0 40px;max-width:55ch}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cat{
  position:relative;aspect-ratio:1/1;overflow:hidden;
  display:flex;flex-direction:column;justify-content:flex-end;padding:0 32px 28px;
  color:#fff;text-decoration:none;background:var(--arena);
}
.cat img{       /* la foto de portada (se agranda al pasar el mouse) */
  position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;
  transition:transform .8s cubic-bezier(.2,.7,.2,1);
}
.cat:hover img{transform:scale(1.08)}
.cat::after{    /* sombra oscura abajo para leer el texto */
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(to top,rgba(32,18,10,.62) 0%,rgba(32,18,10,.18) 38%,rgba(32,18,10,0) 62%);
}
.cat h3,.cat p{position:relative;z-index:2}
.cat h3{font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.045em;line-height:1;margin-bottom:6px}
.cat p{margin:0;font-size:1rem;line-height:1.3;letter-spacing:-.02em;max-width:34ch}
.cat h3,.cat p{text-shadow:0 2px 14px rgba(0,0,0,.35),0 1px 3px rgba(0,0,0,.3)}

@media(max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.grid{grid-template-columns:1fr}.cat{padding:0 22px 22px}}


/* ---------- 7. PRODUCTOS DESTACADOS (carrusel) ---------- */
.featured{padding:8vh 5vw 10vh}
.fhead{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px}
.fhead h2{font-size:clamp(2.1rem,4vw,3.2rem)}
.farrows{display:flex;gap:10px}
.farrows button{
  width:46px;height:46px;border-radius:50%;border:1px solid var(--ink);background:none;color:var(--ink);
  font-size:1.2rem;cursor:pointer;transition:background .3s,color .3s,border-color .3s;
}
.farrows button:hover{background:var(--acento);border-color:var(--acento);color:#fff}
.ftrack{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 0 18px;scrollbar-width:thin;scrollbar-color:var(--linea) transparent}
.fi{flex:0 0 clamp(240px,26vw,340px);scroll-snap-align:start;text-decoration:none}
.fi .im{aspect-ratio:4/5;overflow:hidden;background:var(--arena)}
.fi img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.fi:hover img{transform:scale(1.07)}
.fi h3{font-size:1.2rem;margin:14px 0 2px}
.fi span{font-size:.92rem;opacity:.75}


/* ---------- 8. CONTACTO ---------- */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:6vw;background:var(--arena)}
.contact h2{font-size:clamp(2.1rem,4vw,3.2rem);margin-bottom:18px}
.contact p{max-width:46ch;margin:0 0 28px}
.contact dl{margin:0}
.contact dt{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;opacity:.7;margin-top:18px}
.contact dd{margin:2px 0 0;font-size:1.05rem}
.contact dd a{text-decoration:underline;text-underline-offset:3px}
.contact dd a:hover{color:var(--acento)}

#cf{display:grid;gap:18px;align-content:start}
#cf label{display:grid;gap:6px;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
#cf input,#cf select,#cf textarea{
  width:100%;font:inherit;font-size:1rem;letter-spacing:0;text-transform:none;color:var(--ink);
  background:var(--card);border:1px solid var(--linea);border-radius:12px;padding:13px 14px;
}
#cf input:focus,#cf select:focus,#cf textarea:focus{outline:2px solid var(--acento);outline-offset:0}
#cf .invalid{border-color:#a33}
#cf button{justify-self:start;border:0;cursor:pointer}
#cf .note{margin:0;font-size:.88rem;opacity:.75}

@media(max-width:760px){.contact{grid-template-columns:1fr;gap:36px}}


/* ---------- 9. GALERÍA DE UNA CATEGORÍA ---------- */
.gal{padding:6vh 5vw 10vh}
.back{display:inline-block;margin-bottom:28px}
.gal h2{font-size:clamp(2.2rem,5vw,3.8rem)}
.gal>p{margin:10px 0 36px;max-width:55ch}
.ggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:40px}   /* miniaturas cuadradas iguales */
.ph{margin:0;aspect-ratio:1/1;overflow:hidden;cursor:zoom-in;background:var(--arena)}
.ph img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.ph:hover img{transform:scale(1.06)}
.vacio{grid-column:1/-1;margin:0;opacity:.75}


/* ---------- 10. FICHA DE PRODUCTO (visor al hacer clic en una foto) ---------- */
#lb{position:fixed;inset:0;z-index:50;display:none;align-items:center;justify-content:center;padding:3vh 3vw;background:rgba(20,14,10,.93)}
#lb.on{display:flex}
.lbbox{display:flex;width:min(1100px,100%);height:min(86vh,760px);background:var(--bg);overflow:hidden}
.lbimg{position:relative;flex:1 1 60%;min-width:0;display:flex;align-items:center;justify-content:center;background:#1d130d}
.lbimg img{width:100%;height:100%;object-fit:contain}
.lbb{position:absolute;padding:14px;background:none;border:0;color:#f4efe6;font-size:2.6rem;line-height:1;cursor:pointer}
#lbx{top:calc(env(safe-area-inset-top,0px) + 6px);right:8px}
.lbimg .lbb{width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(0,0,0,.3);font-size:1.8rem}
#lbp,#lbn{top:50%;transform:translateY(-50%)}
#lbp{left:8px}
#lbn{right:8px}
.lbinfo{flex:0 0 360px;display:flex;flex-direction:column;gap:12px;padding:36px 30px;overflow:auto;color:var(--ink)}
.lbinfo p{margin:0}
.lbinfo h3{font-size:1.7rem}
#lbcat{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;opacity:.65}
#lbcat:empty,.price:empty{display:none}
.price{font-weight:700;font-size:1.25rem;color:var(--acento)}
.lbinfo .btn{align-self:flex-start;margin-top:10px;color:#fff}
.lbinfo .more{font-size:.92rem;text-decoration:underline;text-underline-offset:3px}

@media(max-width:760px){
  .lbbox{flex-direction:column;height:92vh}
  .lbimg{flex:0 0 50%}
  .lbinfo{flex:1 1 auto;padding:20px}
}


/* ---------- 11. PIE DE PÁGINA ---------- */
footer{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 5vw;background:var(--bg);color:var(--ink);border-top:1px solid var(--linea)}   /* color alterno: el contacto de arriba es beige */
footer p{margin:0;font:500 clamp(.82rem,1.2vw,.98rem)/1.35 Poppins,Nunito,system-ui,sans-serif}
footer small{display:block;margin-top:4px;font-size:.7rem;opacity:.75}
.subir{                                   /* botón cuadrado para volver arriba */
  flex:none;display:grid;place-items:center;width:46px;height:42px;border-radius:8px;
  background:var(--ink);color:#f4efe6;text-decoration:none;
  transition:background .3s;
}
.subir:hover{background:var(--acento)}


/* ---------- 12. ANIMACIONES ---------- */
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes heroin{from{opacity:0;transform:scale(1.05)}}
@keyframes navin{from{opacity:0;transform:translateY(-14px)}}

/* Al cargar la página */
nav{animation:navin .7s ease backwards}
.hero-bg{animation:heroin 1.8s ease-out backwards}
.hero-texto>*{animation:rise .9s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(var(--i,0)*.13s + .15s)}
.hero-texto>:nth-child(2){--i:1}.hero-texto>:nth-child(3){--i:2}.hero-texto>:nth-child(4){--i:3}
.hero-texto>:nth-child(5){--i:4}.hero-texto>:nth-child(6){--i:5}
.gal>*:not(.ggrid){animation:rise .8s cubic-bezier(.2,.7,.2,1) backwards}

/* Al hacer scroll (la clase "rv" la agrega js/animaciones.js; "in" cuando entra en pantalla) */
.rv{opacity:0;transform:translateY(30px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.rv.in{opacity:1;transform:none}

/* Si la persona pidió "reducir movimiento" en su dispositivo, se apaga todo */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
  .btn:hover,.btn:hover::after,.cat:hover img,.fotobox:hover .foto,.ph:hover img,.fi:hover img{transform:none}
}
