/* ===============================================================
   Tema claro y cálido — sustituye a dark.css de la otra tienda.
   Va cargado DESPUÉS de styles.css y descripcion.css: aquí viven
   los colores de la marca y las secciones nuevas de esta landing.
   Paleta: blanco / crema, rojo Tefal para la acción, terracota
   para los bloques de marca. Sin negro, sin morado.
   =============================================================== */

:root{
  --accent:#d8232a;        /* rojo: botones y precio */
  --accent-hi:#b91c22;
  --accent-soft:#fdecec;
  --terra:#b5462b;         /* terracota: bloques de marca */
  --terra-dark:#8f3320;
  --terra-soft:#f7e4dc;
  --cream:#faf6f1;
  --cream-2:#f3ece4;
  --olive:#6b6b23;
  --ink:#1d1d1f;
  --muted:#5b5b5f;
  --line:#e8e2da;
  --green:#15803d;
  --star:#f5a300;
}

/* Rede de segurança contra o rolar lateral: se um dia algum bloco crescer
   demais, a página não desalinha. É `clip` e não `hidden` de propósito —
   `hidden` criaria um contêiner de rolagem e quebraria o `position:sticky`
   da galeria e do cabeçalho. */
html{overflow-x:clip}
body{background:#fff;color:var(--ink);overflow-x:clip}

/* ---------- cabecera ---------- */
.site-header{border-bottom-color:var(--line)}
.brand{height:2.6rem}
.main-nav a.active{border-bottom-color:var(--accent)}
.cart-badge{background:var(--accent)}

/* ---------- galería ---------- */
.gallery-main{background:var(--cream)}
.gallery-slide img{object-fit:contain;padding:6%;background:#fff}
.gallery-slide img.is-photo{object-fit:cover;padding:0}
.thumb{border-color:var(--line);background:#fff}
.thumb.is-active{border-color:var(--accent)}
.thumb img{object-fit:contain;padding:3px;background:#fff}
.thumb img.is-photo{object-fit:cover;padding:0}
/* Arrastrar con el dedo: sin touch-action el navegador se queda con el gesto
   y cancela el deslizamiento a mitad. Con pan-y el desplazamiento vertical
   sigue siendo del navegador y el horizontal pasa al carrusel. */
.gallery-viewport{touch-action:pan-y;cursor:grab}
.gallery-viewport:active{cursor:grabbing}
.videos-viewport{touch-action:pan-y}
/* La galería acompaña al scroll en vez de dejar un hueco muerto debajo de
   las miniaturas: la ficha es más alta porque lleva los vídeos. */
@media(min-width:1024px){
  .product-grid{align-items:start}
  .gallery{position:sticky;top:5rem}
}

/* ---------- ficha ---------- */
.product-title{font-size:1.35rem;line-height:1.3;letter-spacing:-.01em}
@media(min-width:1024px){.product-title{font-size:1.65rem;line-height:1.25}}
.rating-line{display:flex;align-items:center;gap:.6rem;margin-top:.75rem;font-size:.9rem;color:var(--muted)}
.rating-line .rv-stars svg{width:18px;height:18px}
.rating-line b{color:var(--ink);font-weight:700}
.rating-line a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.ob-destaques li svg{color:var(--accent)}
.ob-urg-vendido{color:var(--green)}
.ob-urg-ponto{background:var(--green)}
.ob-urg-stock{border-color:var(--line);background:var(--cream)}
.price-sale{color:var(--accent);font-size:1.9rem}
.price-badge{background:var(--accent-soft);color:var(--accent)}
/* El reset de styles.css pone svg{display:block}: dentro del botón el icono
   se iba solo a una línea, pegado a la izquierda, y estiraba la altura. Con
   flex vuelve a la misma línea que el texto y el botón recupera su tamaño. */
.buy-btn{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  background:var(--accent);border-radius:.6rem;
  font-size:.98rem;line-height:1.2;padding:.9rem 1.5rem;
  box-shadow:0 8px 18px -10px rgba(216,35,42,.5);
}
.buy-btn:hover{background:var(--accent-hi);opacity:1}
.buy-btn svg{width:1.05rem;height:1.05rem;flex:none}
/* Una sola línea siempre, pero que quepa de verdad. Con el tamaño anterior
   la frase medía más que el ancho disponible en cualquier móvil y se salía
   por la derecha: el texto es más corto y la letra acompaña al ancho de la
   pantalla de principio a fin, sin un mínimo que la desborde. */
.ship-note{
  display:flex;align-items:center;justify-content:center;gap:.35rem;
  white-space:nowrap;font-size:clamp(.6rem,2.8vw,.8rem);
  color:var(--muted);margin-top:.55rem;
}
.ship-note svg{width:.95em;height:.95em;flex:none;color:var(--green)}

/* Los siete iconos de pago no cabían en las pantallas más estrechas porque
   tenían el ancho clavado. Ahora pueden encogerse; al ser SVG no pierden
   nitidez al hacerlo. */
.payments svg{flex:0 1 38px;min-width:0}
@media(max-width:400px){
  .payments{gap:4px}
  .payments svg{height:auto;aspect-ratio:48/32}
}

/* miniaturas de vídeo bajo los iconos de pago: mismo tamaño que en la otra
   tienda (120x213, verticales). El vídeo se ve entero, sin recortes. */
@media(min-width:1024px){
  .mini-video{background:var(--cream);border:1px solid var(--line)}
  .mini-video:hover{border-color:var(--terra)}
  .mini-video video{object-fit:contain}
  .mini-video__sound{background:rgba(29,29,31,.6)}
}

/* ---------- tarjeta de marca: bloque rojo + animación (bajo la ficha) ---------- */
.push-card{padding:.5rem 1rem 1.5rem}
.push-card__inner{max-width:1600px;margin:0 auto;display:grid;grid-template-columns:1fr;border-radius:16px;overflow:hidden;background:var(--accent)}
.push-card__text{padding:2rem 1.5rem;color:#fff;display:flex;flex-direction:column;justify-content:center}
.push-card__text h2{font-size:clamp(22px,2.2vw,30px);font-weight:800;letter-spacing:-.02em;margin-bottom:.9rem;color:#fff}
.push-card__text p{font-size:clamp(15px,1.15vw,17px);line-height:1.55;color:rgba(255,255,255,.94)}
.push-card__media{position:relative;min-height:220px;aspect-ratio:16/9;background:#3a2a24}
.push-card__media picture{display:block}
.push-card__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
@media(min-width:900px){
  .push-card__inner{grid-template-columns:minmax(300px,33%) 1fr}
  .push-card__text{padding:3rem 2.75rem}
  .push-card__media{min-height:420px;aspect-ratio:auto}
}

/* ---------- bloque terracota: cocina versátil ---------- */
.versatil{background:var(--terra);color:#fff;padding:clamp(48px,6vw,88px) 1rem}
.versatil__inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:center}
.versatil h2{font-size:clamp(26px,3vw,38px);font-weight:800;letter-spacing:-.02em;line-height:1.15;margin-bottom:1rem;color:#fff}
.versatil p{font-size:15.5px;line-height:1.6;color:rgba(255,255,255,.92);margin-bottom:.8rem}
.versatil__media img{border-radius:14px;box-shadow:0 30px 60px -20px rgba(0,0,0,.45);width:100%}
@media(min-width:900px){.versatil__inner{grid-template-columns:1.05fr 1fr;gap:4rem}}

/* ---------- ventajas (3 tarjetas) ---------- */
.ventajas{padding:clamp(48px,6vw,80px) 1rem;background:#fff}
.ventajas__inner{max-width:1200px;margin:0 auto}
.ventajas h2{text-align:center;color:var(--accent);font-size:clamp(22px,2.4vw,30px);font-weight:800;letter-spacing:-.015em;max-width:820px;margin:0 auto 2.5rem;line-height:1.25}
.ventajas__grid{display:grid;grid-template-columns:1fr;gap:1.5rem}
.vcard{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.vcard img{width:100%;aspect-ratio:1/1;object-fit:cover}
.vcard__body{padding:1.25rem 1.35rem 1.5rem}
.vcard h3{color:var(--accent);font-size:1.05rem;font-weight:700;margin-bottom:.5rem}
.vcard p{font-size:.95rem;line-height:1.55;color:var(--muted)}
@media(min-width:768px){.ventajas__grid{grid-template-columns:repeat(3,1fr)}}

/* ---------- descripción (.desc) en cálido ---------- */
.description-box{border-top-color:var(--line)}
.description-box h3{display:none}
.desc{
  --ink:#1d1d1f;
  --muted:#5b5b5f;
  --line:#e8e2da;
  --panel:#faf6f1;
  --dark:#8f3320;
  --accent:#d8232a;
  --accent-soft:#fdecec;
  --accent-bright:#f2b9a6;
}
.desc .hero{background:linear-gradient(135deg,#b5462b 0%,#8f3320 100%)}
.desc .hero .eyebrow{background:#fff;color:var(--terra-dark)}
.desc .hero h1 span{color:#ffd9cc}
.desc .kicker{background:var(--accent-soft);color:var(--accent)}
.desc .copy h2 em{color:var(--accent)}
.desc ul.points svg{background:var(--accent-soft);stroke:var(--accent)}
.desc .tagline{border-left-color:var(--terra);background:var(--terra-soft);color:#6b2a19}
.desc .acard svg{stroke:var(--terra)}
.desc .specs{background:var(--cream);color:var(--ink);border:1px solid var(--line)}
.desc .specs h3{color:var(--ink)}
.desc .spec-row{border-bottom-color:var(--line)}
.desc .spec-row dt{color:var(--muted)}
.desc .spec-row dd{color:var(--ink)}
.desc .closing{position:relative;overflow:hidden;color:#fff;border:0;background:#3a2a24}
.desc .closing::before{content:"";position:absolute;inset:0;background:url("../img/cocina-fondo.jpg") center/cover no-repeat;opacity:.55}
.desc .closing::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(58,42,36,.25),rgba(58,42,36,.7))}
.desc .closing>*{position:relative;z-index:1}
.desc .closing h3{color:#fff}
.desc .closing p{color:rgba(255,255,255,.9)}
.desc .closing .btn{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.25rem;background:var(--accent);color:#fff;font-weight:700;padding:.85rem 1.6rem;border-radius:.6rem;font-size:15px}
.desc .closing .btn:hover{background:var(--accent-hi)}

/* ---------- vídeos: verticales 9:16, se ven enteros dentro de la tarjeta ---------- */
.videos-section{background:var(--cream)}
.videos-title{text-align:center;font-size:clamp(22px,2.4vw,30px);font-weight:800;letter-spacing:-.015em;margin-bottom:1.75rem;color:var(--ink)}
.video-card{background:#f3ece4;outline-color:rgba(0,0,0,.06)}
.video-card video{object-fit:contain}
.video-dots button.is-active{background:var(--accent)}

/* ---------- contenido de la caja ---------- */
.pack-section{background:#fff;padding:clamp(48px,6vw,80px) 1rem;border-top:1px solid var(--line)}
.pack-title{color:var(--ink);font-size:clamp(26px,3.2vw,40px);margin-bottom:clamp(24px,3vw,40px)}
.pack-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:2rem;align-items:center}
.pack-media{background:var(--cream);border-radius:20px;padding:1.5rem}
.pack-media img{width:100%;height:auto}
.pack-list{list-style:none;display:grid;gap:.75rem}
.pack-list li{display:flex;align-items:center;gap:.9rem;padding:.85rem 1rem;border:1px solid var(--line);border-radius:12px;background:#fff}
.pack-list .n{flex:none;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:800;display:flex;align-items:center;justify-content:center;font-size:.9rem}
.pack-list b{display:block;font-size:.98rem;color:var(--ink)}
.pack-list small{display:block;font-size:.82rem;color:var(--muted)}
.pack-total{margin-top:1rem;font-size:.9rem;color:var(--muted);text-align:center}
@media(min-width:900px){.pack-inner{grid-template-columns:1fr 1fr;gap:3.5rem}}

/* ---------- valoraciones ---------- */
.reviews{background:var(--cream);padding:clamp(48px,6vw,80px) 1rem}
.reviews__inner{max-width:900px;margin:0 auto}
.reviews .eyebrow{text-align:center;color:var(--accent);font-size:12.5px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;margin-bottom:.6rem}
.reviews h2{text-align:center;font-size:clamp(24px,3vw,34px);font-weight:800;letter-spacing:-.02em;margin-bottom:2rem}
.rv-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2rem 3.5rem;background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.5rem;margin-bottom:1.5rem}
.rv-score{text-align:center}
.rv-score .big{font-size:56px;font-weight:800;line-height:1;letter-spacing:-.04em}
.rv-score .rv-stars{justify-content:center;margin:.6rem 0 .4rem}
.rv-score .rv-stars svg{width:22px;height:22px}
.rv-score small{color:var(--muted);font-size:.9rem}
.rv-bars{flex:1 1 260px;max-width:420px;display:grid;gap:.45rem}
.rv-bar{display:grid;grid-template-columns:2.2rem 1fr 2.6rem;align-items:center;gap:.6rem;font-size:.85rem;color:var(--muted)}
.rv-bar .bar{height:.55rem;border-radius:999px;background:var(--cream-2);overflow:hidden}
.rv-bar .bar i{display:block;height:100%;background:var(--star);border-radius:999px}
.rv-bar b{text-align:right;font-weight:600;color:var(--ink)}
.rv-list{display:grid;gap:.9rem}
.rv{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.2rem}
.rv[hidden]{display:none}
.rv-head{display:flex;align-items:center;gap:.8rem}
.rv-avatar{flex:none;width:42px;height:42px;border-radius:50%;background:var(--terra);color:#fff;font-weight:700;font-size:.95rem;display:flex;align-items:center;justify-content:center}
.rv-who{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem .7rem}
.rv-who b{font-size:.95rem}
.rv-verified{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;font-weight:600;color:var(--green)}
.rv-verified svg{width:12px;height:12px}
.rv-meta{display:flex;align-items:center;gap:.6rem;margin:.5rem 0 .55rem}
.rv-stars{display:inline-flex;gap:2px}
.rv-stars svg{width:15px;height:15px;fill:#d9d4cc}
.rv-stars--5 svg{fill:var(--star)}
.rv-stars--4 svg:not(:last-child){fill:var(--star)}
.rv-date{font-size:.8rem;color:var(--muted)}
.rv p{font-size:.95rem;line-height:1.6;color:#3a3a3d}
.rv-helpful{display:inline-flex;align-items:center;gap:.35rem;margin-top:.6rem;font-size:.78rem;color:var(--muted)}
.rv-helpful svg{width:13px;height:13px}
.rv-more{display:block;margin:1.5rem auto 0;padding:.85rem 1.75rem;border:2px solid var(--ink);border-radius:.6rem;font-weight:700;background:#fff;transition:background .15s,color .15s}
.rv-more:hover{background:var(--ink);color:#fff}

/* ---------- preguntas ---------- */
.faq-section h2{font-size:clamp(22px,2.6vw,30px);font-weight:800}
.faq-item{border-color:var(--line)}
.faq-q:hover{background:var(--cream)}

/* ---------- recetas: tira de fotos + bloque de color (antes del pie) ---------- */
.recetas{padding:clamp(32px,4vw,56px) 1rem}
.recetas__inner{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:1fr;border-radius:14px;overflow:hidden}
.recetas__media img{width:100%;height:100%;object-fit:cover;display:block}
.recetas__box{background:var(--olive);color:#fff;padding:2.5rem 1.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.recetas__box h2{font-size:clamp(22px,2.2vw,30px);font-weight:800;line-height:1.25;letter-spacing:-.015em;max-width:420px;margin-bottom:1.5rem;color:#fff}
.recetas__box .btn{display:inline-block;background:#fff;color:var(--accent);font-weight:700;padding:.75rem 1.5rem;border-radius:4px;border:1px solid var(--accent);font-size:15px}
.recetas__box .btn:hover{background:var(--accent);color:#fff}
@media(min-width:900px){
  .recetas__inner{grid-template-columns:1fr minmax(320px,30%)}
  .recetas__media{aspect-ratio:820/320}
  .recetas__box{padding:3rem 2.5rem}
}

/* ---------- barra de servicios ---------- */
.service-section{background:#fff;padding:0 1rem 3rem}
.service-card{--icon-color:var(--accent);background:var(--cream);border:1px solid var(--line);box-shadow:none;border-radius:24px}
.service-content h3{color:var(--ink)}
.service-content p{color:var(--muted)}
@media(max-width:640px){
  .service-card{background:transparent;border:0}
  .service-item{background:var(--cream);border-color:var(--line)}
}

/* ---------- pie ---------- */
.site-footer{background:var(--terra-dark)}
.footer-bottom{border-top-color:rgba(255,255,255,.14)}
.footer-contact,.footer-links,.footer-bottom p{color:rgba(255,255,255,.75)}
.footer-social svg{fill:rgba(255,255,255,.75)}

/* ---------- ofertas del carrito: lista limpia, sin recuadros llamativos ----------
   Sustituye al recuadro discontinuo ámbar que traía el esqueleto: una fila por
   producto, con miniatura, precio tachado y botón de añadir. */
.bumps{border-top:1px solid var(--line);margin-top:1.1rem;padding-top:1.1rem}
.bumps__titulo{
  font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  color:var(--muted);margin:0 0 .7rem;
}
.bump{
  display:flex;align-items:center;gap:.7rem;position:relative;
  margin:0 0 .5rem;padding:.55rem .7rem;
  border:1px solid var(--line);border-radius:.75rem;background:#fff;
  border-style:solid;cursor:pointer;
  transition:border-color .15s ease,background-color .15s ease;
}
.bump:last-child{margin-bottom:0}
.bump:hover{background:var(--cream);border-color:#d9cfc3}
.bump--marcado{border-color:var(--green);background:#f3faf5}
.bump__check{position:absolute;opacity:0;pointer-events:none}
.bump__img{
  flex:0 0 46px;width:46px;height:46px;border-radius:8px;
  background:var(--cream);display:grid;place-items:center;overflow:hidden;
}
.bump__img img{width:100%;height:100%;object-fit:contain}
.bump__info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
.bump__info b{
  font-size:13px;font-weight:600;line-height:1.3;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.bump__precio{display:flex;align-items:baseline;gap:6px}
.bump__precio em{font-style:normal;font-weight:700;font-size:14px;color:var(--accent)}
.bump__precio s{color:var(--muted);font-size:12px}
.bump__add{
  flex:0 0 auto;padding:6px 14px;border-radius:999px;
  border:1.5px solid var(--ink);background:#fff;color:var(--ink);
  font-size:12.5px;font-weight:600;line-height:1;white-space:nowrap;
  transition:background-color .15s ease,color .15s ease,border-color .15s ease;
}
.bump__add i{font-style:normal}
.bump__add .add-off{display:none}
.bump:hover .bump__add{background:var(--ink);color:#fff}
.bump--marcado .bump__add{background:var(--green);border-color:var(--green);color:#fff}
.bump--marcado .bump__add .add-on{display:none}
.bump--marcado .bump__add .add-off{display:inline}

/* ---------- botón flotante y carrito ---------- */
.floating-cta button{background:var(--accent);box-shadow:0 10px 30px -8px rgba(216,35,42,.6)}
.cart-checkout{background:var(--accent)}
.cart-checkout:hover{background:var(--accent-hi);opacity:1}
.cart-line img{object-fit:contain;background:var(--cream);padding:4px}

/* ---------- animaciones (mismo mecanismo de main.js) ---------- */
.has-anim [data-animate="fade-up"]{opacity:0;transform:translateY(28px);transition:opacity .7s ease-out,transform .7s cubic-bezier(.16,.68,.4,1);transition-delay:var(--delay,0ms)}
.has-anim [data-animate="fade-up"].is-in{opacity:1;transform:none}
