/* ===============================
   Pastelería Yeslain – style.css
   Limpio, colorido e interactivo
   =============================== */

:root{
  --ink:#1f2937;
  --muted:#64748b;
  --brand:#e11d48;
  --brand-700:#be123c;
  --radius:20px;
  --surface:#ffffffcc;
}

/* Reset */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Inter,system-ui,Arial,Helvetica,sans-serif;
  color:var(--ink);
  background:
    radial-gradient(1200px 600px at 10% -10%, #ffe59d 0, transparent 60%),
    radial-gradient(1200px 600px at 110% 20%, #c8f7dc 0, transparent 60%),
    radial-gradient(1200px 600px at -10% 90%, #f8c2d1 0, transparent 60%),
    linear-gradient(135deg,#fef6ff 0%, #e7f3ff 60%, #efe7ff 100%);
}

/* Helpers */
.container{max-width:1160px;margin:0 auto;padding:0 16px}
.glass{background:var(--surface);backdrop-filter:saturate(160%) blur(8px); box-shadow:0 10px 30px rgba(31,41,55,.08)}
.shadow-xl{box-shadow:0 18px 45px rgba(0,0,0,.18)}
.muted{color:var(--muted);font-size:13px}

/* Header / Nav */
header{position:sticky;top:0;z-index:20;border-bottom:1px solid #ffffff80}
.navwrap{display:flex;align-items:center;justify-content:space-between;padding:12px 0}
.brand{display:flex;align-items:center;gap:10px;font-weight:800}
.brand img{width:42px;height:42px;object-fit:contain;border-radius:12px}
nav a{font-size:14px;margin:0 10px;color:#334155;text-decoration:none;font-weight:600}
nav a:hover{color:#000}

/* Botones */
.btn{display:inline-flex;align-items:center;gap:.5rem;border:none;border-radius:14px;padding:12px 16px;font-weight:700;cursor:pointer;transition:transform .15s ease, filter .2s; position:relative; overflow:hidden}
.btn span{margin-left:6px}
.btn-primary{background:linear-gradient(135deg,#ff6b6b,#f06595,var(--brand)); color:#fff; box-shadow:0 8px 18px rgba(225,29,72,.25)}
.btn-primary:hover{filter:brightness(.95); transform:translateY(-1px)}
.btn-ghost{background:#ffffff; border:1px solid #e5e7eb}
.badge{display:inline-block;padding:6px 10px;border-radius:999px;background:#000000cc;color:#fff;font-size:12px;font-weight:700}

/* Hero */
.hero{display:grid;gap:28px;align-items:center;padding:48px 0}
.hero-copy .lead{color:var(--muted);font-size:18px;max-width:56ch}
.hero .actions{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap}
.hero-bullets{list-style:none;display:flex;gap:18px;color:var(--muted);font-size:14px;flex-wrap:wrap;padding:0;margin:16px 0 0}
.hero-bullets li{display:flex;align-items:center;gap:8px}
.hero-img{position:relative;border-radius:26px;overflow:hidden}
.hero-img img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;display:block}
h1{font-size:42px;line-height:1.1;margin:12px 0 8px}

/* Section / Grid / Cards */
.section{padding:28px 0}
.section-title{font-size:28px;font-weight:800;margin-bottom:12px}
.grid{display:grid;gap:18px}
.grid-4{grid-template-columns:repeat(1,1fr)}
.grid-3{grid-template-columns:repeat(1,1fr)}
@media(min-width:680px){.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.grid-4{grid-template-columns:repeat(4,1fr)} .grid-3{grid-template-columns:repeat(3,1fr)}}
.card{border:1px solid #ffffff80;border-radius:var(--radius);background:#fff;box-shadow:0 6px 20px rgba(16,24,40,.06);overflow:hidden;transition:transform .18s ease, box-shadow .2s ease}
.card:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(16,24,40,.12)}
.card-h{padding:18px 20px 0}
.card-c{padding:0 20px 20px}
.card-title{margin:6px 0 2px;font-size:18px;font-weight:800}
.card-title.with-icon svg{margin-right:6px}
.card-desc{margin:0;color:var(--muted);font-size:14px}
.iconchip{width:44px;height:44px;border-radius:14px;background:#ffffff;border:1px solid #ffe4e6;display:flex;align-items:center;justify-content:center;margin-bottom:10px;color:var(--brand)}

/* Promo */
.promo{border-radius:var(--radius);padding:26px;background:linear-gradient(90deg,#fff7edcc,#fff1f2cc,#f3e8ffcc)}
.promo-inner{display:flex;gap:20px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.promo-title{margin:0 0 4px;font-size:22px;font-weight:800}

/* Productos */
.product{position:relative}
.product-img{height:180px;border-radius:14px;background:#f8fafc;object-fit:cover;width:100%}
.tag{position:absolute;right:18px;top:18px;font-size:12px;padding:6px 10px;border-radius:999px;color:#fff;background:linear-gradient(135deg,#f59e0b,#ef4444)}
.product-foot{display:flex;align-items:center;justify-content:space-between}
.price{font-size:18px}

/* Opiniones */
.rating{color:#f59e0b;display:flex;gap:2px}
.quote{font-size:16px;font-weight:800}

/* Newsletter */
.newsletter-card{border:1px dashed #ffd1dc}
.newsletter{display:flex;gap:10px;flex-wrap:wrap}
.newsletter input{flex:1;min-width:220px;border:1px solid #e5e7eb;border-radius:12px;padding:12px}
.newsletter button{white-space:nowrap}
.card-title.big{font-size:22px}

/* Footer */
.footer{margin-top:40px;border-top:1px solid #ffffff80}
.footer-grid{padding:28px 0;display:grid;gap:22px;grid-template-columns:1.2fr 1fr 1fr}
.footer .row{display:flex;align-items:center;gap:8px;margin-top:6px}
.copy{text-align:center;padding:0 0 20px}

/* Galería */
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.gallery img{
  width:100%; height:170px; object-fit:cover; border-radius:14px; display:block;
  box-shadow:0 6px 18px rgba(16,24,40,.10);
  transition:transform .18s ease, box-shadow .2s ease, filter .2s;
}
.gallery a{position:relative; border-radius:14px; overflow:hidden}
.gallery a::after{
  content:"Ver"; position:absolute; inset:auto 8px 8px auto;
  background:#000000b3; color:#fff; font-size:12px; padding:4px 8px; border-radius:999px;
  opacity:0; transform:translateY(6px); transition:.18s;
}
.gallery img:hover{transform:translateY(-3px); box-shadow:0 14px 28px rgba(16,24,40,.16); filter:saturate(110%)}
.gallery a:hover::after{opacity:1; transform:translateY(0)}
.lightbox{position:fixed; inset:0; background:rgba(0,0,0,.85); display:none; z-index:60; align-items:center; justify-content:center; padding:20px}
.lightbox img{max-width:min(92vw,1200px); max-height:86vh; border-radius:18px; box-shadow:0 18px 50px rgba(0,0,0,.5)}
.lightbox:target{display:flex}
.lightbox .close{
  position:fixed; top:16px; right:20px; width:40px; height:40px; line-height:40px; text-align:center;
  border-radius:999px; background:#ffffff; color:#111827; text-decoration:none; font-weight:800; font-size:22px;
  box-shadow:0 8px 18px rgba(0,0,0,.25);
}

/* Interacciones Pro */
.btn-cta-shine{position:relative; overflow:hidden; animation:ctaPulse 2.6s ease-in-out 1.2s 2}
.btn-cta-shine::after{
  content:""; position:absolute; inset:0 auto 0 -120%;
  width:120%; transform:skewX(-20deg);
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent);
  filter:blur(2px);
  animation:shine 3.2s linear infinite;
}
@keyframes shine{0%{left:-120%} 60%{left:120%} 100%{left:120%}}
@keyframes ctaPulse{0%{transform:scale(1)} 50%{transform:scale(1.03)} 100%{transform:scale(1)}}
.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease}
.reveal.is-visible{opacity:1; transform:none}
.btn .ripple{
  position:absolute; border-radius:50%; background:rgba(255,255,255,.55);
  transform:scale(0); animation:ripple .5s ease-out forwards; pointer-events:none;
}
@keyframes ripple{to{transform:scale(2); opacity:0}}

/* FAB WhatsApp Neo + Widget */
.wafab-neo{
  position:fixed; right:18px; bottom:18px; z-index:90;
  width:64px; height:64px; border-radius:999px; border:none; cursor:pointer;
  color:#fff; display:grid; place-items:center;
  background:conic-gradient(from 180deg at 50% 50%, #25D366, #1ebe57, #22c55e, #25D366);
  box-shadow:0 14px 34px rgba(37,211,102,.35), 0 6px 12px rgba(0,0,0,.18);
  animation:pulse 2.6s infinite ease-in-out;
}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
.wafab-icon{display:grid;place-items:center;background:#0b3721; width:46px; height:46px; border-radius:999px}
.wafab-tooltip{
  position:absolute; right:74px; bottom:50%; transform:translateY(50%); white-space:nowrap;
  background:#111827; color:#fff; font-size:12px; padding:8px 10px; border-radius:10px; opacity:0; pointer-events:none;
  transition:.2s; box-shadow:0 8px 18px rgba(0,0,0,.25);
}
.wafab-neo:hover .wafab-tooltip{opacity:1; transform:translateY(50%) translateX(-4px)}
.wafab-badge{position:absolute; top:-4px; right:-4px; width:16px; height:16px; border-radius:999px; background:#ff5252; color:transparent; box-shadow:0 0 0 3px #fff}

/* Widget */
.wa-widget{
  position:fixed; right:18px; bottom:96px; width:min(360px, 92vw);
  background:#fff; border-radius:18px; box-shadow:0 18px 50px rgba(0,0,0,.25);
  overflow:hidden; transform:translateY(18px); opacity:0; pointer-events:none; transition:.25s ease; z-index:95;
  border:1px solid #f1f5f9;
}
.wa-widget.open{transform:none; opacity:1; pointer-events:auto}
.wa-head{
  display:flex; align-items:center; justify-content:space-between; padding:12px 12px 12px 14px;
  background:linear-gradient(120deg,#ecfeff,#fdf4ff); border-bottom:1px solid #f1f5f9;
}
.wa-brand{display:flex; gap:10px; align-items:center}
.wa-brand img{width:36px; height:36px; border-radius:10px; object-fit:cover}
.wa-head small{color:#64748b}
.wa-close{border:none; background:#fff; width:34px; height:34px; border-radius:10px; font-size:20px; cursor:pointer; box-shadow:0 6px 14px rgba(0,0,0,.08)}
.wa-body{padding:14px}
.wa-row{display:flex; flex-direction:column; gap:8px; margin-bottom:12px}
.wa-grid2{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.wa-row label{font-weight:700; font-size:13px}
.wa-row input{border:1px solid #e5e7eb; border-radius:12px; padding:10px 12px; font:inherit}
.wa-chips{display:flex; flex-wrap:wrap; gap:8px}
.wa-chips button{
  border:1px solid #e5e7eb; border-radius:999px; padding:8px 12px; background:#fff; cursor:pointer; font-weight:600;
}
.wa-chips button.active{background:#111827; color:#fff; border-color:#111827}
.wa-foot{display:flex; justify-content:space-between; gap:10px; padding:12px; border-top:1px solid #f1f5f9}

/* Responsive */
@media (min-width:960px){ .hero{grid-template-columns:1.1fr .9fr} }
@media (max-width:720px){ h1{font-size:34px} .footer-grid{grid-template-columns:1fr} }
@media (min-width:640px){ .gallery{grid-template-columns:repeat(3,1fr)} .gallery img{height:180px} }
@media (min-width:980px){ .gallery{grid-template-columns:repeat(4,1fr)} .gallery img{height:200px} }

/* Accesibilidad */
@media (prefers-reduced-motion: reduce){
  .btn, .card, .reveal, .btn-cta-shine::after, .wafab-neo{transition:none; animation:none}
}
