/* ---------- Laptop kecil ---------- */
@media (max-width: 1180px) {
  .nav__list { gap: 22px; }
  .features__grid { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- Tablet ---------- */
@media (max-width: 960px) {
  .header__cta { display: none; }
  .nav__toggle { display: flex; }

  .nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 24px 20px 28px;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid #e2e8f0;
    box-shadow: 0 16px 30px rgba(15, 23, 42, 0.08);
    transform: translateY(-120%);
    opacity: 0;
    visibility: hidden;
    transition: transform 0.3s ease, opacity 0.3s ease, visibility 0.3s;
  }

  .nav.is-open {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
  }

  .nav__list {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }

  .nav__link { font-size: 1rem; color: var(--text-dark); }
  .nav__cta-mobile { display: inline-flex; align-self: flex-start; }

  .hero__inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .hero__content { text-align: center; }
  .hero__desc { margin-inline: auto; }
  .hero__cta-group { justify-content: center; }
  .hero__visual {
    max-width: 680px;
    margin-inline: auto;
  }

  .deco-wifi--hero-1,
  .deco-wifi--hero-2 { display: none; }

  .contact__grid { grid-template-columns: 1fr; }

  .footer__grid { grid-template-columns: 1fr 1fr; }
  .footer__col:nth-child(3) { border-left: 0; padding-left: 0; }
}

/* ---------- Mobile ---------- */
@media (max-width: 680px) {
  body { font-size: 14px; }

  .section { padding: 44px 0; }

  .section-title { gap: 12px; font-size: 1.5rem; }

  .features__grid { grid-template-columns: 1fr; }

  .float-card { font-size: 1.25em; }
  .float-card small { display: none; }

  .form-row { grid-template-columns: 1fr; gap: 6px; }
  .form-row--submit > span { display: none; }

  .footer { border-radius: 50% 50% 0 0 / 30px 30px 0 0; }
  .footer__grid { grid-template-columns: 1fr; gap: 24px; }
  .footer__col { border-left: 0; padding-left: 0; }

  .footer__bottom-inner {
    flex-direction: column;
    text-align: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
