/* Shared last-mile responsive rules. Loaded after page-specific styles. */
body[data-page="contact"] .contact-hero-copy {
    width: 100%;
    max-width: 600px;
}

/* Contact content should remain immediately readable after anchor jumps and fast scrolls. */
body[data-page="contact"].motion-enabled .motion-ready {
    opacity: 1;
    transform: none;
    transition: border-color .25s ease, box-shadow .25s ease;
}

@media (min-width: 1051px) {
    body[data-page="contact"] .contact-hero {
        grid-template-columns: minmax(470px, .9fr) minmax(0, 1.1fr);
        min-height: 620px;
    }

    body[data-page="contact"] .contact-hero-visual {
        width: 110%;
        margin-left: -3%;
    }
}

@media (max-width: 1000px) {
    [data-page="company"] .inner-split {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 680px) {
    .inner-page .inner-split,
    .inner-page .inner-split.reverse,
    [data-page="company"] .inner-split {
        grid-template-columns: minmax(0, 1fr);
        gap: 30px;
    }

    .inner-page .inner-container > *,
    .inner-page .inner-split > *,
    .inner-page .inner-card-grid > *,
    .inner-page .equipment-page-grid > * {
        min-width: 0;
    }

    .corporate-footer {
        padding-top: 42px;
    }

    .corporate-footer .footer-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
    }

    .corporate-footer .footer-grid section,
    .corporate-footer .footer-brand {
        grid-column: auto;
        min-width: 0;
    }

    .corporate-footer .footer-grid section > a,
    .corporate-footer .footer-contact p {
        overflow-wrap: anywhere;
    }

    .inner-page img,
    .inner-page video,
    .inner-page iframe {
        max-width: 100%;
    }

    .document-panel,
    .activity-year {
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Company overview: compact, readable mobile composition. */
    body[data-page="company"] .inner-hero {
        min-height: 590px;
        padding: 150px 18px 26px;
        align-items: flex-end;
    }

    body[data-page="company"] .inner-hero::after {
        background-position: 64% center;
    }

    body[data-page="company"] .inner-hero-content {
        width: 100%;
        max-width: none;
        padding: 20px;
    }

    body[data-page="company"] .inner-hero h1 {
        max-width: 100%;
        font-size: clamp(32px, 9.2vw, 38px);
        line-height: 1.03;
        letter-spacing: -1.2px;
    }

    body[data-page="company"] .inner-hero-lead {
        margin-top: 16px;
        font-size: 14px;
        line-height: 1.58;
    }

    body[data-page="company"] .hero-page-badge {
        display: none;
    }

    body[data-page="company"] .inner-metrics {
        gap: 10px;
        margin-top: -20px;
    }

    body[data-page="company"] .inner-metrics article {
        min-height: 112px;
        padding: 17px 15px;
        border: 1px solid #e2e7ed;
        border-top: 3px solid #ed1c24;
        border-left: 1px solid #e2e7ed;
        border-radius: 8px;
    }

    body[data-page="company"] .inner-section {
        padding: 48px 0;
    }

    body[data-page="company"] .inner-media > img {
        height: 100%;
        border-radius: 10px;
    }

    body[data-page="company"] .inner-info-card {
        min-height: 0;
        padding: 21px;
    }

    body[data-page="company"] .inner-logo-panel {
        min-height: 220px;
        padding: 26px;
    }

    /* Do not leave empty gaps when a fast mobile scroll skips a reveal trigger. */
    body[data-page="company"].motion-enabled .motion-ready {
        opacity: 1;
        transform: none;
        transition: border-color .25s ease, box-shadow .25s ease;
    }

    /* Contact: stable, compact phone layout with no skipped reveal gaps. */
    body[data-page="contact"].motion-enabled .motion-ready {
        opacity: 1;
        transform: none;
        transition: border-color .25s ease, box-shadow .25s ease;
    }

    body[data-page="contact"] .contact-hero {
        min-height: 0;
        padding: 44px 18px 30px;
    }

    body[data-page="contact"] .contact-hero::before {
        display: none;
    }

    body[data-page="contact"] .contact-hero-copy {
        width: 100%;
        max-width: none;
        padding: 20px;
    }

    body[data-page="contact"] .contact-hero h1 {
        font-size: clamp(34px, 9.4vw, 39px);
        line-height: 1.06;
        letter-spacing: -1.2px;
    }

    body[data-page="contact"] .contact-hero-copy > p:last-of-type {
        margin-top: 18px;
        font-size: 14px;
        line-height: 1.65;
    }

    body[data-page="contact"] .contact-hero-actions {
        margin-top: 24px;
    }

    body[data-page="contact"] .contact-hero-actions a {
        justify-content: space-between;
        width: 100%;
    }

    body[data-page="contact"] .contact-hero-visual {
        width: 118%;
        height: 165px;
        margin: 12px 0 0 -9%;
        overflow: hidden;
    }

    body[data-page="contact"] .contact-department-grid {
        gap: 12px;
        margin-top: 22px;
    }

    body[data-page="contact"] .contact-department-card {
        padding: 21px 18px;
    }

    body[data-page="contact"] .contact-department-content {
        padding-right: 12px;
    }

    body[data-page="contact"] .contact-enquiry,
    body[data-page="contact"] .office-locations,
    body[data-page="contact"] .contact-locations {
        padding-block: 58px;
    }

    body[data-page="contact"] .contact-intro h2,
    body[data-page="contact"] .contact-locations h2 {
        font-size: 34px;
    }
}

@media (max-width: 420px) {
    .inner-footer-grid {
        grid-template-columns: 1fr;
    }

    .inner-footer-brand,
    .inner-footer-grid section:last-child {
        grid-column: auto;
    }

    body[data-page="company"] .inner-hero {
        min-height: 570px;
        padding-top: 132px;
    }

    body[data-page="contact"] .contact-hero h1 {
        font-size: 32px;
    }

    body[data-page="contact"] .contact-form-panel {
        padding: 21px 16px;
    }
}
