/* ==========================================================================
   33 · Bienestar claro
   Para tiendas de cuidado personal, salud y bienestar cuyo catálogo son fotos
   de producto sobre fondo blanco. Blanco de lienzo, azul de la marca y un gris
   muy claro para las baldosas. Todo respira: mucho aire, esquinas suaves y
   ninguna sombra fuerte. La firma es la baldosa: cada producto vive dentro de
   un cuadrado gris claro que iguala fotos de tamaños distintos.
   ========================================================================== */

:root{
  --azul:var(--marca-1, #0190E8);
  --azul-hondo:#0A6BB0;
  --azul-claro:#7FC9F5;
  --azul-humo:#EAF6FE;
  --nieve:#F5F7FA;
  --blanco:#FFFFFF;
  --tinta:#132030;
  --tinta-suave:#5E6C7E;
  --linea:rgba(19,32,48,.1);
  --linea-clara:rgba(255,255,255,.2);
  --ease:cubic-bezier(.2,.8,.25,1);
  --r:18px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth; overflow-x:clip}
body{margin:0; background:var(--blanco); color:var(--tinta); line-height:1.76; -webkit-font-smoothing:antialiased}
img{max-width:100%; display:block}
a{color:inherit}
h1,h2,h3{margin:0; font-weight:700; line-height:1.16; letter-spacing:-.022em}
h1 em, h2 em{font-style:normal; color:var(--azul)}
p{margin:0 0 1rem}
.blob{display:none !important}

.wrap{width:min(1160px,92vw); margin:0 auto}
.sec{padding:104px 0; position:relative}
.centrado{text-align:center}
.eyebrow{display:inline-flex; align-items:center; gap:10px; font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; font-weight:700; color:var(--azul); margin:0 0 16px;
  background:var(--azul-humo); border-radius:999px; padding:7px 16px}
.oscuro .eyebrow{background:rgba(255,255,255,.12); color:var(--blanco)}

/* ---------- Botones ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:16px 30px; border-radius:999px; text-decoration:none; font-weight:600;
  font-size:.88rem; border:1.5px solid transparent; cursor:pointer;
  transition:transform .3s var(--ease), background .3s, color .3s, border-color .3s, box-shadow .3s}
.btn svg{width:1.15em; height:1.15em; flex:none}
.btn-primary{background:var(--azul); color:var(--blanco); box-shadow:0 14px 30px -14px rgba(1,144,232,.8)}
.btn-primary:hover{background:var(--azul-hondo); transform:translateY(-3px)}
.btn-linea{background:var(--blanco); color:var(--tinta); border-color:var(--linea)}
.btn-linea:hover{border-color:var(--azul); color:var(--azul)}
.oscuro .btn-linea{background:transparent; color:var(--blanco); border-color:var(--linea-clara)}
.oscuro .btn-linea:hover{background:var(--blanco); color:var(--azul)}
.btn-wa{background:#25D366; color:#04331d}
.btn-wa:hover{transform:translateY(-3px)}
.btn-sm{padding:11px 20px; font-size:.78rem}
.chip{display:inline-flex; align-items:center; gap:9px; font-size:.78rem; font-weight:600}
.chip svg{width:17px; height:17px; color:var(--azul)}

/* ---------- Encabezado ---------- */
#hdr{position:sticky; top:0; z-index:60; background:rgba(255,255,255,.94); backdrop-filter:blur(12px); border-bottom:1px solid var(--linea)}
.nav{display:flex; align-items:center; justify-content:space-between; gap:22px; height:84px; transition:height .3s var(--ease)}
header.stuck .nav{height:66px}
.brand{display:flex; align-items:center; gap:13px; text-decoration:none; min-width:0}
.brand img{width:auto; height:52px; max-width:110px; object-fit:contain; flex:none; border-radius:50%}
.brand > span{display:flex; flex-direction:column; min-width:0}
.brand b{font-size:1.06rem; color:var(--tinta); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.brand i{font-style:normal; font-size:.62rem; color:var(--tinta-suave); font-weight:500}
.nav-links{display:flex; gap:28px}
.nav-links a{position:relative; text-decoration:none; color:var(--tinta-suave); font-size:.86rem; font-weight:600; padding:6px 0; transition:color .25s}
.nav-links a:hover{color:var(--azul)}

/* ---------- 1 · Portada ---------- */
.b-hero{background:linear-gradient(180deg, var(--azul-humo) 0%, var(--blanco) 100%); padding:70px 0 118px; position:relative; overflow:hidden}
.b-hero .wrap{display:grid; grid-template-columns:1.02fr .98fr; gap:52px; align-items:center; position:relative; z-index:1}
.b-hero h1{font-size:clamp(2.3rem,5.2vw,4.1rem)}
.b-lead{margin:22px 0 0; max-width:46ch; color:var(--tinta-suave); font-size:1.08rem}
.b-hero-cta{display:flex; gap:14px; margin:30px 0 30px; flex-wrap:wrap}
.b-firmas{display:flex; flex-wrap:wrap; gap:12px 26px; padding-top:24px; border-top:1px solid var(--linea)}
/* la baldosa: iguala fotos de proporciones distintas */
.b-baldosa{background:var(--nieve); border-radius:var(--r); display:grid; place-items:center; padding:26px; overflow:hidden}
.b-baldosa img{width:100%; height:auto; aspect-ratio:1; object-fit:contain}
.b-pila{display:grid; grid-template-columns:1fr 1fr; gap:16px; max-width:460px; margin:0 auto}
.b-pila > :nth-child(1){grid-column:1 / 3; padding:18px 34px}
.b-pila > :nth-child(1) img{aspect-ratio:16/10}
.b-pila > .b-baldosa{padding:16px}
.b-aval{position:absolute; left:0; right:0; bottom:34px; text-align:center; font-size:.76rem; color:var(--tinta-suave); z-index:1}
.b-aval b{color:var(--tinta); font-weight:600}

/* ---------- 2 · Cinta ---------- */
.b-cinta{background:var(--azul); color:var(--blanco)}
.b-cinta .wrap{display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:10px 38px; padding:18px 0}
.b-cinta span{font-size:.86rem; font-weight:600; display:inline-flex; align-items:center; gap:12px}
.b-cinta span::before{content:"✓"; font-weight:700}

/* ---------- 3 · Áreas ---------- */
.b-areas{background:var(--blanco)}
.b-cab{max-width:58ch; margin:0 auto 54px; text-align:center}
.b-cab h2{font-size:clamp(2rem,4.4vw,3.2rem)}
.b-cab p{margin:16px 0 0; color:var(--tinta-suave)}
.b-cuatro{display:grid; grid-template-columns:repeat(4,1fr); gap:20px}
.b-cuatro div{background:var(--nieve); border-radius:var(--r); padding:30px 26px; transition:background .3s, transform .3s var(--ease)}
.b-cuatro div:hover{background:var(--azul-humo); transform:translateY(-4px)}
.b-cuatro svg{width:28px; height:28px; color:var(--azul); margin-bottom:16px}
.b-cuatro b{display:block; font-size:1.02rem; margin-bottom:6px}
.b-cuatro p{margin:0; font-size:.9rem; color:var(--tinta-suave)}

/* ---------- 4 · Catálogo ---------- */
.b-tienda{background:var(--nieve)}
.b-rejilla{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
.b-item{display:flex; flex-direction:column; background:var(--blanco); border-radius:calc(var(--r) + 4px); overflow:hidden;
  transition:transform .4s var(--ease), box-shadow .4s}
.b-item:hover{transform:translateY(-6px); box-shadow:0 26px 50px -34px rgba(19,32,48,.4)}
.b-foto{display:block; background:var(--blanco); padding:22px; position:relative; border-bottom:1px solid var(--linea)}
.b-foto img{width:100%; height:auto; aspect-ratio:1; object-fit:contain}
.b-tag{position:absolute; left:16px; top:16px; z-index:2; background:var(--azul-humo); color:var(--azul-hondo); border-radius:999px;
  font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700; padding:6px 13px}
.b-cuerpo{padding:22px 22px 24px; display:flex; flex-direction:column; gap:9px; flex:1}
.b-cuerpo h3{font-size:1.08rem}
.b-cuerpo h3 a{text-decoration:none}
.b-cuerpo > p{margin:0; font-size:.9rem; color:var(--tinta-suave); flex:1}
.b-precio{font-size:1.24rem; font-weight:700; color:var(--azul-hondo)}
.b-acc{display:flex; gap:9px; flex-wrap:wrap; margin-top:4px}
.b-nota{margin:46px auto 0; max-width:62ch; text-align:center; font-size:.88rem; color:var(--tinta-suave)}

/* ---------- 5 · Cómo trabajamos ---------- */
.b-modo{background:var(--tinta); color:var(--blanco)}
.b-modo h2{font-size:clamp(2rem,4.4vw,3.1rem); color:var(--blanco); max-width:22ch}
.b-modo .intro{color:rgba(255,255,255,.72); max-width:56ch; margin-top:14px}
.b-tres{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:52px}
.b-tres div{background:rgba(255,255,255,.05); border:1px solid var(--linea-clara); border-radius:var(--r); padding:32px 28px; transition:background .3s, border-color .3s}
.b-tres div:hover{background:rgba(127,201,245,.1); border-color:var(--azul-claro)}
.b-tres b{display:block; font-size:1.3rem; color:var(--azul-claro); margin-bottom:10px}
.b-tres p{margin:0; font-size:.92rem; color:rgba(255,255,255,.74)}

/* ---------- 6 · Quiénes somos ---------- */
.b-somos{background:var(--blanco)}
.b-somos .wrap{display:grid; grid-template-columns:.88fr 1.12fr; gap:56px; align-items:center}
.b-retrato{max-width:400px; margin:0 auto}
.b-somos h2{font-size:clamp(2rem,4.4vw,3.1rem); margin-bottom:18px}
.b-somos p{color:var(--tinta-suave)}
.b-somos .hist > summary{color:var(--azul)}
.b-mv{display:grid; gap:16px; margin-top:26px}
.b-mv div{background:var(--nieve); border-radius:var(--r); padding:24px}
.b-mv h3{font-size:.64rem; letter-spacing:.22em; text-transform:uppercase; color:var(--azul); margin-bottom:8px}
.b-mv p{margin:0; font-size:.94rem}
.b-aviso{margin-top:24px; padding:18px 22px; background:var(--azul-humo); border-radius:var(--r); font-size:.88rem; color:var(--tinta-suave)}

/* ---------- 7 · Cierre y contacto ---------- */
.b-cierre{background:var(--azul); color:var(--blanco); text-align:center; position:relative; overflow:hidden}
.b-cierre::after{content:""; position:absolute; left:50%; bottom:-46%; width:76%; aspect-ratio:1; transform:translateX(-50%); border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.16), transparent 62%); pointer-events:none}
.b-cierre .wrap{position:relative; z-index:1}
.b-cierre .eyebrow{background:rgba(255,255,255,.16); color:var(--blanco)}
.b-cierre h2{font-size:clamp(2rem,4.8vw,3.4rem); color:var(--blanco); margin-bottom:16px}
.b-cierre > .wrap > div > p{max-width:52ch; margin:0 auto 30px; color:rgba(255,255,255,.86)}
.b-pasos{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:60px; text-align:left}
.b-pasos div{background:rgba(255,255,255,.12); border-radius:var(--r); padding:28px 24px}
.b-pasos b{display:inline-grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--blanco); color:var(--azul); font-weight:700; margin-bottom:12px}
.b-pasos h3{font-size:1.04rem; color:var(--blanco); margin-bottom:8px}
.b-pasos p{margin:0; font-size:.9rem; color:rgba(255,255,255,.84)}
.b-contacto{background:var(--blanco); padding:92px 0}
.b-contacto .wrap{display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center}
.b-contacto h2{font-size:clamp(1.9rem,3.8vw,2.8rem); margin-bottom:14px}
.b-canales{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.b-canales a{display:flex; align-items:center; gap:14px; padding:18px 20px; background:var(--nieve); border-radius:var(--r); text-decoration:none;
  border:1.5px solid transparent; transition:border-color .3s, background .3s, transform .3s var(--ease)}
.b-canales a:hover{border-color:var(--azul); background:var(--blanco); transform:translateY(-3px)}
.b-canales svg{width:18px; height:18px; color:var(--azul); flex:none}
.b-canales .et{font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; color:var(--tinta-suave); display:block; font-weight:700}
.b-canales .va{font-size:.92rem; font-weight:600; word-break:break-word}

footer{background:var(--tinta); color:rgba(255,255,255,.72); padding:54px 0 40px}
.foot-top{display:flex; align-items:center; justify-content:space-between; gap:22px; flex-wrap:wrap; padding-bottom:24px; border-bottom:1px solid var(--linea-clara)}
.foot-top .brand b{color:var(--blanco)}
.foot-top .brand i{color:rgba(255,255,255,.6)}
.foot-social{display:flex; gap:12px}
.foot-social a{width:44px; height:44px; display:grid; place-items:center; border-radius:50%; border:1px solid var(--linea-clara); color:var(--blanco);
  transition:background .3s, color .3s, border-color .3s}
.foot-social a:hover{background:var(--azul); border-color:var(--azul)}
.foot-social svg{width:18px; height:18px}
.foot-bot{display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; padding-top:22px; font-size:.8rem}
.foot-aviso{margin-top:14px; font-size:.76rem; color:rgba(255,255,255,.55); line-height:1.6}

/* ---------- Piezas compartidas ---------- */
.progress{position:fixed; top:0; left:0; height:3px; width:0; z-index:100; background:var(--azul); transition:width .1s linear}
.saltar{background:var(--azul); color:var(--blanco); border-radius:999px}
.pista{color:var(--tinta-suave)}
.wa-float{position:fixed; right:24px; bottom:24px; z-index:90; display:inline-flex; align-items:center; gap:10px; background:var(--azul); color:var(--blanco);
  text-decoration:none; font-weight:600; font-size:.82rem; padding:16px 24px; border-radius:999px; box-shadow:0 18px 34px -14px rgba(1,144,232,.9);
  transition:transform .3s var(--ease), background .3s}
.wa-float:hover{transform:translateY(-3px); background:var(--azul-hondo)}
.wa-float svg{width:19px; height:19px; flex:none}
.anim .wa-float{animation:latirB2 3.4s ease-out infinite}
@keyframes latirB2{0%{box-shadow:0 18px 34px -14px rgba(1,144,232,.9), 0 0 0 0 rgba(1,144,232,.45)} 70%,100%{box-shadow:0 18px 34px -14px rgba(1,144,232,.9), 0 0 0 16px rgba(1,144,232,0)}}
.insignia, .insignia-linea{border-radius:999px; font-weight:700}
.insignia-linea{background:var(--azul-humo); color:var(--azul-hondo)}
.hist > summary{color:var(--azul)}
.barra-compra{border-top:1px solid var(--linea)}
.barra-compra .bc-txt b{color:var(--azul-hondo)}

/* ---------- Página de producto ---------- */
.bp2-cab{background:var(--blanco); padding:24px 0 2px}
.crumbs{margin:0; display:flex; gap:10px; flex-wrap:wrap; font-size:.8rem; color:var(--tinta-suave)}
.crumbs a{text-decoration:none; color:var(--tinta); font-weight:600}
.crumbs a:hover{color:var(--azul)}
.bp2-cuerpo{background:var(--blanco); padding:38px 0 92px}
.bp2-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start}
.bp2-foto{background:var(--nieve); border-radius:calc(var(--r) + 6px); padding:34px; position:relative}
.bp2-foto > img{width:100%; height:auto; aspect-ratio:1; object-fit:contain}
.kp-tira{display:flex; gap:10px; margin-top:14px}
.kp-tira button{padding:6px; border:1.5px solid transparent; border-radius:12px; background:var(--nieve); width:70px; cursor:pointer}
.kp-tira button[aria-current="true"]{border-color:var(--azul)}
.kp-tira img{width:100%; height:auto; aspect-ratio:1; object-fit:contain}
.bp2-info h1{font-size:clamp(1.9rem,4.2vw,3rem); margin-bottom:14px}
.bp2-precio{display:flex; align-items:baseline; gap:14px; margin:22px 0 6px; flex-wrap:wrap}
.bp2-precio b{font-size:clamp(1.6rem,3.4vw,2.4rem); color:var(--azul-hondo)}
.bp2-precio small{font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--tinta-suave); font-weight:700}
.p-agotado{font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--tinta-suave)}
.bp2-op{margin:24px 0 0}
.bp2-op h3{font-size:.64rem; letter-spacing:.22em; text-transform:uppercase; color:var(--tinta-suave); margin-bottom:11px; font-weight:700}
.bp2-chips{display:flex; flex-wrap:wrap; gap:9px}
.bp2-chips button{background:var(--blanco); color:var(--tinta); border:1.5px solid var(--linea); border-radius:999px; padding:10px 20px; font:inherit; font-size:.86rem;
  font-weight:600; cursor:pointer; transition:border-color .2s, background .2s, color .2s}
.bp2-chips button:hover{border-color:var(--azul)}
.bp2-chips button[aria-pressed="true"]{background:var(--azul); border-color:var(--azul); color:var(--blanco)}
.bp2-puntos{list-style:none; margin:26px 0 0; padding:0; display:grid; gap:12px}
.bp2-puntos li{position:relative; padding-left:30px; font-size:.96rem; color:var(--tinta-suave)}
.bp2-puntos li::before{content:"✓"; position:absolute; left:0; top:0; color:var(--azul); font-weight:700}
.bp2-cta{display:flex; gap:12px; flex-wrap:wrap; margin-top:28px}
.bp2-detalle{background:var(--nieve); padding:92px 0}
.bp2-detalle .wrap{display:grid; grid-template-columns:.8fr 1.2fr; gap:52px; align-items:start}
.bp2-detalle h2{font-size:clamp(1.8rem,3.6vw,2.5rem); margin-bottom:16px}
.bp2-otros{background:var(--blanco); padding:92px 0}
.bp2-otros-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:24px; margin-top:38px}

/* ---------- Responsive ---------- */
@media (max-width:1000px){
  .b-hero .wrap{grid-template-columns:1fr; gap:48px}
  .b-cuatro{grid-template-columns:1fr 1fr}
  .b-rejilla{grid-template-columns:1fr 1fr}
  .b-tres{grid-template-columns:1fr}
  .b-somos .wrap{grid-template-columns:1fr; gap:36px}
  .b-pasos{grid-template-columns:1fr}
  .b-contacto .wrap{grid-template-columns:1fr; gap:34px}
  .bp2-grid, .bp2-detalle .wrap{grid-template-columns:1fr; gap:40px}
}
@media (max-width:640px){
  body{font-size:16px}
  .sec{padding:74px 0}
  .nav{height:72px}
  .nav-links{display:none}
  .brand img{height:44px}
  .b-hero{padding:44px 0 92px}
  .b-hero-cta .btn{flex:1 1 100%}
  .b-pila{max-width:330px; gap:12px}
  .b-cuatro{grid-template-columns:1fr}
  .b-rejilla{grid-template-columns:1fr; max-width:400px; margin-inline:auto}
  .b-canales{grid-template-columns:1fr}
  .wa-float span{display:none}
  .wa-float{padding:16px}
  .bp2-detalle, .bp2-otros{padding:70px 0}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .btn, .b-item, .b-cuatro div{transition:none}
  .wa-float{animation:none !important}
}
