:root{
  --brand:#b0181e;       /* rojo vino del moño */
  --brand-dark:#7f0f14;
  --bg:#ffffff;
  --muted:#f6f6f6;
  --text:#222;
}

*{box-sizing:border-box}
html,body{margin:0}
body{
  font-family: 'Montserrat', system-ui, -apple-system, Arial, sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
}

/* Containers */
.wrap{width:min(1100px, 92%); margin-inline:auto}
.center{text-align:center}
.mt-20{margin-top:20px}

/* Topbar */
.topbar{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid #eee}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;padding:10px 0}
.brand img{height:44px}
.nav{display:flex;gap:20px;align-items:center}
.nav a{color:#444;text-decoration:none;font-weight:600}
.nav a:hover{color:var(--brand)}
.btn{background:var(--brand);color:#fff;text-decoration:none;padding:12px 18px;border-radius:10px;font-weight:700;display:inline-block}
.btn:hover{background:var(--brand-dark)}
.btn--ghost{background:transparent;border:2px solid var(--brand);color:var(--brand)}
.btn--ghost:hover{background:var(--brand);color:#fff}
.btn--sm{padding:9px 12px;border-radius:8px;font-size:.9rem}

/* Burger (mobile) */
.burger{display:none;background:none;border:0;font-size:24px}

/* Hero */
.hero{
  --overlay:linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.45));
  background-image: var(--overlay), var(--hero);
  background-size: cover; background-position:center;
  color:#fff; min-height:60vh; display:grid; place-items:center; text-align:center;
}
.hero__content{padding:70px 20px}
.hero h1{font-size:clamp(2rem, 3vw + 1rem, 3.2rem);margin:0 0 8px}
.hero p{opacity:.95;margin:0 0 18px}

/* Benefits bar */
.benefits{background:var(--muted);padding:18px 0}
.benefits__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.benefit{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #eee;border-radius:12px;padding:12px}
.b-ico{font-size:26px}

/* Sections */
.section{padding:48px 0}
.section--alt{background:var(--muted)}
.section h2{font-size:1.8rem;margin:.2rem 0 6px}
.section__sub{color:#666;margin-bottom:18px}

/* Grid / Cards */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{border:1px solid #eee;border-radius:16px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.card__body{padding:14px 16px;display:flex;flex-direction:column;gap:10px;height:100%}
.card__desc{color:#555}
.card__bottom{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px}
.price{font-weight:800;color:#111}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:14px}
.step{background:#fff;border:1px solid #eee;border-radius:12px;padding:16px;text-align:center}
.step__num{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:999px;background:var(--brand);color:#fff;font-weight:800;margin-bottom:8px}

/* FAQ */
.faq{background:#fff;border:1px solid #eee;border-radius:12px;padding:12px 14px;margin:10px 0}
.faq summary{cursor:pointer;font-weight:700}
.faq p{margin:8px 0 0;color:#555}

/* Footer */
.footer{background:#111;color:#ddd;padding-top:26px}
.footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:20px;padding:10px 0 26px}
.footer__logo{height:38px;margin-bottom:8px}
.footer a{color:#fff;text-decoration:none}
.copy{border-top:1px solid #222;padding:12px 0;text-align:center;color:#aaa;font-size:.9rem}

/* WhatsApp float */
.wafloat{
  position:fixed; right:18px; bottom:18px; width:56px; height:56px;
  display:grid; place-items:center; background:#25D366; color:#fff; 
  font-size:26px; border-radius:999px; text-decoration:none; 
  box-shadow:0 8px 18px rgba(0,0,0,.15); z-index:60;
}

/* Responsive */
@media (max-width: 980px){
  .grid{grid-template-columns:1fr 1fr}
  .benefits__grid{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr 1fr}
}
@media (max-width: 720px){
  .burger{display:block}
  .nav{position:absolute;inset:60px 0 auto 0;background:#fff;padding:14px 20px;
       display:none;flex-direction:column;border-bottom:1px solid #eee}
  .nav.open{display:flex}
  .grid{grid-template-columns:1fr}
  .benefits__grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}

}

/* ==== FIX OVERFLOW EN MOBILE ==== */

/* Mata cualquier desborde horizontal */
html, body { overflow-x: hidden; }

/* Las imágenes nunca exceden el ancho del contenedor */
img, video { max-width: 100%; height: auto; display: block; }

/* Menú mobile ocupa exactamente el ancho de la pantalla */
@media (max-width: 720px){
  .nav{
    position: absolute;
    left: 0; right: 0;
    width: 100%;
    overflow-x: hidden;
  }
}

/* El grid del footer a 1 columna en pantallas chicas */
@media (max-width: 720px){
  .footer__grid{ grid-template-columns: 1fr; }
}


footer, .nav, .card__body, .section { word-break: break-word; }


.section, .footer, .benefits, .hero { overflow-x: hidden; }

/* Mantiene cover (sin letterboxing) pero usa recorte pensado para mobile */
@media (max-width: 720px){
  .hero{
    background-image:
      linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.45)),
      url('img/hero-mobile.jpg');
    background-size: cover;
    background-position: center;
    min-height: 50vh;
  }
}

.card--clickable { position: relative; cursor: pointer; }
.card--clickable:hover { box-shadow: 0 6px 22px rgba(0,0,0,.07); transform: translateY(-1px); transition: .2s; }

.stretched{
  position: absolute; inset: 0; z-index: 1;
  /* accesibilidad: que sea “focusable” */
  outline: none;
}
.stretched:focus { outline: 3px solid rgba(176,24,30,.45); outline-offset: 3px; }

/* Asegura que el botón de WhatsApp quede por encima del overlay y sea clickeable */
.card__bottom .btn { position: relative; z-index: 2; }
