/* ============================================================
   ZaaZ Perú — Responsive / Mobile
   ============================================================ */

/* ============================================================
   ≤ 1100px — TABLET HORIZONTAL
   ============================================================ */
@media (max-width: 1100px) {
  .plans-grid  { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem 2.5rem; }

  .cta-banner  { grid-template-columns: 1fr; }
  .cta-photo   { display: none; }
}

/* ============================================================
   ≤ 980px — TABLET VERTICAL
   ============================================================ */
/* Face is in the bottom ~40% of the mobile image; anchor there so it survives cropping */
@media (max-width: 760px) {
  .hero-bg-img { object-position: bottom center; }
}

@media (max-width: 980px) {
  :root { --section-py: 4.5rem; }

  .hero .container { padding-block: 4rem; }

  .diff-grid { grid-template-columns: 1fr; max-width: 30rem; margin-inline: auto; }

  .dgo-wrap  { grid-template-columns: 1fr; }
  .mesh-wrap { grid-template-columns: 1fr; gap: 2.5rem; }

  .dgo-left  { padding: 2.5rem 2rem; min-height: auto; }
  .dgo-right { padding: 2.5rem 2rem; }
  .dgo-left::before { font-size: 7rem; bottom: -1rem; }

  .mesh-visual-box { min-height: 18rem; padding: 3rem 1.75rem; }
}

/* ============================================================
   ≤ 760px — MOBILE: NAV HAMBURGUESA
   ============================================================ */
@media (max-width: 760px) {
  :root { --section-py: 3.5rem; }

  .topbar-right      { display: none; }
  .topbar .container { justify-content: center; }

  .nav-links     { display: none; }
  .nav-hamburger { display: flex; }
  .nav-logo img  { height: 3.5rem; }


  .plans-grid { grid-template-columns: 1fr; max-width: 24rem; margin-inline: auto; }

  .footer-grid   { grid-template-columns: 1fr; gap: 2rem; }
  .footer-bottom { flex-direction: column; text-align: center; gap: 0.5rem; }

  .cta-cards { flex-direction: column; padding: 1.75rem; }
  .cta-card  { min-width: 0; }

  .faq-a.open { max-height: 40rem; }
}

/* ============================================================
   ≤ 600px — PHONE
   ============================================================ */
@media (max-width: 600px) {
  :root { --container-px: 1.15rem; --section-py: 3rem; }

  .hero .container { padding-block: 3rem; }
  .hero h1   { font-size: clamp(2.75rem, 13vw, 3.75rem); }
  .hero-sub  { font-size: 1rem; }

  .hero-actions      { flex-direction: column; }
  .hero-actions .btn { width: 100%; }

  .hero-trust { flex-wrap: wrap; }

  .hero-offer {
    flex-direction: column;
    align-items: stretch;
    gap: 1.1rem;
    padding: 1.25rem 1.35rem;
  }
  .hero-offer-divider {
    width: 100%;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(255,236,0,0.6), transparent);
  }
  .hero-offer-legal { max-width: none; }

  .dgo-right .btn,
  .mesh-info .btn { width: 100%; }

  .pagos-actions      { flex-direction: column; }
  .pagos-actions .btn { width: 100%; }
}

/* ============================================================
   ≤ 400px — SMALL PHONE
   ============================================================ */
@media (max-width: 400px) {
  .hero h1             { font-size: clamp(2.4rem, 13vw, 3rem); }
  .hero-offer-num      { font-size: 3.5rem; }
  .hero-offer-plan-num { font-size: 1.6rem; }

  .plan-speed-num { font-size: 3.75rem; }
  .plan-price-num { font-size: 3.25rem; }
}