/* Mobile and tablet responsive layer only. Desktop styles remain controlled by each page. */

.mobile-nav-toggle,
.mobile-nav-overlay {
  display: none;
}

@media (max-width: 1024px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

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

  .hdr {
    height: 64px !important;
    padding: 0 18px !important;
    gap: 12px !important;
  }

  .hdr > a {
    min-width: 0;
    flex: 1 1 auto;
  }

  .hdr > a img {
    max-width: min(68vw, 260px) !important;
    height: auto !important;
    max-height: 48px !important;
    object-fit: contain !important;
  }

  .hdr-left,
  .hdr-logo,
  .hdr-tag,
  .hdr-logo-tag {
    display: none !important;
  }

  .mobile-nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border: 1px solid rgba(245, 168, 0, 0.45);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.06);
    color: #f5a800;
    cursor: pointer;
    position: relative;
    z-index: 140;
  }

  .mobile-nav-toggle i {
    font-size: 24px;
    line-height: 1;
  }

  .mobile-nav-overlay {
    display: block;
    position: fixed;
    inset: 64px 0 0;
    background: rgba(0, 0, 0, 0.45);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
    z-index: 108;
  }

  body.mobile-nav-open .mobile-nav-overlay {
    opacity: 1;
    pointer-events: auto;
  }

  .hdr-nav {
    position: fixed !important;
    top: 64px !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    z-index: 120 !important;
    width: min(86vw, 360px) !important;
    height: calc(100dvh - 64px) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    padding: 14px !important;
    overflow-y: auto !important;
    background: #1a2e5a !important;
    border-left: 2px solid #f5a800 !important;
    box-shadow: -24px 0 48px rgba(0, 0, 0, 0.26) !important;
    transform: translateX(100%) !important;
    transition: transform 0.22s ease !important;
    pointer-events: none !important;
    visibility: hidden !important;
  }

  body.mobile-nav-open .hdr-nav {
    transform: translateX(0) !important;
    pointer-events: auto !important;
    visibility: visible !important;
  }

  .hdr-nav a,
  .hdr-nav button {
    width: 100% !important;
    min-height: 46px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 13px 12px !important;
    border-radius: 6px !important;
    text-align: left !important;
    white-space: normal !important;
  }

  .hdr-nav a {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    color: rgba(255, 255, 255, 0.82) !important;
  }

  .hdr-nav a.on {
    background: rgba(245, 168, 0, 0.12) !important;
    color: #f5a800 !important;
  }

  .hdr-nav .hdr-cta {
    margin-top: 12px !important;
    justify-content: center !important;
  }

  body.mobile-nav-open {
    overflow: hidden;
  }

  .hero,
  .page-hero {
    min-height: auto !important;
  }

  .hero-stage {
    min-height: auto !important;
    display: flex !important;
    flex-direction: column !important;
  }

  .hero-photo {
    position: relative !important;
    order: -1;
    width: 100% !important;
    height: clamp(260px, 42vw, 380px) !important;
    clip-path: none !important;
  }

  .hero-photo::after {
    background: linear-gradient(
      180deg,
      transparent 55%,
      rgba(26, 46, 90, 0.55) 100%
    ) !important;
  }

  .hero-photo-badge {
    bottom: 1.25rem !important;
    left: 1.25rem !important;
  }

  .hero-copy {
    width: 100% !important;
    min-height: auto !important;
    clip-path: none !important;
    padding: 2.25rem 1.25rem 2.5rem !important;
  }

  .hero-copy-accent {
    height: calc(100% - 3.5rem) !important;
    top: 1.75rem !important;
  }

  .hero-watermark {
    display: none !important;
  }

  .hero-ticket-inner {
    flex-direction: column !important;
    align-items: stretch !important;
    padding: 1rem 1.25rem 1.25rem !important;
    gap: 0.85rem !important;
  }

  .hero-ticket-nav {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .hero-ticket-nav::-webkit-scrollbar {
    display: none;
  }

  .hero-ticket-phone {
    width: 100% !important;
    justify-content: center !important;
  }

  .hero-inner,
  .ph-inner,
  .about-grid,
  .story-grid,
  .contact-grid,
  .location-grid,
  .quote-form-sec,
  .bf-grid,
  .comp-grid,
  [style*='grid-template-columns: 1fr 400px'],
  [style*='grid-template-columns: 1fr 420px'] {
    grid-template-columns: 1fr !important;
  }

  .hero-inner,
  .ph-inner {
    padding: 3rem 1.25rem !important;
    gap: 1.75rem !important;
  }

  .contact-opts {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .co {
    min-height: 72px;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }

  .hero-card,
  .quote-form-card,
  .contact-form-card,
  .contact-info,
  .qfc-body,
  .cfc-body,
  .bf-body,
  .oos-body,
  .sc-body {
    width: 100% !important;
    max-width: none !important;
  }

  .services-grid,
  .reviews-grid,
  .why-grid,
  .stats-grid,
  .coverage-grid,
  .title-services-grid,
  .pkg-grid,
  .pkg-grid-2,
  .included-grid,
  .addon-grid,
  .steps,
  .steps-row,
  .process-steps,
  .wl-grid,
  .permits-grid,
  .cov-types,
  .ti-body,
  .values-grid,
  .stats-row,
  .loc-items,
  [style*='grid-template-columns: repeat(5'],
  [style*='grid-template-columns: repeat(4'],
  [style*='grid-template-columns: repeat(3'],
  [style*='grid-template-columns: 1fr 1fr 1fr'] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .footer {
    padding: 2.5rem 1.25rem !important;
  }

  .footer-top {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1.5rem !important;
  }

  .footer-bottom {
    align-items: flex-start !important;
    justify-content: flex-start !important;
  }

  section,
  .services-sec,
  .about-sec,
  .contact-sec,
  .stats-sec {
    max-width: 100%;
  }
}

@media (max-width: 700px) {
  .hdr {
    padding: 0 12px !important;
  }

  .hdr > a img {
    max-width: min(62vw, 230px) !important;
  }

  .hero-inner,
  .ph-inner,
  .about-sec,
  .services-sec,
  .contact-sec,
  [style*='padding: 4rem 2.5rem'],
  [style*='padding: 3.5rem 2.5rem'],
  [style*='padding: 3rem 2.5rem'] {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .hero-title,
  .ph-title,
  .sec-title,
  .about-title {
    font-size: clamp(28px, 8.5vw, 36px) !important;
    line-height: 1.12 !important;
    overflow-wrap: anywhere;
  }

  .hero-sub,
  .ph-sub {
    font-size: 15px !important;
  }

  .hero-btns,
  .ph-btns,
  .about-btns,
  .contact-opts,
  [style*='display: flex; gap: 12px; flex-wrap: wrap'],
  [style*='display:flex;gap:12px;flex-wrap:wrap'] {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .hero-btns a,
  .ph-btns a,
  .about-btns a,
  .contact-opts a,
  .cs-btn,
  .btn-primary,
  .btn-outline,
  .hbtn-primary,
  .hbtn-secondary,
  .ab-btn-main,
  .ab-btn-sec,
  .submit-btn,
  .pkg-btn,
  .qq-btn,
  .bl-btn,
  .vin-btn {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
  }

  .services-grid,
  .reviews-grid,
  .why-grid,
  .stats-grid,
  .coverage-grid,
  .title-services-grid,
  .pkg-grid,
  .pkg-grid-2,
  .included-grid,
  .addon-grid,
  .steps,
  .steps-row,
  .process-steps,
  .wl-grid,
  .permits-grid,
  .cov-types,
  .ti-body,
  .values-grid,
  .stats-row,
  .loc-items,
  .footer-top,
  [style*='grid-template-columns'] {
    grid-template-columns: 1fr !important;
  }

  .ph-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .svc-card,
  .cov-card,
  .ts-card,
  .pkg,
  .pkg-ac,
  .why-card,
  .review-card,
  .val-card,
  .loc-item {
    width: 100% !important;
  }

  .svc-card-img,
  .cov-img,
  .about-img,
  .story-img,
  .team-photo {
    height: auto !important;
    min-height: 220px;
  }

  .svc-card-img img,
  .cov-img img,
  .about-img img,
  .story-img img {
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
  }

  .footer-bottom,
  .ft-badges {
    flex-direction: column !important;
    align-items: flex-start !important;
  }

  input,
  select,
  textarea,
  button {
    max-width: 100%;
    font-size: 16px;
  }
}

@media (max-width: 430px) {
  .hdr-nav {
    width: 100vw !important;
    border-left: 0 !important;
  }

  .mobile-nav-toggle {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
  }

  .hero-photo {
    height: clamp(220px, 52vw, 300px) !important;
  }

  .hero-mini-stats {
    gap: 8px !important;
  }

  .hero-mini-stat {
    font-size: 10px !important;
    padding: 5px 10px !important;
  }

  .hero-ticket-link {
    font-size: 11px !important;
    padding: 8px 12px !important;
  }

  .hero-title,
  .ph-title {
    font-size: clamp(26px, 8vw, 32px) !important;
  }

  .ph-stats {
    grid-template-columns: 1fr !important;
  }
}
