/* ============================================================================
   Responsive overrides. Mobile-first base in style.css.
   Restrained scale. Modest bumps at larger breakpoints.
============================================================================ */

/* Small tablet up */
@media (min-width: 600px) {
    :root {
        --fs-3xl: 1.75rem;     /* 28 */
        --fs-4xl: 2rem;        /* 32 */
        --fs-5xl: 2.25rem;     /* 36 */
    }
    .card-grid { grid-template-columns: repeat(2, 1fr); }
    .svc-grid  { grid-template-columns: repeat(2, 1fr); }
    .form-grid { grid-template-columns: 1fr 1fr; }
    .form-field.full { grid-column: 1 / -1; }

    .stats { grid-template-columns: repeat(4, 1fr); }
    .process-list { grid-template-columns: 1fr 1fr; }
    .coverage-states { grid-template-columns: 1fr 1fr; }

    .cta-row {
        grid-template-columns: 110px minmax(0, 1fr) auto;
        gap: var(--sp-4);
    }
    .cta-row-label { grid-column: 1; grid-row: 1; }
    .cta-row-value { grid-column: 2; grid-row: 1; font-size: var(--fs-base); }
    .cta-row-arrow { grid-column: 3; grid-row: 1; }
}

/* Tablet */
@media (min-width: 820px) {
    :root {
        --container-px: 2rem;
        --fs-3xl: 1.875rem;    /* 30 */
        --fs-4xl: 2.125rem;    /* 34 */
        --fs-5xl: 2.5rem;      /* 40 */
    }

    .site-logo img { height: 54px; }

    .nav-toggle { display: none; }
    .mobile-drawer { display: none !important; }

    .site-nav { display: block; margin-left: var(--sp-5); margin-right: auto; }
    .site-header-cta { display: inline-flex; }

    .section    { padding-top: var(--sp-10); padding-bottom: var(--sp-10); }
    .section-lg { padding-top: var(--sp-11); padding-bottom: var(--sp-11); }

    .hero-grid {
        grid-template-columns: 1.05fr 0.95fr;
        gap: var(--sp-9);
        align-items: center;
    }
    .hero-text h1 {
        font-size: clamp(1.875rem, 4vw, 2.5rem);
    }

    .hero-video {
        height: 70vh;
        min-height: 520px;
    }
    .hero-video-content h1 {
        font-size: clamp(2.25rem, 5vw, 3.25rem);
    }

    .leadership-grid {
        grid-template-columns: 0.9fr 1.1fr;
        gap: var(--sp-8);
        align-items: start;
    }

    .founder-grid { grid-template-columns: 1fr 1fr; align-items: stretch; }
    .founder-grid > * { height: 100%; }

    .contact-layout {
        grid-template-columns: 1.4fr 1fr;
        gap: var(--sp-8);
    }

    .page-hero {
        padding-top: var(--sp-9);
        padding-bottom: var(--sp-9);
    }

    .service-hero {
        padding-top: var(--sp-9);
        padding-bottom: var(--sp-9);
    }
    .service-hero-grid {
        grid-template-columns: 1.05fr 0.95fr;
        gap: var(--sp-8);
        align-items: center;
    }

    .subservice {
        grid-template-columns: 1fr 1fr;
        gap: var(--sp-8);
    }
    .subservice.reverse .subservice-text { order: 2; }
    .subservice.reverse .subservice-image { order: 1; }

    .why-list { grid-template-columns: 1fr 1fr; gap: var(--sp-6); }
    .related-grid { grid-template-columns: repeat(3, 1fr); }

    .state-cards-grid { grid-template-columns: 1fr 1fr; gap: var(--sp-4); }
    .leadership-media { aspect-ratio: 1 / 1; }
    .pull-quote { font-size: var(--fs-2xl); }

    .coverage-grid {
        grid-template-columns: 0.95fr 1.05fr;
        gap: var(--sp-8);
        align-items: start;
    }

    .cta-grid {
        grid-template-columns: 1fr 1fr;
        gap: var(--sp-8);
    }

    .footer-grid {
        grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
    }
    .footer-bottom {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }
}

/* Desktop */
@media (min-width: 1024px) {
    :root {
        --fs-3xl: 2rem;        /* 32 */
        --fs-4xl: 2.25rem;     /* 36 */
        --fs-5xl: 2.75rem;     /* 44 */
    }

    .site-logo img { height: 60px; }
    .nav-list { gap: var(--sp-6); }
    .header-phone-num { display: inline; }

    .card-grid { grid-template-columns: repeat(3, 1fr); }
    .svc-grid  { grid-template-columns: repeat(3, 1fr); }
    .card-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
    .card-grid.cols-4 { grid-template-columns: repeat(4, 1fr); }

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

    .process-list { grid-template-columns: repeat(4, 1fr); }

    .hero-text h1 { font-size: clamp(2rem, 3.5vw, 2.5rem); }

    .hero-video {
        height: 80vh;
        min-height: 600px;
        max-height: 820px;
    }
}

/* Wide */
@media (min-width: 1280px) {
    :root { --container-px: 2.5rem; }
}

/* Print */
@media print {
    .site-header, .site-footer, .mobile-drawer, .nav-toggle { display: none !important; }
    body { color: #000; background: #fff; }
    a { color: #000; text-decoration: underline; }
}
