/* APEX EDITORIAL INNER PAGES V3 — isolated apxpg namespace */
:root {
    --apx-navy: #071b36;
    --apx-blue: #1264aa;
    --apx-cyan: #43a9e4;
    --apx-ink: #12233a;
    --apx-muted: #66768a;
    --apx-line: #dfe7ef;
    --apx-soft: #f4f8fb;
    --apx-white: #fff
}

.apxpg-page,
.apxpg-page * {
    box-sizing: border-box
}

.apxpg-page {
    font-family: Inter, Arial, sans-serif;
    color: var(--apx-ink);
    background: #fff;
    line-height: 1.72;
    overflow: hidden
}

.apxpg-page a {
    text-decoration: none;
    color: inherit
}

.apxpg-shell {
    width: min(1200px, calc(100% - 40px));
    margin: auto
}

.apxpg-kicker {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--apx-blue)
}

.apxpg-display {
    font-size: clamp(28px, 3vw,27px)!important;
    line-height: 1.04;
    letter-spacing: 0.1px;
    margin: 10px 0 18px
}

.apxpg-title {
    font-size: clamp(28px, 3vw, 43px);
    line-height: 1.13;
    letter-spacing: -1px;
    margin: 8px 0 16px
}

.apxpg-lead {
    font-size: 17px;
    color: var(--apx-muted);
    max-width: 760px
}

.apxpg-section {
    padding: 88px 0
}

.apxpg-soft {
    background: var(--apx-soft)
}

/* Editorial breadcrumb */
.apxpg-breadcrumb {
    background: #f3f8fc;
    position: relative;
    border-bottom: 1px solid #dce8f1
}

.apxpg-bcgrid {
    min-height: 380px;
    display: grid;
    grid-template-columns: 1.02fr .98fr;
    align-items: stretch
}

.apxpg-bccopy {
    padding: 74px 55px 72px max(20px, calc((100vw - 1200px)/2));
    display: flex;
    flex-direction: column;
    justify-content: center
}

.apxpg-bccopy h1 {
    font-size: clamp(43px, 3vw, 70px);
    line-height: 1;
    letter-spacing: -2.5px;
    margin: 13px 0 17px;
    color: var(--apx-navy)
}

.apxpg-bccopy p {
    max-width: 570px;
    color: #637388;
    margin: 0
}

.apxpg-crumbs {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 12px;
    font-weight: 700;
    color: #65768a;
    margin-top: 27px
}

.apxpg-crumbs b {
    color: var(--apx-blue)
}

.apxpg-bcvisual {
    position: relative;
    min-height: 380px;
    background: linear-gradient(90deg, rgba(7, 27, 54, .12), rgba(7, 27, 54, .02)), url('images/breadcrumb.png') center/cover no-repeat;
    clip-path: polygon(11% 0, 100% 0, 100% 100%, 0 100%)
}

.apxpg-bcvisual:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 54%;
    height: 8px;
    background: var(--apx-cyan)
}

.apxpg-bcstamp {
    position: absolute;
    left: 35px;
    bottom: 34px;
    background: #fff;
    padding: 13px 17px;
    border-left: 4px solid var(--apx-blue);
    font-size: 12px;
    font-weight: 800;
    box-shadow: 0 12px 35px rgba(5, 35, 68, .12)
}

/* About */
.apxpg-aboutintro {
    display: grid;
    grid-template-columns: 1.02fr .98fr;
    gap: 75px;
    align-items: center
}

.apxpg-collage {
    height: 550px;
    position: relative
}

.apxpg-collage .apxpg-img1 {
    width: 72%;
    height: 460px;
    object-fit: cover;
    display: block
}

.apxpg-collage .apxpg-img2 {
    position: absolute;
    width: 48%;
    height: 245px;
    object-fit: cover;
    right: 0;
    bottom: 0;
    border: 10px solid #fff
}

.apxpg-collage .apxpg-label {
      position: absolute;
    right: 0;
    top: 35px;
    background: #10386d;
    color: #fff;
    padding: 15px 21px;
    width: 183px;
}

.apxpg-label strong {
    font-size: 29px;
    display: block
}

.apxpg-checkline {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 25px;
    margin-top: 28px
}

.apxpg-checkline div {
    font-weight: 700;
    font-size: 14px;
    border-bottom: 1px solid var(--apx-line);
    padding: 10px 0
}

.apxpg-checkline div:before {
    content: "✓";
    color: var(--apx-blue);
    margin-right: 9px
}

.apxpg-numberbar {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid var(--apx-line);
    border-bottom: 1px solid var(--apx-line)
}

.apxpg-number {
    padding: 32px 36px;
    border-right: 1px solid var(--apx-line)
}

.apxpg-number:last-child {
    border-right: 0
}

.apxpg-number strong {
    font-size: 38px;
    line-height: 1;
    color: var(--apx-navy);
    display: block
}

.apxpg-number span {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--apx-muted)
}

.apxpg-story {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 80px
}

.apxpg-storyaside {
    border-left: 3px solid var(--apx-blue);
    padding-left: 25px
}

.apxpg-storyaside p {
    font-size: 19px;
    color: var(--apx-navy);
    font-weight: 700
}

.apxpg-values {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 45px;
    border: 1px solid var(--apx-line)
}

.apxpg-value {
    padding: 30px;
    border-right: 1px solid var(--apx-line)
}

.apxpg-value:last-child {
    border: 0
}

.apxpg-value i {
    font-style: normal;
    font-size: 12px;
    color: var(--apx-blue);
    font-weight: 800
}

.apxpg-value h3 {
    margin: 8px 0
}

.apxpg-value p {
    font-size: 13px;
    color: var(--apx-muted)
}

.apxpg-process {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-top: 40px
}

.apxpg-step {
    padding: 25px 30px 25px 0;
    position: relative;
    border-top: 2px solid #dbe5ee
}

.apxpg-step:before {
    content: "";
    position: absolute;
    top: -6px;
    left: 0;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--apx-blue)
}

.apxpg-step strong {
    display: block;
    font-size: 12px;
    color: var(--apx-blue);
    margin: 10px 0 5px
}

.apxpg-step span {
    font-weight: 800
}

/* Service */
.apxpg-service-layout {
    display: grid;
    grid-template-columns: 285px minmax(0, 1fr);
    gap: 55px;
    align-items: start
}

.apxpg-aside {
    position: sticky;
    top: 95px
}

.apxpg-sidehead {
    font-size: 11px;
    letter-spacing: 1.7px;
    text-transform: uppercase;
    color: var(--apx-muted);
    font-weight: 800;
    padding-bottom: 13px;
    border-bottom: 2px solid var(--apx-navy)
}

.apxpg-sidelinks a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 2px;
    border-bottom: 1px solid var(--apx-line);
    font-size: 14px;
    font-weight: 750
}

.apxpg-sidelinks a:hover,
.apxpg-sidelinks a.apxpg-current {
    color: var(--apx-blue);
    padding-left: 8px
}

.apxpg-sidecontact {
    margin-top: 30px;
    background: var(--apx-navy);
    color: #fff;
    padding: 27px
}

.apxpg-sidecontact small {
    color: #8dc9f0;
    font-weight: 800;
    letter-spacing: 1.3px
}

.apxpg-sidecontact h3 {
    font-size: 23px;
    line-height: 1.2;
    margin: 8px 0 18px
}

.apxpg-sidecontact a {
    display: block;
    padding: 9px 0;
    border-top: 1px solid rgba(255, 255, 255, .13);
    font-size: 13px
}

.apxpg-servicehero {
    position: relative;
    margin-bottom: 35px
}

.apxpg-servicehero img {
    width: 100%;
    height: 445px;
    object-fit: cover;
    display: block
}

.apxpg-servicehero .apxpg-imgtag {
    position: absolute;
    left: 0;
    bottom: 0;
    background: #fff;
    padding: 15px 21px;
    border-top: 4px solid var(--apx-blue);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.4px
}

.apxpg-content h2 {
    font-size: 29px;
    line-height: 1.18;
    letter-spacing: -.5px;
    margin: 40px 0 13px;
    color: var(--apx-navy)
}

.apxpg-content h3 {
    font-size: 19px;
    margin: 26px 0 8px
}

.apxpg-content p,
.apxpg-content li {
    color: #5f7085
}

.apxpg-featuregrid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    border: 1px solid var(--apx-line);
    margin: 35px 0
}

.apxpg-feature {
        padding: 16px 24px;
    border-right: 1px solid var(--apx-line);
    border-bottom: 1px solid var(--apx-line);
}

.apxpg-feature:nth-child(2n) {
    border-right: 0
}

.apxpg-feature:nth-last-child(-n+2) {
    border-bottom: 0
}

.apxpg-feature b {
    display: block;
    color: var(--apx-navy);
    margin-bottom: 5px
}

.apxpg-feature span {
    font-size: 13px;
    color: var(--apx-muted)
}

.apxpg-feature:before {
    content: "↗";
    display: block;
    color: var(--apx-blue);
    font-weight: 900;
    margin-bottom: 10px
}

.apxpg-content ul {
    padding-left: 20px
}

.apxpg-faqitem {
    border-top: 1px solid var(--apx-line)
}

.apxpg-faqitem:last-child {
    border-bottom: 1px solid var(--apx-line)
}

.apxpg-faqq {
    width: 100%;
    border: 0;
    background: none;
    text-align: left;
    display: flex;
    justify-content: space-between;
    gap: 15px;
    padding: 19px 0;
    font: 700 15px/1.5 Inter, Arial;
    color: var(--apx-ink);
    cursor: pointer
}

.apxpg-faqa {
    display: none;
    padding: 0 35px 19px 0;
    color: var(--apx-muted);
    font-size: 14px
}

.apxpg-open .apxpg-faqa {
    display: block
}

.apxpg-plus {
    font-size: 20px
}

.apxpg-open .apxpg-plus {
    transform: rotate(45deg)
}

/* FAQ page */
.apxpg-faqtop {
    display: grid;
    grid-template-columns: .72fr 1.28fr;
    gap: 70px
}

.apxpg-faqnav {
    border-top: 2px solid var(--apx-navy)
}

.apxpg-filter {
    width: 100%;
    text-align: left;
    border: 0;
    border-bottom: 1px solid var(--apx-line);
    background: none;
    padding: 15px 0;
    font-weight: 700;
    cursor: pointer
}

.apxpg-filter.apxpg-on {
    color: var(--apx-blue);
    padding-left: 10px
}

.apxpg-faqsearch {
    width: 100%;
    padding: 15px 0;
    border: 0;
    border-bottom: 2px solid var(--apx-navy);
    font: inherit;
    outline: none;
    margin-bottom: 22px
}

/* Contact */
.apxpg-contactgrid {
    display: grid;
    grid-template-columns: .82fr 1.18fr;
    gap: 70px
}

.apxpg-contactintro {
    background: var(--apx-navy);
    color: #fff;
    padding: 43px;
    position: relative
}

.apxpg-contactintro h2 {
        font-size: 25px;
    line-height: 1.1;
    margin: 13px 0px;
}

.apxpg-contactintro>p {
    color: #b8c6d6
}

.apxpg-contactline {
       padding: 15px 0;
    border-top: 1px solid rgba(255, 255, 255, .13);
}

.apxpg-contactline b {
    display: block
}

.apxpg-contactline span {
        font-size: 15px;
    color: #b8c6d6;
}

.apxpg-formbox h2 {
    margin-top: 0
}

.apxpg-formgrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px
}

.apxpg-field {
    display: flex;
    flex-direction: column;
    gap: 6px
}

.apxpg-field.apxpg-full {
    grid-column: 1/-1
}

.apxpg-field label {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .7px
}

.apxpg-field input,
.apxpg-field select,
.apxpg-field textarea {
    border: 0;
    border-bottom: 1px solid #bfcbd7;
    padding: 12px 2px;
    font: inherit;
    background: transparent;
    outline: none
}

.apxpg-field textarea {
    min-height: 105px
}

.apxpg-btn {
    display: inline-flex;
    border: 0;
    background: var(--apx-blue);
    color: #fff;
    padding: 14px 22px;
    font-weight: 800;
    cursor: pointer
}

.apxpg-map {
    width: 100%;
    height: 420px;
    border: 0
}

.apxpg-mapwrap {
    display: grid;
    grid-template-columns: 1.2fr .8fr
}

.apxpg-mapnote {
    background: #eef5fa;
    padding: 45px;
    display: flex;
    flex-direction: column;
    justify-content: center
}

/* CTA */
.apxpg-cta {
    background: var(--apx-navy);
    color: #fff;
    padding: 46px 50px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
    border-left: 7px solid var(--apx-cyan)
}

.apxpg-cta h2 {
    font-size: 30px;
    margin: 0 0 5px
}

.apxpg-cta p {
    color: #b9c8d8;
    margin: 0
}

.apxpg-cta .apxpg-btn {
    background: #fff;
    color: var(--apx-navy)
}

@media(max-width:900px) {

    .apxpg-bcgrid,
    .apxpg-aboutintro,
    .apxpg-story,
    .apxpg-faqtop,
    .apxpg-contactgrid,
    .apxpg-mapwrap {
        grid-template-columns: 1fr
    }

    .apxpg-bccopy {
        padding: 55px 25px
    }

    .apxpg-bcvisual {
        min-height: 260px;
        clip-path: none
    }

    .apxpg-service-layout {
        grid-template-columns: 1fr
    }

    .apxpg-aside {
        position: static
    }

    .apxpg-sidecontact {
        display: none
    }

    .apxpg-values,
    .apxpg-process {
        grid-template-columns: 1fr 1fr
    }

    .apxpg-collage {
        height: 500px
    }
}

@media(max-width:620px) {
    .apxpg-shell {
        width: calc(100% - 28px)
    }

    .apxpg-section {
        padding: 58px 0
    }

    .apxpg-bccopy h1 {
        font-size: 42px
    }

    .apxpg-bcvisual {
        min-height: 210px
    }

    .apxpg-collage {
        height: 390px
    }

    .apxpg-collage .apxpg-img1 {
        height: 330px
    }

    .apxpg-collage .apxpg-img2 {
        height: 170px
    }

    .apxpg-collage .apxpg-label {
        display: none
    }

    .apxpg-checkline,
    .apxpg-numberbar,
    .apxpg-values,
    .apxpg-process,
    .apxpg-featuregrid,
    .apxpg-formgrid {
        grid-template-columns: 1fr
    }

    .apxpg-number,
    .apxpg-value {
        border-right: 0;
        border-bottom: 1px solid var(--apx-line)
    }

    .apxpg-feature {
        border-right: 0 !important;
        border-bottom: 1px solid var(--apx-line) !important
    }

    .apxpg-servicehero img {
        height: 270px
    }

    .apxpg-cta {
        display: block;
        padding: 32px 27px
    }

    .apxpg-cta .apxpg-btn {
        margin-top: 18px
    }
}

/* V4 FIXES: denser, visual, homepage-aligned */
.apxpg-bcgrid {
    min-height: 330px
}

.apxpg-bccopy {
    padding-top: 55px;
    padding-bottom: 55px
}

.apxpg-bcvisual {
    min-height: 330px
}

.apxpg-section {
    padding: 72px 0
}

.apxpg-aboutintro {
    gap: 58px
}

.apxpg-collage {
    height: 500px
}

.apxpg-collage .apxpg-img1 {
    height: 420px
}

.apxpg-collage .apxpg-img2 {
    height: 215px
}

.apxpg-servicehero img {
    height: 390px
}

.apxpg-service-layout {
    gap: 42px
}

.apxpg-servicehero {
    overflow: hidden
}

.apxpg-servicehero:before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 50%, rgba(5, 24, 50, .42));
    z-index: 1
}

.apxpg-servicehero .apxpg-imgtag {
    z-index: 2
}

.apxpg-visualsplit {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    margin: 42px 0;
    background: #f1f7fb
}

.apxpg-visualsplit img {
    width: 100%;
    height: 310px;
    object-fit: cover
}

.apxpg-visualcopy {
    padding: 35px
}

.apxpg-visualcopy h2 {
    margin-top: 5px
}

.apxpg-assiststrip {
    margin: 42px 0;
    padding: 28px 32px;
    background: #0a3769;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px
}

.apxpg-assiststrip h3 {
    margin: 0;
    color: #fff;
    padding: 0
}

.apxpg-assiststrip h3:before {
    display: none
}

.apxpg-assiststrip p {
    margin: 4px 0 0;
    color: #c8dbed
}

.apxpg-assiststrip a {
    white-space: nowrap;
    background: #fff;
    color: #092d55;
    padding: 11px 16px;
    font-weight: 800
}

.apxpg-related {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-top: 24px
}

.apxpg-related a {
    border: 1px solid var(--apx-line);
    padding: 18px;
    font-weight: 800
}

.apxpg-related small {
    display: block;
    color: var(--apx-blue);
    margin-bottom: 5px
}

.apxpg-contactactions {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-top: 22px
}

.apxpg-contactactions a {
    background: #fff;
    color: #092d55;
    padding: 13px 10px;
    text-align: center;
    font-size: 12px;
    font-weight: 800
}

@media(max-width:900px) {
    .apxpg-visualsplit {
        grid-template-columns: 1fr
    }

    .apxpg-related {
        grid-template-columns: 1fr
    }

    .apxpg-assiststrip {
        display: block
    }

    .apxpg-assiststrip a {
        display: inline-block;
        margin-top: 15px
    }
}

@media(max-width:620px) {
    .apxpg-contactactions {
        grid-template-columns: 1fr
    }

    .apxpg-servicehero img {
        height: 250px
    }
}

/* =========================================================
   TOP STRIP above header
========================================================= */
.apx-topstrip{position:relative;z-index:1001}
.apx-topstrip .topbar__inner{height:36px}
.apx-topstrip a,.apx-topstrip span{color:#d9e9ff;text-decoration:none;font-size:12.5px}
.apx-topstrip a:hover span{color:#fff}
.apx-topstrip b{color:#fff;font-weight:700}
.apx-topstrip svg{width:14px;height:14px;color:#7cc4ff}
