/* Desktop layout: centered content, full-width backgrounds. */
@media (min-width: 1024px) {
    header,
    .hero,
    .section,
    footer {
        padding-left: max(40px, calc((100% - 1440px) / 2));
        padding-right: max(40px, calc((100% - 1440px) / 2));
    }

    header {
        height: 104px;
        gap: 32px;
    }

    nav {
        gap: 32px;
        font-size: 15px;
    }

    .header-cta {
        font-size: 14px;
    }

    .hero {
        min-height: 820px;
        padding-top: 64px;
        padding-bottom: 32px;
    }

    h1 {
        font-size: clamp(68px, 5vw, 88px);
        line-height: 1.12;
    }

    .hero-content > p {
        font-size: 19px;
        line-height: 1.7;
    }

    .hero-caption {
        font-size: 13px;
    }

    .eyebrow {
        font-size: 12px;
        letter-spacing: 1.7px;
    }

    .button {
        font-size: 15px;
        padding: 20px 28px;
    }

    .quick-links {
        margin-top: 44px;
    }

    .quick-links a {
        font-size: 15px;
        padding: 24px;
        min-height: 132px;
    }

    .quick-links small {
        font-size: 10px;
    }

    .section {
        padding-top: 88px;
        padding-bottom: 88px;
    }

    .section-top {
        font-size: 13px;
    }

    h2 {
        font-size: clamp(40px, 3vw, 52px);
    }

    .section-heading {
        gap: 48px;
    }

    .section-heading > p {
        max-width: 360px;
    }

    .section-heading p,
    .doc-layout p,
    .request p,
    .muted {
        font-size: 16px;
        line-height: 1.8;
    }

    .service {
        padding: 30px;
    }

    .service h3 {
        font-size: 24px;
        line-height: 1.4;
    }

    .service p {
        font-size: 15px;
        line-height: 1.75;
        min-height: 80px;
    }

    .service-num {
        font-size: 13px;
    }

    .service-bottom {
        font-size: 12px;
        gap: 12px;
    }

    .process-layout,
    .doc-layout,
    .request {
        column-gap: 72px;
    }

    .steps article {
        gap: 28px;
        padding: 26px 0;
    }

    .steps h3 {
        font-size: 20px;
    }

    .steps p {
        font-size: 15px;
        line-height: 1.8;
    }

    .text-link {
        font-size: 15px;
    }

    summary {
        font-size: 17px;
    }

    details p {
        font-size: 15px !important;
    }

    label {
        font-size: 14px;
    }

    input,
    select,
    textarea {
        font-size: 16px;
        padding: 14px 0;
    }

    .consent {
        font-size: 13px;
    }

    .demo-note,
    .form-note {
        font-size: 12px !important;
    }

    footer strong {
        font-size: 18px;
    }

    footer p,
    footer > a,
    .footer-bottom {
        font-size: 13px;
    }
}

/* Large desktop and ultrawide screens */
@media (min-width: 1920px) {
    header,
    .hero,
    .section,
    footer {
        padding-left: calc((100% - min(84vw, 2400px)) / 2);
        padding-right: calc((100% - min(84vw, 2400px)) / 2);
    }

    header {
        height: 120px;
    }

    .brand {
        width: 310px;
        height: 100px;
    }

    .brand img {
        width: 290px;
        top: -20px;
        left: 0;
    }

    nav {
        font-size: 18px;
        gap: 40px;
    }

    .header-cta,
    .button {
        font-size: 18px;
        padding: 24px 32px;
    }

    .hero {
        min-height: 940px;
        padding-top: 80px;
        padding-bottom: 40px;
    }

    h1 {
        font-size: clamp(88px, 3.2vw, 116px);
    }

    .hero-content > p {
        font-size: 24px;
    }

    .hero-caption,
    .eyebrow,
    .section-top {
        font-size: 15px;
    }

    .quick-links {
        margin-top: 56px;
    }

    .quick-links a {
        font-size: 19px;
        padding: 30px;
        min-height: 156px;
    }

    .quick-links small {
        font-size: 13px;
    }

    .section {
        padding-top: 105px;
        padding-bottom: 105px;
    }

    h2 {
        font-size: clamp(52px, 2vw, 68px);
    }

    .section-heading > p {
        max-width: 440px;
    }

    .section-heading p,
    .doc-layout p,
    .request p,
    .muted {
        font-size: 20px;
    }

    .service {
        padding: 38px;
    }

    .service h3 {
        font-size: 30px;
    }

    .service p {
        font-size: 19px;
        min-height: 100px;
    }

    .service-num,
    .service-bottom {
        font-size: 15px;
    }

    .process-layout,
    .doc-layout,
    .request {
        column-gap: clamp(80px, 5vw, 160px);
    }

    .steps h3 {
        font-size: 25px;
    }

    .steps p,
    .text-link {
        font-size: 19px;
    }

    .steps article {
        padding: 30px 0;
    }

    summary {
        font-size: 21px;
    }

    details p {
        font-size: 19px !important;
    }

    .request h2 {
        font-size: 68px;
    }

    label,
    footer strong {
        font-size: 18px;
    }

    input,
    select,
    textarea {
        font-size: 20px;
        padding: 18px 0;
    }

    .consent,
    .demo-note,
    .form-note,
    footer p,
    footer > a,
    .footer-bottom {
        font-size: 15px !important;
    }
}

/* Align service cards on desktop and tablet */
@media (min-width: 621px) {
    .service {
        display: flex;
        flex-direction: column;
        align-items: stretch;
    }

    .service h3 {
        min-height: 3em;
    }

    .service-bottom {
        margin-top: auto;
    }
}

/* Mobile: keep illustrations above headings */
@media (max-width: 620px) {
    .service {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }

    .service .door-art {
        float: none;
        flex: none;
        width: 94px;
        height: 105px;
        margin: 24px auto;
    }

    .service .line-art {
        float: none;
        flex: none;
        width: 100%;
        height: 110px;
        margin: 20px auto;
        font-size: 82px;
        line-height: 110px;
    }

    .service h3 {
        margin: 0 0 16px;
        font-size: clamp(20px, 5.5vw, 24px);
        line-height: 1.4;
        overflow-wrap: anywhere;
    }

    .service p {
        min-height: 0;
        margin: 0 0 24px;
        font-size: 14px;
        line-height: 1.8;
    }

    .service-bottom {
        clear: none;
        margin-top: auto;
    }

    input,
    select,
    textarea {
        font-size: 16px;
    }
}
