/* ============================================================
   About Us — authoritative responsive layer
   Load this last. Covers phone / tablet / laptop / desktop.
   ============================================================ */

html.about-page,
html.about-page body {
    overflow-x: hidden;
    max-width: 100%;
}

html.about-page .ab-hero,
html.about-page .ab-section,
html.about-page .ab-cta,
html.about-page .go-section,
html.about-page .cv-section,
html.about-page .csr-section {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

html.about-page .ab-wrap,
html.about-page .go-wrap,
html.about-page .cv-section .ab-wrap,
html.about-page .csr-section .ab-wrap {
    width: min(92%, 1240px) !important;
    max-width: 1240px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box;
}

html.about-page img {
    max-width: 100%;
}

html.about-page .ab-delivery__media img,
html.about-page .ab-cta__visual img,
html.about-page .go-map-img {
    height: auto;
}

/* ---------- Laptop ---------- */
@media (max-width: 1200px) {
    html.about-page .ab-defines__grid,
    html.about-page .ab-glance__grid,
    html.about-page .ab-timeline {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    html.about-page .ab-timeline::before {
        display: none !important;
    }

    html.about-page .csr-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

/* ---------- Tablet / small laptop ---------- */
@media (max-width: 1024px) {
    html.about-page .ab-section,
    html.about-page .cv-section,
    html.about-page .csr-section,
    html.about-page .go-section {
        padding-left: 0;
        padding-right: 0;
    }

    html.about-page .ab-section {
        padding-top: 64px;
        padding-bottom: 64px;
    }

    html.about-page .ab-story__top,
    html.about-page .ab-delivery__row,
    html.about-page .ab-cta__grid {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }

    html.about-page .ab-delivery__media {
        order: -1;
        padding: 14px !important;
    }

    html.about-page .ab-delivery__media img {
        width: 100% !important;
        height: auto !important;
        max-height: none !important;
        min-height: 0 !important;
        object-fit: contain !important;
        transform: none !important;
    }

    html.about-page .cv-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    html.about-page .csr-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    html.about-page .csr-banner {
        grid-template-columns: 1fr !important;
        text-align: center;
        padding: 22px 18px !important;
    }

    html.about-page .csr-banner__icon {
        margin: 0 auto;
    }

    html.about-page .csr-banner__copy h3,
    html.about-page .csr-banner__copy p {
        text-align: center !important;
    }

    html.about-page .csr-banner__btn {
        width: fit-content;
        max-width: 100%;
        margin: 0 auto;
        white-space: normal;
    }

    html.about-page .go-row {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }

    html.about-page .go-card,
    html.about-page .go-card:last-of-type {
        width: 100% !important;
        max-width: 100% !important;
        justify-self: stretch !important;
    }

    html.about-page .go-map-wrap {
        order: -1;
        width: 100%;
        max-width: 100%;
        height: auto !important;
    }

    html.about-page .go-map,
    html.about-page .go-map-img {
        width: min(100%, 380px);
        height: auto !important;
        margin: 0 auto;
        display: block;
    }

    html.about-page .go-head,
    html.about-page .go-head-line {
        text-align: center;
        margin-left: auto;
        margin-right: auto;
    }

    html.about-page .ab-cta__visual {
        order: -1;
    }

    html.about-page .ab-cta__copy {
        text-align: center;
    }

    html.about-page .ab-image-card img {
        width: 100%;
        height: auto !important;
        max-height: 320px;
        object-fit: cover;
    }
}

/* ---------- Large phones / tablet portrait ---------- */
@media (max-width: 768px) {
    html.about-page .ab-wrap,
    html.about-page .go-wrap,
    html.about-page .cv-section .ab-wrap,
    html.about-page .csr-section .ab-wrap {
        width: calc(100% - 28px) !important;
    }

    html.about-page .ab-section {
        padding-top: 48px;
        padding-bottom: 48px;
    }

    html.about-page .cv-section {
        padding: 48px 0 12px !important;
    }

    html.about-page .csr-section {
        padding: 28px 0 48px !important;
    }

    html.about-page .go-section {
        padding: 48px 0 56px !important;
    }

    html.about-page .ab-glance__grid,
    html.about-page .ab-defines__grid,
    html.about-page .ab-timeline,
    html.about-page .csr-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    html.about-page .cv-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }

    html.about-page .ab-delivery__body,
    html.about-page .ab-pillar,
    html.about-page .ab-metric,
    html.about-page .cv-card,
    html.about-page .csr-card,
    html.about-page .go-card {
        padding: 20px 16px !important;
    }

    html.about-page .ab-story__copy .ab-btn,
    html.about-page .ab-cta .ab-btn--cta,
    html.about-page .csr-banner__btn {
        width: 100% !important;
        justify-content: center;
    }

    html.about-page .ab-cta {
        padding: 24px 0 36px;
    }

    html.about-page .ab-cta__container {
        padding: 28px 16px !important;
        border-radius: 16px !important;
    }

    html.about-page .ab-cta__visual img {
        max-width: 240px;
        margin: 0 auto;
        display: block;
    }

    html.about-page .ab-section-head,
    html.about-page .cv-head {
        margin-bottom: 28px;
        padding: 0 4px;
    }
}

/* ---------- iPhone / compact phones (incl. 17 Pro ~402px) ---------- */
@media (max-width: 480px) {
    html.about-page .ab-wrap,
    html.about-page .go-wrap,
    html.about-page .cv-section .ab-wrap,
    html.about-page .csr-section .ab-wrap {
        width: calc(100% - 20px) !important;
    }

    html.about-page .cv-grid {
        grid-template-columns: 1fr !important;
    }

    html.about-page .ab-hero__content {
        width: 100%;
    }

    html.about-page .ab-metric strong {
        font-size: 1.6rem;
    }

    html.about-page .go-card {
        flex-direction: row;
        align-items: flex-start;
    }
}

@media (max-width: 360px) {
    html.about-page .ab-wrap,
    html.about-page .go-wrap,
    html.about-page .cv-section .ab-wrap,
    html.about-page .csr-section .ab-wrap {
        width: calc(100% - 16px) !important;
    }
}

/* ---------- Landscape phones ---------- */
@media (max-height: 500px) and (orientation: landscape) {
    html.about-page .ab-hero {
        min-height: auto !important;
        padding: 24px 16px !important;
    }
}

/* ---------- Touch devices: no hover zoom crop ---------- */
@media (hover: none) {
    html.about-page .ab-delivery__media:hover img,
    html.about-page .ab-metric:hover,
    html.about-page .ab-pillar:hover,
    html.about-page .cv-card:hover,
    html.about-page .csr-card:hover {
        transform: none !important;
    }
}

/* ---------- iOS safe areas ---------- */
@supports (padding: max(0px)) {
    html.about-page .ab-hero {
        padding-left: max(0px, env(safe-area-inset-left));
        padding-right: max(0px, env(safe-area-inset-right));
    }

    html.about-page .ab-cta {
        padding-bottom: max(36px, env(safe-area-inset-bottom));
    }
}

/* ---------- Extra polish: hero CTA, typography, overflow ---------- */
html.about-page .body-content,
html.about-page .ab-section,
html.about-page .ab-cta,
html.about-page .go-section,
html.about-page .cv-section,
html.about-page .csr-section {
    overflow-x: clip;
}

html.about-page .ab-hero {
    overflow: hidden;
}

html.about-page .ab-hero__bg {
    background: #0f172a !important;
    background-image: none !important;
}

html.about-page .ab-hero__bg img {
    height: 100% !important;
    width: auto !important;
    max-width: 68% !important;
    object-fit: cover !important;
    object-position: right center !important;
    image-rendering: auto !important;
    filter: none !important;
    transform: none !important;
}

html.about-page .ab-hero__overlay {
    background: linear-gradient(
        90deg,
        rgba(15, 23, 42, 0.94) 0%,
        rgba(15, 23, 42, 0.76) 28%,
        rgba(15, 23, 42, 0.22) 55%,
        rgba(15, 23, 42, 0.04) 78%,
        rgba(15, 23, 42, 0) 100%
    ) !important;
}

@media (max-width: 992px) {
    html.about-page .ab-hero {
        min-height: auto !important;
        padding: 48px 20px !important;
        align-items: center;
    }

    html.about-page .ab-hero__bg {
        background-position: 80% center !important;
    }

    html.about-page .ab-hero__bg img {
        max-width: 100% !important;
        width: 100% !important;
        object-position: 80% center !important;
    }

    html.about-page .ab-glass--hero {
        width: 100%;
        max-width: 720px;
    }

    html.about-page .ab-hero h1 {
        font-size: clamp(1.55rem, 4.2vw, 2.1rem) !important;
        line-height: 1.2 !important;
    }

    html.about-page .ab-hero p {
        font-size: 14px !important;
        line-height: 1.6 !important;
    }

    html.about-page .ab-hero__cta {
        gap: 10px;
    }
}

@media (max-width: 768px) {
    html.about-page .ab-hero {
        padding: 40px 14px !important;
    }

    html.about-page .ab-glass--hero {
        padding: 22px 18px !important;
        border-radius: 16px !important;
    }

    html.about-page .ab-hero__cta {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    html.about-page .ab-hero .ab-btn {
        width: 100% !important;
        justify-content: center;
    }

    html.about-page .ab-section-head h2,
    html.about-page .cv-head h2,
    html.about-page .go-head h2 {
        font-size: clamp(1.35rem, 5.5vw, 1.85rem) !important;
    }

    html.about-page .ab-cta__copy h2 {
        font-size: clamp(1.35rem, 5.5vw, 1.9rem) !important;
    }

    html.about-page .go-map,
    html.about-page .go-map-img {
        width: min(100%, 320px) !important;
    }
}

@media (max-width: 480px) {
    html.about-page .ab-hero h1 {
        font-size: 1.35rem !important;
    }

    html.about-page .ab-hero p {
        font-size: 13px !important;
    }

    html.about-page .ab-eyebrow {
        font-size: 11px;
    }

    html.about-page .ab-metric strong {
        font-size: 1.45rem !important;
    }

    html.about-page .ab-cta__visual img {
        max-width: 200px !important;
    }
}
