html,
body {
    max-width: 100%;
    overflow-x: clip;
}

.hero-grid > *,
.split-grid > *,
.intro-grid > *,
.section-heading > *,
.contact-grid > *,
.footer-grid > *,
.cta-inner > * {
    min-width: 0;
}

.contact-item strong,
.contact-item a {
    overflow-wrap: anywhere;
    word-break: break-word;
}

@media (max-width: 1150px) {
    .nav-toggle {
        flex: 0 0 40px;
        min-height: 40px;
        padding: 4px;
        cursor: pointer;
    }

    .main-nav {
        max-height: calc(100vh - 74px);
        overflow-y: auto;
    }

    .main-nav a {
        min-height: 44px;
        display: flex;
        align-items: center;
    }
}

@media (max-width: 620px) {
    .hero h1 {
        font-size: clamp(38px, 12vw, 47px);
        overflow-wrap: break-word;
    }

    .page-hero h1 {
        font-size: clamp(36px, 11vw, 44px);
        overflow-wrap: break-word;
    }

    .hero-copy > p,
    .page-hero p {
        font-size: 16px;
    }

    .contact-grid h2,
    .contact-form-card h2,
    .service-detail h2 {
        font-size: 34px;
    }

    .contact-form-card,
    .value-grid article,
    .insight-feature,
    .insight-card,
    .team-card {
        padding: 24px;
    }

    .industry-row {
        grid-template-columns: 42px minmax(0, 1fr);
        gap: 8px;
    }

    .industry-row h2 {
        font-size: 27px;
    }

    .trust-row {
        width: 100%;
    }
}

@media (max-width: 360px) {
    .brand-name {
        font-size: 13px;
    }

    .brand-tagline {
        letter-spacing: .1em;
    }

    .hero h1,
    .page-hero h1 {
        font-size: 36px;
    }
}

/* Disclosure navigation works with touch, mouse and keyboard. */
.main-nav { gap: 16px; }
.nav-dropdown { position: relative; }
.dropdown-toggle { display: flex; align-items: center; gap: 6px; border: 0; background: none; color: inherit; font: inherit; padding: 12px 0; cursor: pointer; }
.dropdown-toggle span { transition: transform .15s; }
.dropdown-toggle[aria-expanded="true"] span { transform: rotate(180deg); }
.nav-submenu { position: absolute; top: 100%; left: 0; width: 310px; max-height: calc(100dvh - 140px); overflow-y: auto; background: white; padding: 10px; border: 1px solid var(--line); border-radius: 4px; box-shadow: var(--shadow); }
.nav-submenu[hidden] { display: none; }
.main-nav .nav-submenu a { display: block; padding: 9px 12px; white-space: normal; border-radius: 3px; font-size: 13px; }
.main-nav .nav-submenu a::after { display: none; }
.main-nav .nav-submenu a:hover, .main-nav .nav-submenu a:focus-visible { background: var(--soft); color: var(--green); }
.main-nav a:focus-visible, .dropdown-toggle:focus-visible, .nav-toggle:focus-visible { outline: 2px solid var(--green); outline-offset: 4px; }
@media (max-width: 1150px) {
    .dropdown-toggle { width: 100%; justify-content: space-between; min-height: 44px; }
    .nav-submenu { position: static; width: 100%; max-height: none; box-shadow: none; border: 0; border-left: 2px solid var(--green); margin-top: 6px; }
}