/* ═══════════════════════════════════════════════════════════════════════
   GSURF BROADBAND — RESPONSIVE.CSS
   Dedicated responsive stylesheet. Loaded AFTER style.css so these rules
   take precedence at their respective breakpoints.

   Breakpoints used (mobile-first thinking, max-width media queries):
     ≥1400px  Extra-large desktops / large monitors
     1200–1399px  Large desktops
     992–1199px   Small desktops / laptops
     768–991px    Tablets (portrait & landscape)
     576–767px    Large phones / small tablets
     480–575px    Standard phones
     360–479px    Small phones
     ≤359px       Very small / legacy phones
     + orientation, hover-capability and print rules
   ═══════════════════════════════════════════════════════════════════════ */

/* ─── 0. GLOBAL FLUID FOUNDATIONS (apply at every size) ─── */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

img,
svg,
video,
iframe {
  max-width: 100%;
  height: auto;
}

#map {
  max-width: 100%;
}

.container {
  width: 100%;
  padding-left: 16px;
  padding-right: 16px;
}

/* Prevent any element from forcing horizontal scroll */
body {
  max-width: 100vw;
  overflow-x: hidden;
}

/* Comfortable minimum tap targets on touch devices */
@media (hover: none) and (pointer: coarse) {

  .btn-hero-primary,
  .btn-hero-secondary,
  .btn-plan,
  .speed-tab,
  .btn-check-address,
  .gs-submit,
  .cov-submit,
  .nav-link,
  .related-link-card,
  .chat-toggle {
    min-height: 44px;
  }
}


/* ═══════════════════════════════════════════════════════════
   1. EXTRA-LARGE SCREENS  (≥1400px) — roomier container, larger type
   ═══════════════════════════════════════════════════════════ */
@media (min-width: 1400px) {
  .container {
    max-width: 1320px;
  }
}


/* ═══════════════════════════════════════════════════════════
   2. LAPTOPS / SMALL DESKTOPS  (max-width: 1199.98px)
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 1199.98px) {
  .hero-wrapper {
    gap: 45px;
  }

  .about-wrapper {
    gap: 45px;
  }

  .related-links-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}


/* ═══════════════════════════════════════════════════════════
   3. TABLETS  (max-width: 991.98px)
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 991.98px) {
  .hero-section {
    min-height: auto;
    padding: 2.5rem 0;
  }

  .hero-content {
    padding: 2.5rem 0;
  }

  .hero-wrapper {
    min-height: auto;
  }

  .hero-left {
    height: auto;
    align-items: center;
  }

  .hero-left p {
    font-size: 1rem;
  }

  .hero-right {
    margin-top: 10px;
  }

  .speed-card {
    max-width: 420px;
    margin: 0 auto;
  }

  /* Navbar mobile menu */
  .navbar-collapse {
    background: var(--white);
    padding: 0.35rem 0;
    border-top: 1px solid var(--border);
    margin-top: 0.5rem;
    max-height: calc(100vh - 82px);
    overflow-y: auto;
  }

  .navbar-nav {
    text-align: left;
  }

  .nav-item {
    margin: 0;
  }

  .nav-link {
    padding: 0.55rem 0 !important;
  }

  /* Coverage map — 100vh is unusable once stacked on tablets */
  #map {
    height: 380px;
    border-radius: 14px;
  }

  .coverage-map-box {
    margin-top: 1.75rem;
  }

  /* Partners */
  .related-links-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Contact section columns stack — add spacing */
  .contact-info-col {
    margin-bottom: 2rem;
  }

  /* Stats section counters */
  .stat-card {
    padding: 1.5rem 1rem;
  }

  /* ── Grid/Flex layout system: tablet column counts ── */
  .stats-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .why-features-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .coverage-grid {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }

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

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 2rem 1.5rem;
  }


}


/* ═══════════════════════════════════════════════════════════
   4. LARGE PHONES / SMALL TABLETS  (max-width: 767.98px)
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 767.98px) {
  .container {
    padding-left: 14px;
    padding-right: 14px;
  }

  .hero-buttons {
    flex-direction: column;
    align-items: stretch;
  }

  .gsurf-navbar{
    padding: 0.75rem 15px;
        z-index: 999999;
  }

  .hero-buttons a {
    text-align: center;
    margin: 0;
  }

  .hero-trust {
    flex-direction: column;
    align-items: start;
    gap: 12px;
  }

  .speed-card {
    padding: 1.75rem 1.5rem;
  }

  .speed-number {
    font-size: 2.4rem;
  }

  .speed-stats {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Decorative shapes get in the way visually on narrow screens */
  .hero-circle-1,
  .hero-circle-2 {
    display: none;
  }

  .section-heading,
  .section-title {
    text-align: center;
  }

  .section-eyebrow {
    text-align: center;
  }

  .section-sub,
  .section-subtitle {
    text-align: center;
  }

  /* Plans */
  .speed-tabs {
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
  }

  .plan-card {
    padding: 1.6rem 1.3rem;
  }

  .plan-swiper-controls {
    justify-content: center;
  }

  /* Steps */
  .step-item {
    text-align: center;
  }

  .step-connector::after {
    display: none;
  }

  .steps-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .testimonials-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Coverage */
  #map {
    height: 300px;
  }

  /* Testimonials */
  .testimonial-author {
    justify-content: center;
  }

  .testimonial-card {
    text-align: center;
  }

  /* CTA band */
  .cta-band p {
    font-size: 0.95rem;
  }

  /* Contact form */
  .gs-grid-2 {
    grid-template-columns: 1fr;
    gap: 0;
  }

  /* Related links */
  .related-links-section {
    padding: 2.75rem 0;
  }

  .related-links-grid {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }

  .related-link-card {
    padding: 0.85rem 1rem;
    font-size: 0.85rem;
  }

  /* Footer */
  .gsurf-footer {
    text-align: center;
  }

  .footer-brand {
    display: flex;
    justify-content: center;
  }

  .footer-tagline {
    max-width: 100%;
  }

  .footer-flex {
    display: flex;
    flex-direction: column;
    align-items: self-start;
  }

  .footer-contact-item {
    display: flex;
    justify-content: flex-start;
    text-align: left;
  }

  .footer-bottom {
    flex-direction: column;
    gap: 12px;
    text-align: center;
    justify-content: center !important;
  }

  .social-icons {
    justify-content: center;
    display: flex;
  }

  /* Modals */
  #gs-modal,
  #cov-modal {
    max-width: 92vw;
  }

  /* Chat widget */
  .chat-toggle {
    right: 30px;
    bottom: 80px;
    width: 46px;
    height: 43px;
    font-size: 20px;
  }

  .wa-fab {
    /* right: 30px;
        bottom: 100px; */
    width: 46px;
    height: 43px;
    font-size: 20px;
  }

  .chat-icon {
    font-size: 30px;
    color: white;
  }
  .wa-notification-dot{
    width: 10px;
    height: 10px;
    top: 8px;
    right: 6px;
  }
  

}


/* ═══════════════════════════════════════════════════════════
   5. STANDARD PHONES  (max-width: 575.98px)
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 575.98px) {
  .hero-left h1 {
    line-height: 1.25;
  }

  .hero-left p {
    font-size: 0.95rem;
  }

  .btn-hero-primary,
  .btn-hero-secondary {
    width: 100%;
    display: block;
  }

  .speed-card {
    padding: 1.5rem 1.15rem;
  }

  .speed-badge {
    font-size: 0.75rem;
  }

  .speed-number {
    font-size: 2rem;
  }

  .speed-stats {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }

  .about-image .hero-img {
    max-width: 85%;
  }

  .features-grid {
    gap: 14px;
  }

  .feature-card {
    padding: 18px;
  }

  .stat-card {
    padding: 1.25rem 0.75rem;
  }

  .icon-box {
    width: 46px;
    height: 46px;
  }

  /* ── Grid/Flex layout system: single column on phones ── */
  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }

  .why-features-grid {
    grid-template-columns: 1fr;
  }

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

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

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }

  .footer-grid>*:first-child {
    grid-column: auto;
  }

  /* Plans */
  .plans-section {
    padding: 3rem 0;
  }

  .speed-tab {
    padding: 8px 14px;
    font-size: 0.8rem;
  }

  .plan-price .amount {
    font-size: 1.5rem;
  }

  .plan-card {
    padding: 1.4rem 1.1rem;
  }

  /* Partners */
  .partner-card {
    width: 120px;
    height: 85px;
    padding: 12px;
  }

  .partner-card img {
    max-width: 80px;
    max-height: 70px;
  }

  /* Related links stack to 1 column on very small phones handled below */
  .related-link-card {
    font-size: 0.82rem;
  }

  /* Footer columns center + tighten */
  .footer-heading {
    margin-top: 0.5rem;
  }

  

  .footeritem {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  /* Coverage popup / lead modal padding tighten */
  .gs-modal-head,
  .cov-head {
    padding: 1.5rem 1.25rem;
  }

  .gs-modal-body,
  .cov-body {
    padding: 1.25rem;
  }
}


/* ═══════════════════════════════════════════════════════════
   6. SMALL PHONES  (max-width: 479.98px)
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 479.98px) {
  .container {
    padding-left: 12px;
    padding-right: 12px;
  }

  .navbar-brand img {
    height: 36px;
  }

  .hero-trust .trust-item {
    font-size: 0.85rem;
  }

  .speed-stats {
    grid-template-columns: 1fr 1fr;
  }

  .related-links-grid {
    grid-template-columns: 1fr;
  }

  .step-number {
    width: 42px;
    height: 42px;
    font-size: 1.1rem;
  }

  #map {
    height: 260px;
  }

  .chat-toggle {
    width: 52px;
    height: 52px;
  }

  .plan-duration-tag,
  .plan-badge {
    font-size: 0.68rem;
  }

  .cov-field input {
    font-size: 0.9rem;
  }

  .footer-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}


/* ═══════════════════════════════════════════════════════════
   7. VERY SMALL / LEGACY PHONES  (max-width: 359.98px)
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 359.98px) {
  .speed-number {
    font-size: 1.7rem;
  }

  .speed-stats {
    grid-template-columns: 1fr;
  }

  .plan-card {
    padding: 1.1rem 0.85rem;
  }

  .related-link-card {
    font-size: 0.78rem;
    padding: 0.7rem 0.85rem;
  }

  .gs-modal-head h3,
  .cov-head h3 {
    font-size: 1.05rem;
  }
}


/* ═══════════════════════════════════════════════════════════
   8. SHORT / LANDSCAPE VIEWPORTS  (mobile & small tablets rotated)
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 991.98px) and (orientation: landscape) and (max-height: 500px) {
  .hero-section {
    min-height: auto;
    padding: 1.5rem 0;
  }

  .hero-wrapper {
    gap: 30px;
  }

  #gs-modal,
  #cov-modal {
    max-height: 96vh;
    overflow-y: auto;
  }

  .chat-box {
    height: 90vh;
  }
}


/* ═══════════════════════════════════════════════════════════
   9. LARGE / HIGH-DPI DISPLAYS  (≥1600px) — cap line-length for readability
   ═══════════════════════════════════════════════════════════ */
@media (min-width: 1600px) {
  .container {
    max-width: 1400px;
  }

  .section-sub,
  .section-subtitle,
  .lead-text {
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
  }
}


/* ═══════════════════════════════════════════════════════════
   10. PRINT
   ═══════════════════════════════════════════════════════════ */
@media print {

  .gsurf-navbar,
  .chat-toggle,
  .chat-box,
  #cov-overlay,
  #gs-overlay,
  .hero-buttons,
  .related-links-section,
  .btn-check-address {
    display: none !important;
  }

  body {
    color: #000;
    background: #fff;
  }

  a[href]::after {
    content: " (" attr(href) ")";
    font-size: 0.75em;
  }
}
