
:root {
    --aps-purple: #4B1F73;
    --aps-purple-dark: #2f114d;
    --aps-pink: #D71878;
    --aps-light: #F8F6FB;
    --aps-ink: #241531;
    --aps-muted: #667085;
    --aps-border: #eadff2;
    --aps-shadow: 0 20px 50px rgba(75,31,115,.13);
    --aps-radius: 1.35rem;
    --aps-green: #25D366;
    --aps-gold: #F7B731;
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    font-family: 'Aptos','Inter','Segoe UI',system-ui,-apple-system,sans-serif;
    color: var(--aps-ink);
    line-height: 1.65;
    background: #fff;
    overflow-x: hidden
}

img, video {
    max-width: 100%
}

a {
    color: var(--aps-purple);
    text-decoration: none
}

    a:hover {
        color: var(--aps-pink)
    }

.navbar {
    background: rgba(255,255,255,.985);
    backdrop-filter: blur(18px);
    box-shadow: 0 8px 32px rgba(75,31,115,.09);
    padding: .5rem 0
}

.navbar-brand img {
    height: 80px;
    width: auto;
    max-width: 330px;
    object-fit: contain
}

.nav-link {
    font-weight: 800;
    color: var(--aps-ink) !important;
    border-radius: 999px;
    padding: .55rem .55rem !important;
    font-size: .78rem;
    white-space: nowrap
}

    .nav-link:hover, .nav-link.active {
        background: var(--aps-light);
        color: var(--aps-purple) !important
    }

.btn-aps {
    background: linear-gradient(135deg,var(--aps-pink),#b70c63);
    color: #fff !important;
    border: 0;
    font-weight: 900;
    border-radius: 999px;
    padding: .85rem 1.25rem;
    box-shadow: 0 14px 30px rgba(215,24,120,.26);
    transition: .22s
}

    .btn-aps:hover {
        transform: translateY(-2px);
        box-shadow: 0 18px 38px rgba(215,24,120,.35)
    }

.btn-aps-outline {
    border: 2px solid var(--aps-purple);
    color: var(--aps-purple) !important;
    font-weight: 900;
    border-radius: 999px;
    padding: .74rem 1.2rem;
    background: #fff
}

    .btn-aps-outline:hover {
        background: var(--aps-purple);
        color: #fff !important
    }

.hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(90deg,#fff 0%,#fff 49%,rgba(248,246,251,.9) 100%);
    padding: 4.6rem 0 3.4rem
}

    .hero:before {
        content: "";
        position: absolute;
        inset: 0;
        background: radial-gradient(circle at 8% 16%,rgba(215,24,120,.11),transparent 31%),radial-gradient(circle at 74% 9%,rgba(75,31,115,.12),transparent 34%);
        pointer-events: none
    }

.hero-media {
    height: 470px;
    border-radius: 2.2rem;
    overflow: hidden;
    box-shadow: var(--aps-shadow);
    position: relative;
    background: var(--aps-light)
}

    .hero-media img, .hero-media video {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block
    }

    .hero-media:after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(90deg,rgba(255,255,255,.18),rgba(75,31,115,.05));
        pointer-events: none
    }

.float-card {
    position: absolute;
    background: #fff;
    border: 1px solid var(--aps-border);
    border-radius: 1.25rem;
    padding: 1rem 1.15rem;
    box-shadow: 0 16px 36px rgba(75,31,115,.14);
    font-weight: 900;
    z-index: 3
}

    .float-card.one {
        left: -25px;
        top: 38px
    }

    .float-card.two {
        right: -18px;
        bottom: 42px
    }

    .float-card small {
        display: block;
        color: var(--aps-muted);
        font-weight: 700
    }

.eyebrow {
    display: inline-flex;
    gap: .5rem;
    align-items: center;
    background: #fce8f3;
    color: var(--aps-purple);
    font-weight: 950;
    padding: .45rem .85rem;
    border-radius: 999px;
    font-size: .88rem
}

.display-title {
    font-weight: 950;
    letter-spacing: -.047em;
    line-height: 1.02;
    color: var(--aps-purple-dark)
}

.lead-text {
    font-size: 1.15rem;
    color: #4b4456
}

.section {
    padding: 5rem 0
}

.section-light {
    background: var(--aps-light)
}

.section-title {
    font-weight: 950;
    letter-spacing: -.037em;
    color: var(--aps-purple-dark)
}

.section-kicker {
    text-transform: uppercase;
    letter-spacing: .12em;
    color: var(--aps-pink);
    font-weight: 950;
    font-size: .8rem
}

.service-card, .feature-card, .trust-card, .support-card, .policy-card, .resource-card, .stat-card, .story-card {
    border: 1px solid var(--aps-border);
    border-radius: var(--aps-radius);
    background: #fff;
    box-shadow: 0 12px 32px rgba(75,31,115,.08);
    height: 100%;
    overflow: hidden;
    transition: .22s ease
}

    .service-card:hover, .support-card:hover, .feature-card:hover, .policy-card:hover, .resource-card:hover, .stat-card:hover, .story-card:hover {
        transform: translateY(-5px);
        box-shadow: var(--aps-shadow)
    }

    .service-card img, .support-card img, .story-card img {
        width: 100%;
        height: 185px;
        object-fit: cover;
        display: block
    }

.card-icon {
    width: 54px;
    height: 54px;
    display: inline-grid;
    place-items: center;
    border-radius: 1rem;
    background: linear-gradient(135deg,var(--aps-light),#fce8f3);
    color: var(--aps-pink);
    font-size: 1.35rem;
    margin-bottom: 1rem
}

.check-list {
    list-style: none;
    padding-left: 0;
    margin-bottom: 0
}

    .check-list li {
        display: flex;
        gap: .65rem;
        align-items: flex-start;
        margin-bottom: .75rem
    }

        .check-list li:before {
            content: "✓";
            color: #fff;
            background: var(--aps-pink);
            width: 1.35rem;
            height: 1.35rem;
            border-radius: 50%;
            display: inline-grid;
            place-items: center;
            font-size: .8rem;
            font-weight: 950;
            flex: 0 0 auto;
            margin-top: .15rem
        }

.callout {
    background: linear-gradient(135deg,var(--aps-purple),#6c2ca0);
    color: #fff;
    border-radius: 2rem;
    padding: 3rem;
    overflow: hidden;
    position: relative
}

    .callout:after {
        content: "";
        position: absolute;
        width: 280px;
        height: 280px;
        border-radius: 50%;
        background: rgba(215,24,120,.25);
        right: -70px;
        top: -80px
    }

    .callout > * {
        position: relative;
        z-index: 1
    }

.page-hero {
    padding: 4.8rem 0;
    background: linear-gradient(135deg,var(--aps-light),#fff);
    position: relative;
    overflow: hidden
}

    .page-hero:after {
        content: "";
        position: absolute;
        width: 460px;
        height: 460px;
        border-radius: 50%;
        background: rgba(215,24,120,.08);
        right: -140px;
        top: -170px
    }

.form-control, .form-select {
    border-radius: 1rem;
    padding: .88rem 1rem;
    border: 1px solid #dfd5e7
}

    .form-control:focus, .form-select:focus {
        border-color: var(--aps-purple);
        box-shadow: 0 0 0 .25rem rgba(75,31,115,.12)
    }

.contact-card {
    position: sticky;
    top: 125px
}

.process-step {
    padding: 1.25rem;
    border-radius: 1.2rem;
    background: #fff;
    border: 1px solid var(--aps-border);
    height: 100%
}

.process-num {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--aps-purple);
    color: #fff;
    font-weight: 950;
    margin-bottom: .75rem
}

.badge-aps {
    background: var(--aps-light);
    color: var(--aps-purple);
    border: 1px solid var(--aps-border);
    border-radius: 999px;
    padding: .45rem .8rem;
    font-weight: 850
}

.stat-number {
    font-size: 2.55rem;
    font-weight: 950;
    color: var(--aps-purple-dark);
    line-height: 1
}

.stat-card {
    position: relative
}

    .stat-card:after {
        content: "";
        position: absolute;
        right: 0;
        bottom: 0;
        width: 70px;
        height: 70px;
        background: rgba(215,24,120,.08);
        border-radius: 70px 0 0 0
    }

.timeline {
    position: relative
}

    .timeline:before {
        content: "";
        position: absolute;
        left: 22px;
        top: 10px;
        bottom: 10px;
        width: 3px;
        background: var(--aps-border)
    }

.timeline-item {
    position: relative;
    padding-left: 4rem;
    margin-bottom: 1.5rem
}

.timeline-dot {
    position: absolute;
    left: 0;
    top: 0;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--aps-pink);
    color: #fff;
    display: grid;
    place-items: center;
    font-weight: 950
}

.footer {
    background: #22102f;
    color: #fff;
    padding: 4rem 0 1.5rem
}

    .footer a {
        color: #fff
    }

    .footer .muted {
        color: rgba(255,255,255,.72)
    }

.footer-logo {
    height: 86px;
    max-width: 300px;
    background: #fff;
    border-radius: 1rem;
    padding: .55rem;
    object-fit: contain
}

.contact-widget {
    position: fixed!important;
    right: 22px;
    bottom: 22px;
    z-index: 9999;
    font-family: inherit
}

.contact-widget-toggle {
    border: 0;
    background: linear-gradient(135deg,var(--aps-pink),var(--aps-purple));
    color: #fff;
    border-radius: 999px;
    padding: 1rem 1.15rem;
    font-weight: 950;
    box-shadow: 0 16px 35px rgba(75,31,115,.32);
    display: flex;
    gap: .5rem;
    align-items: center;
    animation: pulse 2.5s infinite
}

.contact-widget-panel {
    position: absolute;
    right: 0;
    bottom: 64px;
    width: 300px;
    background: #fff;
    border: 1px solid var(--aps-border);
    box-shadow: var(--aps-shadow);
    border-radius: 1.3rem;
    padding: .8rem;
    display: none
}

.contact-widget.open .contact-widget-panel {
    display: block
}

.contact-widget-panel a {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .85rem;
    border-radius: 1rem;
    color: var(--aps-ink);
    font-weight: 850
}

    .contact-widget-panel a:hover {
        background: var(--aps-light);
        color: var(--aps-purple)
    }

.wa-dot {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--aps-green);
    color: #fff;
    display: grid;
    place-items: center
}

.testimonial {
    border-left: 5px solid var(--aps-pink);
    padding-left: 1.25rem
}

.accordion-button:not(.collapsed) {
    background: var(--aps-light);
    color: var(--aps-purple);
    font-weight: 850
}

.accordion-button:focus {
    box-shadow: 0 0 0 .25rem rgba(75,31,115,.12)
}

.reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: .65s ease
}

    .reveal.visible {
        opacity: 1;
        transform: none
    }

.logo-strip {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap
}

.logo-pill {
    background: #fff;
    border: 1px solid var(--aps-border);
    border-radius: 999px;
    padding: .8rem 1.1rem;
    font-weight: 850;
    color: var(--aps-purple)
}

@keyframes pulse {
    0%,100% {
        transform: scale(1)
    }

    50% {
        transform: scale(1.035)
    }
}

@media(max-width:1399px) {
    .navbar-brand img {
        height: 68px;
        max-width: 285px
    }

    .nav-link {
        font-size: .75rem;
        padding: .48rem .33rem !important
    }

    .btn-aps {
        padding: .68rem .88rem;
        font-size: .83rem
    }
}

@media(max-width:1199px) {
    .navbar-expand-xl .navbar-collapse {
        padding: 1rem 0
    }

    .navbar-brand img {
        height: 64px;
        max-width: 270px
    }

    .nav-link {
        font-size: .95rem;
        white-space: normal
    }

    .contact-card {
        position: static
    }

    .float-card {
        display: none
    }
}

@media(max-width:991px) {
    .hero {
        padding: 3rem 0 2rem
    }

    .display-title {
        font-size: 2.45rem
    }

    .hero-media {
        height: 315px
    }

    .callout {
        padding: 2rem
    }

    .section {
        padding: 3.7rem 0
    }
}

@media(max-width:575px) {
    .navbar-brand img {
        height: 56px;
        max-width: 235px
    }

    .display-title {
        font-size: 2.05rem
    }

    .hero-media {
        height: 260px;
        border-radius: 1.25rem
    }

    .contact-widget {
        right: 14px;
        bottom: 14px
    }

    .contact-widget-panel {
        width: 270px
    }

    .contact-widget-toggle span:last-child {
        display: none
    }
}


/* ================================
   V6 Premium UI Enhancements
   ================================ */
.premium-band {
    position: relative;
    overflow: hidden;
}

    .premium-band::before {
        content: "";
        position: absolute;
        width: 420px;
        height: 420px;
        border-radius: 50%;
        background: radial-gradient(circle, rgba(215,24,120,.12), transparent 68%);
        left: -160px;
        top: -130px;
    }

    .premium-band::after {
        content: "";
        position: absolute;
        width: 360px;
        height: 360px;
        border-radius: 50%;
        background: radial-gradient(circle, rgba(75,31,115,.12), transparent 68%);
        right: -130px;
        bottom: -120px;
    }

    .premium-band > .container {
        position: relative;
        z-index: 2;
    }

.impact-card {
    position: relative;
    overflow: hidden;
    min-height: 210px;
}

    .impact-card::after {
        content: "";
        position: absolute;
        width: 95px;
        height: 95px;
        right: -20px;
        bottom: -20px;
        border-radius: 2rem 0 0 0;
        background: rgba(215,24,120,.08);
    }

    .impact-card h5 {
        color: var(--aps-purple-dark);
    }

.story-overlay {
    position: relative;
    min-height: 340px;
    border-radius: 2rem;
    overflow: hidden;
    box-shadow: var(--aps-shadow);
    background: #241531;
}

    .story-overlay img {
        width: 100%;
        height: 100%;
        min-height: 340px;
        object-fit: cover;
        opacity: .62;
        transform: scale(1.02);
    }

    .story-overlay .story-content {
        position: absolute;
        inset: auto 0 0 0;
        padding: 2rem;
        color: #fff;
        background: linear-gradient(transparent, rgba(36,21,49,.92));
    }

.model-card {
    padding: 1.6rem;
    border-radius: 1.5rem;
    background: #fff;
    border: 1px solid var(--aps-border);
    box-shadow: 0 12px 30px rgba(75,31,115,.07);
    height: 100%;
}

    .model-card .model-step {
        width: 46px;
        height: 46px;
        display: grid;
        place-items: center;
        background: linear-gradient(135deg,var(--aps-pink),var(--aps-purple));
        color: #fff;
        border-radius: 50%;
        font-weight: 950;
        margin-bottom: 1rem;
    }

.gradient-panel {
    background: linear-gradient(135deg,rgba(75,31,115,.97),rgba(215,24,120,.88));
    color: #fff;
    border-radius: 2rem;
    padding: 2.5rem;
    box-shadow: var(--aps-shadow);
}

    .gradient-panel .text-muted {
        color: rgba(255,255,255,.75) !important;
    }

.outcome-pill {
    display: flex;
    align-items: center;
    gap: .7rem;
    background: #fff;
    border: 1px solid var(--aps-border);
    border-radius: 999px;
    padding: .85rem 1rem;
    font-weight: 850;
    box-shadow: 0 10px 28px rgba(75,31,115,.07);
}

    .outcome-pill span {
        width: 30px;
        height: 30px;
        display: grid;
        place-items: center;
        border-radius: 50%;
        background: #fce8f3;
        color: var(--aps-pink);
        flex: 0 0 auto;
    }

.kpi-card {
    padding: 1.5rem;
    border-radius: 1.4rem;
    background: linear-gradient(180deg,#fff,var(--aps-light));
    border: 1px solid var(--aps-border);
    height: 100%;
    box-shadow: 0 12px 32px rgba(75,31,115,.08);
}

.kpi-value {
    font-size: 2rem;
    line-height: 1;
    font-weight: 950;
    color: var(--aps-purple-dark);
}

.download-card {
    background: #fff;
    border: 1px solid var(--aps-border);
    border-radius: 1.3rem;
    padding: 1.4rem;
    height: 100%;
    box-shadow: 0 12px 32px rgba(75,31,115,.08);
}

    .download-card small {
        color: var(--aps-muted);
        font-weight: 750;
    }

.news-card {
    border-radius: 1.6rem;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--aps-border);
    box-shadow: 0 12px 32px rgba(75,31,115,.08);
    height: 100%;
}

    .news-card img {
        width: 100%;
        height: 180px;
        object-fit: cover;
    }

.soft-alert {
    border-radius: 1.4rem;
    background: #fff7fb;
    border: 1px solid #ffd7ec;
    padding: 1.25rem;
}

.department-card {
    background: #fff;
    border: 1px solid var(--aps-border);
    border-radius: 1.25rem;
    padding: 1.25rem;
    height: 100%;
    box-shadow: 0 12px 28px rgba(75,31,115,.07);
}

.mini-map {
    min-height: 280px;
    border-radius: 2rem;
    background: linear-gradient(135deg,rgba(75,31,115,.85),rgba(215,24,120,.72)), repeating-linear-gradient(45deg, rgba(255,255,255,.08) 0, rgba(255,255,255,.08) 2px, transparent 2px, transparent 16px);
    color: #fff;
    display: grid;
    place-items: center;
    text-align: center;
    padding: 2rem;
}

.testimonial-slider {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(320px, 1fr);
    gap: 1.25rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: .75rem;
}

    .testimonial-slider > * {
        scroll-snap-align: start;
    }

.contact-widget-panel::before {
    content: "Need Support?";
    display: block;
    font-weight: 950;
    color: var(--aps-purple-dark);
    padding: .7rem .85rem .2rem;
}

.online-indicator {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-size: .85rem;
    color: var(--aps-muted);
    font-weight: 800;
    padding: 0 .85rem .6rem;
}

    .online-indicator::before {
        content: "";
        width: 9px;
        height: 9px;
        border-radius: 50%;
        background: var(--aps-green);
        box-shadow: 0 0 0 5px rgba(37,211,102,.12);
    }

@media(max-width:767px) {
    .testimonial-slider {
        grid-auto-columns: 88%;
    }

    .gradient-panel {
        padding: 1.75rem;
    }
}


/* ================================
   V7 Navigation, CTA, Interaction Fixes
   ================================ */

/* Footer CTA visibility fix */
.callout .btn-light,
.footer .btn-light,
.footer-cta .btn-light {
    background: #ffffff !important;
    color: var(--aps-purple-dark) !important;
    border: 0 !important;
    font-weight: 950 !important;
    box-shadow: 0 12px 28px rgba(0,0,0,.16);
}

    .callout .btn-light:hover,
    .footer .btn-light:hover,
    .footer-cta .btn-light:hover {
        background: var(--aps-light) !important;
        color: var(--aps-pink) !important;
        transform: translateY(-2px);
    }

.callout .btn-outline-light,
.footer .btn-outline-light {
    border: 2px solid rgba(255,255,255,.85) !important;
    color: #ffffff !important;
    background: transparent !important;
    font-weight: 950 !important;
}

    .callout .btn-outline-light:hover,
    .footer .btn-outline-light:hover {
        background: #ffffff !important;
        color: var(--aps-purple-dark) !important;
    }

/* Modern navbar polish */
.navbar {
    z-index: 1040;
}

.navbar-toggler {
    border: 0;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: linear-gradient(135deg,var(--aps-light),#fff);
    box-shadow: 0 10px 25px rgba(75,31,115,.12);
}

    .navbar-toggler:focus {
        box-shadow: 0 0 0 .25rem rgba(75,31,115,.14);
    }

.navbar-toggler-icon {
    background-image: none;
    position: relative;
    width: 22px;
    height: 2px;
    background: var(--aps-purple);
    display: inline-block;
    vertical-align: middle;
}

    .navbar-toggler-icon::before,
    .navbar-toggler-icon::after {
        content: "";
        position: absolute;
        left: 0;
        width: 22px;
        height: 2px;
        background: var(--aps-purple);
        border-radius: 999px;
    }

    .navbar-toggler-icon::before {
        top: -7px;
    }

    .navbar-toggler-icon::after {
        top: 7px;
    }

/* Modern mobile navigation panel */
@media(max-width:1199px) {
    .navbar-collapse {
        position: fixed;
        top: 0;
        right: 0;
        width: min(88vw,390px);
        height: 100vh;
        background: rgba(255,255,255,.98);
        backdrop-filter: blur(22px);
        box-shadow: -20px 0 55px rgba(75,31,115,.18);
        padding: 6rem 1.25rem 2rem !important;
        overflow-y: auto;
        transform: translateX(105%);
        transition: transform .32s ease;
        display: block !important;
        z-index: 1039;
    }

        .navbar-collapse.show {
            transform: translateX(0);
        }

    .navbar-nav {
        align-items: stretch !important;
        gap: .35rem !important;
    }

    .nav-link {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 1rem 1.05rem !important;
        border-radius: 1rem;
        font-size: 1rem;
        background: #fff;
        border: 1px solid var(--aps-border);
        box-shadow: 0 8px 20px rgba(75,31,115,.06);
    }

        .nav-link::after {
            content: "›";
            font-size: 1.35rem;
            color: var(--aps-pink);
        }

    .navbar .btn-aps {
        width: 100%;
        text-align: center;
        margin-top: .75rem;
        padding: 1rem 1.2rem;
    }

    body.mobile-nav-open::before {
        content: "";
        position: fixed;
        inset: 0;
        background: rgba(36,21,49,.46);
        z-index: 1038;
        backdrop-filter: blur(3px);
    }

    body.mobile-nav-open {
        overflow: hidden;
    }
}

/* Premium section decoration */
.curve-divider {
    position: relative;
}

    .curve-divider::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: -1px;
        height: 44px;
        background: linear-gradient(135deg,#fff 25%,transparent 25%) left top/45px 45px repeat-x;
        opacity: .55;
        pointer-events: none;
    }

.glass-card {
    background: rgba(255,255,255,.78);
    border: 1px solid rgba(234,223,242,.8);
    backdrop-filter: blur(16px);
    box-shadow: 0 18px 45px rgba(75,31,115,.10);
    border-radius: 1.6rem;
}

.image-stack {
    position: relative;
}

    .image-stack img {
        border-radius: 2rem;
        box-shadow: var(--aps-shadow);
    }

    .image-stack .stack-card {
        position: absolute;
        left: -18px;
        bottom: 28px;
        background: #fff;
        border: 1px solid var(--aps-border);
        border-radius: 1.25rem;
        box-shadow: 0 18px 45px rgba(75,31,115,.15);
        padding: 1rem 1.1rem;
        max-width: 250px;
    }

.shine-card {
    position: relative;
    overflow: hidden;
}

    .shine-card::before {
        content: "";
        position: absolute;
        top: -60%;
        left: -60%;
        width: 60%;
        height: 220%;
        background: linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);
        transform: rotate(25deg);
        transition: .6s ease;
    }

    .shine-card:hover::before {
        left: 120%;
    }

.icon-bubble {
    width: 68px;
    height: 68px;
    display: grid;
    place-items: center;
    border-radius: 1.25rem;
    background: linear-gradient(135deg,var(--aps-purple),var(--aps-pink));
    color: #fff;
    font-size: 1.65rem;
    box-shadow: 0 12px 28px rgba(215,24,120,.22);
}

.cta-split {
    border-radius: 2.2rem;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--aps-border);
    box-shadow: var(--aps-shadow);
}

    .cta-split .cta-side {
        background: linear-gradient(135deg,var(--aps-purple),#7532aa);
        color: #fff;
        padding: 2.5rem;
    }

    .cta-split .cta-content {
        padding: 2.5rem;
    }

.progress-line {
    height: 9px;
    border-radius: 999px;
    background: rgba(75,31,115,.10);
    overflow: hidden;
}

    .progress-line span {
        display: block;
        height: 100%;
        border-radius: 999px;
        background: linear-gradient(90deg,var(--aps-pink),var(--aps-purple));
    }

.hover-lift {
    transition: .24s ease;
}

    .hover-lift:hover {
        transform: translateY(-6px);
    }

/* Better contact widget panel */
.contact-widget-panel {
    transform-origin: bottom right;
    animation: widgetIn .2s ease;
}

@keyframes widgetIn {
    from {
        opacity: 0;
        transform: scale(.94) translateY(8px)
    }

    to {
        opacity: 1;
        transform: scale(1) translateY(0)
    }
}

/* Premium focus states */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid rgba(215,24,120,.35);
    outline-offset: 3px;
}

/* Mobile adjustments */
@media(max-width:767px) {
    .image-stack .stack-card {
        position: static;
        margin-top: 1rem;
        max-width: none;
    }

    .cta-split .cta-side,
    .cta-split .cta-content {
        padding: 1.6rem;
    }
}


/* ================================
   V8 Modern Professional Footer
   ================================ */
.footer {
    position: relative;
    overflow: hidden;
    background: radial-gradient(circle at 12% 10%, rgba(215,24,120,.22), transparent 28%), radial-gradient(circle at 88% 20%, rgba(122,55,170,.20), transparent 32%), linear-gradient(135deg,#1b0b28 0%, #2d1044 52%, #16081f 100%);
    color: #fff;
    padding: 0 0 1.5rem;
}

    .footer::before {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px), linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px);
        background-size: 42px 42px;
        opacity: .35;
        pointer-events: none;
    }

    .footer > .container {
        position: relative;
        z-index: 2;
    }

    .footer .callout {
        margin-top: 4rem;
        background: linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,.06));
        border: 1px solid rgba(255,255,255,.20);
        backdrop-filter: blur(18px);
        box-shadow: 0 24px 60px rgba(0,0,0,.22);
    }

.footer-logo {
    height: 92px;
    max-width: 320px;
    background: #fff;
    border-radius: 1.15rem;
    padding: .65rem;
    object-fit: contain;
    box-shadow: 0 18px 40px rgba(0,0,0,.22);
}

.footer h6 {
    font-size: .82rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #fff;
    margin-bottom: 1.1rem;
}

.footer ul li {
    margin-bottom: .62rem;
}

.footer a {
    color: rgba(255,255,255,.82);
    transition: .2s ease;
}

    .footer a:hover {
        color: #fff;
        padding-left: .25rem;
    }

.footer .muted {
    color: rgba(255,255,255,.72);
}

.footer-link-icon {
    width: 28px;
    height: 28px;
    display: inline-grid;
    place-items: center;
    border-radius: .75rem;
    background: rgba(255,255,255,.10);
    color: #fff;
    margin-right: .55rem;
    font-size: .86rem;
}

.footer-contact-card {
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 1.35rem;
    padding: 1rem;
}

.footer-contact-row {
    display: flex;
    gap: .8rem;
    align-items: flex-start;
    padding: .68rem 0;
    border-bottom: 1px solid rgba(255,255,255,.10);
}

    .footer-contact-row:last-child {
        border-bottom: 0;
    }

.footer-contact-icon {
    width: 38px;
    height: 38px;
    border-radius: 1rem;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg,var(--aps-pink),var(--aps-purple));
    flex: 0 0 auto;
    box-shadow: 0 10px 22px rgba(215,24,120,.24);
}

.footer-bottom {
    background: rgba(0,0,0,.20);
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 1rem;
    padding: 1rem 1.15rem;
}

.footer-social {
    display: flex;
    gap: .7rem;
    flex-wrap: wrap;
}

    .footer-social a {
        width: 42px;
        height: 42px;
        display: grid;
        place-items: center;
        border-radius: 50%;
        background: rgba(255,255,255,.10);
        border: 1px solid rgba(255,255,255,.14);
        color: #fff;
        font-weight: 900;
    }

        .footer-social a:hover {
            background: linear-gradient(135deg,var(--aps-pink),var(--aps-purple));
            padding-left: 0;
            transform: translateY(-2px);
        }

.footer-newsletter {
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 1.35rem;
    padding: 1.15rem;
    margin-top: 1rem;
}

    .footer-newsletter .form-control {
        background: rgba(255,255,255,.95);
        border: 0;
    }

    .footer-newsletter .btn {
        white-space: nowrap;
    }

@media(max-width:991px) {
    .footer {
        text-align: left;
    }

        .footer .callout {
            margin-top: 3rem;
        }
}


/* ================================
   V9 Footer Overlap Fix + Professional Icons
   ================================ */

/* Prevent email/website overflow in footer contact cards */
.footer-contact-row {
    align-items: flex-start;
    min-width: 0;
}

    .footer-contact-row > div {
        min-width: 0;
        max-width: 100%;
    }

    .footer-contact-row a,
    .footer-contact-card a,
    .footer-contact-content a {
        display: block;
        line-height: 1.45;
        overflow-wrap: anywhere;
        word-break: break-word;
        hyphens: auto;
    }

.footer-contact-content {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

/* Proper icon containers */
.footer-link-icon,
.footer-contact-icon {
    font-family: Arial, sans-serif;
    line-height: 1;
}

    .footer-link-icon i,
    .footer-contact-icon i,
    .footer-social i {
        font-style: normal;
    }

/* Footer promise and badge section */
.footer-promise-card {
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 1.35rem;
    padding: 1.15rem;
    margin-top: 1rem;
}

.footer-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: 1rem;
}

.footer-badge {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .45rem .7rem;
    border-radius: 999px;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.14);
    color: rgba(255,255,255,.88);
    font-size: .82rem;
    font-weight: 800;
}

.footer-contact-row strong {
    display: block;
    margin-bottom: .15rem;
}

@media(max-width:1199px) {
    .footer-contact-card {
        max-width: 100%;
    }
}


/* ================================
   V10 Address + Larger Logo Update
   ================================ */

/* Larger, clearer APS logo */
.navbar-brand {
    max-width: 430px !important;
}

    .navbar-brand img {
        height: 104px !important;
        max-width: 420px !important;
        width: auto !important;
        object-fit: contain !important;
    }

.footer-logo {
    height: 118px !important;
    max-width: 390px !important;
    width: auto !important;
    object-fit: contain !important;
}

/* Give navbar enough breathing space with larger logo */
.navbar {
    padding: .35rem 0 !important;
}

@media(max-width:1399px) {
    .navbar-brand img {
        height: 94px !important;
        max-width: 365px !important;
    }
}

@media(max-width:1199px) {
    .navbar-brand img {
        height: 86px !important;
        max-width: 330px !important;
    }
}

@media(max-width:767px) {
    .navbar-brand img {
        height: 76px !important;
        max-width: 285px !important;
    }
}

@media(max-width:420px) {
    .navbar-brand img {
        height: 68px !important;
        max-width: 240px !important;
    }
}

/* Location / map improvements */
.office-address-card {
    background: #fff;
    border: 1px solid var(--aps-border);
    border-radius: 1.5rem;
    padding: 1.5rem;
    box-shadow: 0 12px 32px rgba(75,31,115,.08);
    height: 100%;
}

    .office-address-card .office-icon {
        width: 54px;
        height: 54px;
        border-radius: 1rem;
        display: grid;
        place-items: center;
        color: #fff;
        background: linear-gradient(135deg,var(--aps-pink),var(--aps-purple));
        margin-bottom: 1rem;
    }

.map-wrapper {
    border-radius: 2rem;
    overflow: hidden;
    border: 1px solid var(--aps-border);
    box-shadow: var(--aps-shadow);
    background: #fff;
}

    .map-wrapper iframe {
        display: block;
        width: 100%;
        height: 460px;
        border: 0;
    }

.address-lines {
    line-height: 1.7;
}

.coverage-pill {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: #fff;
    border: 1px solid var(--aps-border);
    box-shadow: 0 8px 22px rgba(75,31,115,.06);
    border-radius: 999px;
    padding: .65rem .9rem;
    font-weight: 850;
    color: var(--aps-purple-dark);
}

.footer-address {
    display: block;
    line-height: 1.55;
    overflow-wrap: anywhere;
}


/* ================================
   V11 Premium Healthcare UI Upgrade
   ================================ */

/* Utility header */
.utility-bar {
    background: linear-gradient(90deg,var(--aps-purple-dark),var(--aps-purple));
    color: #fff;
    font-size: .88rem;
    padding: .45rem 0;
}

    .utility-bar a {
        color: #fff;
        font-weight: 800
    }

    .utility-bar .utility-items {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        flex-wrap: wrap;
    }

.utility-left, .utility-right {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.utility-chip {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: rgba(255,255,255,.92);
}

.utility-cta {
    background: #fff;
    color: var(--aps-purple-dark) !important;
    padding: .32rem .75rem;
    border-radius: 999px;
    font-weight: 900;
}

/* Premium navbar refinements */
.navbar.scrolled {
    box-shadow: 0 14px 40px rgba(75,31,115,.14);
}

.navbar .dropdown-menu {
    border: 1px solid var(--aps-border);
    border-radius: 1.25rem;
    box-shadow: var(--aps-shadow);
    padding: .75rem;
}

.dropdown-item {
    border-radius: .8rem;
    font-weight: 750;
    padding: .75rem .95rem;
}

    .dropdown-item:hover {
        background: var(--aps-light);
        color: var(--aps-purple);
    }

/* Hero premium */
.hero-trust-row {
    display: flex;
    gap: .7rem;
    flex-wrap: wrap;
    margin-top: 1.4rem;
}

.trust-badge {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    border: 1px solid var(--aps-border);
    border-radius: 999px;
    padding: .55rem .85rem;
    background: rgba(255,255,255,.82);
    box-shadow: 0 10px 24px rgba(75,31,115,.07);
    color: var(--aps-purple-dark);
    font-weight: 850;
    font-size: .9rem;
}

.hero-stat-panel {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: .75rem;
    margin-top: 1.5rem;
}

.hero-stat {
    border: 1px solid var(--aps-border);
    border-radius: 1.15rem;
    background: #fff;
    padding: .85rem;
    box-shadow: 0 12px 30px rgba(75,31,115,.07);
}

    .hero-stat strong {
        display: block;
        font-size: 1.35rem;
        color: var(--aps-purple-dark);
        line-height: 1;
    }

    .hero-stat span {
        font-size: .78rem;
        color: var(--aps-muted);
        font-weight: 800;
    }

/* Premium sections */
.section-wave {
    position: relative;
}

    .section-wave::before {
        content: "";
        position: absolute;
        inset: auto 0 100% 0;
        height: 40px;
        background: radial-gradient(100% 45px at 50% 100%, var(--aps-light) 49%, transparent 51%);
        pointer-events: none;
    }

.premium-grid-bg {
    background: radial-gradient(circle at 15% 12%,rgba(215,24,120,.10),transparent 30%), radial-gradient(circle at 85% 8%,rgba(75,31,115,.10),transparent 34%), linear-gradient(180deg,#fff,var(--aps-light));
}

.mega-card {
    border-radius: 2rem;
    border: 1px solid var(--aps-border);
    box-shadow: var(--aps-shadow);
    background: #fff;
    overflow: hidden;
}

.mega-card-body {
    padding: 2rem
}

.mega-card img {
    height: 100%;
    min-height: 360px;
    width: 100%;
    object-fit: cover
}

.icon-card {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    background: #fff;
    border: 1px solid var(--aps-border);
    border-radius: 1.35rem;
    padding: 1.25rem;
    height: 100%;
    box-shadow: 0 12px 30px rgba(75,31,115,.07);
    transition: .22s;
}

    .icon-card:hover {
        transform: translateY(-5px);
        box-shadow: var(--aps-shadow)
    }

.icon-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 1rem;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg,var(--aps-pink),var(--aps-purple));
    color: #fff;
    flex: 0 0 auto;
}

.journey-rail {
    position: relative;
}

    .journey-rail::before {
        content: "";
        position: absolute;
        top: 38px;
        left: 8%;
        right: 8%;
        height: 3px;
        background: linear-gradient(90deg,var(--aps-pink),var(--aps-purple));
    }

.journey-node {
    position: relative;
    z-index: 1;
    background: #fff;
    border: 1px solid var(--aps-border);
    border-radius: 1.25rem;
    padding: 1.2rem;
    text-align: center;
    box-shadow: 0 12px 32px rgba(75,31,115,.08);
    height: 100%;
}

    .journey-node .node-icon {
        width: 56px;
        height: 56px;
        border-radius: 50%;
        display: grid;
        place-items: center;
        background: #fff;
        border: 3px solid var(--aps-pink);
        color: var(--aps-purple);
        margin: 0 auto 1rem;
        font-weight: 950;
    }

.insight-card {
    background: #fff;
    border: 1px solid var(--aps-border);
    border-radius: 1.6rem;
    overflow: hidden;
    box-shadow: 0 12px 32px rgba(75,31,115,.08);
    height: 100%;
    transition: .22s;
}

    .insight-card:hover {
        transform: translateY(-6px);
        box-shadow: var(--aps-shadow)
    }

    .insight-card img {
        height: 190px;
        width: 100%;
        object-fit: cover
    }

.insight-meta {
    display: inline-block;
    font-weight: 900;
    color: var(--aps-pink);
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .08em;
}

/* Better page hero visual treatment */
.page-hero .eyebrow + h1 {
    max-width: 920px;
}

.page-hero {
    border-bottom: 1px solid var(--aps-border);
}

/* Mobile premium app feel */
@media(max-width:767px) {
    .utility-bar {
        font-size: .78rem
    }

    .utility-left {
        display: none
    }

    .utility-items {
        justify-content: center
    }

    .hero-stat-panel {
        grid-template-columns: repeat(2,1fr)
    }

    .journey-rail::before {
        display: none
    }

    .mega-card-body {
        padding: 1.45rem
    }
}

/* Loading curtain */
.site-loader {
    position: fixed;
    inset: 0;
    background: #fff;
    display: grid;
    place-items: center;
    z-index: 20000;
    transition: opacity .35s ease, visibility .35s ease;
}

    .site-loader.hide {
        opacity: 0;
        visibility: hidden;
    }

.loader-mark {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    border: 5px solid var(--aps-light);
    border-top-color: var(--aps-pink);
    animation: spin .8s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg)
    }
}


/* V12 overlap fixes retained and stabilised */
.navbar .container,
.navbar .container-fluid {
    align-items: center;
    gap: 1rem;
}

.navbar-brand {
    flex-shrink: 1 !important;
    max-width: 340px !important;
}

    .navbar-brand img {
        height: 72px !important;
        max-width: 100% !important;
    }

@media (max-width:1199px) {
    .navbar-brand {
        max-width: 280px !important;
    }

        .navbar-brand img {
            height: 62px !important;
        }
}

@media (max-width:767px) {
    .navbar-brand {
        max-width: 220px !important;
    }

        .navbar-brand img {
            height: 52px !important;
        }
}

/* Prevent text overflow globally */
.footer-contact-content,
.footer-contact-row,
.office-address-card,
.feature-card,
.icon-card,
.kpi-card,
.download-card {
    min-width: 0;
}

h1, h2, h3, h4, h5, h6, p, a, span {
    overflow-wrap: break-word;
}

.hero-stat-panel {
    grid-template-columns: repeat(auto-fit,minmax(120px,1fr)) !important;
}


/* ================================
   V14 Stable Repair Pass
   Purpose: preserve v12 visual design, fix breakages safely,
   and make the static site conversion-ready without global overrides.
   ================================ */

/* Accessibility: skip link */
.skip-link {
    position: absolute;
    left: 1rem;
    top: -120px;
    z-index: 30000;
    background: #fff;
    color: var(--aps-purple-dark);
    border: 2px solid var(--aps-pink);
    padding: .75rem 1rem;
    border-radius: 999px;
    font-weight: 900;
    box-shadow: 0 12px 30px rgba(75,31,115,.18);
}

    .skip-link:focus {
        top: 1rem;
    }

/* Consistent section rhythm without forcing every component */
.section {
    padding-top: clamp(3.5rem,6vw,5.25rem);
    padding-bottom: clamp(3.5rem,6vw,5.25rem);
}

    .section-light + .section-light,
    .section + .section {
        border-top: 1px solid rgba(234,223,242,.55);
    }

/* Typography stability */
.display-title {
    font-size: clamp(2.35rem,4.8vw,4.6rem);
}

.page-hero .display-title {
    font-size: clamp(2.1rem,3.8vw,3.3rem);
}

.section-title {
    font-size: clamp(1.85rem,3vw,2.6rem);
    line-height: 1.1;
}

.lead-text {
    max-width: 68ch;
}

/* Prevent known text overflow without damaging layout */
.footer-contact-content,
.footer-contact-row > div,
.office-address-card,
.feature-card,
.icon-card,
.kpi-card,
.download-card,
.resource-card,
.service-card,
.support-card,
.trust-card,
.policy-card {
    min-width: 0;
}

    .footer-contact-content a,
    .footer-contact-card a,
    .office-address-card a,
    .utility-chip a {
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    /* Image crop improvements without breaking aspect ratios */
    .service-card img,
    .support-card img,
    .story-card img,
    .insight-card img,
    .news-card img {
        width: 100%;
        aspect-ratio: 16 / 10;
        height: auto;
        object-fit: cover;
        object-position: center center;
    }

.hero-media img,
.hero-media video {
    object-position: center center;
}

.image-stack img,
.page-hero img,
.mega-card img {
    object-position: center center;
}

/* Hero stats: responsive and non-overlapping */
.hero-stat-panel {
    grid-template-columns: repeat(auto-fit,minmax(125px,1fr));
}

.hero-stat {
    min-height: 108px;
}

    .hero-stat strong {
        font-size: clamp(1.3rem,3vw,1.85rem);
    }

/* Utility bar: tablet and mobile wrapping fix */
.utility-items,
.utility-left,
.utility-right {
    min-width: 0;
}

.utility-chip {
    min-width: 0;
    max-width: 100%;
}

@media(min-width:768px) and (max-width:1199px) {
    .utility-items {
        align-items: flex-start;
        flex-direction: column;
        gap: .5rem;
    }

    .utility-left,
    .utility-right {
        width: 100%;
        justify-content: space-between;
    }
}

@media(max-width:767px) {
    .utility-left {
        display: none;
    }

    .utility-items {
        justify-content: center;
        text-align: center;
    }
}

/* Navbar repair: keep professional mobile drawer without affecting desktop layout */
.mobile-menu-header,
.mobile-menu-close {
    display: none;
}

@media(max-width:1199px) {
    .mobile-menu-header {
        display: block;
        position: absolute;
        top: 1rem;
        left: 1.25rem;
        right: 4.25rem;
        padding-bottom: .85rem;
        border-bottom: 1px solid var(--aps-border);
    }

        .mobile-menu-header strong {
            display: block;
            color: var(--aps-purple-dark);
            font-size: 1.05rem;
            line-height: 1.25;
        }

        .mobile-menu-header span {
            display: block;
            color: var(--aps-muted);
            font-size: .88rem;
        }

    .mobile-menu-close {
        display: grid;
        place-items: center;
        position: absolute;
        top: 1rem;
        right: 1.1rem;
        width: 42px;
        height: 42px;
        border: 0;
        border-radius: 50%;
        background: var(--aps-light);
        color: var(--aps-purple);
        font-size: 1.45rem;
        font-weight: 900;
        line-height: 1;
    }

    .navbar-collapse {
        padding-top: 6.5rem !important;
    }

    .nav-link {
        min-height: 48px;
    }
}

/* CTA visibility and placement */
.callout .btn-light,
.footer .btn-light {
    background: #fff !important;
    color: var(--aps-purple-dark) !important;
}

    .callout .btn-light:hover,
    .footer .btn-light:hover {
        background: var(--aps-light) !important;
        color: var(--aps-pink) !important;
    }

.callout .btn-outline-light,
.footer .btn-outline-light {
    color: #fff !important;
    border-color: rgba(255,255,255,.85) !important;
}

    .callout .btn-outline-light:hover,
    .footer .btn-outline-light:hover {
        background: #fff !important;
        color: var(--aps-purple-dark) !important;
    }

/* Mobile CTA: safe placement that does not cover contact widget */
.mobile-sticky-cta {
    display: none;
}

@media(max-width:767px) {
    .mobile-sticky-cta {
        position: fixed;
        left: 14px;
        right: 14px;
        bottom: 14px;
        z-index: 9997;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: .55rem;
        padding: .82rem 1rem;
        border-radius: 999px;
        background: linear-gradient(135deg,var(--aps-pink),var(--aps-purple));
        color: #fff !important;
        font-weight: 900;
        box-shadow: 0 18px 45px rgba(75,31,115,.30);
    }

    .contact-widget {
        bottom: 82px !important;
    }
}

/* Better focus states */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid rgba(215,24,120,.42) !important;
    outline-offset: 3px !important;
}

/* Reduced motion support */
@media(prefers-reduced-motion:reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}

/* Contact page map spacing */
.map-wrapper {
    margin-bottom: 0;
}


/* ================================
   V15 Final Layout Polish
   Focus: professional headline sizing, image aspect ratios,
   compact navigation/logo, footer text scale, and no unnecessary long scroll.
   ================================ */

/* Landing page hero headline: professional healthcare-provider scale */
.hero .display-title {
    font-size: clamp(2.05rem, 3.65vw, 3.65rem) !important;
    line-height: 1.08 !important;
    letter-spacing: -.035em !important;
    max-width: 900px;
}

/* Inner page titles remain strong but not oversized */
.page-hero .display-title {
    font-size: clamp(1.95rem, 3.1vw, 3rem) !important;
    line-height: 1.1 !important;
}

/* Main section headings refined */
.section-title {
    font-size: clamp(1.65rem, 2.45vw, 2.35rem) !important;
    line-height: 1.14 !important;
}

/* Logo sizing: visible but not overpowering */
.navbar-brand {
    max-width: 330px !important;
}

    .navbar-brand img {
        height: 82px !important;
        max-width: 320px !important;
        object-fit: contain !important;
    }

.footer-logo {
    height: 96px !important;
    max-width: 320px !important;
    object-fit: contain !important;
}

@media(max-width:1399px) {
    .navbar-brand img {
        height: 76px !important;
        max-width: 285px !important;
    }
}

@media(max-width:1199px) {
    .navbar-brand img {
        height: 66px !important;
        max-width: 255px !important;
    }
}

@media(max-width:767px) {
    .navbar-brand img {
        height: 56px !important;
        max-width: 220px !important;
    }
}

@media(max-width:420px) {
    .navbar-brand img {
        height: 50px !important;
        max-width: 190px !important;
    }
}

/* Compact utility bar */
.utility-bar {
    padding: .32rem 0 !important;
    font-size: .82rem !important;
}

.utility-chip {
    line-height: 1.25;
}

/* Hero media: fixed professional visual size, no excessive page height */
.hero-media {
    height: auto !important;
    aspect-ratio: 16 / 11 !important;
    max-height: 520px !important;
    min-height: 0 !important;
}

    .hero-media img,
    .hero-media video {
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        object-fit: cover !important;
        object-position: center center !important;
        display: block;
    }

@media(max-width:991px) {
    .hero-media {
        aspect-ratio: 16 / 10 !important;
        max-height: 360px !important;
    }
}

@media(max-width:575px) {
    .hero-media {
        aspect-ratio: 4 / 3 !important;
        max-height: 280px !important;
    }
}

/* Professional image aspect ratios across pages */
.service-card img,
.support-card img,
.story-card img,
.insight-card img,
.news-card img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 10 !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block;
}

/* Split layout images should not create long scroll */
.page-hero img,
.image-stack img,
.mega-card img,
.contact-card img {
    width: 100% !important;
    height: auto !important;
    max-height: 460px !important;
    object-fit: cover !important;
    object-position: center center !important;
}

/* Rounded standalone images used in two-column sections */
img.rounded-5,
img.shadow.rounded-5,
.img-fluid.rounded-5 {
    max-height: 460px !important;
    object-fit: cover !important;
    object-position: center center !important;
}

/* Keep map height professional */
.map-wrapper iframe {
    height: 420px !important;
}

@media(max-width:767px) {
    .map-wrapper iframe {
        height: 320px !important;
    }
}

/* Footer intro text: secondary, not competing with logo */
.footer .col-lg-4 > p.muted:first-of-type {
    font-size: .95rem !important;
    line-height: 1.6 !important;
    max-width: 330px !important;
    color: rgba(255,255,255,.76) !important;
}

/* Reduce card image-driven vertical scroll */
.story-overlay {
    min-height: 0 !important;
    aspect-ratio: 16 / 10 !important;
}

    .story-overlay img {
        min-height: 0 !important;
        height: 100% !important;
        object-fit: cover !important;
    }

/* Mega-card image column must not force huge height */
.mega-card img {
    min-height: 0 !important;
    aspect-ratio: 16 / 11 !important;
}

/* Better card rhythm */
.service-card,
.support-card,
.feature-card,
trust-card,
.policy-card,
.resource-card,
.stat-card,
.story-card {
    height: 100%;
}

/* Reduce unnecessary vertical height in hero stats */
.hero-stat {
    min-height: 94px !important;
    padding: .75rem !important;
}

    .hero-stat strong {
        font-size: clamp(1.2rem,2.3vw,1.6rem) !important;
    }

    .hero-stat span {
        font-size: .76rem !important;
    }

/* Mobile spacing tuning */
@media(max-width:767px) {
    .hero {
        padding-top: 2.4rem !important;
        padding-bottom: 2.25rem !important;
    }

    .section {
        padding-top: 3.1rem !important;
        padding-bottom: 3.1rem !important;
    }

    .display-title {
        letter-spacing: -.025em !important;
    }
}

/* Prevent images from stretching because of parent h-100 utilities */
.hero-media.h-100,
.story-overlay.h-100,
.image-stack.h-100 {
    height: auto !important;
}

/* Conversion-ready image safety */
img {
    max-width: 100%;
}


/* ================================
   ASP.NET Core V2 Production UI Fixes
   ================================ */
.utility-bar {
    position: relative;
    z-index: 1041;
}

.navbar {
    top: 0;
    z-index: 1040;
}

.utility-bar + .navbar {
    margin-top: 0;
}

.navbar .btn-aps-outline {
    white-space: nowrap;
}

.contact-widget {
    right: 22px !important;
    bottom: 24px !important;
    z-index: 9999 !important;
}

.contact-widget-panel {
    max-width: calc(100vw - 32px);
}

@media(max-width:767px) {
    .contact-widget {
        right: 14px !important;
        bottom: 84px !important;
    }

    .contact-widget-panel {
        right: 0;
        width: min(290px, calc(100vw - 28px));
    }
}

@media(max-width:1199px) {
    .navbar-collapse .btn-aps, .navbar-collapse .btn-aps-outline {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-top: .5rem;
        min-height: 48px;
    }
}

form .trust-card[style*="F8F6FB"] {
    box-shadow: none;
    border: 1px solid var(--aps-border);
}

.cookie-banner {
    position: fixed;
    left: 18px;
    bottom: 18px;
    z-index: 10000;
    max-width: 420px;
    background: #fff;
    border: 1px solid var(--aps-border);
    border-radius: 1.25rem;
    box-shadow: var(--aps-shadow);
    padding: 1rem;
}

@media(max-width:767px) {
    .cookie-banner {
        left: 12px;
        right: 12px;
        bottom: 145px;
        max-width: none;
    }
}


/* ================================
   MVC V3 Production UI Stabilisation
   ================================ */
.utility-bar {
    position: relative;
    z-index: 1041;
}

.navbar {
    position: sticky;
    top: 0;
    z-index: 1040;
}

.utility-bar + .navbar {
    margin-top: 0 !important;
}

.navbar .btn-aps-outline,
.navbar .btn-aps {
    white-space: nowrap;
}

.contact-widget {
    right: 22px !important;
    bottom: 24px !important;
    z-index: 9999 !important;
}

.contact-widget-panel {
    max-width: calc(100vw - 32px);
}

@media(max-width:767px) {
    .contact-widget {
        right: 14px !important;
        bottom: 84px !important;
    }

    .contact-widget-panel {
        width: min(290px, calc(100vw - 28px));
        right: 0;
    }

    .mobile-sticky-cta {
        z-index: 9998;
    }
}

@media(max-width:1199px) {
    .navbar-collapse .btn-aps,
    .navbar-collapse .btn-aps-outline {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 48px;
        margin-top: .5rem;
    }
}

.admin-sidebar {
    position: sticky;
    top: 130px;
}

    .admin-sidebar a {
        display: flex;
        align-items: center;
        gap: .55rem;
        padding: .55rem .65rem;
        border-radius: .75rem;
    }

        .admin-sidebar a:hover {
            background: var(--aps-light);
        }

.cookie-banner {
    position: fixed;
    left: 18px;
    bottom: 18px;
    z-index: 10000;
    max-width: 420px;
    background: #fff;
    border: 1px solid var(--aps-border);
    border-radius: 1.25rem;
    box-shadow: var(--aps-shadow);
    padding: 1rem;
}

@media(max-width:767px) {
    .cookie-banner {
        left: 12px;
        right: 12px;
        bottom: 145px;
        max-width: none;
    }
}

form .trust-card[style*="F8F6FB"] {
    box-shadow: none;
    border: 1px solid var(--aps-border);
}

.validation-summary-errors {
    padding: 1rem;
    border-radius: 1rem;
    background: #fff1f2;
    color: #991b1b;
    margin-bottom: 1rem;
}

.field-validation-error {
    color: #991b1b;
    font-size: .9rem;
}

/* V3 Admin Area Consistency */
.admin-shell .table {
    background: #fff;
}

.admin-shell .badge {
    border-radius: 999px;
    padding: .5rem .75rem;
}

.admin-shell input,
.admin-shell select,
.admin-shell textarea {
    max-width: 100%;
}


/* V4 WhatsApp widget fix */
.contact-widget{
 position:fixed !important;
 right:20px !important;
 bottom:20px !important;
 z-index:99999 !important;
}
.contact-widget-panel{
 display:flex;
 flex-direction:column;
 background:#fff;
 border-radius:16px;
 box-shadow:0 10px 30px rgba(0,0,0,.15);
 overflow:hidden;
}
@media(max-width:768px){
 .contact-widget{
   right:12px !important;
   bottom:90px !important;
 }
}


/* V5 final layout, navbar, and WhatsApp widget fixes */
.utility-bar{
    position:relative !important;
    z-index:1045 !important;
}
.navbar{
    position:sticky !important;
    top:0 !important;
    z-index:1040 !important;
}
.utility-bar + .navbar{
    margin-top:0 !important;
}
.contact-widget{
    position:fixed !important;
    right:22px !important;
    bottom:22px !important;
    z-index:10020 !important;
}
.contact-widget-panel{
    position:absolute !important;
    right:0 !important;
    bottom:64px !important;
    width:320px !important;
    max-width:calc(100vw - 32px) !important;
    background:#fff !important;
    border:1px solid var(--aps-border, #eadff2) !important;
    border-radius:1.25rem !important;
    box-shadow:0 18px 50px rgba(31, 12, 54, .18) !important;
    overflow:hidden !important;
}
.contact-widget-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:1rem;
    background:linear-gradient(135deg,var(--aps-pink,#D71878),var(--aps-purple,#4B1F73));
    color:#fff;
}
.contact-widget-close{
    border:0;
    width:34px;
    height:34px;
    border-radius:50%;
    background:rgba(255,255,255,.16);
    color:#fff;
    font-size:1.25rem;
}
.contact-widget-body{
    padding:1rem;
}
.contact-widget-toggle{
    display:flex !important;
    align-items:center !important;
    gap:.5rem !important;
    border:0 !important;
    border-radius:999px !important;
    padding:.85rem 1.05rem !important;
    color:#fff !important;
    font-weight:900 !important;
    background:linear-gradient(135deg,var(--aps-pink,#D71878),var(--aps-purple,#4B1F73)) !important;
    box-shadow:0 16px 45px rgba(75,31,115,.30) !important;
}
@media(max-width:767px){
    .contact-widget{
        right:12px !important;
        bottom:86px !important;
    }
    .contact-widget-panel{
        width:min(310px, calc(100vw - 24px)) !important;
    }
    .navbar-collapse .btn-aps,
    .navbar-collapse .btn-aps-outline{
        width:100%;
        margin-top:.5rem;
    }
}
.g-recaptcha{
    max-width:100%;
    overflow:hidden;
}


/* ================================
   V6 Premium Admin Dashboard
   ================================ */
.admin-hero-panel{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1.5rem;
    padding:2rem;
    border-radius:2rem;
    color:#fff;
    background:
        radial-gradient(circle at 20% 20%, rgba(255,255,255,.22), transparent 28%),
        linear-gradient(135deg, var(--aps-purple-dark,#32124c), var(--aps-purple,#4B1F73) 55%, var(--aps-pink,#D71878));
    box-shadow:0 24px 70px rgba(75,31,115,.25);
}
.admin-hero-panel h1{
    margin:.25rem 0;
    font-weight:950;
    letter-spacing:-.04em;
    font-size:clamp(1.9rem,3vw,3rem);
}
.admin-hero-panel p{
    margin:0;
    max-width:760px;
    color:rgba(255,255,255,.84);
}
.admin-kicker{
    display:inline-flex;
    align-items:center;
    padding:.38rem .8rem;
    border-radius:999px;
    background:rgba(255,255,255,.15);
    color:#fff;
    font-weight:900;
    text-transform:uppercase;
    font-size:.78rem;
    letter-spacing:.08em;
}
.admin-hero-actions{
    display:flex;
    gap:.75rem;
    flex-wrap:wrap;
}
.admin-metric-card{
    position:relative;
    min-height:190px;
    border-radius:1.6rem;
    padding:1.35rem;
    background:#fff;
    border:1px solid var(--aps-border,#eadff2);
    box-shadow:0 14px 40px rgba(75,31,115,.08);
    overflow:hidden;
    transition:.2s ease;
}
.admin-metric-card:hover{
    transform:translateY(-4px);
    box-shadow:0 22px 55px rgba(75,31,115,.14);
}
.admin-metric-card::after{
    content:"";
    position:absolute;
    right:-34px;
    top:-34px;
    width:118px;
    height:118px;
    border-radius:50%;
    background:rgba(215,24,120,.08);
}
.admin-metric-card.accent::after{
    background:rgba(75,31,115,.10);
}
.admin-metric-icon{
    width:48px;
    height:48px;
    border-radius:1rem;
    display:grid;
    place-items:center;
    color:#fff;
    background:linear-gradient(135deg,var(--aps-pink,#D71878),var(--aps-purple,#4B1F73));
    margin-bottom:1rem;
}
.admin-metric-value{
    font-size:2.25rem;
    font-weight:950;
    color:var(--aps-purple-dark,#32124c);
    line-height:1;
}
.admin-metric-label{
    color:#667085;
    font-weight:800;
    margin:.4rem 0 .8rem;
}
.admin-metric-card a{
    font-weight:900;
    color:var(--aps-pink,#D71878);
}
.admin-panel{
    background:#fff;
    border:1px solid var(--aps-border,#eadff2);
    border-radius:1.65rem;
    padding:1.4rem;
    box-shadow:0 14px 40px rgba(75,31,115,.08);
}
.admin-panel-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    margin-bottom:1rem;
}
.admin-panel-header h4{
    margin:0;
    font-weight:950;
    color:var(--aps-purple-dark,#32124c);
}
.admin-panel-header p{
    margin:.25rem 0 0;
    color:#667085;
}
.admin-table thead th{
    color:#667085;
    font-size:.82rem;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.admin-status-pill{
    display:inline-flex;
    border-radius:999px;
    padding:.35rem .65rem;
    font-size:.82rem;
    font-weight:900;
    background:#F8F6FB;
    color:var(--aps-purple,#4B1F73);
}
.admin-action-list{
    display:grid;
    gap:.75rem;
}
.admin-action-list a{
    display:flex;
    align-items:center;
    gap:.8rem;
    padding:.9rem 1rem;
    border-radius:1rem;
    background:#F8F6FB;
    color:var(--aps-purple-dark,#32124c);
    font-weight:900;
    border:1px solid var(--aps-border,#eadff2);
    transition:.2s ease;
}
.admin-action-list a:hover{
    transform:translateX(4px);
    background:#fff;
    box-shadow:0 10px 26px rgba(75,31,115,.08);
}
.admin-action-list i{
    color:var(--aps-pink,#D71878);
}
@media(max-width:991px){
    .admin-hero-panel{
        align-items:flex-start;
        flex-direction:column;
    }
    .admin-hero-actions{
        width:100%;
    }
    .admin-hero-actions .btn{
        flex:1 1 auto;
    }
}


/* V8 APS logo visibility upgrade */
.navbar-brand img,
.site-logo,
.aps-logo{
    height:88px !important;
    max-height:88px !important;
    width:auto !important;
    object-fit:contain !important;
}
.navbar-brand{
    min-width:220px;
}
.navbar{
    padding-top:.35rem !important;
    padding-bottom:.35rem !important;
}
@media(max-width:1199px){
    .navbar-brand img,
    .site-logo,
    .aps-logo{
        height:74px !important;
        max-height:74px !important;
    }
}
@media(max-width:767px){
    .navbar-brand{
        min-width:180px;
    }
    .navbar-brand img,
    .site-logo,
    .aps-logo{
        height:62px !important;
        max-height:62px !important;
    }
}
@media(max-width:420px){
    .navbar-brand{
        min-width:150px;
    }
    .navbar-brand img,
    .site-logo,
    .aps-logo{
        height:54px !important;
        max-height:54px !important;
    }
}


/* V8 image performance and layout stability */
img{
    max-width:100%;
}
img[src$=".webp"]{
    image-rendering:auto;
}
.hero-media img,
.hero-media video,
.service-card img,
.support-card img,
.story-card img,
.insight-card img,
.news-card img{
    object-fit:cover;
}
.g-recaptcha{
    max-width:100%;
    overflow:hidden;
}
