@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Poppins:wght@400;500;600;700&display=swap');

:root {
    --primary-blue: #3893B8;
    --dark-blue: #304B89;
    --white: #FFFFFF;
    --light-blue: #EAF5FA;
    --heading-color: #17324D;
    --body-color: #64748B;
    --line-color: #DFEAF1;
    --orange: var(--primary-blue);
    --ink: var(--heading-color);
    --off: var(--light-blue);
    --mute: var(--body-color);
}

body {
    background: var(--white);
    color: var(--body-color);
    font-family: 'Poppins', sans-serif;
    font-size: 15px;
    line-height: 1.8;
}

h1, h2, h3, h4, h5, h6 {
    color: var(--heading-color);
    font-family: 'DM Sans', sans-serif;
    font-weight: 700;
    line-height: 1.2;
}

h2, .hero h1, .inner-hero h1, .business-hero h1,
.sector-card-bottom h3, .value-grid h3, .admin-main h1 {
    font-family: 'DM Sans', sans-serif;
}

.site-header, .navbar {
    background: rgba(255, 255, 255, 0.96);
    border-bottom-color: var(--line-color);
    box-shadow: 0 8px 30px rgba(23, 50, 77, 0.05);
    backdrop-filter: blur(12px);
}

.brand {
    color: var(--heading-color);
    font-family: 'DM Sans', sans-serif;
}

.brand-logo {
    display: block;
    width: 158px;
    height: auto;
    max-height: 64px;
    object-fit: contain;
}

.brand b, .footer-brand span { color: var(--primary-blue); }

.brand-mark {
    background: var(--dark-blue);
    border-radius: 10px;
}

.brand-mark span { color: var(--primary-blue); }

.navlinks, .navbar a {
    color: var(--dark-blue);
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
}

.navlinks a:not(.nav-contact):hover, .navbar a:hover { color: var(--primary-blue); }

.nav-contact, .btn-primary, .btn-orange {
    background: var(--primary-blue);
    border-color: var(--primary-blue);
    color: var(--white);
}

.nav-contact:hover, .btn-primary:hover, .btn-orange:hover {
    background: var(--dark-blue);
    border-color: var(--dark-blue);
    color: var(--white);
}

.btn {
    border-radius: 8px;
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    transition: background-color .25s ease, border-color .25s ease, color .25s ease, transform .25s ease;
}

.btn:hover { transform: translateY(-2px); }

.hero { background: var(--heading-color); }

.hero-picture {
    background-image: linear-gradient(90deg, rgba(23, 50, 77, .98), rgba(48, 75, 137, .84) 48%, rgba(56, 147, 184, .2)), url('https://images.unsplash.com/photo-1581092160607-ee22621dd758?w=1900&q=85');
}

.hero h1, .inner-hero h1, .business-hero h1, .vision h2,
.cta h2, .sector-card h3, .footer h4 { color: var(--white); }

.hero h1 em, .hero h1 span, .inner-hero h1 span, .label, h2 span,
.vision h2 i, .value-grid b, .stats b { color: var(--primary-blue); }

.eyebrow i { background: var(--primary-blue); }

.hero p, .inner-hero p, .business-hero p { color: rgba(255, 255, 255, .8); }

.btn-outline {
    border-color: rgba(255, 255, 255, .52);
    color: var(--white);
}

.btn-outline:hover {
    background: var(--white);
    border-color: var(--white);
    color: var(--dark-blue);
}

.ticker, .cta {
    background: var(--primary-blue);
    color: var(--white);
}

.ticker span { color: var(--dark-blue); }

.section-light, .sector-section { background: var(--light-blue); }

.section-title {
    font-family: 'DM Sans', sans-serif;
    font-weight: 800;
}

.intro-copy p, .contact-layout > div > p, .value-grid p { color: var(--body-color); }

.textlink {
    border-bottom-color: var(--primary-blue);
    color: var(--dark-blue);
}

.service-card, .sector-card {
    border: 1px solid var(--line-color);
    border-radius: 14px;
    box-shadow: 0 10px 24px rgba(23, 50, 77, .07);
    transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}

.service-card { background: var(--white); }

.service-card:hover, .sector-card:hover {
    border-color: var(--primary-blue);
    box-shadow: 0 16px 34px rgba(48, 75, 137, .16);
    transform: translateY(-5px);
}

.sector-card { background: var(--heading-color); }
.sector-card-bottom h3 { font-weight: 700; }

.vision, .inner-hero {
    background: linear-gradient(135deg, var(--heading-color), var(--dark-blue));
}

.vision p { color: rgba(255, 255, 255, .72); }
.vision .label, .inner-hero .label, .business-hero .label { color: #8FD3EC; }
.cta .label, .cta p { color: rgba(255, 255, 255, .86); }

.btn-white {
    background: var(--white);
    color: var(--dark-blue);
}

.btn-white:hover {
    background: var(--dark-blue);
    color: var(--white);
}

.contact-note, .contact-form, .login-panel { background: var(--light-blue); }

.contact-form, .admin-card, .login-panel {
    border: 1px solid var(--line-color);
    border-radius: 14px;
}

.contact-form input, .contact-form select, .contact-form textarea,
.admin-card input, .admin-card textarea, .login-panel input {
    border-color: var(--line-color);
    border-radius: 7px;
}

.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus,
.admin-card input:focus, .admin-card textarea:focus, .login-panel input:focus {
    border-color: var(--primary-blue);
    box-shadow: 0 0 0 3px rgba(56, 147, 184, .14);
    outline: none;
}

.site-footer, .footer, .admin-nav {
    background: var(--dark-blue);
    color: var(--white);
}

.footer p, .footer small, .copyright { color: rgba(255, 255, 255, .66); }
.copyright { border-top-color: rgba(255, 255, 255, .16); }
.admin-body { background: var(--light-blue); }
.admin-nav button { background: var(--primary-blue); }

.stats > div, .table-wrap, .admin-card {
    background: var(--white);
    border-radius: 12px;
}

th { background: var(--dark-blue); }

@media (max-width: 700px) {
    .navlinks {
        background: var(--white);
        box-shadow: 0 18px 30px rgba(23, 50, 77, .12);
    }
}

/* Shared redesigned layout */
html { scroll-padding-top: 90px; }
body { overflow-x: hidden; }
body.menu-open { overflow: hidden; }

.skip-link {
    position: fixed;
    left: 16px;
    top: -80px;
    z-index: 1000;
    background: var(--white);
    color: var(--dark-blue);
    padding: 10px 16px;
    border-radius: 0 0 8px 8px;
    font-weight: 700;
}

.skip-link:focus { top: 0; }

.site-header {
    transition: box-shadow .25s ease, background-color .25s ease;
}

.site-header.is-scrolled {
    box-shadow: 0 12px 34px rgba(23, 50, 77, .12);
}

.navlinks a {
    position: relative;
}

.navlinks a:not(.nav-contact)::after {
    content: '';
    position: absolute;
    left: 0;
    right: 100%;
    bottom: -8px;
    height: 2px;
    background: var(--primary-blue);
    transition: right .25s ease;
}

.navlinks a:not(.nav-contact):hover::after,
.navlinks a.active::after { right: 0; }

.nav-toggle {
    width: 42px;
    height: 42px;
    padding: 9px;
}

.nav-toggle span {
    display: block;
    height: 2px;
    margin: 5px 0;
    background: var(--dark-blue);
    transition: transform .25s ease, opacity .25s ease;
}

.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.nav-contact { border-radius: 8px; }
.btn-small { padding: 12px 17px; }

.footer { padding-top: 82px; }
.footer-grid--wide { grid-template-columns: 1.5fr .8fr 1fr 1fr; }
.footer-about p { max-width: 390px; }
.footer-brand { display: inline-block !important; }

.footer-enquiry {
    display: inline-flex !important;
    align-items: center;
    gap: 10px;
    color: var(--white);
    font-weight: 600;
}

.footer h4 {
    font-family: 'DM Sans', sans-serif;
    font-size: 17px;
    margin-bottom: 22px;
}

.footer-contact small {
    display: block;
    margin-top: 14px;
    line-height: 1.5;
}

.footer-source-label {
    color: #8fd3ec !important;
    font-size: 9px !important;
    font-weight: 700;
    letter-spacing: .12em;
}

.footer-contact address {
    margin: 14px 0;
    color: rgba(255,255,255,.66);
    font-size: 12px;
    font-style: normal;
    line-height: 1.7;
}

.copyright {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
}

.legal-links { display: flex; gap: 24px; }
.copyright .legal-links a { float: none; margin: 0; }

.back-to-top {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 30;
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 50%;
    background: var(--primary-blue);
    color: var(--white);
    font-size: 20px;
    box-shadow: 0 12px 28px rgba(48, 75, 137, .3);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity .25s ease, visibility .25s ease, transform .25s ease;
}

.back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.legal-content { max-width: 850px; }
.legal-content h2 { margin: 38px 0 12px; font-size: 30px; }
.legal-content p { color: var(--body-color); font-size: 16px; }
.form-privacy { display: block; margin-top: 13px; color: #8797a2; font-size: 10px; text-align: center; }

.reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .7s ease, transform .7s ease;
}

.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}


/* Footer Partnership Branding */

.footer-partner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    flex-wrap: wrap;
    font-size: 13px;
}

.footer-partner span {
    color: #a5a5a5;
}

.footer-partner a {
    color: #ffffff;
    font-weight: 600;
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-partner a:hover {
    color: #f28c28;
}

@media (max-width: 768px) {
    .copyright {
        flex-direction: column;
        text-align: center;
        gap: 14px;
    }
}


@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
    .reveal { opacity: 1; transform: none; }
}

@media (max-width: 1000px) {
    .footer-grid--wide { grid-template-columns: 1.4fr 1fr 1fr; }
    .footer-contact { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
    .navlinks {
        max-height: calc(100vh - 70px);
        overflow-y: auto;
    }

    .navlinks a:not(.nav-contact)::after { display: none; }
    .footer-grid--wide { grid-template-columns: 1fr; }
    .footer-contact { grid-column: auto; }
    .copyright { align-items: flex-start; flex-direction: column; }
    .legal-links { flex-wrap: wrap; gap: 10px 20px; }
}

/* Content extensions: existing homepage colors, fonts and layout retained. */
.content-breadcrumb{font-size:13px;color:#64717b;margin-bottom:35px;line-height:1.8;overflow-wrap:anywhere}
.content-breadcrumb a{text-decoration:underline;text-underline-offset:3px}
.detail-section{background:#f6f7f8}
.detail-grid,.expansion-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.detail-grid h2,.expansion-card h2{font-size:clamp(23px,2.5vw,32px);line-height:1.25;letter-spacing:-.6px}
.detail-grid li,.content-steps li,.intro-copy li{margin-bottom:15px;line-height:1.8;color:#5c6670}
.expansion-card{padding:30px;background:white;border:1px solid #e5e8ec;overflow-wrap:anywhere}
.expansion-card p{color:#5c6670;line-height:1.85}
.related-links{display:flex;flex-wrap:wrap;gap:18px 30px;margin:25px 0 35px}
.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.field-error{display:block;color:#a32919;margin-top:7px;line-height:1.5;font-weight:500}
.contact-form--dark .field-error{color:#ffb2a4}
[aria-invalid="true"]{border-color:#bb3e30!important}
.admin-body .table-wrap td{max-width:330px;overflow-wrap:anywhere}
.admin-body .message-text{white-space:pre-wrap;overflow-wrap:anywhere}
.admin-body .inquiry-details{display:grid;grid-template-columns:170px minmax(0,1fr);gap:12px;margin:20px 0}
.admin-body .inquiry-details dd{margin:0;overflow-wrap:anywhere}
.admin-body .inquiry-details dt{font-weight:700}
.admin-search{display:flex;flex-wrap:wrap;align-items:end;gap:15px;margin:20px 0}
.admin-search input{padding:12px;font:inherit;border:1px solid #d8dcdd;max-width:100%}
.pagination{display:flex;flex-wrap:wrap;gap:12px;margin:25px 0}
.pagination a,.pagination span{padding:8px 14px;background:white;border:1px solid #d8dcdd}
.pagination .current{background:#304b89;color:white}
@media(min-width:901px){.navlinks{gap:clamp(12px,1.8vw,28px)}}
@media(max-width:760px){.detail-grid,.expansion-grid{grid-template-columns:1fr}.expansion-card{padding:24px}.admin-body .inquiry-details{grid-template-columns:1fr;gap:6px}.admin-body .inquiry-details dd{margin-bottom:12px}.admin-body .stats b{font-size:40px}}

.client-name-fallback{padding:18px;text-align:center;font-size:17px;font-weight:700;color:#304b89}
.client-name [hidden]{display:none!important}

.client-name{position:relative}.client-name-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.admin-body h2{font-size:24px;line-height:1.3;letter-spacing:-.4px}
