/* Prevent horizontal overflow anywhere on the page */
html, body {
  overflow-x: hidden;
  max-width: 100vw;
}

/* Medium Desktop & Laptop (1101px - 1280px) */
@media (min-width: 1101px) and (max-width: 1280px) {
  .header-inner {
    gap: 0.75rem;
  }
  .brand-logo-img {
    height: 42px;
    max-width: 180px;
  }
  .desktop-nav {
    gap: 0.15rem;
    padding: 0.25rem 0.35rem;
  }
  .nav-link {
    font-size: 0.78rem;
    padding: 0.4rem 0.55rem;
    letter-spacing: 0.02em;
  }
  .header-actions {
    gap: 0.6rem;
  }
  .header-call-card {
    padding: 0.35rem 0.65rem;
    gap: 0.5rem;
  }
  .call-card-number {
    font-size: 0.95rem;
  }
  .header-book-btn {
    padding: 0.55rem 0.95rem;
    font-size: 0.8rem;
  }
}

/* Tablet & Compact Desktop (<= 1100px) */
@media (max-width: 1100px) {
  .desktop-nav {
    display: none;
  }
  .mobile-nav-toggle {
    display: inline-flex;
  }
  .header-inner {
    gap: 0.75rem;
  }
  .header-actions {
    gap: 0.6rem;
    flex-shrink: 0;
  }
  .brand-logo-img {
    max-width: 175px;
    height: 42px;
  }
}

/* Medium Tablets & Landscape Mobile (<= 900px) */
@media (max-width: 900px) {
  .header-call-card .call-text-wrap {
    display: none;
  }
  .header-call-card {
    padding: 0.35rem 0.5rem;
  }
  .header-book-btn {
    padding: 0.5rem 0.85rem;
    font-size: 0.8rem;
  }
}

@media (max-width: 1200px) {
  .gallery-grid {
    grid-template-columns: repeat(6, 1fr);
  }
  
  .gallery-item.col-8 {
    grid-column: span 6;
  }
  
  .gallery-item.col-4 {
    grid-column: span 3;
  }
  
  .gallery-item.col-6 {
    grid-column: span 3;
  }
  
  .areas-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 1024px) {
  .hero-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  
  .hero-visual-card {
    max-width: 720px;
    margin: 0 auto;
  }
  
  .services-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  
  .calc-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  
  .about-split-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  
  .contact-section-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  
  .footer-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}

@media (max-width: 768px) {
  body {
    padding-bottom: 74px; /* Space for Mobile Sticky Conversion Dock */
  }
  
  .desktop-nav {
    display: none;
  }
  
  .mobile-nav-toggle {
    display: flex;
  }
  
  .top-ticker-bar {
    display: none;
  }
  
  .hero-section {
    padding: 2.5rem 0 3.5rem;
  }
  
  .hero-headline {
    font-size: 2.35rem;
  }

  .hero-cta-group {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    gap: 0.65rem;
  }

  .hero-cta-group .btn {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    flex: none;
    padding: 0.8rem 1.25rem;
    font-size: 0.9rem;
    height: auto;
    min-height: 48px;
    letter-spacing: 0.03em;
  }

  .hero-cta-group .btn svg {
    width: 18px;
    height: 18px;
  }
  
  .hero-trust-bar {
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
  }
  
  .trust-val {
    font-size: 1.25rem;
  }
  
  .trust-label {
    font-size: 0.65rem;
  }
  
  .hero-telemetry-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
  }
  
  .services-grid {
    grid-template-columns: 1fr;
  }
  
  .gallery-grid {
    grid-template-columns: 1fr;
  }
  
  .gallery-item.col-8,
  .gallery-item.col-4,
  .gallery-item.col-6 {
    grid-column: span 1;
    aspect-ratio: 16 / 10;
  }
  
  .video-feature-box {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
  
  .areas-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  
  .lead-form-grid {
    grid-template-columns: 1fr;
  }
  
  .lead-form-grid .full-col {
    grid-column: span 1;
  }
  
  .calculator-card,
  .lead-form-card,
  .contact-direct-card {
    padding: 1.5rem;
  }
  
  .mobile-bottom-dock {
    display: block;
  }
  
  .footer-grid {
    grid-template-columns: 1fr;
  }
  
  .about-visual-mosaic {
    grid-template-columns: 1fr;
  }
  
  .mosaic-img-card.tall {
    grid-row: span 1;
    aspect-ratio: 16 / 10;
  }
}

@media (max-width: 480px) {
  .hero-headline {
    font-size: 1.95rem;
  }
  
  .hero-cta-group {
    flex-direction: column;
    gap: 0.55rem;
  }
  
  .hero-cta-group .btn {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    flex: none;
    padding: 0.72rem 1.1rem;
    font-size: 0.86rem;
    min-height: 46px;
    letter-spacing: 0.02em;
  }

  .hero-cta-group .btn svg {
    width: 16px;
    height: 16px;
  }
  
  .areas-grid {
    grid-template-columns: 1fr;
  }
  
  .segment-group {
    grid-template-columns: 1fr;
  }
  
  .direct-phone-big {
    font-size: 1.55rem;
  }
  
  .calc-price-val {
    font-size: 1.8rem;
  }
  
  .admin-modal {
    margin: 0;
    max-height: 100vh;
    border-radius: 0;
  }
}

@media (max-width: 768px) {
  .header-inner {
    height: 70px;
    gap: 0.6rem;
  }
  .brand-logo-img {
    height: 44px;
    width: auto;
  }
  .header-actions {
    gap: 0.5rem;
    flex-shrink: 0;
  }
  .header-call-card .call-text-wrap {
    display: none;
  }
  .header-call-card {
    padding: 0.35rem 0.5rem;
  }
  .header-book-btn {
    padding: 0.45rem 0.75rem;
    font-size: 0.76rem;
  }
  .mobile-nav-toggle {
    display: inline-flex;
    height: 40px;
    padding: 0.4rem 0.75rem;
    font-size: 0.78rem;
  }
}

@media (max-width: 540px) {
  .header-inner {
    height: 64px;
    gap: 0.45rem;
  }
  .brand-logo-img {
    height: 40px;
    width: auto;
  }
  .header-actions {
    gap: 0.4rem;
    flex-shrink: 0;
  }
  .header-call-card {
    padding: 0.25rem;
  }
  .call-icon-circle {
    width: 34px;
    height: 34px;
  }
  .header-book-btn {
    padding: 0.4rem 0.65rem;
    font-size: 0.74rem;
  }
  .mobile-nav-toggle {
    height: 38px;
    padding: 0.35rem 0.65rem;
    font-size: 0.75rem;
  }
}

@media (max-width: 400px) {
  .header-inner {
    height: 60px;
    gap: 0.35rem;
  }
  .brand-logo-img {
    height: 34px;
    width: auto;
  }
  .header-actions {
    gap: 0.3rem;
  }
  .call-icon-circle {
    width: 32px;
    height: 32px;
  }
  .header-book-btn {
    padding: 0.35rem 0.55rem;
    font-size: 0.7rem;
    gap: 0.25rem;
  }
  .mobile-nav-toggle {
    height: 34px;
    padding: 0 0.55rem;
    font-size: 0.72rem;
  }
}

@media (max-width: 340px) {
  .header-inner {
    height: 56px;
    gap: 0.25rem;
  }
  .brand-logo-img {
    height: 30px;
    width: auto;
  }
  .header-actions {
    gap: 0.25rem;
  }
  .header-book-btn span {
    display: none;
  }
  .header-book-btn {
    width: 32px;
    height: 32px;
    padding: 0;
    justify-content: center;
  }
  .mobile-nav-toggle {
    height: 32px;
    padding: 0 0.45rem;
    font-size: 0.7rem;
  }
  .hero-cta-group .btn {
    padding: 0.65rem 0.85rem;
    font-size: 0.82rem;
    min-height: 42px;
    gap: 0.4rem;
  }
}
