@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');

/* =========================
   GLOBAL
========================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: "Montserrat", sans-serif;
    padding-top: 154px;
}

/* ========================================
   GLOBAL SECTION INTRO TYPOGRAPHY
======================================== */

.section-eyebrow {
    margin: 0 0 16px;
    color: #3568c8;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 600;
    letter-spacing: 1.8px;
}

.section-heading {
    margin: 0;
    color: #142769;
    font-size: 36px;
    line-height: 1.2;
    font-weight: 500;
    letter-spacing: -0.6px;
}

.section-description {
    margin: 16px 0 0;
    color: #7a869d;
    font-size: 14px;
    line-height: 1.7;
    font-weight: 400;
}

/* ========================================
   FIXED SITE HEADER
======================================== */

.site-header-fixed {
    position: fixed;
    top: 0;
    left: 0;

    width: 100%;
    z-index: 1000;
}


/* ========================================
   TOP CONTACT BAR
======================================== */

.top-contact-bar {
    position: relative;
    z-index: 3;

    width: 100%;
    height: 22px;

    background: #ffffff;
    border-top: 1px solid #142769;
    border-bottom: 1px solid #e6eaf1;
}

.top-contact-container {
    width: 100%;
    max-width: 1500px;
    height: 100%;

    margin: 0 auto;
    padding: 0 90px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    box-sizing: border-box;
}


/* CONTACT DETAILS */

.top-contact-details {
    display: flex;
    align-items: center;
    gap: 18px;
}

.top-contact-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;

    color: #142769;

    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    line-height: 1;
    font-weight: 500;
    letter-spacing: 0.8px;

    text-decoration: none;

    transition: color 0.2s ease;
}

.top-contact-link:hover {
    color: #3568c8;
}

.top-contact-divider {
    width: 1px;
    height: 15px;
    background: #d7deea;
}


/* PHONE ICON */

.top-contact-phone-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 16px;
    height: 16px;

    color: #142769;
    flex-shrink: 0;
}

.top-contact-phone-icon svg {
    display: block;
    width: 16px;
    height: 16px;
}


/* EMAIL ICON */

.top-contact-email-icon {
    position: relative;

    display: block;

    width: 15px;
    height: 11px;

    border: 1.5px solid currentColor;
    border-radius: 2px;

    box-sizing: border-box;
}

.top-contact-email-icon::before,
.top-contact-email-icon::after {
    content: "";

    position: absolute;
    top: 1px;

    width: 8px;
    height: 1px;

    background: currentColor;
}

.top-contact-email-icon::before {
    left: 0;
    transform: rotate(32deg);
    transform-origin: left center;
}

.top-contact-email-icon::after {
    right: 0;
    transform: rotate(-32deg);
    transform-origin: right center;
}


/* CONTACT MESSAGE */

.top-contact-message {
    margin: 0;

    color: #142769;

    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    line-height: 1;
    font-weight: 600;
    letter-spacing: 1.7px;
}


/* ========================================
   SITE HEADER
======================================== */

.site-header {
    position: relative;
    z-index: 2;

    width: 100%;
    height: 132px;

    background: #142769;
}

.site-header::after {
    content: "";

    position: absolute;
    left: 0;
    bottom: 0;

    width: 100%;
    height: 27px;

    background: #ffffff;

    z-index: 1;
}


/* HEADER CONTENT */

.header-container {
    position: relative;
    z-index: 2;

    width: 100%;
    max-width: 1500px;
    height: 123px;

    margin: 0 auto;
    padding-left: 90px;
    padding-right: 90px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    box-sizing: border-box;
}


/* ========================================
   HEADER LOGO
======================================== */

.site-logo {
    position: relative;
    z-index: 3;

    display: flex;
    align-items: flex-start;
    align-self: flex-start;

    height: 123px;
}

.site-logo img {
    display: block;

    width: auto;
    height: 123px;

    margin: 0;

    object-fit: contain;
}


/* ========================================
   MENU BUTTON
======================================== */

.menu-button {
    position: absolute;

    right: 90px;
    top: 48px;

    transform: translateY(-50%);

    display: flex;
    align-items: center;
    gap: 16px;

    margin: 0;
    padding: 12px 0;

    background: transparent;
    border: none;

    color: #ffffff;
    cursor: pointer;
}

/* ========================================
   MENU BUTTON FOCUS
======================================== */

.menu-button:focus {
    outline: none;
}

.menu-button:focus-visible {
    outline: 1px solid rgba(255, 255, 255, 0.55);
    outline-offset: 7px;
    border-radius: 2px;
}


/* MENU TEXT */

.menu-text {
    font-family: "Montserrat", sans-serif;
    font-size: 18px;
    line-height: 1;
    font-weight: 500;
    letter-spacing: 0.2px;
}


/* MENU ICON */

.menu-icon-lines {
    position: relative;

    display: block;

    width: 28px;
    height: 22px;
}

.menu-line {
    position: absolute;
    right: 0;

    height: 2px;

    background: #ffffff;
    border-radius: 2px;

    transition:
        width 0.3s ease,
        transform 0.3s ease;
}

.menu-line-top {
    top: 6px;
    width: 28px;
}

.menu-line-bottom {
    bottom: 6px;
    width: 19px;
}


/* MENU HOVER */

.menu-button:hover .menu-line-top {
    width: 19px;
}

.menu-button:hover .menu-line-bottom {
    width: 28px;
}

/* ========================================
   FULL SCREEN NAVIGATION MENU
======================================== */

.navigation-overlay {
    position: fixed;
    top: 22px;
    left: 0;

    width: 100%;
    height: calc(100vh - 22px);

    background: #142769;

    z-index: 999;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transition:
        opacity 0.4s ease,
        visibility 0.4s ease;
}


/* OPEN STATE */

.navigation-overlay.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}


/* INNER */

.navigation-overlay-inner {
    width: 100%;
    max-width: 1500px;
    height: 100%;

    margin: 0 auto;
    padding: 175px 90px 40px;

    display: flex;
    flex-direction: column;
    justify-content: space-between;

    box-sizing: border-box;
}


/* ========================================
   NAVIGATION CONTENT
======================================== */

.navigation-content {
    width: 100%;
    max-width: 900px;
}


/* EYEBROW */

.navigation-eyebrow {
    margin: 0 0 28px;

    color: rgba(255, 255, 255, 0.55);

    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    line-height: 1;
    font-weight: 600;
    letter-spacing: 2px;
}


/* ========================================
   NAVIGATION LINKS
======================================== */

.navigation-links {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}


.navigation-link {
    position: relative;

    display: inline-flex;
    align-items: center;
    gap: 24px;

    padding: 9px 0;

    color: #ffffff;

    text-decoration: none;

    transition:
        opacity 0.25s ease,
        transform 0.3s ease;
}


/* NUMBER */

.navigation-number {
    width: 28px;

    color: rgba(255, 255, 255, 0.42);

    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    line-height: 1;
    font-weight: 500;
    letter-spacing: 1px;

    transition: color 0.25s ease;
}


/* LABEL */

.navigation-label {
    font-family: "Montserrat", sans-serif;
    font-size: 31px;
    line-height: 1.15;
    font-weight: 400;
    letter-spacing: -0.4px;

    transition: transform 0.3s ease;
}


/* ========================================
   LINK STATES
======================================== */

.navigation-link {
    opacity: 0.72;
}

.navigation-link:hover {
    opacity: 1;
}

.navigation-link:hover .navigation-number {
    color: rgba(255, 255, 255, 0.9);
}

.navigation-link:hover .navigation-label {
    transform: translateX(8px);
}


/* ========================================
   NAVIGATION FOOTER
======================================== */

.navigation-footer {
    width: 100%;

    padding-top: 20px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    border-top: 1px solid rgba(255, 255, 255, 0.16);

    color: rgba(255, 255, 255, 0.48);

    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    line-height: 1.4;
    font-weight: 500;
    letter-spacing: 1px;
    text-transform: uppercase;
}

/* ========================================
   NAVIGATION LEGAL LINKS
======================================== */

.navigation-footer-left {
    display: flex;
    align-items: center;
    gap: 16px;
}

.navigation-footer-divider {
    width: 1px;
    height: 12px;

    background: rgba(255, 255, 255, 0.2);
}

.navigation-legal-link {
    margin: 0;
    padding: 0;

    color: rgba(255, 255, 255, 0.48);
    background: transparent;
    border: none;

    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    line-height: 1.4;
    font-weight: 500;
    letter-spacing: 1px;
    text-transform: uppercase;

    text-decoration: none;

    cursor: pointer;

    transition: color 0.2s ease;
}

.navigation-legal-link:hover {
    color: #ffffff;
}

/* ========================================
   DISCLAIMER MODAL
======================================== */

.disclaimer-modal {
    position: fixed;
    inset: 0;

    z-index: 2000;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 40px;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transition:
        opacity 0.3s ease,
        visibility 0.3s ease;
}


/* OPEN STATE */

.disclaimer-modal.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}


/* ========================================
   BACKDROP
======================================== */

.disclaimer-backdrop {
    position: absolute;
    inset: 0;

    background: rgba(8, 17, 50, 0.72);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}


/* ========================================
   DISCLAIMER PANEL
======================================== */

.disclaimer-panel {
    position: relative;
    z-index: 2;

    width: 100%;
    max-width: 650px;

    padding: 58px 60px 54px;

    background: #ffffff;

    border-radius: 8px;

    box-shadow:
        0 24px 70px rgba(0, 0, 0, 0.22);

    box-sizing: border-box;

    transform: translateY(18px) scale(0.985);

    transition:
        transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}


.disclaimer-modal.is-open .disclaimer-panel {
    transform: translateY(0) scale(1);
}


/* ========================================
   DISCLAIMER CONTENT
======================================== */

.disclaimer-content {
    width: 100%;
}


.disclaimer-eyebrow {
    margin: 0 0 14px;

    color: #3568c8;

    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    line-height: 1;
    font-weight: 600;
    letter-spacing: 1.8px;
}


.disclaimer-content h2 {
    margin: 0;

    color: #142769;

    font-family: "Montserrat", sans-serif;
    font-size: 34px;
    line-height: 1.2;
    font-weight: 500;
    letter-spacing: -0.5px;
}


.disclaimer-line {
    width: 42px;
    height: 2px;

    margin: 22px 0 25px;

    background: #3568c8;
}


.disclaimer-content p:not(.disclaimer-eyebrow) {
    max-width: 520px;

    margin: 0;

    color: #667085;

    font-family: "Montserrat", sans-serif;
    font-size: 14px;
    line-height: 1.8;
    font-weight: 400;
}


/* ========================================
   CLOSE BUTTON
======================================== */

.disclaimer-close {
    position: absolute;

    top: 24px;
    right: 24px;

    width: 34px;
    height: 34px;

    padding: 0;

    background: transparent;
    border: none;

    cursor: pointer;
}


.disclaimer-close span {
    position: absolute;

    top: 16px;
    left: 7px;

    width: 20px;
    height: 1.5px;

    background: #142769;

    transition: background 0.2s ease;
}


.disclaimer-close span:first-child {
    transform: rotate(45deg);
}


.disclaimer-close span:last-child {
    transform: rotate(-45deg);
}


.disclaimer-close:hover span {
    background: #3568c8;
}


.disclaimer-close:focus {
    outline: none;
}


.disclaimer-close:focus-visible {
    outline: 1px solid #3568c8;
    outline-offset: 3px;
    border-radius: 3px;
}

/* ========================================
   PRIVACY STATEMENT MODAL
======================================== */

.policy-modal {
    position: fixed;
    inset: 0;

    z-index: 2100;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 34px;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transition:
        opacity 0.3s ease,
        visibility 0.3s ease;
}


/* OPEN STATE */

.policy-modal.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}


/* ========================================
   BACKDROP
======================================== */

.policy-backdrop {
    position: absolute;
    inset: 0;

    background: rgba(8, 17, 50, 0.76);

    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}


/* ========================================
   MAIN PANEL
======================================== */

.policy-panel {
    position: relative;
    z-index: 2;

    width: min(1380px, calc(100vw - 68px));
    height: min(860px, calc(100vh - 52px));

    display: grid;
    grid-template-columns: 40% 60%;

    background: #ffffff;

    border-radius: 8px;

    overflow: hidden;

    box-shadow:
        0 28px 80px rgba(0, 0, 0, 0.24);

    transform: translateY(18px) scale(0.99);

    transition:
        transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}


.policy-modal.is-open .policy-panel {
    transform: translateY(0) scale(1);
}


/* ========================================
   CLOSE BUTTON
======================================== */

.policy-close {
    position: absolute;

    top: 28px;
    right: 30px;

    z-index: 10;

    width: 40px;
    height: 40px;

    padding: 0;

    background: transparent;
    border: none;

    cursor: pointer;
}


.policy-close span {
    position: absolute;

    top: 19px;
    left: 7px;

    width: 26px;
    height: 1.5px;

    background: #142769;

    transition:
        background 0.2s ease,
        transform 0.25s ease;
}


.policy-close span:first-child {
    transform: rotate(45deg);
}


.policy-close span:last-child {
    transform: rotate(-45deg);
}


.policy-close:hover span:first-child {
    background: #3568c8;
    transform: rotate(45deg) scaleX(1.1);
}


.policy-close:hover span:last-child {
    background: #3568c8;
    transform: rotate(-45deg) scaleX(1.1);
}


.policy-close:focus {
    outline: none;
}


.policy-close:focus-visible {
    outline: 1px solid #3568c8;
    outline-offset: 3px;
    border-radius: 3px;
}


/* ========================================
   LEFT PANEL
======================================== */

.policy-sidebar {
    position: relative;

    padding: 70px 68px 50px;

    display: flex;
    flex-direction: column;
    justify-content: space-between;

    background: #f3f4f7;

    box-sizing: border-box;
}


.policy-sidebar-content {
    width: 100%;
    max-width: 410px;
}


/* EYEBROW */

.policy-eyebrow {
    margin: 0 0 28px;

    color: #3568c8;

    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    line-height: 1;
    font-weight: 600;
    letter-spacing: 1.8px;
}


/* MAIN LEFT HEADING */

.policy-sidebar h2 {
    margin: 0;

    color: #142769;

    font-family: "Montserrat", sans-serif;
    font-size: 42px;
    line-height: 1.16;
    font-weight: 500;
    letter-spacing: -1px;
}


.policy-sidebar-line {
    width: 46px;
    height: 2px;

    margin: 30px 0 28px;

    background: #3568c8;
}


.policy-intro {
    max-width: 380px;

    margin: 0;

    color: #6f798c;

    font-family: "Montserrat", sans-serif;
    font-size: 14px;
    line-height: 1.75;
    font-weight: 400;
}


/* ========================================
   COMMITMENT
======================================== */

.policy-commitment {
    width: 100%;
    max-width: 390px;

    padding-top: 26px;

    border-top: 1px solid rgba(20, 39, 105, 0.14);
}


.policy-commitment-label {
    margin: 0 0 10px;

    color: #3568c8;

    font-family: "Montserrat", sans-serif;
    font-size: 9px;
    line-height: 1;
    font-weight: 600;
    letter-spacing: 1.7px;
}


.policy-commitment h3 {
    margin: 0 0 8px;

    color: #142769;

    font-family: "Montserrat", sans-serif;
    font-size: 17px;
    line-height: 1.35;
    font-weight: 600;
}


.policy-commitment p:not(.policy-commitment-label) {
    max-width: 320px;

    margin: 0;

    color: #7a8496;

    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    line-height: 1.6;
    font-weight: 400;
}


/* ========================================
   RIGHT PANEL
======================================== */

.policy-main {
    position: relative;

    min-width: 0;
    height: 100%;

    background: #ffffff;

    overflow-y: auto;

    scrollbar-width: thin;
    scrollbar-color:
        rgba(20, 39, 105, 0.22)
        transparent;
}


.policy-main::-webkit-scrollbar {
    width: 5px;
}


.policy-main::-webkit-scrollbar-track {
    background: transparent;
}


.policy-main::-webkit-scrollbar-thumb {
    background: rgba(20, 39, 105, 0.20);
    border-radius: 10px;
}


.policy-main-inner {
    width: 100%;

    padding: 58px 72px 48px;

    box-sizing: border-box;
}


/* ========================================
   POLICY SECTIONS
======================================== */

.policy-section {
    width: 100%;

    padding-bottom: 24px;
    margin-bottom: 24px;

    border-bottom: 1px solid rgba(20, 39, 105, 0.10);
}


.policy-section:last-child {
    padding-bottom: 0;
    margin-bottom: 0;

    border-bottom: none;
}


/* SECTION HEADING */

.policy-section-heading {
    display: flex;
    align-items: baseline;
    gap: 15px;

    margin-bottom: 16px;
}


.policy-section-number {
    flex-shrink: 0;

    color: #3568c8;

    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    line-height: 1;
    font-weight: 600;
    letter-spacing: 0.5px;
}


.policy-section-heading h3 {
    margin: 0;

    color: #142769;

    font-family: "Montserrat", sans-serif;
    font-size: 22px;
    line-height: 1.3;
    font-weight: 600;
    letter-spacing: -0.3px;
}


/* BODY COPY */

.policy-section-body {
    max-width: 690px;

    padding-left: 42px;
}


.policy-section-body p {
    margin: 0 0 12px;

    color: #667085;

    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    line-height: 1.65;
    font-weight: 400;
}


.policy-section-body p:last-child {
    margin-bottom: 0;
}


/* ========================================
   THREATS TO IMPARTIALITY
======================================== */

.policy-threat-grid {
    width: 100%;

    display: grid;
    grid-template-columns: repeat(4, 1fr);

    gap: 18px;

    padding-left: 42px;

    box-sizing: border-box;
}


.policy-threat-item {
    min-height: 88px;

    padding: 14px 0 0;

    display: flex;
    flex-direction: column;

    border-top: 1px solid rgba(20, 39, 105, 0.14);
}


.policy-threat-number {
    margin-bottom: 10px;

    color: #9ba4b5;

    font-family: "Montserrat", sans-serif;
    font-size: 9px;
    line-height: 1;
    font-weight: 600;
    letter-spacing: 1px;
}


.policy-threat-item h4 {
    margin: 0;

    color: #142769;

    font-family: "Montserrat", sans-serif;
    font-size: 14px;
    line-height: 1.45;
    font-weight: 500;
}


.policy-threat-item h4 span {
    color: #7a8496;
    font-size: 12px;
    font-weight: 400;
}


.policy-threat-line {
    width: 26px;
    height: 2px;

    margin-top: auto;

    background: #3568c8;
}


/* ========================================
   NAVIGATION ENTRANCE
======================================== */

.navigation-link {
    transform: translateY(14px);
    opacity: 0;

    transition:
        opacity 0.35s ease,
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.navigation-overlay.is-open .navigation-link {
    transform: translateY(0);
    opacity: 0.72;
}

.navigation-overlay.is-open .navigation-link:nth-child(1) {
    transition-delay: 0.08s;
}

.navigation-overlay.is-open .navigation-link:nth-child(2) {
    transition-delay: 0.12s;
}

.navigation-overlay.is-open .navigation-link:nth-child(3) {
    transition-delay: 0.16s;
}

.navigation-overlay.is-open .navigation-link:nth-child(4) {
    transition-delay: 0.20s;
}

.navigation-overlay.is-open .navigation-link:nth-child(5) {
    transition-delay: 0.24s;
}

.navigation-overlay.is-open .navigation-link:nth-child(6) {
    transition-delay: 0.28s;
}

.navigation-overlay.is-open .navigation-link:nth-child(7) {
    transition-delay: 0.32s;
}

.navigation-overlay.is-open .navigation-link:hover {
    opacity: 1;
}

.navigation-overlay.is-open .navigation-link:hover .navigation-label {
    transform: translateX(8px);
}

/* ========================================
   MENU OPEN STATE
======================================== */

body.menu-open {
    overflow: hidden;
}


/* TURN MENU ICON INTO X */

.menu-button[aria-expanded="true"] .menu-line-top {
    width: 25px;
    top: 10px;
    transform: rotate(45deg);
}

.menu-button[aria-expanded="true"] .menu-line-bottom {
    width: 25px;
    bottom: 10px;
    transform: rotate(-45deg);
}


/* PREVENT HOVER WIDTH CHANGE WHILE OPEN */

.menu-button[aria-expanded="true"]:hover .menu-line-top,
.menu-button[aria-expanded="true"]:hover .menu-line-bottom {
    width: 25px;
}

/* ========================================
   HOME HERO - ENTRANCE ANIMATION
======================================== */

.hero-eyebrow,
.hero-title,
.hero-line,
.hero-description,
.hero-actions {
    opacity: 0;
    transform: translateY(22px);

    animation: heroReveal 0.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}


/* TEXT COLOUR */

.hero-eyebrow,
.hero-title,
.hero-description {
    color: rgba(255, 255, 255, 0.78);
}


/* STAGGERED ENTRANCE */

.hero-eyebrow {
    animation-delay: 0.10s;
}

.hero-title {
    animation-delay: 0.22s;
}

.hero-line {
    animation-delay: 0.36s;
}

.hero-description {
    animation-delay: 0.46s;
}

.hero-actions {
    animation-delay: 0.58s;
}


/* REVEAL */

@keyframes heroReveal {

    from {
        opacity: 0;
        transform: translateY(22px);
    }

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

}


/* REDUCED MOTION */

@media (prefers-reduced-motion: reduce) {

    .hero-eyebrow,
    .hero-title,
    .hero-line,
    .hero-description,
    .hero-actions {
        opacity: 1;
        transform: none;
        animation: none;
    }

}

/* ========================================HOME PAGE HERO + STATISTICS DESKTOP====================================================================== */

/* =========================================================
   HOME HERO — CLEAN FINAL DESKTOP
   1440PX
========================================================= */


/* =========================================================
   HERO SECTION
========================================================= */

.hero {
    position: relative;

    width: 100%;
    height: calc(100vh - 154px);

    min-height: 680px;
    max-height: 800px;

    padding: 20px 0 64px;

    background: #ffffff;

    overflow: hidden;

    box-sizing: border-box;
}


/* =========================================================
   HERO SHELL
========================================================= */

.hero-shell {
    position: relative;

    width: calc(100% - 140px);
    max-width: 1440px;
    height: 100%;

    margin: 0 auto;
}


/* ========================================
   HERO INTRO
========================================= */

.hero-intro {
    position: relative;
    z-index: 5;

    width: 100%;
    max-width: 1500px;
    margin: 0 auto 42px;

    text-align: center;
}


/* EYEBROW */

.hero-eyebrow {
    margin: 0 0 14px;

    color: #3568c8;

    font-size: 13px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 3px;
    text-transform: uppercase;

    white-space: nowrap;
}


/* HEADING */

.hero-title {
    margin: 0;

    color: #142769;

    font-size: 48px;
    line-height: 1.08;
    font-weight: 500;
    letter-spacing: -1.4px;

    white-space: nowrap;
}


/* DIVIDER */

.hero-line {
    width: 54px;
    height: 2px;

    margin: 22px auto 18px;

    background: #3568c8;
}


/* DESCRIPTION */

.hero-description {
    width: 100%;
    max-width: none;

    margin: 0 auto;

    color: #7a869d;

    font-size: 14px;
    line-height: 1.6;
    font-weight: 400;

    white-space: nowrap;
}


/* =========================================================
   HERO VISUAL COMPOSITION
========================================================= */

.hero-visual {
    position: relative;

    width: 100%;
    height: 360px;

    margin-top: 44px;
}


/* =========================================================
   SEAMLESS HERO IMAGE
========================================================= */

.hero-image-container {
    position: absolute;
    z-index: 1;

    inset: 0;

    overflow: hidden;

    background: #142769;

    border-radius: 20px;
}


/* =========================================================
   SINGLE IMAGE
========================================================= */

.hero-image {
    position: absolute;
    z-index: 1;

    inset: 0;

    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center 78%;
}


/* =========================================================
   WHITE MASK SYSTEM
========================================================= */

.hero-image-mask {
    position: absolute;
    z-index: 2;

    background: #ffffff;

    pointer-events: none;
}


/* =========================================================
   TOP-LEFT NEGATIVE SPACE

   SANAS card occupies this space.
========================================================= */

.hero-image-mask-top {
    top: 0;
    left: 0;

    width: 35%;
    height: 38%;

    border-bottom-right-radius: 20px;
}


/* Reverse curve */

.hero-image-mask-top::after {
    content: "";

    position: absolute;

    right: -20px;
    top: 0;

    width: 20px;
    height: 20px;

    background: transparent;

    border-top-left-radius: 20px;

    box-shadow:
        -10px -10px 0 10px #ffffff;
}


/* =========================================================
   BOTTOM-RIGHT NEGATIVE SPACE

   Three credential cards occupy this space.
========================================================= */

.hero-image-mask-main {
    right: 0;
    bottom: 0;

    width: 46%;
    height: 42%;

    border-top-left-radius: 20px;
}


/* Reverse curve */

.hero-image-mask-main::before {
    content: "";

    position: absolute;

    left: -20px;
    bottom: 0;

    width: 20px;
    height: 20px;

    background: transparent;

    border-bottom-right-radius: 20px;

    box-shadow:
        10px 10px 0 10px #ffffff;
}


/* =========================================================
   OPTIONAL CENTRE BRIDGE

   Keep existing HTML element supported.
========================================================= */

.hero-image-panel-bridge {
    position: absolute;
    z-index: 2;

    left: 34%;
    right: 44%;

    top: 28%;
    bottom: 28%;

    width: auto;
    height: auto;

    border-radius: 18px;

    pointer-events: none;
}


/* =========================================================
   SANAS CARD
   ALIGNED TO IMAGE LEFT EDGE
========================================================= */

.hero-sanas-card {
    position: absolute;
    z-index: 5;

    top: 0;
    left: 0;

    width: 430px;
    height: 118px;

    padding: 20px 26px;

    display: grid;
    grid-template-columns: 150px 1px 1fr;

    align-items: center;

    column-gap: 22px;

    background: #ffffff;

    border: none;
    border-radius: 0;

    box-shadow: none;

    box-sizing: border-box;
}


/* =========================================================
   SANAS LOGO
========================================================= */

.hero-sanas-logo-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
}


.hero-sanas-logo {
    display: block;

    width: 100%;
    max-width: 180px;
    height: auto;

    object-fit: contain;
}


/* =========================================================
   SANAS DIVIDER
========================================================= */

.hero-sanas-divider {
    width: 1px;
    height: 64px;

    background: rgba(20, 39, 105, 0.14);
}


/* =========================================================
   SANAS CONTENT
========================================================= */

.hero-sanas-content {
    min-width: 0;
}


/* =========================================================
   SHARED CARD LABEL
========================================================= */

.hero-card-label {
    margin: 0 0 7px;

    color: #3568c8;

    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 1.7px;
}


/* =========================================================
   SANAS TITLE
========================================================= */

.hero-sanas-title {
    margin: 0;

    color: #142769;

    font-family: "Montserrat", sans-serif;
    font-size: 17px;
    line-height: 1.25;
    font-weight: 500;
}


/* =========================================================
   SANAS CERTIFICATE LINK
========================================================= */

.hero-sanas-link {
    position: relative;

    margin-top: 10px;

    display: inline-flex;
    align-items: center;

    gap: 6px;

    color: #3568c8;

    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    line-height: 1.3;
    font-weight: 500;

    text-decoration: none;
}


.hero-sanas-link::after {
    content: "";

    position: absolute;

    left: 0;
    bottom: -3px;

    width: calc(100% - 20px);
    height: 1px;

    background: #3568c8;

    transform: scaleX(0.35);
    transform-origin: left;

    transition: transform 0.3s ease;
}


.hero-sanas-link span {
    transition: transform 0.3s ease;
}


.hero-sanas-link:hover::after {
    transform: scaleX(1);
}


.hero-sanas-link:hover span {
    transform: translateX(3px);
}


/* =========================================================
   CREDENTIAL CARDS
   ALIGNED TO IMAGE RIGHT EDGE
========================================================= */

.hero-credentials {
    position: absolute;
    z-index: 5;

    right: 0;
    bottom: 0;

    display: grid;
    grid-template-columns: repeat(3, 180px);
    gap: 14px;

    align-items: stretch;
}


/* =========================================================
   INDIVIDUAL CREDENTIAL CARD
========================================================= */

.hero-credential-card {
    width: 180px;
    height: 122px;

    padding: 17px 20px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    box-sizing: border-box;
}

@media (min-width: 1024px) {

    .hero-sanas-card {
        background: transparent;
        border: none;
        border-radius: 0;
        box-shadow: none;
    }

    .hero-credential-card {
        position: relative;

        width: 180px;
        height: 150px;

        padding: 12px 20px 22px;

        display: flex;
        flex-direction: column;
        justify-content: center;

        background: transparent;
        border: none;
        border-radius: 0;
        box-shadow: none;
    }

    .hero-credential-card:nth-child(2)::before,
    .hero-credential-card:nth-child(3)::before {
        content: "";

        position: absolute;

        left: -7px;
        top: 32px;
        bottom: 32px;

        width: 1px;

        background: rgba(20, 39, 105, 0.14);
    }

}



/* =========================================================
   CREDENTIAL NUMBER
========================================================= */

.hero-credential-number {
    display: block;
    margin: 0;

    color: #142769;

    font-family: "Montserrat", sans-serif;
    font-size: 24px;
    line-height: 1.05;
    font-weight: 600;

    letter-spacing: -0.6px;
    text-align: center;
}

/* =========================================================
   CREDENTIAL ACCENT
========================================================= */

.hero-credential-line {
    width: 27px;
    height: 1.5px;

    margin: 10px auto 8px;

    background: #3568c8;
}


/* =========================================================
   CREDENTIAL LABEL
========================================================= */

.hero-credential-card .hero-card-label {
    margin: 0 0 6px;

    color: #3568c8;

    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 1.3px;
    text-align: center;
}


/* =========================================================
   CREDENTIAL TITLE
========================================================= */

.hero-credential-title {
    margin: 0;

    color: #5f6d8c;

    font-family: "Montserrat", sans-serif;
    font-size: 14px;
    line-height: 1.35;
    font-weight: 400;

    text-align: center;
}

/* =========================================================
   HERO ACTIONS
   CENTRED + BREATHING ROOM
========================================================= */

/* ========================================
   HERO ACTIONS
========================================= */

.hero-actions {
    position: relative;
    z-index: 10;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 32px;

    width: 100%;

    /* creates clean separation below image/cards */
    margin: 25px auto 0;

    transform: none;
    top: auto;
    bottom: auto;
    left: auto;
    right: auto;
}


/* =========================================================
   GET A QUOTE
   OUTLINE BY DEFAULT
========================================================= */

.hero-quote-btn {
    min-width: 195px;
    height: 48px;

    padding: 0 26px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    color: #142769;
    background: transparent;

    border: 1px solid #142769;
    border-radius: 6px;

    font-family: "Montserrat", sans-serif;
    font-size: 16px;
    line-height: 1;
    font-weight: 500;

    text-decoration: none;

    box-sizing: border-box;

    transition:
        color 0.3s ease,
        background 0.3s ease,
        border-color 0.3s ease,
        transform 0.3s ease,
        box-shadow 0.3s ease;
}


/* Quote text */

.hero-quote-btn > span:first-child {
    display: inline-block;
}


/* =========================================================
   GET A QUOTE ARROW
   HIDDEN UNTIL HOVER
========================================================= */

.hero-quote-btn > span:last-child {
    width: 0;

    margin-left: 0;

    overflow: hidden;

    opacity: 0;

    color: #ffffff;

    font-size: 15px;
    line-height: 1;

    transform: translateX(-6px);

    transition:
        width 0.3s ease,
        margin-left 0.3s ease,
        opacity 0.25s ease,
        transform 0.3s ease;
}


/* =========================================================
   GET A QUOTE HOVER
========================================================= */

.hero-quote-btn:hover {
    color: #ffffff;
    background: #142769;

    border-color: #142769;

    transform: translateY(-2px);

    box-shadow:
        0 8px 20px rgba(20, 39, 105, 0.14);
}


.hero-quote-btn:hover > span:last-child {
    width: 16px;

    margin-left: 14px;

    opacity: 1;

    transform: translateX(0);
}


/* =========================================================
   VIEW SERVICES
========================================================= */

.hero-services-btn {
    position: relative;

    padding: 12px 2px;

    display: inline-flex;
    align-items: center;

    gap: 8px;

    color: #3568c8;

    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    line-height: 1;
    font-weight: 500;

    text-decoration: none;
}


/* Underline */

.hero-services-btn::after {
    content: "";

    position: absolute;

    left: 2px;
    bottom: 4px;

    width: 40px;
    height: 1px;

    background: #3568c8;

    transition: width 0.3s ease;
}


/* Arrow */

.hero-services-btn > span:last-child {
    font-size: 16px;

    transition: transform 0.3s ease;
}


/* =========================================================
   VIEW SERVICES HOVER
========================================================= */

.hero-services-btn:hover::after {
    width: calc(100% - 4px);
}


.hero-services-btn:hover > span:last-child {
    transform: translateX(4px);
}


/* =========================================================
   CLEAN HERO SPACING
========================================================= */

main {
    padding-bottom: 0;
}

/* ============================================================VERIFICATION PROCESS================================================================== */
   

.verification-process {
    width: 100%;

    padding: 80px 80px;

    background: #f8f9fc;
}


.verification-container {
    width: 100%;
}


/* ========================================
   VERIFICATION PROCESS HEADING
======================================== */

.verification-heading {
    width: 100%;
    max-width: 1100px;

    margin: 0 auto;

    display: flex;
    flex-direction: column;
    align-items: center;

    text-align: center;
}


.verification-eyebrow {
    margin: 0 0 10px;

    color: #3568c8;

    font-size: 17px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 1.6px;

    text-align: center;
}


.verification-title {
    margin: 0;

    color: #142769;

    font-size: 48px;
    line-height: 1.08;
    font-weight: 600;

    letter-spacing: -0.7px;

    text-align: center;
}


.verification-description {
    width: 100%;
    max-width: 700px;

    margin: 16px auto 0;

    color: #5f6d8c;

    font-size: 21px;
    line-height: 1.45;
    font-weight: 300;

    letter-spacing: 0.2px;

    text-align: center;
}


/* ========================================
   PROCESS TIMELINE
======================================== */

.process-timeline {
    position: relative;

    width: 100%;

    margin-top: 70px;

    display: grid;
    grid-template-columns: repeat(4, 1fr);

    column-gap: 50px;
}


/* ========================================
   CONTINUOUS TIMELINE TRACK
======================================== */

.timeline-track {
    position: absolute;

    left: calc(12.5% - 18.75px);
    right: calc(12.5% - 18.75px);

    top: 49px;

    height: 1px;

    background: rgba(20, 39, 105, 0.16);

    z-index: 0;
}


.timeline-progress {
    position: absolute;

    top: 50%;
    left: 0;

    width: 0;
    height: 2px;

    background: #3568c8;

    transform: translateY(-50%);

    transition:
        width 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}


/* ========================================
   PROCESS STEP
======================================== */

.process-step {
    position: relative;
    z-index: 2;

    min-width: 0;

    padding: 0 12px 60px;

    text-align: center;
}


/* ========================================
   PROCESS NUMBER
======================================== */

.process-number {
    margin: 0 0 20px;

    color: #142769;

    font-size: 21px;
    line-height: 1;
    font-weight: 500;

    letter-spacing: 0.5px;

    transition: color 0.25s ease;
}


/* ========================================
   PROCESS MARKER
======================================== */

.process-marker {
    position: relative;
    z-index: 3;

    width: 100%;
    height: 18px;

    margin-bottom: 25px;

    display: flex;
    align-items: center;
    justify-content: center;
}


.process-marker::before {
    display: none;
}


.process-marker span {
    position: relative;
    z-index: 4;

    display: block;

    width: 12px;
    height: 12px;

    background: #ffffff;

    border: 2px solid #142769;
    border-radius: 50%;

    transition:
        background 0.25s ease,
        border-color 0.25s ease,
        transform 0.25s ease,
        box-shadow 0.25s ease;
}


/* ========================================
   ACTIVE PROCESS MARKER
======================================== */

.process-step.is-active .process-marker span {
    background: #3568c8;

    border-color: #3568c8;

    transform: scale(1.08);

    box-shadow:
        0 0 0 4px rgba(53, 104, 200, 0.10);
}


.process-step.is-active .process-number {
    color: #3568c8;
}


/* ========================================
   PROCESS CONTENT
======================================== */

.process-content {
    width: 100%;
    max-width: 270px;

    margin: 0 auto;
}


.process-content h3 {
    margin: 0 0 12px;

    color: #142769;

    font-size: 19px;
    line-height: 1.3;
    font-weight: 600;
}


.process-content p {
    margin: 0;

    color: #7b8499;

    font-size: 14px;
    line-height: 1.55;
    font-weight: 300;
}

/* Tablet / Mobile CTA hidden on desktop */

.verification-mobile-action {
    display: none;
}


/* ========================================
   LEARN MORE
======================================== */

.process-link {
    position: absolute;

    left: 50%;
    bottom: 8px;

    transform: translate(-50%, 6px);

    margin: 0;

    padding: 9px 16px;

    display: inline-flex;
    align-items: center;
    gap: 8px;

    white-space: nowrap;

    color: #142769;

    background: rgba(20, 39, 105, 0.05);

    border: 1px solid rgba(20, 39, 105, 0.12);
    border-radius: 6px;

    font-size: 13px;
    line-height: 1;
    font-weight: 500;

    text-decoration: none;

    opacity: 0;
    pointer-events: none;

    transition:
        opacity 0.22s ease,
        transform 0.22s ease,
        background 0.22s ease,
        border-color 0.22s ease,
        color 0.22s ease;
}


/* Reveal Learn More */

.process-step:hover .process-link {
    opacity: 1;

    transform: translate(-50%, 0);

    pointer-events: auto;
}


/* Learn More Hover */

.process-link:hover {
    color: #142769;

    background: rgba(20, 39, 105, 0.09);

    border-color: rgba(20, 39, 105, 0.22);
}


/* Arrow */

.process-arrow {
    display: inline-block;

    font-size: 15px;
    line-height: 1;

    transform: rotate(0deg);

    transition: transform 0.25s ease;
}


.process-link:hover .process-arrow {
    transform: rotate(-45deg);
}


/* ====================================================WHY ORGANISATIONS CHOOSE US=================================================================== */

.why-choose-us {
    width: 100%;

    padding: 80px 80px;

    background: #ffffff;
}


.why-container {
    width: 100%;
    max-width: 1420px;

    margin: 0 auto;

    display: grid;
    grid-template-columns: 0.95fr 1.05fr;

    gap: 100px;

    align-items: center;
}


/* ========================================
   WHY - LEFT CONTENT
======================================== */

.why-content {
    width: 100%;
    max-width: 620px;
}


/* Small Label */

.why-eyebrow {
    margin: 0 0 18px;

    color: #3568c8;

    font-size: 17px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 1.6px;
}


/* Main Heading */

.why-title {
    margin: 0;

    color: #142769;

    font-size: 48px;
    line-height: 1.12;
    font-weight: 600;

    letter-spacing: -0.7px;
}


/* Supporting Description */

.why-description {
    width: 100%;
    max-width: 590px;

    margin: 22px 0 0;

    color: #5f6d8c;

    font-size: 21px;
    line-height: 1.48;
    font-weight: 300;

    letter-spacing: 0.1px;
}


/* ========================================
   BRAND STATEMENT
======================================== */

.why-statement {
    margin-top: 28px;

    padding: 13px 0 13px 28px;

    border-left: 3px solid #3568c8;
}


.why-statement h3 {
    margin: 0 0 8px;

    color: #3568c8;

    font-size: 20px;
    line-height: 1.3;
    font-weight: 600;
}


.why-statement p {
    margin: 0;

    color: #7b8499;

    font-size: 16px;
    line-height: 1.4;
    font-weight: 300;
}


/* ========================================
   WHY - LEFT STATISTICS
======================================== */

.why-stats {
    position: relative;

    width: 100%;
    max-width: 500px;

    margin-top: 26px;
    padding-top: 26px;

    display: grid;
    grid-template-columns: 1fr 1px 1fr;

    align-items: center;

    border-top: 1px solid rgba(20, 39, 105, 0.18);
}


/* Individual Statistic */

.why-stat {
    min-height: 155px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    text-align: center;
}


/* Statistic Number */

.why-stat strong {
    margin: 0 0 8px;

    color: #142769;

    font-size: 48px;
    line-height: 1;
    font-weight: 400;

    letter-spacing: -1px;
}


/* Statistic Description */

.why-stat p {
    margin: 0;

    color: #7b8499;

    font-size: 15px;
    line-height: 1.4;
    font-weight: 300;
}


/* Vertical Divider */

.why-stat-divider {
    width: 1px;
    height: 145px;

    background: rgba(20, 39, 105, 0.18);
}


/* ========================================
   WHY - RIGHT BENEFITS
======================================== */

.why-benefits {
    width: 100%;

    display: flex;
    flex-direction: column;
}


/* Individual Benefit */

.why-benefit-item {
    position: relative;

    width: 100%;
    min-height: 175px;

    display: grid;
    grid-template-columns: 46px 3px 1fr;

    column-gap: 28px;

    align-items: center;

    padding: 32px 0;

    border-bottom: 1px solid rgba(20, 39, 105, 0.16);
}


/* No divider after final benefit */

.why-benefit-item:last-child {
    border-bottom: none;
}


/* Benefit Number */

.why-benefit-number {
    align-self: start;

    padding-top: 7px;

    color: #3568c8;

    font-size: 17px;
    line-height: 1;

    font-weight: 600;
    letter-spacing: 0.4px;
}


/* Blue Vertical Accent */

.why-benefit-accent {
    width: 3px;
    height: 100%;

    min-height: 130px;

    background: #3568c8;
}


/* Benefit Content */

.why-benefit-content {
    width: 100%;

    align-self: center;
}


.why-benefit-content h3 {
    margin: 0 0 24px;

    color: #111111;

    font-size: 22px;
    line-height: 1.3;

    font-weight: 600;
    letter-spacing: -0.2px;
}


.why-benefit-content p {
    width: 100%;
    max-width: 520px;

    margin: 0;

    color: #303747;

    font-size: 16px;
    line-height: 1.65;

    font-weight: 400;
}

/* ========================================LATEST NEWS & INDUSTRY INSIGHTS======================================== */

.social-insights {
    width: 100%;

    padding: 80px 80px;

    background: #f8f9fc;
}


.social-insights-container {
    width: 100%;
    max-width: 1420px;
    margin: 0 auto;
}


/* ========================================
   SECTION HEADING
======================================== */

.social-insights-heading {
    width: 100%;
    max-width: 900px;

    margin: 0 auto;

    text-align: center;
}


.social-insights-eyebrow {
    margin: 0 0 14px;

    color: #3568c8;

    font-size: 17px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 1.6px;
}


.social-insights-title {
    margin: 0;

    color: #142769;

    font-size: 48px;
    line-height: 1.1;
    font-weight: 600;

    letter-spacing: -0.7px;
}


.social-insights-description {
    width: 100%;
    max-width: 760px;

    margin: 18px auto 0;

    color: #5f6d8c;

    font-size: 20px;
    line-height: 1.5;
    font-weight: 300;
}


/* ========================================
   SOCIAL PLATFORM TABS
======================================== */

.social-feed-tabs {
    width: fit-content;

    margin: 34px auto 22px;

    padding: 5px;

    display: flex;
    align-items: center;
    gap: 4px;

    background: #ffffff;

    border: 1px solid rgba(20, 39, 105, 0.12);
    border-radius: 9px;
}

.social-feed-tab {
    position: relative;

    min-width: 125px;

    padding: 9px 15px;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    color: #7b8499;
    background: transparent;

    border: none;
    border-radius: 6px;

    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    line-height: 1;
    font-weight: 500;

    cursor: pointer;

    transition:
        color 0.2s ease,
        background 0.2s ease,
        box-shadow 0.2s ease;
}


.social-feed-tab:hover {
    color: #142769;
}


.social-feed-tab.is-active {
    color: #142769;

    background: #f2f5fb;

    box-shadow:
        0 1px 3px rgba(20, 39, 105, 0.08);
}


/* ========================================
   TAB ICONS
======================================== */

.social-tab-icon {
    width: 23px;
    height: 23px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    color: #ffffff;

    border-radius: 4px;

    font-size: 16px;
    line-height: 1;
    font-weight: 700;
}


.social-tab-linkedin {
    background: #0a66c2;
}


.social-tab-facebook {
    background: #1877f2;

    font-family: Arial, sans-serif;
}


/* ========================================
   SOCIAL FEED WRAPPER
======================================== */

.social-feed-wrapper {
    width: 100%;
    max-width: 1180px;

    margin: 0 auto;
}


/* ========================================
   FEED PANELS
======================================== */

.social-feed-panel {
    width: 100%;

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 18px;
}


/*
   Inactive panels take up zero layout space.
*/

.social-feed-panel[hidden] {
    display: none !important;
}


/* ========================================
   SOCIAL POST CARD
======================================== */

.social-post {
    width: 100%;
    min-width: 0;

    display: flex;
    flex-direction: column;

    padding: 0;

    background: #ffffff;

    border: 1px solid rgba(20, 39, 105, 0.10);
    border-radius: 10px;

    overflow: hidden;

    box-shadow:
        0 8px 28px rgba(20, 39, 105, 0.045);

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease;
}


.social-post:hover {
    transform: translateY(-3px);

    border-color: rgba(53, 104, 200, 0.18);

    box-shadow:
        0 14px 34px rgba(20, 39, 105, 0.08);
}


/* ========================================
   PLATFORM ICON
======================================== */

.social-post-platform {
    position: absolute;

    width: 34px;
    height: 34px;

    margin: 18px 0 0 18px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #ffffff;

    border-radius: 6px;

    font-size: 19px;
    line-height: 1;
    font-weight: 700;

    z-index: 2;
}


.social-post-platform.linkedin {
    background: #0a66c2;
}


.social-post-platform.facebook {
    background: #1877f2;

    font-family: Arial, sans-serif;
    font-size: 21px;
}


/* ========================================
   POST CONTENT
======================================== */

.social-post-content {
    min-width: 0;

    display: flex;
    flex-direction: column;

    height: 100%;
}


.social-post-header {
    min-height: 64px;

    margin: 0;

    padding: 16px 18px 10px 64px;

    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 10px;
}


.social-post-header strong {
    color: #111111;

    font-size: 13px;
    line-height: 1.35;
    font-weight: 600;
}


.social-post-time {
    flex-shrink: 0;

    color: #9aa2b2;

    font-size: 11px;
    line-height: 1.35;
    font-weight: 400;
}


/* ========================================
   POST IMAGE
======================================== */

.social-post-image {
    width: 100%;

    margin: 0;

    order: 2;

    overflow: hidden;

    background: #f3f5f9;

    border-top: 1px solid rgba(20, 39, 105, 0.07);
    border-bottom: 1px solid rgba(20, 39, 105, 0.07);
}


.social-post-image a {
    display: block;

    width: 100%;
}


.social-post-image img {
    display: block;

    width: 100%;
    height: 285px;

    object-fit: cover;
    object-position: center;

    transition: transform 0.35s ease;
}


.social-post:hover .social-post-image img {
    transform: scale(1.015);
}


/* ========================================
   POST TEXT
======================================== */

.social-post-text {
    margin: 0;

    padding: 12px 18px 0;

    color: #4f596d;

    font-size: 12px;
    line-height: 1.55;
    font-weight: 400;

    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;

    overflow: hidden;

    order: 3;
}


.social-post-tags {
    margin: 0;

    padding: 7px 18px 0;

    color: #3568c8;

    font-size: 11px;
    line-height: 1.45;
    font-weight: 500;

    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;

    overflow: hidden;

    order: 4;
}


/* ========================================
   POST SOURCE LINK
======================================== */

.social-post-source-link {
    width: fit-content;

    margin: auto 18px 17px;
    padding-top: 14px;

    display: inline-flex;
    align-items: center;

    color: #142769;

    font-size: 11px;
    line-height: 1.3;
    font-weight: 500;

    text-decoration: none;

    order: 5;

    transition:
        color 0.2s ease,
        transform 0.2s ease;
}


.social-post-source-link:hover {
    color: #3568c8;

    transform: translateX(3px);
}

/* ========================================
   LINKEDIN — EMPTY STATE
======================================== */

.linkedin-feed-grid.linkedin-post-count-0 {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}


/* Empty State Card */

.linkedin-empty-state {
    width: 100%;
    max-width: 620px;

    min-height: 250px;

    margin: 0 auto;
    padding: 38px 42px;

    display: flex;
    align-items: flex-start;
    gap: 24px;

    background: #ffffff;

    border: 1px solid rgba(20, 39, 105, 0.10);
    border-radius: 12px;

    box-shadow:
        0 10px 32px rgba(20, 39, 105, 0.045);

    box-sizing: border-box;
}


/* LinkedIn Icon */

.linkedin-empty-icon {
    width: 52px;
    height: 52px;

    flex: 0 0 52px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #0a66c2;
    color: #ffffff;

    border-radius: 8px;

    font-family: Arial, sans-serif;
    font-size: 25px;
    line-height: 1;
    font-weight: 700;
}


/* Content */

.linkedin-empty-content {
    min-width: 0;
    padding-top: 2px;
}


.linkedin-empty-eyebrow {
    display: block;

    margin-bottom: 8px;

    color: #3568c8;

    font-size: 12px;
    line-height: 1.3;
    font-weight: 600;

    letter-spacing: 0.5px;
}


.linkedin-empty-title {
    margin: 0;

    color: #142769;

    font-size: 25px;
    line-height: 1.25;
    font-weight: 600;

    letter-spacing: -0.3px;
}


.linkedin-empty-description {
    max-width: 430px;

    margin: 12px 0 0;

    color: #5f6d8c;

    font-size: 14px;
    line-height: 1.6;
    font-weight: 400;
}


/* CTA */

.linkedin-empty-link {
    margin-top: 20px;

    display: inline-flex;
    align-items: center;
    gap: 9px;

    color: #142769;

    font-size: 13px;
    line-height: 1;
    font-weight: 600;

    text-decoration: none;

    transition: color 0.2s ease;
}


.linkedin-empty-link span {
    display: inline-block;

    font-size: 17px;

    transition: transform 0.2s ease;
}


.linkedin-empty-link:hover {
    color: #0a66c2;
}


.linkedin-empty-link:hover span {
    transform: translateX(4px);
}

/* ========================================
   LINKEDIN — EMPTY STATE DESKTOP
======================================== */

@media (min-width: 901px) {

    /*
     * When LinkedIn has no posts, the panel
     * becomes a normal full-width container
     * instead of inheriting the feed layout.
     */

    #linkedin-panel:has(.linkedin-post-count-0) {
        width: 100%;
        max-width: 100%;

        display: block;

        overflow: visible;
    }


    #linkedin-panel .linkedin-post-count-0 {
        width: 100%;
        max-width: 100%;

        display: flex;
        justify-content: center;
        align-items: center;

        margin: 0 auto;
    }


    #linkedin-panel .linkedin-post-count-0 .linkedin-empty-state {
        width: 620px;
        max-width: 620px;

        margin: 0 auto;

        flex: none;
    }

}

/* ========================================
   FEED FOOTER
======================================== */

.social-feed-footer {
    width: 100%;

    margin-top: 28px;

    display: flex;
    justify-content: center;
}


.social-profile-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    color: #142769;

    font-size: 14px;
    line-height: 1;
    font-weight: 500;

    text-decoration: none;

    transition: color 0.2s ease;
}


.social-profile-link:hover {
    color: #3568c8;
}


.social-profile-arrow {
    display: inline-block;

    font-size: 17px;

    transition: transform 0.2s ease;
}


.social-profile-link:hover .social-profile-arrow {
    transform: translateX(4px);
}

/* ============================================================CORPORATE CTA / NATIONAL TRUST ===================================================== */

/* =========================================================
   CORPORATE CTA / NATIONAL TRUST
   CLEAN FINAL DESKTOP — 1440PX
========================================================= */

.corporate-cta {
    width: 100%;
    padding: 90px;
    background: #ffffff;
    overflow: hidden;
    box-sizing: border-box;
}


/* =========================================================
   MAIN CONTAINER
========================================================= */

.corporate-cta-container {
    width: 100%;
    max-width: 1420px;
    min-height: 570px;

    margin: 0 auto;

    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    column-gap: 70px;
    align-items: center;
}


/* =========================================================
   LEFT CONTENT
========================================================= */

.corporate-cta-content {
    position: relative;
    z-index: 5;

    width: 100%;
    max-width: 610px;
}


.corporate-cta-eyebrow {
    margin: 0 0 20px;

    color: #3568c8;

    font-size: 17px;
    line-height: 1.2;
    font-weight: 600;
    letter-spacing: 1.6px;
}


.corporate-cta-title {
    margin: 0;

    color: #142769;

    font-size: 52px;
    line-height: 1.1;
    font-weight: 600;
    letter-spacing: -1px;
}


.corporate-cta-title span {
    display: block;
}


.corporate-cta-description {
    width: 100%;
    max-width: 550px;

    margin: 25px 0 0;

    color: #5f6d8c;

    font-size: 20px;
    line-height: 1.55;
    font-weight: 300;
}


/* =========================================================
   GET A QUOTE BUTTON
========================================================= */

.corporate-cta-button {
    width: fit-content;

    margin-top: 32px;
    padding: 15px 22px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    color: #142769;
    background: transparent;

    border: 1px solid rgba(20, 39, 105, 0.55);
    border-radius: 6px;

    font-size: 15px;
    line-height: 1;
    font-weight: 500;

    text-decoration: none;

    box-shadow: 0 5px 16px rgba(20, 39, 105, 0.04);

    transition:
        color 0.3s ease,
        background 0.3s ease,
        border-color 0.3s ease,
        box-shadow 0.3s ease,
        transform 0.3s ease;
}


.corporate-cta-arrow {
    display: inline-block;

    width: 0;
    margin-left: 0;

    overflow: hidden;
    opacity: 0;

    font-size: 17px;
    line-height: 1;

    transform: translateX(-5px);

    transition:
        width 0.3s cubic-bezier(0.22, 1, 0.36, 1),
        margin-left 0.3s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.2s ease,
        transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}


.corporate-cta-button:hover {
    color: #ffffff;
    background: #142769;
    border-color: #142769;

    transform: translateY(-2px);

    box-shadow: 0 8px 22px rgba(20, 39, 105, 0.12);
}


.corporate-cta-button:hover .corporate-cta-arrow {
    width: 17px;
    margin-left: 10px;

    opacity: 1;

    transform: translateX(0);
}


/* =========================================
   CORPORATE CTA — SECONDARY CONTACT LINK
   Matches the homepage hero CTA styling
========================================= */


.corporate-cta-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 24px;
}


.corporate-cta-actions .corporate-cta-button {
    flex-shrink: 0;
    margin: 0;
}

.corporate-contact-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;

    width: fit-content;
    flex-shrink: 0;
    margin: 0;
    padding: 0;

    color: #3568c8;
    font-size: inherit;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none;

    transition: color 0.3s ease;
}

/* Short underline visible by default */
.corporate-contact-link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -10px;

    width: 60px;
    height: 1px;
    background-color: currentColor;

    transition: width 0.3s ease;
}

/* Extend underline on hover */
.corporate-contact-link:hover::after,
.corporate-contact-link:focus-visible::after {
    width: 100%;
}

.corporate-contact-link:hover {
    color: #142769;
}

/* Subtle arrow movement */
.corporate-contact-link span:last-child {
    display: inline-block;
    transition: transform 0.3s ease;
}

.corporate-contact-link:hover span:last-child {
    transform: translateX(4px);
}

/* Mobile responsiveness */
@media (max-width: 480px) {
    .corporate-cta-actions {
        gap: 28px;
    }
}


/* Accessibility */
@media (prefers-reduced-motion: reduce) {
    .corporate-contact-link,
    .corporate-contact-link::after,
    .corporate-contact-link span:last-child {
        transition: none;
    }
}


/* =========================================================
   RIGHT TRUST VISUAL
========================================================= */

.corporate-trust-visual {
    position: relative;
    isolation: isolate;

    width: 100%;
    height: 570px;
}

/* =========================================================
   SOUTH AFRICA MAP
========================================================= */

.corporate-map {
    position: absolute;
    z-index: 2;

    left: 52%;
    top: calc(50% - 29px);

    width: 600px;
    height: 460px;

    transform: translate(-50%, -50%);

    display: flex;
    align-items: center;
    justify-content: center;
}


.corporate-map-glow {
    position: absolute;

    left: 50%;
    top: 53%;

    width: 470px;
    height: 360px;

    transform: translate(-50%, -50%);

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(53, 104, 200, 0.09) 0%,
            rgba(53, 104, 200, 0.035) 48%,
            rgba(53, 104, 200, 0) 72%
        );

    pointer-events: none;
}


.corporate-map img {
    position: relative;
    z-index: 2;

    display: block;

    width: 526px;
    max-width: 100%;
    height: auto;

    object-fit: contain;
}


/* =========================================================
   FLOATING TRUST CARDS — REFINED
========================================================= */

.corporate-trust-card {
    position: absolute;
    z-index: 5;

    width: 300px;
    min-height: 82px;

    padding: 14px 18px;

    display: grid;
    grid-template-columns: 26px 1px 1fr;
    column-gap: 10px;
    align-items: center;

    background: rgba(255, 255, 255, 0.98);

    border: 1px solid rgba(20, 39, 105, 0.10);
    border-radius: 10px;

    box-shadow: 0 10px 26px rgba(20, 39, 105, 0.065);

    box-sizing: border-box;
}


/* CARD POSITIONS */

.corporate-card-01 {
    top: 14px;
    left: 45px;

    width: 270px;
}


.corporate-card-02 {
    left: -30px;
    bottom: 15px;
}


.corporate-card-03 {
    right: 0;
    bottom: 15px;
}


/* NUMBER */

.corporate-card-number {
    width: auto;
    height: auto;

    display: block;

    color: #3568c8;
    background: transparent;

    border: none;

    font-size: 16px;
    line-height: 1;
    font-weight: 600;

    letter-spacing: 0.2px;
}


/* DIVIDER */

.corporate-card-divider {
    width: 1px;
    height: 38px;

    background: rgba(20, 39, 105, 0.16);
}


/* =========================================================
   CARD CONTENT
========================================================= */

.corporate-card-content {
    min-width: 0;
}


.corporate-card-content h3 {
    margin: 0 0 5px;

    color: #111111;

    font-size: 15px;
    line-height: 1.3;
    font-weight: 600;

    letter-spacing: -0.15px;
}


.corporate-card-content p {
    margin: 0;

    color: #7a869d;

    font-size: 12px;
    line-height: 1.4;
    font-weight: 400;
}


/* =========================================================
   HOMEPAGE SECTION SCROLL
========================================================= */

html {
    scroll-behavior: smooth;
}







/* ========================================SERVICES PAGE - HERO ================================================================= */

.services-hero {
    position: relative;

    width: 100%;
    height: 560px;

    overflow: hidden;

    background: #ffffff;
}


/* ========================================
   HERO IMAGE - FULL SECTION
======================================== */

.services-hero-image {
    position: absolute;

    top: 0;
    right: 0;
    bottom: 0;
    left: 0;

    width: 100%;
    height: 100%;

    z-index: 1;
}


.services-hero-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    /* Keeps the people slightly toward the right */
    object-position: center center;
}


/* ========================================
   WHITE LEFT-SIDE GRADIENT
======================================== */

.services-hero::after {
    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 62%;
    height: 100%;

    z-index: 2;

    background: linear-gradient(
        90deg,
        #ffffff 0%,
        rgba(255, 255, 255, 0.99) 30%,
        rgba(255, 255, 255, 0.94) 47%,
        rgba(255, 255, 255, 0.70) 65%,
        rgba(255, 255, 255, 0.28) 82%,
        rgba(255, 255, 255, 0) 100%
    );

    pointer-events: none;
}


/* ========================================
   HERO CONTENT
======================================== */

.services-hero-content {
    position: relative;

    z-index: 3;

    width: 100%;
    height: 100%;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding-left: 90px;
}


/* ========================================
   EYEBROW
======================================== */

.services-hero-eyebrow {
    margin: 0 0 4px;

    color: #3568c8;

    font-size: 22px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 0.5px;
}


/* ========================================
   HEADING
======================================== */

.services-hero-content h1 {
    width: 720px;
    max-width: 720px;

    margin: 0;

    color: #142769;

    font-size: 48px;
    line-height: 1.08;
    font-weight: 600;

    letter-spacing: -1.2px;
}


/* ========================================
   BLUE ACCENT LINE
======================================== */

.services-hero-line {
    width: 55px;
    height: 2px;

    margin: 26px 0 20px;

    background: #3568c8;
}


/* ========================================
   DESCRIPTION
======================================== */

.services-hero-description {
    width: 540px;
    max-width: 540px;

    margin: 0;

    color: #445473;

    font-size: 16px;
    line-height: 1.55;
    font-weight: 400;
}

/* ========================================
   SERVICES - VERIFICATION JOURNEY
======================================== */

.services-journey {
    width: 100%;

    padding: 90px 90px 110px;

    background: #ffffff;
}


.services-journey-container {
    width: 100%;
    max-width: 1500px;

    margin: 0 auto;
}

/* ========================================
   SERVICES - JOURNEY NAVIGATION
   COMPACT STICKY VERSION
======================================== */

.services-journey-nav {
    position: sticky;
    top: 154px;
    z-index: 50;

    width: 100%;

    background: rgba(255, 255, 255, 0.98);

    border-top: 1px solid rgba(20, 39, 105, 0.06);
    border-bottom: 1px solid rgba(20, 39, 105, 0.08);

    box-shadow: 0 5px 16px rgba(20, 39, 105, 0.05);

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}


.services-journey-nav-inner {
    width: 100%;
    max-width: 1500px;
    height: 64px;

    margin: 0 auto;
    padding: 0 90px;

    display: flex;
    align-items: stretch;
    justify-content: space-between;

    box-sizing: border-box;
}


/* LEFT */

.services-journey-nav-intro {
    position: relative;

    display: flex;
    align-items: center;

    gap: 18px;

    padding-right: 28px;
}

.services-journey-nav-intro::after {
    content: "";

    position: absolute;

    top: 16px;
    right: 0;
    bottom: 16px;

    width: 1px;

    background: rgba(20, 39, 105, 0.12);
}


.services-journey-nav-eyebrow {
    position: relative;

    padding-right: 18px;

    color: #3568c8;

    font-size: 9px;
    line-height: 1;
    font-weight: 600;

    letter-spacing: 1.5px;
}

.services-journey-nav-eyebrow::after {
    content: "";

    position: absolute;

    top: 50%;
    right: 0;

    width: 1px;
    height: 18px;

    background: rgba(20, 39, 105, 0.14);

    transform: translateY(-50%);
}

.services-journey-nav-title {
    color: #142769;

    font-size: 14px;
    line-height: 1;
    font-weight: 500;

    white-space: nowrap;
}



/* RIGHT */

/* ========================================
   JOURNEY STEPS
======================================== */

.services-journey-nav-steps {
    height: 100%;

    display: flex;
    align-items: stretch;
}

.services-journey-nav-link {
    height: 100%;

    padding: 0 24px;

    display: flex;
    align-items: center;

    gap: 8px;

    color: #53627d;

    font-size: 11px;
    line-height: 1;
    font-weight: 500;

    text-decoration: none;

    border-left: 1px solid rgba(20, 39, 105, 0.08);

    box-sizing: border-box;

    transition:
        color 0.25s ease,
        background 0.25s ease;
}

.services-journey-nav-link:last-child {
    border-right: 1px solid rgba(20, 39, 105, 0.08);
}

.services-journey-nav-link span {
    color: #9bbce7;

    font-size: 9px;
    font-weight: 600;

    transition: color 0.25s ease;
}

.services-journey-nav-link:hover {
    color: #142769;

    background: #f7f9fc;
}

.services-journey-nav-link:hover span {
    color: #3568c8;
}


/* ========================================
   ANCHOR OFFSET
======================================== */

#planning,
#assessment,
#onsite,
#outcome {
    scroll-margin-top: 230px;
}


/* ========================================
   INDIVIDUAL JOURNEY STEP
======================================== */

.journey-step {
    width: 100%;

    display: grid;
    grid-template-columns: 640px 1fr;

    align-items: center;

    column-gap: 35px;

    margin-bottom: 115px;

    opacity: 0.52;

    transition:
        opacity 0.8s ease;
}

.journey-step-right {
    grid-template-columns: 1fr 640px;
}


.journey-step:last-child {
    margin-bottom: 0;
}


/* ========================================
   JOURNEY IMAGE
======================================== */

.journey-image {
    width: 640px;
    height: 410px;

    padding: 0;
    margin: 0;

    overflow: hidden;

    border: none;
    border-radius: 5px;

    background: transparent;

    box-shadow:
        0 12px 28px rgba(15, 34, 70, 0.12);
}


.journey-image img {
    display: block;

    width: 640px;
    height: 410px;

    padding: 0;
    margin: 0;

    border: none;

    object-fit: cover;

    filter:
        grayscale(1)
        saturate(0);

    transition:
        filter 0.9s ease;
}


/* ========================================
   JOURNEY INFORMATION
======================================== */

.journey-info {
    width: 100%;
    min-height: 410px;

    display: flex;
    align-items: flex-start;

    gap: 28px;
}


/* ========================================
   JOURNEY NUMBER
   ALIGN WITH HEADING
======================================== */

.journey-number {
    flex: 0 0 auto;
    align-self: center;

    /* Moves number down so it aligns with heading */
    transform: translateY(-92px);

    color: #9bbce7;

    font-size: 68px;
    line-height: 1;
    font-weight: 300;

    letter-spacing: -2px;

    opacity: 0.65;

    transition:
        color 0.8s ease,
        opacity 0.8s ease;
}


/* ========================================
   VERTICAL DIVIDER
======================================== */

.journey-divider {
    width: 1px;
    height: 295px;

    flex: 0 0 1px;

    /* Move divider lower without affecting number/text */
    transform: translateY(62px);

    background: rgba(53, 104, 200, 0.45);
}


/* ========================================
   JOURNEY COPY
======================================== */

.journey-copy {
    width: 100%;
    max-width: 620px;

    align-self: center;
}


.journey-copy h2 {
    margin: 0 0 18px;

    color: #142769;

    font-size: 37px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: -0.6px;
}


.journey-copy p {
    margin: 0;

    color: #53627d;

    font-size: 21.5px;
    line-height: 1.55;
    font-weight: 400;
}


/* ========================================
   RIGHT-HAND STEPS
======================================== */

.journey-step-right .journey-info {
    justify-content: flex-start;
}


.journey-step-right .journey-copy {
    text-align: left;
}


/* ========================================
   ACTIVE SCROLL STATE
======================================== */

.journey-step.is-active {
    opacity: 1;
}


/* NUMBER DARKENS */

.journey-step.is-active .journey-number {
    color: #3568c8;

    opacity: 1;
}


/* IMAGE RETURNS TO FULL COLOUR */

.journey-step.is-active .journey-image img {
    filter:
        grayscale(0)
        saturate(1);
}

/* ========================================
   SERVICES CTA — PREMIUM REFINEMENT
======================================== */

.services-cta {
    width: 100%;

    padding: 55px 90px 80px;

    background: #ffffff;

    box-sizing: border-box;
}


.services-cta-container {
    position: relative;

    width: 100%;
    max-width: 1500px;

    margin: 0 auto;
    padding: 70px 60px;

    text-align: center;

    background: #f8f9fb;

    border: 1px solid rgba(20, 39, 105, 0.10);
    border-radius: 6px;

    box-shadow: none;

    box-sizing: border-box;
    overflow: hidden;
}


/* ========================================
   TOP ACCENT
======================================== */

.services-cta-container::before {
    content: "";

    position: absolute;
    top: 0;
    left: 50%;

    width: 72px;
    height: 2px;

    background: #3568c8;

    transform: translateX(-50%);
}


/* ========================================
   EYEBROW
======================================== */

.services-cta-eyebrow {
    margin: 0 0 18px;

    color: #3568c8;

    font-size: 10px;
    line-height: 1;
    font-weight: 600;

    letter-spacing: 2px;
}


/* ========================================
   HEADING
======================================== */

.services-cta h2 {
    margin: 0;

    color: #142769;

    font-size: 40px;
    line-height: 1.18;
    font-weight: 500;

    letter-spacing: -0.8px;
}


/* ========================================
   DESCRIPTION
======================================== */

.services-cta-description {
    max-width: 650px;

    margin: 18px auto 0;

    color: #7a869d;

    font-size: 14px;
    line-height: 1.7;
    font-weight: 400;
}


/* ========================================
   BUTTON AREA
======================================== */

.services-cta-actions {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 12px;

    margin-top: 30px;
}


/* ========================================
   BUTTON BASE
======================================== */

.services-cta-button {
    min-width: 170px;
    height: 48px;

    padding: 0 24px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 6px;

    font-size: 12px;
    line-height: 1;
    font-weight: 500;

    text-decoration: none;

    box-sizing: border-box;

    transition:
        background 0.25s ease,
        color 0.25s ease,
        border-color 0.25s ease;
}


/* ========================================
   SERVICES CTA — PREMIUM BUTTONS
======================================== */

.services-cta-actions {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 10px;

    margin-top: 30px;
}


/* ========================================
   BUTTON BASE
======================================== */

.services-cta-button {
    min-width: 165px;
    height: 46px;

    padding: 0 24px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 5px;

    font-size: 12px;
    line-height: 1;
    font-weight: 500;
    letter-spacing: 0.1px;

    text-decoration: none;

    box-sizing: border-box;

    transition:
        background 0.25s ease,
        color 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease;
}


/* ========================================
   GET A QUOTE — PRIMARY
======================================== */

.services-cta-primary {
    position: relative;

    color: #ffffff;

    background: #142769;
    border: 1px solid #142769;

    box-shadow: 0 5px 14px rgba(20, 39, 105, 0.10);

    overflow: hidden;
}


/* HIDDEN ARROW */

.services-cta-primary::after {
    content: "→";

    position: absolute;
    right: 22px;

    opacity: 0;
    transform: translateX(-6px);

    font-size: 16px;
    line-height: 1;
    font-weight: 400;

    transition:
        opacity 0.25s ease,
        transform 0.25s ease;
}


/* TEXT MOVEMENT */

.services-cta-primary {
    transition:
        background 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease,
        padding-right 0.25s ease;
}


/* HOVER */

.services-cta-primary:hover {
    color: #ffffff;

    background: #0d1d54;
    border-color: #0d1d54;

    padding-right: 46px;

    box-shadow: 0 7px 18px rgba(20, 39, 105, 0.16);
}


.services-cta-primary:hover::after {
    opacity: 1;
    transform: translateX(0);
}


/* ========================================
   CONTACT US — SECONDARY
======================================== */

.services-cta-secondary {
    color: #142769;

    background: #ffffff;

    border: 1px solid rgba(20, 39, 105, 0.20);

    box-shadow: none;
}


.services-cta-secondary:hover {
    color: #142769;

    background: #f3f5f9;

    border-color: rgba(20, 39, 105, 0.38);
}

/* ========================================
   SERVICES JOURNEY - DESKTOP FOLLOWING NAV
======================================== */

@media (min-width: 1024px) {

    .services-journey-nav.is-following {
        position: fixed;
        top: 154px;
        left: 0;
        right: 0;
        width: 100%;
        z-index: 50;
    }

    .services-journey-nav-link.is-active {
        color: #142769;
        background: #f7f9fc;
    }

    .services-journey-nav-link.is-active span {
        color: #3568c8;
    }

}

/* ========================================
   SERVICES JOURNEY - DESKTOP FOLLOWING NAV
======================================== */

@media (min-width: 1024px) {

    .services-journey-nav.is-following {
        position: fixed;
        top: 154px;
        left: 0;
        right: 0;
        width: 100%;
        z-index: 50;
    }

    .services-journey.nav-is-following {
        padding-top: 154px;
    }

    .services-journey-nav-link.is-active {
        color: #142769;
        background: #f7f9fc;
    }

    .services-journey-nav-link.is-active span {
        color: #3568c8;
    }
}





  /* =======================================================MEET THE TEAM - HERO ===================================================================== */

.team-hero {
    position: relative;

    width: 100%;
    height: 490px;

    overflow: hidden;

    background: #ffffff;
}


/* ========================================
   HERO IMAGE
======================================== */

.team-hero-image {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    z-index: 1;
}

/* ========================================
   TEAM HERO IMAGE POSITION
======================================== */

.team-hero-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    /* Show more sky above the building */
    object-position: center 20%;
}


/* ========================================
   WHITE GRADIENT
======================================== */

.team-hero::after {
    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 63%;
    height: 100%;

    z-index: 2;

    background: linear-gradient(
        90deg,
        #ffffff 0%,
        rgba(255, 255, 255, 0.99) 28%,
        rgba(255, 255, 255, 0.94) 45%,
        rgba(255, 255, 255, 0.72) 63%,
        rgba(255, 255, 255, 0.30) 82%,
        rgba(255, 255, 255, 0) 100%
    );

    pointer-events: none;
}


/* ========================================
   HERO CONTENT
======================================== */

.team-hero-content {
    position: relative;

    z-index: 3;

    width: 100%;
    height: 100%;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding-left: 90px;
}


/* ========================================
   EYEBROW
======================================== */

.team-hero-eyebrow {
    margin: 0 0 4px;

    color: #3568c8;

    font-size: 22px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 0.5px;
}


/* ========================================
   HEADING
======================================== */

.team-hero-content h1 {
    width: 680px;
    max-width: 680px;

    margin: 0;

    color: #142769;

    font-size: 52px;
    line-height: 1.08;
    font-weight: 600;

    letter-spacing: -1.2px;
}


/* ========================================
   BLUE ACCENT LINE
======================================== */

.team-hero-line {
    width: 75px;
    height: 3px;

    margin: 28px 0 24px;

    background: #3568c8;
}


/* ========================================
   DESCRIPTION
======================================== */

.team-hero-description {
    width: 470px;
    max-width: 470px;

    margin: 0;

    color: #53627d;

    font-size: 18px;
    line-height: 1.55;
    font-weight: 400;
}

/* ========================================
   MEET THE TEAM - TEAM GRID
======================================== */

.team-grid-section {
    width: 100%;

    padding: 100px 90px 120px;

    background: #ffffff;
}


.team-grid-container {
    width: 100%;
    max-width: 1500px;

    margin: 0 auto;

    display: grid;
    grid-template-columns: repeat(3, 1fr);

    column-gap: 65px;
    row-gap: 90px;
}


/* ========================================
   TEAM MEMBER
======================================== */

.team-member {
    width: 100%;
}


/* ========================================
   MEMBER IMAGE - UNIFORM PORTRAITS
======================================== */

.team-member-image {
    width: 100%;
    aspect-ratio: 4 / 5;

    overflow: hidden;

    background: #f2f2f2;
}


.team-member-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center center;
}


/* ========================================
   BLUE ACCENT LINE
======================================== */

.team-member-line {
    width: 32px;
    height: 2px;

    margin: 20px 0 12px;

    background: #3568c8;
}


/* ========================================
   MEMBER NAME
======================================== */

.team-member h2 {
    margin: 0;

    color: #142769;

    font-size: 20px;
    line-height: 1.3;
    font-weight: 600;

    letter-spacing: 0.3px;
}


/* ========================================
   MEMBER ROLE
======================================== */

.team-member p {
    margin: 9px 0 0;

    color: #7a869d;

    font-size: 14px;
    line-height: 1.55;
    font-weight: 400;
}



/* ==========================================================CONTACT PAGE - HERO================================================================= */

.contact-hero {
    position: relative;

    width: 100%;
    height: 560px;

    overflow: hidden;

    background: #ffffff;
}


/* ========================================
   HERO IMAGE
======================================== */

.contact-hero-image {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    z-index: 1;
}


.contact-hero-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center center;
}


/* ========================================
   LEFT WHITE GRADIENT
======================================== */

.contact-hero::after {
    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 84%;
    height: 100%;

    z-index: 2;

    background: linear-gradient(
        90deg,
        #ffffff 0%,
        rgba(255, 255, 255, 0.99) 30%,
        rgba(255, 255, 255, 0.95) 46%,
        rgba(255, 255, 255, 0.76) 64%,
        rgba(255, 255, 255, 0.34) 82%,
        rgba(255, 255, 255, 0) 100%
    );

    pointer-events: none;
}




/* ========================================
   HERO CONTENT
======================================== */

.contact-hero-content {
    position: relative;

    z-index: 3;

    width: 100%;
    height: 100%;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding-left: 90px;
}


/* ========================================
   EYEBROW
======================================== */

.contact-hero-eyebrow {
    margin: 0 0 6px;

    color: #3568c8;

    font-size: 22px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 0.7px;
}


/* ========================================
   HEADING
======================================== */

.contact-hero-content h1 {
    width: 650px;
    max-width: 650px;

    margin: 0;

    color: #142769;

    font-size: 54px;
    line-height: 1.08;
    font-weight: 600;

    letter-spacing: -1.2px;
}


/* ========================================
   BLUE ACCENT LINE
======================================== */

.contact-hero-line {
    width: 80px;
    height: 3px;

    margin: 27px 0 24px;

    background: #3568c8;
}


/* ========================================
   DESCRIPTION
======================================== */

.contact-hero-description {
    width: 540px;
    max-width: 540px;

    margin: 0;

    color: #53627d;

    font-size: 19px;
    line-height: 1.55;
    font-weight: 400;
}

/* ========================================
   CONTACT HERO - SUBTLE APPEALS LINK
======================================== */

.contact-hero-appeals {
    display: flex;
    align-items: center;

    gap: 14px;

    width: fit-content;

    margin-top: 26px;
}


.contact-hero-appeals > span {
    color: #7a869d;

    font-size: 13px;
    line-height: 1.4;
    font-weight: 400;
}


.contact-hero-appeals a {
    display: inline-flex;
    align-items: center;

    gap: 7px;

    padding: 0 0 4px;

    color: #3568c8;
    background: transparent;

    border: none;
    border-bottom: 1px solid rgba(53, 104, 200, 0.35);
    border-radius: 0;

    text-decoration: none;

    font-size: 13px;
    line-height: 1.4;
    font-weight: 500;

    transition:
        color 0.25s ease,
        border-color 0.25s ease;
}


.contact-hero-appeals a span {
    font-size: 14px;

    transition: transform 0.25s ease;
}


.contact-hero-appeals a:hover {
    color: #142769;

    border-color: #142769;
}


.contact-hero-appeals a:hover span {
    transform: translateX(3px);
}

/* ========================================
   CONTACT PAGE - TOP ROW
======================================== */

.contact-main {
    width: 100%;

    margin-top: -50px;
    padding: 90px 90px 110px;

    background: #ffffff;
}

.contact-main-container {
    width: 100%;
    max-width: 1500px;
    margin: 0 auto;
}


/* ========================================
   TOP ROW LAYOUT
======================================== */

.contact-top-row {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    column-gap: 70px;
    align-items: stretch;
}


/* ========================================
   SHARED SECTION HEADINGS
======================================== */

.contact-section-eyebrow {
    margin: 0 0 5px;

    color: #3568c8;

    font-size: 17px;
    line-height: 1.2;
    font-weight: 600;
    letter-spacing: 0.3px;
}

.contact-details h2,
.contact-form-area h2 {
    margin: 0;

    color: #142769;

    font-size: 32px;
    line-height: 1.2;
    font-weight: 600;
    letter-spacing: -0.4px;
}

.contact-section-line {
    width: 62px;
    height: 2px;

    margin: 10px 0 30px;

    background: #3568c8;
}


/* ========================================
   LEFT COLUMN - CONTACT DETAILS
======================================== */

.contact-details {
    padding-right: 60px;

    border-right: 1px solid rgba(20, 39, 105, 0.14);
}


/* ========================================
   CONTACT DETAIL ITEMS
======================================== */

.contact-detail-item {
    display: flex;
    align-items: flex-start;

    gap: 18px;

    margin-bottom: 34px;
}

.contact-detail-item:last-child {
    margin-bottom: 0;
}


/* ========================================
   CONTACT ICON CIRCLES
======================================== */

.contact-detail-icon {
    width: 52px;
    height: 52px;

    flex: 0 0 52px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid #3568c8;
    border-radius: 50%;
}

.contact-detail-icon svg {
    width: 26px;
    height: 26px;

    fill: none;

    stroke: #68758c;
    stroke-width: 1.35;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* ========================================
   CONTACT DETAIL TEXT
======================================== */

.contact-detail-copy {
    padding-top: 3px;
}

.contact-detail-copy > span {
    display: block;

    margin-bottom: 4px;

    color: #7a869d;

    font-size: 12px;
    line-height: 1.3;
    font-weight: 500;
    text-transform: uppercase;
}

.contact-detail-copy a,
.contact-detail-copy p {
    margin: 0;

    color: #243a73;

    font-size: 17px;
    line-height: 1.5;
    font-weight: 400;

    text-decoration: none;
}

.contact-detail-copy a {
    transition: color 0.2s ease;
}

.contact-detail-copy a:hover {
    color: #3568c8;
}


/* ========================================
   RIGHT COLUMN - FORM
======================================== */

.contact-form-area {
    width: 100%;
    min-width: 0;
}

.contact-form {
    width: 100%;
}


/* ========================================
   TWO-COLUMN FORM GRID
======================================== */

.contact-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    column-gap: 30px;
    row-gap: 32px;
}


/* ========================================
   FORM FIELDS
======================================== */

.contact-field {
    width: 100%;
    min-width: 0;
}

/* ========================================
   CONTACT FORM VALIDATION
======================================== */

.contact-field input.is-invalid,
.contact-field textarea.is-invalid {
    border-color: #dc2626;
}

.contact-field input.is-invalid:focus,
.contact-field textarea.is-invalid:focus {
    border-color: #dc2626;
}

.contact-field-error {
    display: block;
    margin-top: 8px;
    color: #dc2626;
    font-size: 12px;
    line-height: 1.4;
    font-weight: 400;
}

.contact-field label {
    display: block;

    margin-bottom: 10px;

    color: #142769;

    font-size: 16px;
    line-height: 1.3;
    font-weight: 500;
}

.contact-field label span {
    color: #d44747;
}

.contact-field input {
    width: 100%;

    padding: 0 0 10px;

    background: transparent;

    border: none;
    border-bottom: 1px solid #9ba7ba;
    border-radius: 0;

    outline: none;

    color: #142769;

    font-family: inherit;
    font-size: 14px;
    line-height: 1.4;

    box-sizing: border-box;
}

.contact-field input::placeholder,
.contact-field textarea::placeholder {
    color: #a2acbd;
    opacity: 1;
}

.contact-field input:focus {
    border-bottom-color: #3568c8;
}


/* ========================================
   MESSAGE FIELD
======================================== */

.contact-message-field {
    margin-top: 34px;
}

.contact-field textarea {
    display: block;

    width: 100%;
    height: 155px;

    padding: 14px;

    resize: vertical;

    background: #ffffff;

    border: 1px solid #aeb8c8;
    border-radius: 5px;

    outline: none;

    color: #142769;

    font-family: inherit;
    font-size: 14px;
    line-height: 1.5;

    box-sizing: border-box;
}

.contact-field textarea:focus {
    border-color: #3568c8;
}


/* ========================================
   SUBMIT AREA
======================================== */

.contact-form-submit {
    display: flex;
    flex-direction: column;
    align-items: center;

    width: 100%;

    margin-top: 26px;
}

.contact-form-submit button {
    min-width: 160px;

    padding: 13px 28px;

    background: #ffffff;

    border: 1.5px solid #3568c8;
    border-radius: 6px;

    color: #3568c8;

    font-family: inherit;
    font-size: 16px;
    line-height: 1.2;
    font-weight: 500;

    cursor: pointer;

    transition:
        background 0.25s ease,
        color 0.25s ease;
}

.contact-form-submit button:hover {
    background: #3568c8;
    color: #ffffff;
}


/* ========================================
   FORM SECURITY NOTE
======================================== */

.contact-security-note {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 7px;

    margin-top: 14px;

    color: #9aa5b7;
}

.contact-security-note svg {
    width: 14px;
    height: 14px;

    flex: 0 0 14px;

    fill: none;

    stroke: #aeb6c3;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.contact-security-note span {
    font-size: 12px;
    line-height: 1.4;
    font-weight: 400;
}

/* ========================================
   CONTACT PAGE - LOCATION ROW
======================================== */

.contact-location-row {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;

    column-gap: 70px;
    align-items: center;

    width: calc(100% - 180px);

    margin: -80px auto 80px;
    padding-top: 35px;

    border-top: 1px solid rgba(20, 39, 105, 0.14);
}


/* ========================================
   INTERACTIVE MAP
======================================== */

.contact-map {
    width: 680px;
    height: 400px;

    justify-self: end;

    overflow: hidden;

    border-radius: 12px;

    background: #f3f5f8;
}

.contact-map iframe {
    display: block;

    width: 100%;
    height: 100%;

    border: 0;
}


/* ========================================
   LOCATION HEADING
======================================== */

.contact-location-copy {
    width: 100%;
}

.contact-location-copy h2 {
    margin: 0;

    color: #142769;

    font-size: 32px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: -0.4px;
}


/* ========================================
   OFFICE DETAILS
======================================== */

.contact-office {
    display: flex;
    align-items: flex-start;

    gap: 18px;
}

.contact-office-copy {
    padding-top: 2px;
}

.contact-office-copy h3 {
    margin: 0 0 5px;

    color: #142769;

    font-size: 19px;
    line-height: 1.3;
    font-weight: 600;
}

.contact-office-copy p {
    margin: 0;

    color: #344a79;

    font-size: 17px;
    line-height: 1.5;
    font-weight: 400;
}


/* ========================================
   CONTACT - GET DIRECTIONS
   PREMIUM MINIMAL
======================================== */

.contact-directions {
    display: inline-flex;
    align-items: center;
    gap: 14px;

    margin-top: 30px;
    padding: 0 0 8px;

    color: #142769;
    background: transparent;

    border: none;
    border-bottom: 1px solid rgba(20, 39, 105, 0.22);
    border-radius: 0;

    font-size: 16px;
    font-weight: 600;
    line-height: 1;

    text-decoration: none;

    box-shadow: none;

    transition:
        color 0.3s ease,
        border-color 0.3s ease;
}

/* ==========================================================APPEALS & COMPLAINTS PAGE - HERO======================================================== */

.appeals-hero {
    position: relative;

    width: 100%;
    height: 560px;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;

    background:
        /* Stronger blue glow - upper right */
        radial-gradient(
            ellipse at 94% 8%,
            rgba(65, 130, 225, 0.28) 0%,
            rgba(65, 130, 225, 0.15) 20%,
            rgba(65, 130, 225, 0.06) 38%,
            rgba(65, 130, 225, 0) 58%
        ),

        /* Blue depth - lower left */
        radial-gradient(
            ellipse at 0% 105%,
            rgba(53, 104, 200, 0.22) 0%,
            rgba(53, 104, 200, 0.10) 28%,
            rgba(53, 104, 200, 0.03) 48%,
            rgba(53, 104, 200, 0) 64%
        ),

        /* Bright centre */
        radial-gradient(
            ellipse at 50% 43%,
            rgba(255, 255, 255, 1) 0%,
            rgba(255, 255, 255, 0.90) 28%,
            rgba(255, 255, 255, 0.45) 55%,
            rgba(255, 255, 255, 0) 76%
        ),

        /* Base */
        linear-gradient(
            135deg,
            #f9fbff 0%,
            #f4f8fe 35%,
            #e9f2fc 68%,
            #dceafb 100%
        );
}

/* ========================================
   APPEALS HERO - ARCHITECTURAL RINGS
======================================== */

.appeals-hero::before {
    content: "";

    position: absolute;

    top: -250px;
    right: -170px;

    width: 560px;
    height: 560px;

    border-radius: 50%;

    border: 1px solid rgba(53, 104, 200, 0.20);

    box-shadow:
        0 0 0 65px rgba(53, 104, 200, 0.055),
        0 0 0 66px rgba(255, 255, 255, 0.40),
        0 0 0 130px rgba(53, 104, 200, 0.035),
        0 0 0 131px rgba(255, 255, 255, 0.28);

    pointer-events: none;
}


.appeals-hero::after {
    content: "";

    position: absolute;

    bottom: -410px;
    left: -260px;

    width: 580px;
    height: 580px;

    border-radius: 50%;

    border: 1px solid rgba(20, 39, 105, 0.16);

    box-shadow:
        0 0 0 90px rgba(53, 104, 200, 0.055),
        0 0 0 91px rgba(255, 255, 255, 0.38),
        0 0 0 180px rgba(53, 104, 200, 0.03);

    pointer-events: none;
}

.appeals-hero-content {
    position: relative;
    z-index: 2;
}


/* ========================================
   HERO CONTENT
======================================== */

.appeals-hero-content {
    width: 100%;
    max-width: 760px;

    display: flex;
    flex-direction: column;
    align-items: center;

    text-align: center;

    padding: 0 30px;
}


/* ========================================
   EYEBROW
======================================== */

.appeals-hero-eyebrow {
    margin: 0 0 10px;

    color: #3568c8;

    font-size: 19px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 1px;
}


/* ========================================
   HEADING
======================================== */

.appeals-hero-content h1 {
    margin: 0;

    color: #142769;

    font-size: 56px;
    line-height: 1.08;
    font-weight: 600;

    letter-spacing: -1.2px;
}


/* ========================================
   ACCENT LINE
======================================== */

.appeals-hero-line {
    width: 55px;
    height: 2px;

    margin: 27px 0 23px;

    background: #3568c8;
}


/* ========================================
   DESCRIPTION
======================================== */

.appeals-hero-description {
    width: 100%;
    max-width: 600px;

    margin: 0;

    color: #53627d;

    font-size: 16px;
    line-height: 1.65;
    font-weight: 400;
}

/* ========================================
   APPEALS & COMPLAINTS - TYPE SECTION
======================================== */

.appeal-type-section {
    width: 100%;

    padding: 29px 90px 100px;

    background: #ffffff;
}


.appeal-type-container {
    width: 100%;
    max-width: 1500px;

    margin: 0 auto;
}


/* ========================================
   SECTION HEADING
======================================== */

.appeal-type-heading {
    width: 100%;

    margin-bottom: 48px;

    text-align: center;
}


.appeal-type-eyebrow {
    margin: 0 0 5px;

    color: #3568c8;

    font-size: 18px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 0.6px;
}


.appeal-type-heading h2 {
    margin: 0;

    color: #142769;

    font-size: 36px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: -0.5px;
}


.appeal-type-intro {
    margin: 10px 0 0;

    color: #6f7c94;

    font-size: 14px;
    line-height: 1.6;
    font-weight: 400;
}


/* ========================================
   CARD GRID
======================================== */

.appeal-type-grid {
    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 30px;
}


/* ========================================
   CARD
======================================== */

.appeal-type-card {
    position: relative;

    min-height: 330px;

    display: flex;
    flex-direction: column;
    align-items: center;

    padding: 42px 60px 38px;

    background: #ffffff;

    border: 1px solid #3568c8;
    border-radius: 12px;

    text-align: center;
}


/* ========================================
   CARD HEADING
======================================== */

.appeal-type-card h3 {
    margin: 0;

    color: #142769;

    font-size: 28px;
    line-height: 1.2;
    font-weight: 600;
}


.appeal-type-line {
    width: 52px;
    height: 2px;

    margin: 12px 0 20px;

    background: #3568c8;
}


/* ========================================
   CARD DESCRIPTION
======================================== */

.appeal-type-card p {
    width: 100%;
    max-width: 500px;

    margin: 0;

    color: #53627d;

    font-size: 15px;
    line-height: 1.6;
    font-weight: 400;
}


/* ========================================
   EMAIL BUTTON
======================================== */

.appeal-type-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 190px;

    margin-top: auto;
    padding: 11px 22px;

    background: #ffffff;

    border: 1px solid #3568c8;
    border-radius: 6px;

    color: #3568c8;

    font-size: 14px;
    line-height: 1.2;
    font-weight: 500;

    text-decoration: none;

    transition:
        background 0.25s ease,
        color 0.25s ease;
}


.appeal-type-button:hover {
    background: #3568c8;

    color: #ffffff;
}


/* ========================================
   APPEALS & COMPLAINTS - OUR PROCESS
======================================== */

.appeals-process-section {
    width: 100%;

    padding: 75px 90px 85px;

    background: #f8faff;
}


.appeals-process-container {
    width: 100%;
    max-width: 1500px;

    margin: 0 auto;
}


/* ========================================
   SECTION HEADING
======================================== */

.appeals-process-heading {
    display: flex;
    flex-direction: column;
    align-items: center;

    margin-bottom: 52px;

    text-align: center;
}


.appeals-process-heading h2 {
    margin: 0;

    color: #142769;

    font-size: 34px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 0.4px;
}


.appeals-process-heading-line {
    width: 58px;
    height: 2px;

    margin-top: 10px;

    background: #3568c8;
}


/* ========================================
   PROCESS GRID
======================================== */

.appeals-process-grid {
    position: relative;

    display: grid;
    grid-template-columns: repeat(4, 1fr);

    column-gap: 55px;
}


/* ========================================
   CONNECTING LINE
======================================== */

.appeals-process-grid::before {
    content: "";

    position: absolute;

    top: 38px;
    left: 12.5%;
    right: 12.5%;

    height: 1px;

    background: rgba(53, 104, 200, 0.35);

    z-index: 1;
}


/* ========================================
   PROCESS STEP
======================================== */

.appeals-process-step {
    position: relative;

    display: flex;
    flex-direction: column;
    align-items: center;

    text-align: center;

    z-index: 2;
}


/* ========================================
   STEP NUMBER
======================================== */

.appeals-process-number {
    position: relative;

    width: 76px;
    height: 76px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 18px;

    background: #f8faff;

    border: 1px solid #3568c8;
    border-radius: 50%;

    color: #3568c8;

    font-size: 22px;
    line-height: 1;
    font-weight: 500;

    z-index: 3;
}


/* ========================================
   STEP TITLE
======================================== */

.appeals-process-step h3 {
    margin: 0;

    color: #142769;

    font-size: 20px;
    line-height: 1.3;
    font-weight: 500;

    letter-spacing: 0.2px;
}


/* ========================================
   STEP DESCRIPTION
======================================== */

.appeals-process-step p {
    width: 100%;
    max-width: 235px;

    margin: 17px 0 0;

    color: #6f7c94;

    font-size: 15px;
    line-height: 1.6;
    font-weight: 400;
}

/* ========================================
   APPEALS & COMPLAINTS - IMPORTANT NOTICE
======================================== */

.appeals-notice-section {
    width: 100%;

    padding: 80px 90px 95px;

    background: #ffffff;
}


.appeals-notice-container {
    position: relative;

    width: 100%;
    max-width: 1320px;

    display: flex;
    align-items: flex-start;

    gap: 28px;

    margin: 0 auto;
    padding: 34px 42px;

    background: #fbfdff;

    border: 1px solid rgba(53, 104, 200, 0.55);
    border-radius: 10px;
}


/* ========================================
   BLUE ACCENT
======================================== */

.appeals-notice-accent {
    flex: 0 0 auto;

    width: 2px;
    height: 52px;

    margin-top: 3px;

    background: #3568c8;

    border-radius: 0;
}


/* ========================================
   CONTENT
======================================== */

.appeals-notice-content {
    width: 100%;
}


.appeals-notice-content h2 {
    margin: 0 0 10px;

    color: #142769;

    font-size: 20px;
    line-height: 1.3;
    font-weight: 600;

    letter-spacing: 0.3px;
}


.appeals-notice-content p {
    max-width: 1120px;

    margin: 0;

    color: #65738d;

    font-size: 14px;
    line-height: 1.65;
    font-weight: 400;
}


/* ========================================
   EMAIL LINK
======================================== */

.appeals-notice-content a {
    color: #3568c8;

    font-weight: 500;

    text-decoration: none;
}


.appeals-notice-content a:hover {
    text-decoration: underline;
}




/* ==========================================================RESOURCES PAGE - HERO========================================================== */

.resources-hero {
    position: relative;

    width: 100%;
    height: 560px;

    overflow: hidden;

    background: #ffffff;
}


/* ========================================
   HERO IMAGE
======================================== */

.resources-hero-image {
    position: absolute;

    top: 0;
    right: 0;
    bottom: -2px;
    left: 0;

    width: 100%;
    height: auto;

    z-index: 1;
}


.resources-hero-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center center;
}


/* ========================================
   WHITE IMAGE FADE
======================================== */

.resources-hero::after {
    content: "";

    position: absolute;

    inset: 0;

    z-index: 2;

    background: linear-gradient(
        90deg,
        #ffffff 0%,
        rgba(255, 255, 255, 1) 26%,
        rgba(255, 255, 255, 0.96) 37%,
        rgba(255, 255, 255, 0.78) 48%,
        rgba(255, 255, 255, 0.32) 60%,
        rgba(255, 255, 255, 0) 72%
    );

    pointer-events: none;
}


/* ========================================
   HERO CONTENT
======================================== */

.resources-hero-content {
    position: relative;

    z-index: 3;

    width: 100%;
    height: 100%;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding-left: 90px;
    padding-bottom: 55px;
}


/* ========================================
   EYEBROW
======================================== */

.resources-hero-eyebrow {
    margin: 0 0 7px;

    color: #3568c8;

    font-size: 22px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 0.7px;
}


/* ========================================
   HEADING
======================================== */

.resources-hero-content h1 {
    width: 650px;
    max-width: 650px;

    margin: 0;

    color: #142769;

    font-size: 54px;
    line-height: 1.08;
    font-weight: 600;

    letter-spacing: -1.2px;
}


/* ========================================
   ACCENT LINE
======================================== */

.resources-hero-line {
    width: 55px;
    height: 2px;

    margin: 26px 0 21px;

    background: #3568c8;
}


/* ========================================
   DESCRIPTION
======================================== */

.resources-hero-description {
    width: 500px;
    max-width: 500px;

    margin: 0;

    color: #53627d;

    font-size: 16px;
    line-height: 1.55;
    font-weight: 400;
}

/* ========================================
   RESOURCES PAGE - RESOURCE LIBRARY
======================================== */

.resource-library {
    width: 100%;

    padding: 40px 90px 110px;

    background: #ffffff;
}


.resource-library-container {
    width: 100%;
    max-width: 1500px;

    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);

    column-gap: 70px;

    margin: 0 auto;
}


/* ========================================
   LEFT - RESOURCE CATEGORIES
======================================== */

.resource-category {
    outline: none;

    border-radius: 4px;

    transition:
        color 0.2s ease,
        padding-left 0.2s ease,
        background-color 0.2s ease;
}


.resource-categories-label {
    margin: 0 0 18px;

    color: #3568c8;

    font-size: 14px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 0.5px;
}


/* ========================================
   CATEGORY BUTTON
======================================== */

.resource-category {
    position: relative;

    width: calc(100% + 25px);

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 18px;

    margin: 0;
    padding: 17px 18px 17px 24px;

    background: transparent;

    border: 0;
    border-radius: 4px;

    color: #53627d;

    font-family: inherit;
    font-size: 15px;
    line-height: 1.3;
    font-weight: 400;

    text-align: left;

    cursor: pointer;
    outline: none;

    transition:
        color 0.2s ease,
        padding-left 0.2s ease,
        background-color 0.2s ease;
}


/* BLUE LEFT INDICATOR */

.resource-category::before {
    content: "";

    position: absolute;

    top: 10px;
    bottom: 10px;
    left: 0;

    width: 3px;

    background: #3568c8;

    transform: scaleY(0);

    transform-origin: center;

    transition: transform 0.2s ease;
}


/* HOVER */

.resource-category:hover {
    color: #142769;

    padding-left: 27px;
    width: calc(100% + 25px);
    padding-right: 18px;

    background: rgba(53, 104, 200, 0.06);
}


.resource-category:hover::before {
    transform: scaleY(1);
}


/* ACTIVE */

.resource-category.is-active {
    color: #142769;

    font-weight: 500;

    background: rgba(53, 104, 200, 0.035);
}


.resource-category.is-active::before {
    transform: scaleY(1);
}

/* KEYBOARD FOCUS */

.resource-category:focus {
    outline: none;
}


.resource-category:focus-visible {
    outline: 1px solid #3568c8;
    outline-offset: 3px;
}


/* CATEGORY COUNT */

.resource-category-count {
    flex: 0 0 auto;

    color: #53627d;

    font-size: 14px;
    line-height: 1;
    font-weight: 400;
}


/* ========================================
   RIGHT - RESOURCE CONTENT
======================================== */

.resource-content {
    width: 100%;
    min-width: 0;

    /* Prevent page jumping when filtering categories */
    min-height: 500px;
}


/* ========================================
   RESOURCE HEADING
======================================== */

.resource-content-heading {
    width: 100%;
}


.resource-content-eyebrow {
    margin: 0 0 5px;

    color: #3568c8;

    font-size: 15px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 0.5px;
}


.resource-content-heading h2 {
    margin: 0;

    color: #142769;

    font-size: 34px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: -0.4px;
}


.resource-content-description {
    margin: 8px 0 0;

    color: #6f7c94;

    font-size: 14px;
    line-height: 1.55;
    font-weight: 400;
}


/* ========================================
   SEARCH BAR
======================================== */

.resource-search {
    position: relative;

    width: 100%;

    margin-top: 28px;
}


.resource-search input {
    display: block;

    width: 100%;
    height: 54px;

    padding: 0 20px 0 52px;

    background: #ffffff;

    border: 1px solid #d8deea;
    border-radius: 7px;

    outline: none;

    color: #142769;

    font-family: inherit;
    font-size: 14px;
    font-weight: 400;

    transition: border-color 0.2s ease;
}


.resource-search input::placeholder {
    color: #a5afc0;
}


.resource-search input:focus {
    border-color: #3568c8;
}


/* ========================================
   SEARCH ICON
======================================== */

.resource-search-icon {
    position: absolute;

    top: 50%;
    left: 19px;

    width: 17px;
    height: 17px;

    border: 1.5px solid #9da8ba;
    border-radius: 50%;

    transform: translateY(-58%);

    pointer-events: none;

    z-index: 2;
}


.resource-search-icon::after {
    content: "";

    position: absolute;

    right: -5px;
    bottom: -3px;

    width: 7px;
    height: 1.5px;

    background: #9da8ba;

    transform: rotate(45deg);
}


/* ========================================
   ACCORDION CONTAINER
======================================== */

.resource-accordions {
    width: 100%;

    margin-top: 14px;
}


/* ========================================
   INDIVIDUAL ACCORDION
======================================== */

.resource-accordion {
    width: 100%;

    border-bottom: 1px solid #dce2ec;
}


/* ========================================
   ACCORDION BUTTON
======================================== */

.resource-accordion-trigger {
    width: 100%;
    min-height: 92px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 30px;

    margin: 0;
    padding: 0;

    background: transparent;
    border: 0;

    color: #3568c8;

    font-family: inherit;
    text-align: left;

    cursor: pointer;
}


/* ========================================
   ACCORDION TITLE
======================================== */

.resource-accordion-title {
    color: #3568c8;

    font-size: 24px;
    line-height: 1.25;
    font-weight: 400;

    transition: color 0.2s ease;
}

/* ========================================
   ACCORDION HEADING + DESCRIPTION
======================================== */

.resource-accordion-heading {
    display: flex;
    flex-direction: column;

    gap: 4px;
}


.resource-accordion-description {
    color: #6f7c94;

    font-size: 13px;
    line-height: 1.45;
    font-weight: 400;
}


.resource-accordion-trigger:hover
.resource-accordion-title {
    color: #142769;
}


/* ========================================
   ACCORDION ARROW
======================================== */

.resource-accordion-arrow {
    flex: 0 0 auto;

    width: 17px;
    height: 17px;

    margin-right: 10px;

    border-right: 2px solid #3568c8;
    border-bottom: 2px solid #3568c8;

    transform: rotate(45deg);

    transition: transform 0.25s ease;
}

/* ========================================
   RESOURCE ACCORDION - OPEN CONTENT
======================================== */

.resource-accordion-content {
    display: grid;

    grid-template-rows: 0fr;

    overflow: hidden;

    transition: grid-template-rows 0.3s ease;
}


.resource-accordion-inner {
    min-height: 0;

    overflow: hidden;
}


/* OPEN STATE */

.resource-accordion.is-open
.resource-accordion-content {
    grid-template-rows: 1fr;
}


/* ROTATE ARROW */

.resource-accordion.is-open
.resource-accordion-arrow {
    transform: rotate(225deg);
}


/* ========================================
   RESOURCE DOCUMENT ROW
======================================== */

.resource-document {
    width: 100%;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 40px;

    padding: 20px 10px 20px 20px;

    border-top: 1px solid #edf0f5;
}


/* DOCUMENT TITLE */

.resource-document-title {
    margin: 0;

    color: #142769;

    font-size: 15px;
    line-height: 1.45;
    font-weight: 500;
}


/* ========================================
   DOWNLOAD LINK
======================================== */

.resource-document-link {
    flex: 0 0 auto;

    display: inline-flex;
    align-items: center;

    gap: 8px;

    color: #3568c8;

    font-size: 13px;
    line-height: 1;
    font-weight: 500;

    text-decoration: none;

    transition: color 0.2s ease;
}


.resource-document-link:hover {
    color: #142769;
}


.resource-document-link span {
    font-size: 16px;
}

/* ========================================
   RESOURCES SUPPORT CTA
======================================== */

.resources-support {
    width: 100%;
    padding: 0 90px 110px;
    background: #ffffff;
}


.resources-support-container {
    width: 100%;
    max-width: 1500px;

    display: grid;
    grid-template-columns: 1fr 0.85fr;
    align-items: center;

    gap: 55px;

    margin: 0 auto;
    padding: 42px 55px;

    background: #f6f8fc;

    border: 1px solid #e6eaf1;
    border-radius: 8px;
}


/* ========================================
   LEFT CONTENT
======================================== */

.resources-support-content {
    max-width: 600px;
}


.resources-support-eyebrow {
    margin: 0 0 8px;

    color: #3568c8;

    font-size: 13px;
    line-height: 1.2;
    font-weight: 600;
    letter-spacing: 0.7px;
}


.resources-support-content h2 {
    margin: 0;

    color: #142769;

    font-size: 28px;
    line-height: 1.25;
    font-weight: 600;
    letter-spacing: -0.3px;
}


.resources-support-text {
    max-width: 520px;

    margin: 12px 0 24px;

    color: #6f7c94;

    font-size: 14px;
    line-height: 1.65;
    font-weight: 400;
}


/* ========================================
   RESOURCES CTA BUTTON - FINAL
======================================== */

.resources-support-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 13px 19px;

    background: #e7eefb;

    border: 1px solid #d5e1f7;
    border-radius: 5px;

    color: #2859b8;

    font-size: 13px;
    line-height: 1;
    font-weight: 500;

    text-decoration: none;

    transition:
        background-color 0.25s ease,
        border-color 0.25s ease,
        transform 0.25s ease;
}


/* ARROW - HIDDEN NORMALLY */

.resources-support-button span {
    display: inline-block;

    width: 0;
    margin-left: 0;

    opacity: 0;
    overflow: hidden;

    transform: translateX(-6px);

    transition:
        width 0.25s ease,
        margin-left 0.25s ease,
        opacity 0.2s ease,
        transform 0.25s ease;
}


/* HOVER */

.resources-support-button:hover {
    background: #dce7fa;
    border-color: #c8d8f4;
    color: #2859b8;

    transform: translateY(-2px);
}


/* ARROW APPEARS ON HOVER */

.resources-support-button:hover span {
    width: 16px;
    margin-left: 10px;

    opacity: 1;

    transform: translateX(0);
}


/* CLICK */

.resources-support-button:active {
    transform: translateY(0);
}


/* ========================================
   RIGHT TRUST CONTENT
======================================== */

.resources-support-trust {
    display: grid;
    grid-template-columns: 2px 1fr;

    gap: 26px;
    align-items: center;
}


.resources-support-line {
    width: 2px;
    height: 86px;

    background: #3568c8;
}


.resources-support-trust-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
}


.resources-support-trust h3 {
    margin: 0 0 9px;

    color: #142769;

    font-size: 17px;
    line-height: 1.35;
    font-weight: 600;
}


.resources-support-trust p {
    max-width: 430px;

    margin: 0;

    color: #6f7c94;

    font-size: 13px;
    line-height: 1.65;
    font-weight: 400;
}

/* ==================================================================QUOTATION PAGE - HERO======================================================= */

.quotation-hero {
    position: relative;
    width: 100%;
    height: 560px;
    overflow: hidden;
    background: #ffffff;
}


/* ========================================
   HERO IMAGE PLACEHOLDER
======================================== */

.quotation-hero-image {
    position: absolute;
    top: 0;
    right: 0;
    width: 58%;
    height: 100%;
    background: #eef1f5;
}


/* White fade for future image */

.quotation-hero-image::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;

    background: linear-gradient(
        90deg,
        #ffffff 0%,
        rgba(255, 255, 255, 0.98) 10%,
        rgba(255, 255, 255, 0.82) 22%,
        rgba(255, 255, 255, 0.45) 35%,
        rgba(255, 255, 255, 0.12) 50%,
        rgba(255, 255, 255, 0) 65%
    );

    pointer-events: none;
}


/* ========================================
   HERO CONTENT
======================================== */

.quotation-hero-content {
    position: relative;
    z-index: 2;

    width: 100%;
    max-width: 1500px;
    height: 100%;

    margin: 0 auto;
    padding: 72px 90px;
}

/* ========================================
   QUOTATION - ANCHOR SCROLL FIX
======================================== */

#quotation-form {
    scroll-margin-top: 110px;
}

/* ========================================
   QUOTATION HERO - IMAGE BACKGROUND
======================================== */

.quotation-hero {
    position: relative;
    width: 100%;
    height: 560px;
    overflow: hidden;

    background:
        linear-gradient(
            90deg,
            rgba(255, 255, 255, 1) 0%,
            rgba(255, 255, 255, 0.98) 28%,
            rgba(255, 255, 255, 0.82) 48%,
            rgba(255, 255, 255, 0.25) 68%,
            rgba(255, 255, 255, 0) 82%
        ),
        url("../assets/images/quotation-hero.webp");

    background-size: cover;
    background-position: center right;
    background-repeat: no-repeat;
}

.quotation-hero-content {
    position: relative;
    z-index: 2;
}


/* Old image layer stays transparent */

.quotation-hero-image {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    background: transparent;

    pointer-events: none;
}


/* Content remains above background */

.quotation-hero-content {
    position: relative;
    z-index: 2;
}


/* ========================================
   EYEBROW
======================================== */

.quotation-hero-eyebrow {
    margin: 0 0 16px;

    color: #3568c8;

    font-size: 13px;
    line-height: 1.2;
    font-weight: 600;
    letter-spacing: 0.8px;
}


/* ========================================
   HEADING
======================================== */

.quotation-hero-content h1 {
    max-width: 650px;

    margin: 0;

    color: #142769;

    font-size: 46px;
    line-height: 1.12;
    font-weight: 500;
    letter-spacing: -1px;
}


/* ========================================
   BLUE DIVIDER
======================================== */

.quotation-hero-line {
    width: 58px;
    height: 2px;

    margin: 24px 0 20px;

    background: #3568c8;
}


/* ========================================
   DESCRIPTION
======================================== */

.quotation-hero-description {
    max-width: 590px;

    margin: 0;

    color: #66748d;

    font-size: 15px;
    line-height: 1.7;
    font-weight: 400;
}


/* ========================================
   START REQUEST LINK
======================================== */

.quotation-start-link {
    display: inline-flex;
    align-items: center;

    margin-top: 25px;

    color: #2859b8;

    font-size: 14px;
    line-height: 1;
    font-weight: 500;

    text-decoration: none;

    transition:
        color 0.2s ease,
        transform 0.2s ease;
}


.quotation-start-link::after {
    content: "↓";

    margin-left: 9px;

    font-size: 18px;
    line-height: 1;

    transition: transform 0.2s ease;

    position: relative;
    top: -2px;
}


.quotation-start-link:hover {
    color: #142769;
}


.quotation-start-link:hover::after {
    transform: translateY(3px);
}


/* ========================================
   OFFLINE DOWNLOAD AREA
======================================== */

.quotation-offline {
    margin-top: 34px;
}


.quotation-offline-label {
    margin: 0 0 13px;

    color: #7d899d;

    font-size: 10px;
    line-height: 1.2;
    font-weight: 600;
    letter-spacing: 0.8px;
}


.quotation-offline-links {
    display: flex;
    align-items: center;

    gap: 32px;
}


/* ========================================
   DOWNLOAD LINKS
======================================== */

.quotation-download-link {
    display: inline-flex;
    align-items: center;

    gap: 9px;

    color: #2859b8;

    font-size: 13px;
    line-height: 1;
    font-weight: 500;

    text-decoration: none;

    transition:
        color 0.2s ease,
        transform 0.2s ease;
}


.quotation-download-link:hover {
    color: #142769;
    transform: translateY(-1px);
}


/* ========================================
   DOWNLOAD ICON
======================================== */

.quotation-download-icon {
    position: relative;
    display: block;
    width: 17px;
    height: 18px;

    border: none;
    border-bottom: 1.5px solid currentColor;
}


/* Vertical arrow stem */

.quotation-download-icon::before {
    content: "";

    position: absolute;
    left: 50%;
    top: 0;

    width: 1.5px;
    height: 11px;

    background: currentColor;

    transform: translateX(-50%);
}


/* Arrow head */

.quotation-download-icon::after {
    content: "";

    position: absolute;
    left: 50%;
    top: 6px;

    width: 6px;
    height: 6px;

    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;

    transform:
        translateX(-50%)
        rotate(45deg);
}


/* ========================================
   QUOTATION FORM - SECTION 01
======================================== */

.quotation-form-section {
    width: 100%;
    padding: 25px 90px 110px;
    background: #ffffff;
}

.quotation-form-container {
    width: 100%;
    max-width: 1500px;
    margin: 0 auto;
}


/* SECTION HEADING */

.quotation-form-heading {
    display: flex;
    align-items: flex-start;
    gap: 14px;

    margin-bottom: 34px;
}

.quotation-form-number {
    flex-shrink: 0;

    color: #3568c8;

    font-size: 24px;
    line-height: 1.1;
    font-weight: 600;
}

.quotation-form-heading-text h2 {
    margin: 0 0 5px;

    color: #142769;

    font-size: 20px;
    line-height: 1.2;
    font-weight: 600;
}

.quotation-form-heading-text p {
    margin: 0;

    color: #7a869d;

    font-size: 13px;
    line-height: 1.5;
    font-weight: 400;
}


/* FORM GRID */

.quotation-fields-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    column-gap: 75px;
    row-gap: 30px;

    padding-left: 46px;
}


/* FIELD */

.quotation-field {
    display: flex;
    flex-direction: column;
}

.quotation-field label {
    margin: 0 0 10px;

    color: #142769;

    font-size: 14px;
    line-height: 1.3;
    font-weight: 500;
}

.quotation-field label span {
    color: #e05252;
}


/* INPUT */

.quotation-field input {
    width: 100%;
    height: 48px;

    padding: 0 16px;

    background: #ffffff;

    border: 1px solid #b9c4d5;
    border-radius: 5px;

    color: #142769;

    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    font-weight: 400;

    outline: none;

    box-sizing: border-box;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.quotation-field input::placeholder {
    color: #a1aabd;
}

.quotation-field input:focus {
    border-color: #3568c8;

    box-shadow:
        0 0 0 3px rgba(53, 104, 200, 0.08);
}




/* ========================================
   QUOTATION FORM - SECTION 02
======================================== */

.quotation-business-section {
    width: 100%;
    margin-top: 55px;
}


/* ========================================
   DIVIDER
======================================== */

.quotation-form-divider {
    width: 100%;
    height: 1px;

    margin: 0 0 48px;

    background: #e4e9f1;
}


/* ========================================
   SECTION 02 HEADING
======================================== */

.quotation-business-section .quotation-form-heading {
    display: flex;
    align-items: flex-start;
    gap: 14px;

    margin-bottom: 34px;
}


/* ========================================
   SECTION 02 GRID
======================================== */

.quotation-business-section .quotation-fields-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    column-gap: 75px;
    row-gap: 30px;

    padding-left: 46px;
}


/* ========================================
   STANDARD FIELDS
======================================== */

.quotation-business-section .quotation-field {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.quotation-business-section .quotation-field label {
    margin: 0 0 10px;

    color: #142769;

    font-size: 14px;
    line-height: 1.3;
    font-weight: 500;
}

.quotation-business-section .quotation-field label span {
    color: #e05252;
}


/* ========================================
   INPUTS
======================================== */

.quotation-business-section .quotation-field input {
    width: 100%;
    height: 48px;

    padding: 0 16px;

    background: #ffffff;

    border: 1px solid #b9c4d5;
    border-radius: 5px;

    color: #142769;

    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    font-weight: 400;

    outline: none;
    box-sizing: border-box;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.quotation-business-section .quotation-field input::placeholder {
    color: #a1aabd;
}

.quotation-business-section .quotation-field input:focus {
    border-color: #3568c8;

    box-shadow:
        0 0 0 3px rgba(53, 104, 200, 0.08);
}


/* ========================================
   FULL WIDTH LOCATION
======================================== */

.quotation-business-section .quotation-field-full {
    grid-column: 1 / -1;
}


/* ========================================
   LOCATION SEARCH BAR
======================================== */

.quotation-location-field {
    position: relative;

    display: flex;
    align-items: center;

    width: 100%;
}

.quotation-business-section
.quotation-location-field input {
    width: 100%;

    padding-left: 44px;
    padding-right: 48px;
}


/* ========================================
   SEARCH ICON
======================================== */

.quotation-location-search {
    position: absolute;

    left: 17px;
    top: 50%;

    width: 12px;
    height: 12px;

    border: 1.5px solid #9ba7b9;
    border-radius: 50%;

    transform: translateY(-60%);

    z-index: 2;

    pointer-events: none;
}

.quotation-location-search::after {
    content: "";

    position: absolute;

    right: -5px;
    bottom: -3px;

    width: 6px;
    height: 1.5px;

    background: #9ba7b9;

    transform: rotate(45deg);
}


/* ========================================
   HELPER TEXT
======================================== */

.quotation-business-section .quotation-field-help {
    margin: 6px 0 0;

    color: #8a96aa;

    font-size: 10px;
    line-height: 1.45;
    font-weight: 400;
}


/* ========================================
   CUSTOM QUOTATION DROPDOWNS
======================================== */

.quotation-custom-select {
    position: relative;
    width: 100%;
}


/* ========================================
   CLOSED DROPDOWN
======================================== */

.quotation-select-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;

    width: 100%;
    height: 48px;

    padding: 0 16px;

    background: #ffffff;

    border: 1px solid #b9c4d5;
    border-radius: 5px;

    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    font-weight: 400;

    text-align: left;

    cursor: pointer;
    outline: none;

    box-sizing: border-box;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}


/* PLACEHOLDER */

.quotation-select-value {
    color: #a1aabd;
}


/* SELECTED VALUE */

.quotation-custom-select.has-value
.quotation-select-value {
    color: #142769;
}


/* FOCUS / OPEN */

.quotation-custom-select.is-open
.quotation-select-trigger {
    border-color: #3568c8;

    box-shadow:
        0 0 0 3px rgba(53, 104, 200, 0.08);
}


/* ========================================
   CUSTOM ARROW
======================================== */

.quotation-select-arrow {
    width: 7px;
    height: 7px;

    margin-right: 2px;

    border-right: 1.5px solid #8e99ac;
    border-bottom: 1.5px solid #8e99ac;

    transform:
        translateY(-2px)
        rotate(45deg);

    transition:
        transform 0.2s ease;
}

.quotation-custom-select.is-open
.quotation-select-arrow {
    transform:
        translateY(2px)
        rotate(225deg);
}


/* ========================================
   DROPDOWN PANEL
======================================== */

.quotation-select-menu {
    position: absolute;

    top: calc(100% + 6px);
    left: 0;

    width: 100%;

    padding: 6px;

    background: #ffffff;

    border: 1px solid #d7deea;
    border-radius: 6px;

    box-shadow:
        0 12px 30px rgba(20, 39, 105, 0.12);

    box-sizing: border-box;

    opacity: 0;
    visibility: hidden;

    transform: translateY(-4px);

    pointer-events: none;

    z-index: 50;

    transition:
        opacity 0.15s ease,
        transform 0.15s ease,
        visibility 0.15s ease;
}


/* OPEN PANEL */

.quotation-custom-select.is-open
.quotation-select-menu {
    opacity: 1;
    visibility: visible;

    transform: translateY(0);

    pointer-events: auto;
}


/* ========================================
   OPTIONS
======================================== */

.quotation-select-option {
    display: flex;
    align-items: center;

    width: 100%;
    min-height: 40px;

    padding: 0 12px;

    background: transparent;
    border: 0;
    border-radius: 4px;

    color: #142769;

    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    font-weight: 400;

    text-align: left;

    cursor: pointer;

    transition:
        background 0.15s ease,
        color 0.15s ease;
}


/* OPTION HOVER */

.quotation-select-option:hover {
    background: #f3f6fb;
    color: #2859b8;
}


/* SELECTED OPTION */

.quotation-select-option.is-selected {
    background: #edf3fc;
    color: #2859b8;
    font-weight: 500;
}

/* ========================================
   QUOTATION GEO LOCATION DROPDOWN
======================================== */

.quotation-geo-selector {
    position: relative;
    width: 100%;
}


/* ========================================
   RESULTS PANEL
======================================== */

.quotation-location-results {
    position: absolute;

    top: calc(100% + 7px);
    left: 0;

    width: 100%;
    max-height: 360px;

    overflow-y: auto;
    overflow-x: hidden;

    padding: 8px;

    background: #ffffff;

    border: 1px solid #d7deea;
    border-radius: 6px;

    box-shadow:
        0 14px 35px rgba(20, 39, 105, 0.12);

    box-sizing: border-box;

    z-index: 100;
}


/* IMPORTANT:
   HTML hidden attribute must actually hide panel
*/

.quotation-location-results[hidden] {
    display: none;
}


/* ========================================
   LOCATION GROUP
======================================== */

.quotation-location-group {
    width: 100%;
}


/* Space between Johannesburg / Cape Town */

.quotation-location-group +
.quotation-location-group {
    margin-top: 12px;

    padding-top: 12px;

    border-top: 1px solid #edf0f5;
}


/* ========================================
   GROUP HEADING
======================================== */

.quotation-location-group-title {
    padding: 7px 12px 8px;

    color: #7d899d;

    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 0.8px;
    text-transform: uppercase;
}


/* ========================================
   PREFERRED LOCATION OPTIONS
======================================== */

.quotation-location-option {
    display: flex;
    align-items: center;

    width: 100%;
    min-height: 38px;

    padding: 0 12px;

    background: transparent;
    border: 0;
    border-radius: 4px;

    color: #142769;

    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    line-height: 1.4;
    font-weight: 400;

    text-align: left;

    cursor: pointer;

    box-sizing: border-box;

    transition:
        background 0.15s ease,
        color 0.15s ease;
}


/* HOVER */

.quotation-location-option:hover {
    background: #f3f6fb;
    color: #2859b8;
}


/* ========================================
   LIVE GEO SEARCH AREA
======================================== */

.quotation-geo-search-results {
    width: 100%;
}


/* ========================================
   LIVE SEARCH HEADING
======================================== */

.quotation-geo-search-title {
    padding: 7px 12px 8px;

    color: #7d899d;

    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 0.8px;
    text-transform: uppercase;
}


/* ========================================
   LIVE SEARCH RESULT
======================================== */

.quotation-geo-result {
    display: flex;
    flex-direction: column;

    width: 100%;

    padding: 10px 12px;

    background: transparent;
    border: 0;
    border-radius: 4px;

    text-align: left;

    cursor: pointer;

    box-sizing: border-box;

    transition:
        background 0.15s ease;
}

.quotation-geo-result:hover {
    background: #f3f6fb;
}


/* PRIMARY RESULT TEXT */

.quotation-geo-result-name {
    color: #142769;

    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    line-height: 1.4;
    font-weight: 500;
}


/* SECONDARY RESULT TEXT */

.quotation-geo-result-address {
    margin-top: 3px;

    color: #8a96aa;

    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    line-height: 1.4;
    font-weight: 400;
}


/* ========================================
   GEO SEARCH STATUS
======================================== */

.quotation-geo-status {
    padding: 14px 12px;

    color: #8a96aa;

    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    line-height: 1.5;
    font-weight: 400;
}


/* ========================================
   SCROLLBAR
======================================== */

.quotation-location-results::-webkit-scrollbar {
    width: 6px;
}

.quotation-location-results::-webkit-scrollbar-track {
    background: transparent;
}

.quotation-location-results::-webkit-scrollbar-thumb {
    background: #d4dbe7;
    border-radius: 10px;
}

/* ========================================
   QUOTATION FORM - VALIDATION
======================================== */

.quotation-field-error {
    margin: 7px 0 0;
    color: #c63f3f;
    font-size: 10px;
    line-height: 1.45;
    font-weight: 400;
}


/* STANDARD INPUT ERROR */

.quotation-field.has-error input:not([type="hidden"]) {
    border-color: #c95a5a;
}

.quotation-field.has-error input:not([type="hidden"]):focus {
    border-color: #c95a5a;
    box-shadow: 0 0 0 3px rgba(201, 90, 90, 0.08);
}


/* CUSTOM DROPDOWN ERROR */

.quotation-field.has-error .quotation-select-trigger {
    border-color: #c95a5a;
}

.quotation-field.has-error
.quotation-custom-select.is-open
.quotation-select-trigger {
    border-color: #c95a5a;
    box-shadow: 0 0 0 3px rgba(201, 90, 90, 0.08);
}

/* ========================================
   QUOTATION FORM - SUBMIT
======================================== */

.quotation-submit-section {
    margin-top: 55px;
    padding-left: 46px;
}

.quotation-submit-divider {
    width: 100%;
    height: 1px;
    background: #e2e7ef;
}

.quotation-submit-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 50px;
    padding-top: 32px;
}

.quotation-submit-text h3 {
    margin: 0 0 7px;
    color: #142769;
    font-size: 17px;
    line-height: 1.3;
    font-weight: 600;
}

.quotation-submit-text p {
    margin: 0;
    color: #7a869d;
    font-size: 12px;
    line-height: 1.6;
    font-weight: 400;
}

.quotation-submit-button {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 205px;
    height: 48px;
    padding: 0 22px;
    background: #2859b8;
    border: 1px solid #2859b8;
    border-radius: 5px;
    color: #ffffff;
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    line-height: 1;
    font-weight: 500;
    cursor: pointer;
    overflow: hidden;

    transition:
        background 0.2s ease,
        border-color 0.2s ease,
        transform 0.2s ease;
}

.quotation-submit-button:hover {
    background: #142769;
    border-color: #142769;
    transform: translateY(-1px);
}


/* ========================================
   SUBMIT BUTTON ARROW - ANIMATED
======================================== */

.quotation-submit-arrow {
    display: inline-block;

    width: 0;
    margin-left: 0;

    opacity: 0;
    overflow: hidden;

    font-size: 15px;
    line-height: 1;

    transform: translateX(-8px);

    transition:
        width 0.28s cubic-bezier(0.4, 0, 0.2, 1),
        margin-left 0.28s cubic-bezier(0.4, 0, 0.2, 1),
        opacity 0.18s ease,
        transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
}

.quotation-submit-button:hover .quotation-submit-arrow {
    width: 15px;
    margin-left: 10px;

    opacity: 1;

    transform: translateX(0);
}

/* ========================================
   QUOTATION FORM INTRO
======================================== */

.quotation-form-intro {
    width: 100%;
    max-width: 760px;
    margin: 0 auto 75px;
    text-align: center;
}

.quotation-form-intro-eyebrow {
    margin: 0 0 16px;
    color: #3568c8;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 600;
    letter-spacing: 1.8px;
}

.quotation-form-intro h2 {
    margin: 0;
    color: #142769;
    font-size: 36px;
    line-height: 1.2;
    font-weight: 500;
    letter-spacing: -0.6px;
}

.quotation-form-intro-description {
    max-width: 650px;
    margin: 16px auto 0;
    color: #7a869d;
    font-size: 14px;
    line-height: 1.7;
    font-weight: 400;
}


/* ========================================================GLOBAL FOOTER======================================================================= */

.site-footer {
    width: 100%;
    font-family: "Montserrat", sans-serif;
}


/* ========================================
   MAIN NAVY FOOTER
======================================== */

.footer-main {
    width: 100%;
    padding: 52px 90px 38px;
    background: #142769;
    box-sizing: border-box;
}


.footer-container {
    width: 100%;
    max-width: 1500px;

    margin: 0 auto;
}


/* ========================================
   TOP BRAND / CTA AREA
======================================== */

.footer-hero {
    width: 100%;
    display: grid;
    grid-template-columns: 1.65fr 1fr;

    padding-bottom: 34px;

    border-bottom: 1px solid rgba(255, 255, 255, 0.22);
}

/* LEFT BRAND */

.footer-brand {
    padding-right: 90px;
}


.footer-eyebrow {
    margin: 0 0 24px;

    color: rgba(255, 255, 255, 0.68);

    font-size: 10px;
    line-height: 1;
    font-weight: 600;

    letter-spacing: 2px;
    transform: translateY(10px);
}


.footer-brand h2 {
    max-width: 650px;

    margin: 0;

    color: #ffffff;

    font-size: 40px;
    line-height: 1.15;
    font-weight: 400;

    letter-spacing: -1px;
}


.footer-brand-description {
    margin: 20px 0 0;

    color: rgba(255, 255, 255, 0.65);

    font-size: 13px;
    line-height: 1.7;
    font-weight: 400;
}


/* ========================================
   FOOTER CTA
======================================== */

.footer-cta {
    padding-left: 60px;

    border-left: 1px solid rgba(255, 255, 255, 0.22);
}


.footer-cta h3 {
    margin: 0 0 24px;

    color: #ffffff;

    font-size: 22px;
    line-height: 1.4;
    font-weight: 400;

    letter-spacing: -0.3px;
}


/* ========================================
   FOOTER QUOTATION CTA
======================================== */

.footer-quotation-link {
    width: fit-content;
    min-width: 225px;
    height: 48px;

    padding: 0 16px 0 20px;

    display: inline-flex;
    align-items: center;
    justify-content: space-between;

    gap: 28px;

    color: #ffffff;
    background: transparent;

    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 6px;

    font-size: 12px;
    line-height: 1;
    font-weight: 500;

    text-decoration: none;
    box-sizing: border-box;

    transition:
        background 0.25s ease,
        border-color 0.25s ease;
}


.footer-quotation-arrow {
    padding-left: 16px;

    color: #ffffff;

    border-left: 1px solid rgba(255, 255, 255, 0.25);

    font-size: 18px;
    line-height: 1;

    transition: transform 0.25s ease;
}


.footer-quotation-link:hover {
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(255, 255, 255, 0.7);
}


.footer-quotation-link:hover .footer-quotation-arrow {
    transform: translateX(3px);
}


/* ========================================
   FOOTER INFORMATION
======================================== */

.footer-information {
    width: 100%;

    display: grid;
    grid-template-columns: 1fr 1fr 1.15fr 1.1fr;

    gap: 80px;

    padding-top: 34px;
}


.footer-column {
    min-width: 0;
}


.footer-column-title {
    margin: 0 0 22px;

    color: rgba(255, 255, 255, 0.58);

    font-size: 9px;
    line-height: 1;

    font-weight: 600;

    letter-spacing: 2px;
}


/* ========================================
   EXPLORE
======================================== */

/* EXPLORE */

.footer-links {
    display: flex;
    flex-direction: column;
    align-items: flex-start;

    gap: 10px;
}


.footer-links a {
    color: rgba(255, 255, 255, 0.88);

    font-size: 13px;
    line-height: 1.45;

    text-decoration: none;
}


.footer-links a:hover {
    color: #ffffff;
    transform: translateX(4px);
}


/* ========================================
   CONTACT
======================================== */

.footer-contact {
    display: flex;
    flex-direction: column;

    gap: 10px;
}


.footer-contact a {
    color: rgba(255, 255, 255, 0.88);

    font-size: 13px;
    line-height: 1.45;

    text-decoration: none;
}


.footer-contact a:hover {
    color: #ffffff;
}


.footer-small-line {
    width: 50px;
    height: 1px;

    margin: 18px 0 16px;

    background: rgba(255, 255, 255, 0.24);
}


.footer-support-text {
    max-width: 245px;

    margin: 0;

    color: rgba(255, 255, 255, 0.52);

    font-size: 11px;
    line-height: 1.65;
}


/* OFFICE */

.footer-office {
    max-width: 300px;
}


.footer-office p {
    margin: 0 0 7px;

    color: rgba(255, 255, 255, 0.72);

    font-size: 13px;
    line-height: 1.55;

    font-weight: 400;
}


.footer-office p:last-child {
    margin-bottom: 0;
}


.footer-office p:last-child {
    margin-bottom: 0;
}

/* COMMITMENT */

.footer-commitment {
    display: block;
    max-width: 280px;
}


.footer-commitment strong {
    display: block;

    margin: 0 0 12px;

    color: #ffffff;

    font-size: 14px;
    line-height: 1.5;

    font-weight: 500;
}


.footer-commitment p {
    margin: 0;

    color: rgba(255, 255, 255, 0.56);

    font-size: 11px;
    line-height: 1.7;

    font-weight: 400;
}


/* ========================================
   COMMITMENT
======================================== */

.footer-values {
    gap: 9px;
}


.footer-values span {
    color: rgba(255, 255, 255, 0.82);

    font-size: 14px;
    line-height: 1.35;
    font-weight: 400;
}


/* ========================================
   SANAS ACCREDITATION STRIP
======================================== */

.footer-accreditation {
    width: 100%;

    padding: 22px 90px;

    background: #ffffff;

    border-top: 1px solid rgba(20, 39, 105, 0.08);
    border-bottom: 1px solid rgba(20, 39, 105, 0.08);

    box-sizing: border-box;
}


.footer-accreditation-container {
    width: 100%;
    max-width: 1500px;

    margin: 0 auto;

    display: grid;
    grid-template-columns: 210px 1px minmax(0, 1fr) auto;
    align-items: center;

    column-gap: 38px;
}

/* ========================================
   SOCIAL AREA
======================================== */

.footer-social-area {
    min-width: 150px;

    padding-left: 38px;

    border-left: 1px solid rgba(20, 39, 105, 0.12);
}


.footer-social-label {
    margin: 0 0 11px;

    color: #8a94a8;

    font-size: 8px;
    line-height: 1;

    font-weight: 600;

    letter-spacing: 1.8px;
}


.footer-socials {
    display: flex;
    align-items: center;
    justify-content: flex-start;

    gap: 8px;
}


.footer-social-link {
    width: 34px;
    height: 34px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #142769;
    background: transparent;

    border: 1px solid rgba(20, 39, 105, 0.2);
    border-radius: 4px;

    text-decoration: none;

    box-sizing: border-box;

    transition:
        color 0.2s ease,
        background 0.2s ease,
        border-color 0.2s ease,
        transform 0.2s ease;
}


.footer-social-link:hover {
    color: #ffffff;

    background: #142769;
    border-color: #142769;

    transform: translateY(-2px);
}


.footer-linkedin {
    font-size: 12px;
    line-height: 1;
    font-weight: 700;
}


.footer-facebook {
    font-size: 14px;
    line-height: 1;
    font-weight: 600;
}

/* SANAS */

.footer-sanas-logo {
    display: flex;
    align-items: center;
    justify-content: flex-start;

    width: fit-content;
}


.footer-sanas-logo img {
    display: block;

    width: 175px;
    max-width: 100%;

    height: auto;
}


/* DIVIDER */

.footer-accreditation-divider {
    width: 1px;
    height: 72px;

    background: rgba(20, 39, 105, 0.15);
}


/* ACCREDITATION CONTENT */

.footer-accreditation-content {
    min-width: 0;
}


.footer-accreditation-eyebrow {
    margin: 0 0 9px;

    color: #3568c8;

    font-size: 9px;
    line-height: 1;

    font-weight: 600;

    letter-spacing: 2.2px;
}


.footer-accreditation-text {
    margin: 0 0 12px;

    color: #707b91;

    font-size: 12px;
    line-height: 1.55;

    font-weight: 400;
}


.footer-certificate-link {
    width: fit-content;

    display: inline-flex;
    align-items: center;

    gap: 18px;

    padding-bottom: 4px;

    color: #142769;

    border-bottom: 1px solid #3568c8;

    font-size: 12px;
    line-height: 1.4;

    font-weight: 600;

    text-decoration: none;

    transition:
        color 0.2s ease,
        gap 0.25s ease;
}


.footer-certificate-link:hover {
    color: #3568c8;
    gap: 23px;
}


/* RIGHT TRUST MESSAGE */

.footer-accreditation-message {
    margin: 0;

    color: #8a95ab;

    font-size: 10px;
    line-height: 1.65;
    font-weight: 600;

    letter-spacing: 2px;
}


/* ========================================
   BOTTOM LEGAL BAR
======================================== */

.footer-bottom {
    width: 100%;
    padding: 15px 90px;
    background: #142769;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    box-sizing: border-box;
}


.footer-bottom-container {
    width: 100%;
    max-width: 1500px;

    margin: 0 auto;

    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;

    gap: 35px;
}


/* COPYRIGHT */

.footer-copyright {
    margin: 0;

    color: rgba(255, 255, 255, 0.58);

    font-size: 11px;
    line-height: 1.5;
    font-weight: 400;
}


/* ========================================
   LEGAL LINKS
======================================== */

.footer-legal {
    display: flex;
    align-items: center;

    gap: 0;
}


.footer-legal-link {
    position: relative;

    margin: 0;
    padding: 4px 26px;

    color: rgba(255, 255, 255, 0.66);
    background: transparent;

    border: none;

    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    line-height: 1.4;
    font-weight: 400;

    cursor: pointer;

    transition: color 0.2s ease;
}


.footer-legal-link + .footer-legal-link {
    border-left: 1px solid rgba(255, 255, 255, 0.18);
}


.footer-legal-link:hover {
    color: #ffffff;
}


.footer-legal-link:focus {
    outline: none;
}


.footer-legal-link:focus-visible {
    outline: 1px solid rgba(255, 255, 255, 0.6);
    outline-offset: 3px;

    border-radius: 2px;
}


/* ========================================
   BACK TO TOP
======================================== */

.footer-back-top {
    justify-self: end;

    display: inline-flex;
    align-items: center;

    gap: 10px;

    color: rgba(255, 255, 255, 0.66);

    font-size: 11px;
    line-height: 1.4;
    font-weight: 400;

    text-decoration: none;

    transition:
        color 0.2s ease,
        gap 0.25s ease;
}

.footer-back-top span {
    display: inline-flex;
    align-items: center;
    line-height: 1;
}


.footer-back-top span:last-child {
    font-size: 15px;

    transition: transform 0.25s ease;
}


.footer-back-top:hover {
    color: #ffffff;
    gap: 13px;
}


.footer-back-top:hover span:last-child {
    transform: translateY(-3px);
}


/* ======================================== RESPONSIVE SECTION RESPONSIVE SECTION RESPONSIVE SECTION ==================================================== */


/* ============================================================
   BBBEE RATING AGENCY — CLEAN RESPONSIVE CSS

   BREAKPOINTS
   - Desktop / 1440 QA: 769px and above -> main desktop CSS
   - Tablet QA: 768px -> 481px–768px overrides
   - Mobile QA: 402px -> max-width 480px overrides

   ORDER
   01. Global Header / Menu Overlay / Privacy / Disclamier
   02. Global Footer
   03. Homepage Hero
   04. Verification Process
   05. Why Organisations Choose Us
   06. Social Insights
   07. Corporate CTA
============================================================ */

/* ============================================================
   01. GLOBAL HEADER / NAVIGATION / PRIVACY
============================================================ */


/* ========================================
   TABLET + MOBILE
   768px AND BELOW
======================================== */

@media (max-width: 768px) {

    /* ========================================
       GLOBAL HEADER
    ======================================== */

    .top-contact-bar {
        display: none;
    }

    .site-header {
        height: 100px;
    }

    .site-header::after {
        height: 22px;
        border: none;
        box-shadow: none;
    }

    .header-container {
        height: 92px;

        padding-left: 20px;
        padding-right: 20px;
    }


    /* ----------------------------------------
       LOGO
    ---------------------------------------- */

    .site-logo {
        height: 91px;

        transform: none;
    }

    .site-logo img {
        width: auto;
        height: 91px;

        object-fit: contain;
    }


    /* ----------------------------------------
       MENU BUTTON
    ---------------------------------------- */

    .menu-button {
        right: 20px;
        top: 34px;

        gap: 11px;

        padding: 10px 0;
    }

    .menu-text {
        font-size: 14px;
        font-weight: 500;
    }


    /* ----------------------------------------
       MENU ICON
    ---------------------------------------- */

    .menu-icon-lines {
        width: 23px;
        height: 18px;
    }

    .menu-line {
        height: 1.5px;
    }

    .menu-line-top {
        top: 5px;

        width: 23px;
    }

    .menu-line-bottom {
        bottom: 5px;

        width: 16px;
    }

    .menu-button:hover .menu-line-top {
        width: 16px;
    }

    .menu-button:hover .menu-line-bottom {
        width: 23px;
    }

    .menu-button:focus-visible {
        outline: none;
    }


    /* ----------------------------------------
       CLOSE ICON
    ---------------------------------------- */

    .menu-button[aria-expanded="true"] .menu-line-top {
        top: 8px;

        width: 21px;

        transform: rotate(45deg);
    }

    .menu-button[aria-expanded="true"] .menu-line-bottom {
        bottom: 8px;

        width: 21px;

        transform: rotate(-45deg);
    }

    .menu-button[aria-expanded="true"]:hover .menu-line-top,
    .menu-button[aria-expanded="true"]:hover .menu-line-bottom {
        width: 21px;
    }


    /* ----------------------------------------
       BODY HEADER OFFSET
    ---------------------------------------- */

    body {
        padding-top: 100px;
    }


    /* ========================================
       NAVIGATION OVERLAY
    ======================================== */

    .navigation-overlay {
        position: fixed;

        top: 0;
        left: 0;

        width: 100%;

        height: 100vh;
        height: 100dvh;

        background: #142769;

        overflow: hidden;
    }

    .navigation-overlay-inner {
        width: 100%;
        height: 100%;

        margin: 0;

        padding:
            125px
            40px
            28px;

        display: flex;
        flex-direction: column;

        box-sizing: border-box;
    }


    /* ----------------------------------------
       NAVIGATION CONTENT
    ---------------------------------------- */

    .navigation-content {
        width: 100%;
        max-width: none;

        flex: 0 0 auto;
    }

    .navigation-eyebrow {
        margin: 0 0 20px;
    }

    .navigation-links {
        width: 100%;
    }

    .navigation-link {
        gap: 20px;

        padding: 12px 0;
    }

    .navigation-number {
        width: 26px;

        font-size: 10px;
    }

    .navigation-label {
        font-size: 27px;
        line-height: 1.12;
    }


    /* ========================================
       NAVIGATION FOOTER
    ======================================== */

    .navigation-footer {
        width: 100%;

        margin-top: auto;

        padding-top: 16px;

        display: flex;
        flex-direction: column;
        align-items: flex-start;

        gap: 7px;

        flex-shrink: 0;

        border-top: 1px solid rgba(255, 255, 255, 0.16);

        font-size: 9px;
        line-height: 1.4;
        letter-spacing: 0.7px;

        box-sizing: border-box;
    }

    .navigation-footer-left {
        width: 100%;

        display: flex;
        align-items: center;
        flex-wrap: wrap;

        gap: 6px 10px;

        font-size: 9px;
    }

    .navigation-footer-left > span:first-child {
        width: 100%;
    }

    .navigation-footer-divider {
        display: none;
    }

    .navigation-legal-link {
        font-size: 10px;
        line-height: 1.4;
        letter-spacing: 0.7px;
    }

    .navigation-disclaimer-button::after {
        content: "·";

        margin-left: 10px;

        color: rgba(255, 255, 255, 0.3);
    }

    .navigation-footer-message {
        margin-top: 1px;

        font-size: 9px;
        line-height: 1.4;
        letter-spacing: 0.7px;
    }


    /* ========================================
       PRIVACY STATEMENT
       SHARED TABLET + MOBILE
    ======================================== */

    .policy-modal {
        padding: 20px;

        align-items: center;
        justify-content: center;
    }

    .policy-panel {
        width: 100%;

        height: calc(100svh - 40px);

        max-width: none;
        max-height: none;

        border-radius: 6px;

        overflow-x: hidden;
        overflow-y: auto;

        box-sizing: border-box;

    }


    /* ----------------------------------------
       PRIVACY CLOSE BUTTON
    ---------------------------------------- */

    .policy-close {
        top: 34px;
        right: 34px;

        width: 36px;
        height: 36px;

        z-index: 30;

        background: rgba(255, 255, 255, 0.94);

        border-radius: 50%;
    }

    .policy-close span {
        top: 17px;
        left: 7px;

        width: 22px;
        height: 1.5px;
    }


    /* ----------------------------------------
       PRIVACY INTRO
    ---------------------------------------- */

    .policy-sidebar {
        width: 100%;
        min-width: 0;
        min-height: auto;

        padding: 52px 42px 38px;

        display: block;

        background: #f3f4f7;

        box-sizing: border-box;
    }

    .policy-sidebar-content {
        width: 100%;
        max-width: 580px;
    }

    .policy-eyebrow {
        margin: 0 0 20px;

        font-size: 9px;
        line-height: 1;
        letter-spacing: 1.6px;
    }

    .policy-sidebar h2 {
        width: 100%;
        max-width: 580px;

        margin: 0;

        font-size: 34px;
        line-height: 1.15;
        letter-spacing: -0.7px;

        word-break: normal;
        overflow-wrap: normal;
    }

    .policy-sidebar-line {
        width: 40px;

        margin: 24px 0 22px;
    }

    .policy-intro {
        width: 100%;
        max-width: 580px;

        font-size: 13px;
        line-height: 1.7;
    }


    /* ----------------------------------------
       PRIVACY COMMITMENT
    ---------------------------------------- */

    .policy-commitment {
        width: 100%;
        max-width: 580px;

        margin-top: 32px;
        padding-top: 22px;

        box-sizing: border-box;
    }

    .policy-commitment-label {
        font-size: 8px;
    }

    .policy-commitment h3 {
        font-size: 16px;
    }

    .policy-commitment p:not(.policy-commitment-label) {
        max-width: 520px;

        font-size: 12px;
        line-height: 1.6;
    }


    /* ----------------------------------------
       PRIVACY MAIN CONTENT
    ---------------------------------------- */

    .policy-main {
        position: relative;

        width: 100%;
        min-width: 0;

        height: auto;
        min-height: auto;

        background: #ffffff;

        overflow: visible;

        box-sizing: border-box;
    }

    .policy-main-inner {
        width: 100%;
        max-width: none;

        padding: 42px;

        box-sizing: border-box;
    }


    /* ----------------------------------------
       PRIVACY SECTIONS
    ---------------------------------------- */

    .policy-section {
        width: 100%;

        padding-bottom: 26px;
        margin-bottom: 26px;

        box-sizing: border-box;
    }

    .policy-section-heading {
        width: 100%;

        display: flex;
        align-items: baseline;

        gap: 12px;

        margin-bottom: 14px;

        box-sizing: border-box;
    }

    .policy-section-number {
        flex-shrink: 0;

        font-size: 10px;
    }

    .policy-section-heading h3 {
        min-width: 0;

        font-size: 19px;
        line-height: 1.3;

        word-break: normal;
        overflow-wrap: normal;
    }

    .policy-section-body {
        width: auto;
        max-width: none;

        padding-left: 34px;

        box-sizing: border-box;
    }

    .policy-section-body p {
        font-size: 12px;
        line-height: 1.7;
    }


    /* ----------------------------------------
       THREATS TO IMPARTIALITY
    ---------------------------------------- */

    .policy-threat-grid {
        width: auto;
        max-width: 100%;

        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));

        gap: 18px;

        padding-left: 34px;

        box-sizing: border-box;
    }

    .policy-threat-item {
        width: 100%;
        min-width: 0;
        min-height: 82px;

        box-sizing: border-box;
    }

    .policy-threat-item h4 {
        font-size: 13px;
    }

    .policy-threat-item h4 span {
        font-size: 11px;
    }

}


/* ========================================
   TABLET ONLY
   481px - 768px
======================================== */

@media (min-width: 481px) and (max-width: 768px) {

    /* ========================================
       PRIVACY STATEMENT
       FORCE SINGLE COLUMN
    ======================================== */

    .policy-modal {
        padding: 20px;

        overflow: hidden;
    }

    .policy-panel {
        width: calc(100vw - 40px);
        height: calc(100dvh - 40px);

        /*
           Required to override the desktop
           40 / 60 grid at tablet widths.
        */

        display: block !important;
        grid-template-columns: none !important;

        overflow-x: hidden;
        overflow-y: auto;
    }


    /* ----------------------------------------
       TABLET CLOSE BUTTON
    ---------------------------------------- */

    .policy-close {
        position: absolute;

        top: 18px;
        right: 18px;

        width: 38px;
        height: 38px;
    }

    .policy-close span {
        top: 18px;
        left: 7px;

        width: 24px;
    }


    /* ----------------------------------------
       TABLET PRIVACY INTRO
    ---------------------------------------- */

    .policy-sidebar {
        position: relative;

        padding: 48px 44px 38px;

        overflow: visible;
    }

    .policy-eyebrow {
        margin-bottom: 18px;
    }

    .policy-commitment {
        margin-top: 30px;
    }


    /* ----------------------------------------
       TABLET POLICY CONTENT
    ---------------------------------------- */

    .policy-main-inner {
        padding: 40px 44px 48px;
    }

    .policy-section {
        padding-bottom: 24px;
        margin-bottom: 24px;
    }

}


/* ========================================
   MOBILE
   480px AND BELOW
======================================== */

@media (max-width: 480px) {

    /* ========================================
       MOBILE HEADER
    ======================================== */

    .site-header {
        height: 82px;
    }
    
    .site-header::after {
        content: "";
        position: absolute;
    
        left: 0;
        bottom: 0;
    
        width: 100%;
        height: 22px;
    
        background: #ffffff;
    
        border: none;
        box-shadow: none;
    }

    /* ========================================
    MOBILE PAGE OFFSET
    ======================================== */

    body {
        padding-top: 82px;
    }

    .header-container {
        width: 100%;
        height: 92px;
        
        padding: 0 24px;
        
        display: flex;
        align-items: center;
        justify-content: space-between;
        
        box-sizing: border-box;
    }


    /* ========================================
       MOBILE LOGO
    ======================================== */

    .site-logo {
        height: 70px;
        transform: none;
    }

    .site-logo img {
        width: auto;
        height: 70px;
    
        object-fit: contain;
    }


    /* ========================================
       MOBILE MENU BUTTON
    ======================================== */

    .menu-button {
        position: relative;
    
        top: auto;
        right: auto;
        bottom: auto;
        left: auto;
    
        margin: 0;
        padding: 0;
    
        flex-shrink: 0;
        align-self: center;
    }
    
    .menu-text {
        display: none;
    }
    
    .menu-icon-lines {
        position: relative;
    
        top: 0;
        bottom: auto;
    
        margin: 0;
    
        transform: none;
    }

    
    /* ========================================
       MOBILE NAVIGATION
       SAFARI VISIBLE VIEWPORT
    ======================================== */

    .navigation-overlay {
        top: 0;
        left: 0;

        width: 100%;

        height: 100vh;
        height: 100svh;

        min-height: 0;

        background: #142769;

        overflow: hidden;
    }

    .navigation-overlay-inner {
        width: 100%;
        height: 100%;

        margin: 0;

        padding:
            108px
            28px
            calc(20px + env(safe-area-inset-bottom));

        display: flex;
        flex-direction: column;

        box-sizing: border-box;
    }

    .navigation-content {
        width: 100%;
        flex: 0 0 auto;
    }

    .navigation-eyebrow {
        margin: 0 0 16px;
    }

    .navigation-link {
        gap: 18px;
        padding: 10px 0;
    }

    .navigation-number {
        width: 24px;
        font-size: 9px;
    }

    .navigation-label {
        font-size: 24px;
        line-height: 1.1;
    }


    /* ========================================
       MOBILE NAVIGATION FOOTER
    ======================================== */

    .navigation-footer {
        width: 100%;

        margin-top: auto;

        padding-top: 12px;
        padding-bottom: 0;

        display: flex;
        flex-direction: column;
        align-items: flex-start;

        gap: 5px;

        flex-shrink: 0;

        border-top: 1px solid rgba(255, 255, 255, 0.16);

        font-size: 8px;
        line-height: 1.35;
        letter-spacing: 0.6px;

        box-sizing: border-box;
    }

    .navigation-footer-left {
        width: 100%;

        display: flex;
        align-items: center;
        flex-wrap: wrap;

        gap: 5px 9px;

        font-size: 8px;
    }

    .navigation-footer-left > span:first-child {
        width: 100%;
    }

    .navigation-legal-link {
        font-size: 9px;
        line-height: 1.35;
        letter-spacing: 0.6px;
    }

    .navigation-disclaimer-button::after {
        content: "·";

        margin-left: 9px;

        color: rgba(255, 255, 255, 0.3);
    }

    .navigation-footer-message {
        margin-top: 1px;

        font-size: 8px;
        line-height: 1.35;
        letter-spacing: 0.6px;
    }


    /* ========================================
       MOBILE CLOSE ICON
       PRESERVE ORIGINAL MENU BEHAVIOUR
    ======================================== */

    .menu-button[aria-expanded="true"] .menu-icon-lines {
        transform: translateY(1px);
    }


    /* ========================================
       MOBILE PRIVACY STATEMENT
    ======================================== */

    .policy-modal {
        padding:
            12px
            12px
            calc(12px + env(safe-area-inset-bottom));
    }

    .policy-panel {
        width: 100%;
        height: calc(100svh - 24px);

        display: block;

        border-radius: 5px;

        overflow-x: hidden;
        overflow-y: auto;
    }


    /* ========================================
       MOBILE PRIVACY CLOSE
    ======================================== */

    .policy-close {
        position: absolute;

        top: 12px;
        right: 12px;

        width: 34px;
        height: 34px;
    }

    .policy-close span {
        top: 16px;
        left: 7px;

        width: 20px;
    }


    /* ========================================
       MOBILE PRIVACY INTRO
    ======================================== */

    .policy-sidebar {
        padding:
            48px
            24px
            32px;
    }

    .policy-eyebrow {
        margin-bottom: 18px;

        font-size: 8px;
        letter-spacing: 1.5px;
    }

    .policy-sidebar h2 {
        width: 100%;
        max-width: 280px;

        font-size: 29px;
        line-height: 1.14;
        letter-spacing: -0.5px;
    }

    .policy-sidebar-line {
        width: 36px;

        margin: 22px 0 20px;
    }

    .policy-intro {
        font-size: 12px;
        line-height: 1.7;
    }


    /* ========================================
       MOBILE COMMITMENT
    ======================================== */

    .policy-commitment {
        margin-top: 28px;
        padding-top: 20px;
    }

    .policy-commitment-label {
        font-size: 8px;
    }

    .policy-commitment h3 {
        font-size: 15px;
    }

    .policy-commitment p:not(.policy-commitment-label) {
        font-size: 11px;
        line-height: 1.65;
    }


    /* ========================================
       MOBILE POLICY CONTENT
    ======================================== */

    .policy-main-inner {
        padding:
            34px
            24px
            40px;
    }

    .policy-section {
        padding-bottom: 24px;
        margin-bottom: 24px;
    }

    .policy-section-heading {
        align-items: flex-start;

        gap: 10px;

        margin-bottom: 14px;
    }

    .policy-section-number {
        padding-top: 5px;

        font-size: 9px;
    }

    .policy-section-heading h3 {
        font-size: 17px;
        line-height: 1.35;
    }

    .policy-section-body {
        padding-left: 0;
    }

    .policy-section-body p {
        font-size: 12px;
        line-height: 1.7;
    }


    /* ========================================
       MOBILE THREAT LIST
    ======================================== */

    .policy-threat-grid {
        grid-template-columns: 1fr;

        gap: 16px;

        padding-left: 0;
    }

    .policy-threat-item {
        min-height: 72px;
        padding-top: 12px;
    }

    .policy-threat-number {
        margin-bottom: 8px;
        font-size: 8px;
    }

    .policy-threat-item h4 {
        font-size: 13px;
        line-height: 1.4;
    }

    .policy-threat-item h4 span {
        font-size: 11px;
    }

}

/* ========================================
   GLOBAL HEADER — COMPACT DESKTOP
   769px — 837px
======================================== */

@media (min-width: 769px) and (max-width: 837px) {

    .top-contact-bar {
        display: none;
    }

    body {
        padding-top: 132px;
    }

}



/* ============================================================02. GLOBAL FOOTER============================================================ */


/* ========================================
   HOMEPAGE TABLET + MOBILE
   768px AND BELOW
======================================== */

@media (max-width: 768px) {

    /* ========================================
       MAIN FOOTER
    ======================================== */

    .footer-main {
        padding: 48px 40px 40px;
    }

    .footer-container {
        width: 100%;
    }


    /* ========================================
       TOP BRAND / CTA
    ======================================== */

    .footer-hero {
        grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.85fr);
    
        gap: 40px;
    
        padding-bottom: 38px;
    
        align-items: start;
    }

    .footer-brand {
        padding-right: 0;
    }

    .footer-eyebrow {
        margin-bottom: 18px;

        font-size: 9px;
        letter-spacing: 1.8px;
    }

    .footer-brand h2 {
        max-width: 430px;
    
        font-size: 30px;
        line-height: 1.16;
        letter-spacing: -0.6px;
    }

    .footer-brand-description {
        margin-top: 18px;

        font-size: 12px;
        line-height: 1.7;
    }


    /* ----------------------------------------
       CTA
    ---------------------------------------- */

    .footer-cta {
        padding-left: 36px;
        padding-top: 0;
    
        border-top: none;
        border-left: 1px solid rgba(255, 255, 255, 0.18);
    }

    .footer-cta h3 {
        margin-bottom: 22px;

        font-size: 20px;
        line-height: 1.4;
    }

    .footer-quotation-link {
        width: 100%;
        max-width: 210px;
        min-width: 0;
        height: 48px;
    
        box-sizing: border-box;
    }


    /* ========================================
       FOOTER INFORMATION
    ======================================== */

    .footer-information {
        grid-template-columns: repeat(2, minmax(0, 1fr));

        gap: 42px 60px;

        padding-top: 38px;
    }

    .footer-column {
        min-width: 0;
    }

    .footer-column-title {
        margin-bottom: 18px;
    }


    /* ----------------------------------------
       LINKS / CONTACT / OFFICE
    ---------------------------------------- */

    .footer-links {
        gap: 11px;
    }

    .footer-links a,
    .footer-contact a,
    .footer-office p {
        font-size: 13px;
    }

    .footer-support-text {
        max-width: 280px;
    }

    .footer-office {
        max-width: 320px;
    }

    .footer-commitment {
        max-width: 320px;
    }


    /* ========================================
       SANAS ACCREDITATION
    ======================================== */

    .footer-accreditation {
        padding: 22px 40px;
        background: #ffffff;
    }

    .footer-accreditation-container {
        grid-template-columns: 180px minmax(0, 1fr);

        gap: 18px 36px;

        align-items: center;
    }


    /* ----------------------------------------
       SANAS LOGO
    ---------------------------------------- */

    .footer-sanas-logo img {
        width: 160px;
    }


    /* ----------------------------------------
       REMOVE DESKTOP DIVIDER
    ---------------------------------------- */

    .footer-accreditation-divider {
        display: none;
    }


    /* ----------------------------------------
       ACCREDITATION CONTENT
    ---------------------------------------- */

    .footer-accreditation-content {
        min-width: 0;
    }


    /* ----------------------------------------
       SOCIAL AREA
    ---------------------------------------- */

    .footer-social-area {
        grid-column: 1 / -1;
    
        min-width: 0;
    
        padding-left: 0;
        padding-top: 16px;
    
        border-left: none;
        border-top: 1px solid rgba(20, 39, 105, 0.12);
    }

    .footer-social-link {
        width: 40px;
        height: 40px;
    }


/* ========================================
   BOTTOM LEGAL BAR — 768px
======================================== */

.footer-bottom {
    padding: 12px 40px;
}

.footer-bottom-container {
    display: grid;
    grid-template-columns: 1fr auto;

    column-gap: 28px;
    row-gap: 8px;

    align-items: center;
}


/* ----------------------------------------
   LEGAL LINKS
---------------------------------------- */

.footer-legal {
    grid-column: 1;
    grid-row: 1;

    display: flex;
    align-items: center;

    min-width: 0;
    margin: 0;
}

.footer-legal-link {
    min-height: 32px;

    padding: 2px 20px 2px 0;

    font-size: 11px;
}

.footer-legal-link + .footer-legal-link {
    margin-left: 0;

    padding-left: 20px;

    border-left: 1px solid rgba(255, 255, 255, 0.18);
}


/* ----------------------------------------
   BACK TO TOP
---------------------------------------- */

.footer-back-top {
    grid-column: 2;
    grid-row: 1;

    justify-self: end;

    margin: 0;

    display: inline-flex;
    align-items: center;
    gap: 10px;

    white-space: nowrap;

    font-size: 11px;
}

.footer-back-top span {
    display: inline-flex;
    align-items: center;

    line-height: 1;
}


/* ----------------------------------------
   COPYRIGHT
---------------------------------------- */

.footer-copyright {
    grid-column: 1 / -1;
    grid-row: 2;

    margin: 0;

    font-size: 10px;
    line-height: 1.5;
}


}

/* ============================================================
   GLOBAL HORIZONTAL OVERFLOW PROTECTION
   Page scrolls vertically only
============================================================ */

html {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

/* Keep sizing predictable */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* Footer must never exceed viewport width */
.footer-main,
.footer-container,
.footer-hero,
.footer-information,
.footer-accreditation,
.footer-accreditation-container,
.footer-bottom,
.footer-bottom-container {
    width: 100%;
    max-width: 100%;
}

/* Allow grid/flex children to shrink */
.footer-hero > *,
.footer-information > *,
.footer-accreditation-container > *,
.footer-bottom-container > * {
    min-width: 0;
}

/* Prevent footer content from creating horizontal overflow */
.footer-brand,
.footer-cta,
.footer-column,
.footer-accreditation-content,
.footer-social-area,
.footer-legal {
    max-width: 100%;
    min-width: 0;
}

/* Responsive media must stay inside its container */
.footer-main img,
.footer-accreditation img {
    max-width: 100%;
    height: auto;
}

/* ========================================
   MOBILE
   480px AND BELOW
======================================== */

@media (max-width: 480px) {

    /* ========================================
       MAIN FOOTER
    ======================================== */

    .footer-main,
    .footer-container {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    }

    .footer-main {
        padding:
            42px
            24px
            36px;
    }


    /* ========================================
       TOP BRAND
    ======================================== */

    .footer-hero {
            grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.9fr);
            gap: 14px;
    
        width: 100%;
        max-width: 100%;
    
    
        padding-bottom: 32px;
    
        box-sizing: border-box;
    }
    
    .footer-brand,
    .footer-cta {
        min-width: 0;
    }

    .footer-eyebrow {
        font-size: 11px;
        line-height: 1;
        font-weight: 600;
        letter-spacing: 2px;
    }

    .footer-brand h2 {
        max-width: 330px;
    
        font-size: 27px;
        line-height: 1.16;
        letter-spacing: -0.4px;
        font-weight: 400;
    }

    .footer-brand-description {
        margin-top: 16px;

        font-size: 11px;
        line-height: 1.7;
    }


    /* ========================================
       CTA
    ======================================== */

    .footer-cta {
        min-width: 0;

        padding-top: 0px;
        padding-left: 18px;

        border-top: none;
        border-left: 1px solid rgba(255, 255, 255, 0.18);

        box-sizing: border-box;
    }

    .footer-cta h3 {
        margin-bottom: 20px;
    
        font-size: 20px;
        line-height: 1.18;
        letter-spacing: -0.25px;
        font-weight: 400;
    }

    .footer-quotation-link {
        position: relative;

        width: 100%;
        max-width: 100%;
        min-width: 0;
        height: 50px;

        padding: 0 42px 0 14px;

        display: flex;
        align-items: center;

        font-size: 12px;

        box-sizing: border-box;
    }

    .footer-quotation-arrow {
        position: absolute;
    
        top: 50%;
        right: 14px;
    
        transform: translateY(-50%);
    
        display: inline-flex;
        align-items: center;
        justify-content: center;
    
        padding-left: 8px;
    
        color: #ffffff;
    
        border-left: 1px solid rgba(255, 255, 255, 0.25);
    
        font-size: 18px;
        line-height: 1;
    }


    /* ========================================
       FOOTER INFORMATION
    ======================================== */

    .footer-information {
        grid-template-columns: 1fr;

        gap: 0;

        padding-top: 34px;
    }

    .footer-column {
        width: 100%;

        padding: 26px 0;

        border-bottom: 1px solid rgba(255, 255, 255, 0.14);
    }

    .footer-column:first-child {
        padding-top: 0;
    }

    .footer-column:last-child {
        padding-bottom: 0;

        border-bottom: none;
    }

    .footer-column-title {
        margin-bottom: 17px;

        font-size: 8px;
        letter-spacing: 1.7px;
    }


    /* ----------------------------------------
       EXPLORE
    ---------------------------------------- */

    .footer-links {
        gap: 0;
    }

    .footer-links a {
        width: 100%;

        padding: 7px 0;

        font-size: 13px;
        line-height: 1.45;

        box-sizing: border-box;
    }


    /* ----------------------------------------
       CONTACT
    ---------------------------------------- */

    .footer-contact {
        gap: 0;
    }

    .footer-contact a {
        width: fit-content;

        padding: 7px 0;

        font-size: 13px;
    }

    .footer-small-line {
        margin: 16px 0 14px;
    }

    .footer-support-text {
        max-width: 300px;

        font-size: 11px;
    }


    /* ----------------------------------------
       OFFICE
    ---------------------------------------- */

    .footer-office {
        max-width: 330px;
    }

    .footer-office p {
        font-size: 12px;
        line-height: 1.6;
    }


    /* ----------------------------------------
       COMMITMENT
    ---------------------------------------- */

    .footer-commitment {
        max-width: 330px;
    }

    .footer-commitment strong {
        margin-bottom: 10px;

        font-size: 14px;
    }

    .footer-commitment p {
        font-size: 11px;
        line-height: 1.7;
    }


    /* ========================================
       SANAS ACCREDITATION
    ======================================== */

    .footer-accreditation {
        padding-top: 18px;
        padding-bottom:18px;
    }

    .footer-accreditation-container {
        display: grid;

        grid-template-columns: 1fr;

        align-items: start;

        row-gap: 5px;
    }


    /* ----------------------------------------
       SANAS LOGO
    ---------------------------------------- */

    .footer-sanas-logo {
        margin-bottom: 0px;
    }

    .footer-sanas-logo img {
        width: 150px;
    }


    /* ----------------------------------------
       ACCREDITATION CONTENT
    ---------------------------------------- */

    .footer-accreditation-content {
        width: 100%;
        margin-top: 0;
        margin-bottom: 0;
    }

    .footer-accreditation-eyebrow {
        margin-bottom: 9px;

        font-size: 8px;
        letter-spacing: 1.8px;
    }

    .footer-accreditation-text {
        max-width: 330px;

        margin-bottom: 14px;

        font-size: 11px;
        line-height: 1.6;
    }

    .footer-certificate-link {
        gap: 14px;

        font-size: 11px;
    }


    /* ----------------------------------------
       SOCIAL AREA
    ---------------------------------------- */

    .footer-social-area {
        grid-column: auto;

        margin-top: 10px;

        padding-top: 14px;
        padding-left: 4px;

        border-top: 1px solid rgba(20, 39, 105, 0.12);
        border-left: none;
    }

    .footer-social-label {
        margin-bottom: 12px;

        font-size: 8px;
    }

    .footer-socials {
        gap: 10px;
    }

    .footer-social-link {
        width: 42px;
        height: 42px;
    }


/* ========================================
   BOTTOM LEGAL BAR
======================================== */

.footer-bottom {
    padding: 16px 24px;
}

.footer-bottom-container {
    display: grid;
    grid-template-columns: 1fr auto;

    column-gap: 20px;
    row-gap: 10px;

    align-items: center;
}


/* ----------------------------------------
   LEGAL LINKS
---------------------------------------- */

.footer-legal {
    grid-column: 1;
    grid-row: 1;

    display: flex;
    align-items: center;

    min-width: 0;
    margin: 0;
}

.footer-legal-link {
    min-height: 28px;

    padding: 8px 18px 8px 0;

    font-size: 11px;
}

.footer-legal-link + .footer-legal-link {
    margin-left: 0;

    padding-left: 18px;

    border-left: 1px solid rgba(255, 255, 255, 0.18);
}


/* ----------------------------------------
   BACK TO TOP
---------------------------------------- */

.footer-back-top {
    grid-column: 2;
    grid-row: 1;

    justify-self: end;

    min-height: 24px;
    margin: 0;

    display: inline-flex;
    align-items: center;

    white-space: nowrap;

    font-size: 11px;
}


/* ----------------------------------------
   COPYRIGHT
---------------------------------------- */

.footer-copyright {
    grid-column: 1 / -1;
    grid-row: 2;

    margin: 0;

    font-size: 10px;
    line-height: 1.5;
}

}


/* ============================================================
   03. HOMEPAGE — HERO
============================================================ */

/* =========================================================
   HOME HERO — TABLET
   481px–768px
   ========================================================= */

   @media (min-width: 481px) and (max-width: 768px) {

    /* =====================================================
       HERO
       ===================================================== */

    .hero {
        width: 100%;
        height: auto;
        min-height: 0;
        max-height: none;

        padding: 4px 0 54px;

        overflow: hidden;

        box-sizing: border-box;
    }


    /* =====================================================
       HERO SHELL
       ===================================================== */

    .hero-shell {
        width: calc(100% - 80px);
        max-width: none;
        height: auto;

        margin: 0 auto;

        box-sizing: border-box;
    }


    /* =====================================================
       INTRO
       ===================================================== */

    .hero-intro {
        width: 100%;
        max-width: 620px;

        margin: 0 auto 32px;

        text-align: center;
    }


    .hero-eyebrow {
        margin: 0 0 12px;

        font-size: 11px;
        line-height: 1.2;
        font-weight: 600;

        letter-spacing: 1.5px;
    }


    .hero-title {
        width: 100%;
        max-width: 620px;

        margin: 0 auto;

        font-size: 40px;
        line-height: 1.1;
        font-weight: 600;

        letter-spacing: -0.7px;

        white-space: normal;
        text-align: center;
    }


    .hero-line {
        width: 42px;
        height: 1.5px;

        margin: 18px auto;

        background: #3568c8;
    }


    .hero-description,
    .hero .hero-intro .hero-description {
        width: 100% !important;
        max-width: 520px !important;

        margin: 0 auto !important;
        padding: 0 !important;

        font-size: 13px;
        line-height: 1.65;
        font-weight: 400;

        white-space: normal !important;
        overflow-wrap: normal !important;

        text-align: center !important;

        box-sizing: border-box;
    }


    /* =====================================================
       HERO VISUAL
       ===================================================== */

    .hero-visual {
        position: relative;

        width: 100%;
        height: 310px;

        margin-top: 30px;

        border: none;
        outline: none;
        box-shadow: none;

        box-sizing: border-box;
    }


    /* =====================================================
       HERO IMAGE
       ===================================================== */

       .hero-image-container {
        position: absolute;
        z-index: 1;
    
        inset: 0;
    
        width: 100%;
        height: 100%;
    
        overflow: hidden;
    
        /* important */
        background: transparent !important;
    
        border: none !important;
        outline: none !important;
        box-shadow: none !important;
    
        border-radius: 20px;
    
        box-sizing: border-box;
    }

    .hero-image {
        position: absolute;
        z-index: 1;
    
        /*
           Slight overscan prevents a sub-pixel gap
           between the image and rounded container.
        */
        top: -1px;
        left: -1px;
    
        width: calc(100% + 2px);
        height: calc(100% + 2px);
    
        display: block;
    
        object-fit: cover;
        object-position: center;
    
        border: none !important;
        outline: none !important;
        box-shadow: none !important;
    
        max-width: none;
    
        box-sizing: border-box;
    }


    .hero-image {
        position: absolute;
        z-index: 1;

        inset: 0;

        display: block;

        width: 100%;
        height: 100%;

        object-fit: cover;
        object-position: center;

        border: none;
        outline: none;
        box-shadow: none;

        box-sizing: border-box;
    }


    /* =====================================================
       TOP-LEFT WHITE MASK
       MATCHES SANAS CARD
       ===================================================== */

       .hero-image-mask-top {
        position: absolute;
        z-index: 2;
    
        top: 0;
        left: 0;
    
        width: 330px;
        height: 96px;
    
        background: #ffffff;
    
        border: 0;
        outline: 0;
        box-shadow: none;
    
        border-radius: 0 0 20px 0;
    
        pointer-events: none;
    }


    /* reverse corner */

    .hero-image-mask-top::after {
        content: "";
    
        position: absolute;
    
        top: 0;
        right: -20px;
    
        width: 20px;
        height: 20px;
    
        background: transparent;
    
        border: 0;
        outline: 0;
    
        border-top-left-radius: 20px;
    
        box-shadow:
            -10px -10px 0 10px #ffffff;
    }


    /* =====================================================
       BOTTOM-RIGHT WHITE MASK
       MATCHES CREDENTIAL GROUP
       ===================================================== */

       .hero-image-mask-main {
        position: absolute;
        z-index: 2;
    
        right: 0;
        bottom: 0;
    
        width: 355px;
        height: 90px;
    
        background: #ffffff;
    
        border: 0;
        outline: 0;
        box-shadow: none;
    
        border-radius: 20px 0 0 0;
    
        pointer-events: none;
    }


    /* reverse corner */

    .hero-image-mask-main::before {
        content: "";
    
        position: absolute;
    
        left: -20px;
        bottom: 0;
    
        width: 20px;
        height: 20px;
    
        background: transparent;
    
        border: 0;
        outline: 0;
    
        border-bottom-right-radius: 20px;
    
        box-shadow:
            10px 10px 0 10px #ffffff;
    }


    /* =====================================================
       CENTRE BRIDGE
       NOT REQUIRED ON TABLET
       ===================================================== */

    .hero-image-panel-bridge {
        display: none;
    }


/* =====================================================
   SANAS — TOP LEFT
   NO VISIBLE CARD CONTAINER
   ===================================================== */

   .hero-sanas-card {
    position: absolute !important;
    z-index: 5;

    top: 0 !important;
    left: 0 !important;
    right: auto !important;
    bottom: auto !important;

    width: 330px !important;
    height: 96px !important;

    margin: 0 !important;
    padding: 14px 18px !important;

    display: grid !important;
    grid-template-columns: 112px 1px 1fr !important;
    align-items: center !important;
    column-gap: 16px !important;

    /* REMOVE CARD CONTAINER */
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;

    transform: none !important;

    box-sizing: border-box;
}


/* =====================================================
   SANAS LOGO
   ===================================================== */

.hero-sanas-logo-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-sanas-logo {
    display: block;

    width: 100%;
    max-width: 105px;
    height: auto;

    object-fit: contain;
}


/* =====================================================
   SANAS DIVIDER
   ===================================================== */

.hero-sanas-divider {
    width: 1px;
    height: 54px;

    background: rgba(20, 39, 105, 0.14);
}


/* =====================================================
   SANAS CONTENT
   ===================================================== */

.hero-sanas-content {
    min-width: 0;
}

.hero-sanas-card .hero-card-label {
    margin: 0 0 5px;

    font-size: 8px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 1.4px;
}

.hero-sanas-title {
    margin: 0;

    font-size: 14px;
    line-height: 1.25;
    font-weight: 500;
}

.hero-sanas-link {
    position: relative;

    margin-top: 7px;

    display: inline-flex;
    align-items: center;

    gap: 7px;

    font-size: 8.5px;
    line-height: 1.3;
    font-weight: 500;

    text-decoration: none;
}


/* =====================================================
   CREDENTIAL GROUP — BOTTOM RIGHT
   ===================================================== */

.hero-credentials {
    position: absolute !important;
    z-index: 6;

    top: auto !important;
    left: auto !important;

    right: 0 !important;
    bottom: 0 !important;

    width: auto !important;
    height: auto !important;

    margin: 0 !important;
    padding: 0 !important;

    display: grid !important;

    grid-template-columns: repeat(3, 105px) !important;
    gap: 20px !important;

    align-items: stretch;

    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;

    transform: none !important;
}


/* =====================================================
   INDIVIDUAL CREDENTIAL ITEMS
   NO VISIBLE CARD CONTAINERS
   ===================================================== */

.hero-credential-card {
    width: 105px !important;
    min-width: 105px !important;

    height: 90px !important;
    min-height: 90px !important;

    margin: 0 !important;
    padding: 9px 10px !important;

    display: flex;

    flex-direction: column;
    justify-content: center;

    /* REMOVE CARD CONTAINER */
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;

    transform: none !important;

    box-sizing: border-box;
}


/* =====================================================
   CREDENTIAL TEXT
   ===================================================== */

.hero-credential-card .hero-credential-number {
    display: block;

    margin: 0;

    font-size: 13px !important;
    line-height: 1.1;
    font-weight: 600;

    letter-spacing: -0.2px;

    text-align: center;
    white-space: nowrap;
}

.hero-credential-card .hero-credential-line {
    width: 18px;
    height: 1px;

    margin: 5px auto;

    background: #3568c8;
}

.hero-credential-card .hero-card-label {
    margin: 0 0 3px;

    font-size: 7px !important;
    line-height: 1.15;
    font-weight: 600;

    letter-spacing: 0.45px;

    text-align: center;
    white-space: nowrap;
}

.hero-credential-card .hero-credential-title {
    margin: 0;

    font-size: 8.5px !important;
    line-height: 1.2;
    font-weight: 400;

    text-align: center;
    white-space: nowrap;
}



    /* =====================================================
       CTA AREA
       LOCKED
       ===================================================== */

    .hero-actions {
        position: relative;

        width: 100%;

        margin: 22px auto 0;

        display: flex;

        align-items: center;
        justify-content: center;

        gap: 32px;

        text-align: center;

        transform: none;
    }


    /* =====================================================
       GET A QUOTE
       ===================================================== */

    .hero-quote-btn {
        min-width: 175px;
        height: 44px;

        padding: 0 22px;

        display: inline-flex;

        align-items: center;
        justify-content: center;

        font-size: 14px;

        text-align: center;
    }


    /* no arrow */

    .hero-quote-btn > span:last-child {
        display: none;
    }


    /* no movement */

    .hero-quote-btn:hover {
        transform: none;
    }


    .hero-quote-btn:hover > span:last-child {
        display: none;
    }


    /* =====================================================
       VIEW SERVICES
       ===================================================== */

    .hero-services-btn {
        position: relative;

        padding: 11px 0 7px;

        display: inline-flex;

        align-items: center;
        justify-content: center;

        gap: 0;

        color: #3568c8;

        font-size: 12px;
        line-height: 1;
        font-weight: 500;

        text-decoration: none;

        border-bottom: 1px solid #3568c8;
    }


    /* no arrow */

    .hero-services-btn > span:last-child {
        display: none;
    }


    /* remove desktop animated underline */

    .hero-services-btn::after {
        display: none;

        content: none;
    }


    /* no movement */

    .hero-services-btn:hover {
        transform: none;
    }


    .hero-services-btn:hover > span {
        transform: none;
    }

}


/* ========================================
   HOME HERO — MOBILE
   480px AND BELOW
======================================== */

@media (max-width: 480px) {

    /* ========================================
       HERO
    ======================================== */

    .hero {
        width: 100%;
        height: auto;
        min-height: 0;
        max-height: none;
    
        padding: 5px 0 48px;
    
        overflow: hidden;
    
        box-sizing: border-box;
    }


    /* ========================================
       HERO SHELL
    ======================================== */

    .hero-shell {
        width: calc(100% - 48px);
        max-width: none;
        height: auto;

        margin: 0 auto;

        box-sizing: border-box;
    }


    /* ========================================
       HERO INTRO
    ======================================== */

    .hero-intro {
        width: 100%;
        max-width: none;

        margin: 0 0 24px;

        text-align: center;

        box-sizing: border-box;
    }

    .hero-eyebrow {
        margin: 0 0 12px;

        font-size: 11px;
        line-height: 1.2;
        font-weight: 600;
        letter-spacing: 1.4px;
    }

    .hero-title {
        width: 100%;
        max-width: 100%;

        margin: 0;

        font-size: 34px;
        line-height: 1.12;
        font-weight: 600;
        letter-spacing: -0.6px;

        white-space: normal;
        overflow-wrap: normal;
        word-break: normal;

        box-sizing: border-box;
    }

    .hero-line {
        width: 42px;
        height: 1.5px;

        margin: 18px auto;

        background: #3568c8;
    }

    .hero .hero-intro .hero-description {
        width: 100% !important;
        max-width: 310px !important;

        margin: 0 auto !important;
        padding: 0 !important;

        font-size: 12px;
        line-height: 1.65;
        font-weight: 400;

        text-align: center !important;

        white-space: normal !important;
        overflow-wrap: break-word;

        box-sizing: border-box;
    }


    /* ========================================
       HERO VISUAL
    ======================================== */

    .hero-visual {
        position: relative;

        width: 100%;
        height: 280px;

        margin-top: 0;

        overflow: hidden;

        border-radius: 12px;

        box-sizing: border-box;
    }


    /* ========================================
       HERO IMAGE
       FULL MOBILE BACKGROUND
    ======================================== */

    .hero-image-container {
        position: absolute;

        z-index: 1;

        inset: 0;

        width: 100%;
        height: 100%;

        overflow: hidden;

        background: #142769;

        border-radius: 12px;

        box-sizing: border-box;
    }

    .hero-image {
        position: absolute;
        z-index: 1;
    
        top: -45px;
        left: 0;
    
        width: 100%;
        height: calc(100% + 45px);
    
        display: block;
    
        object-fit: cover;
        object-position: center;
    
        box-sizing: border-box;
    }


    /* ========================================
       MOBILE IMAGE MASK SYSTEM
    ======================================== */

    .hero-image-mask {
        position: absolute;

        z-index: 2;

        background: #ffffff;

        pointer-events: none;
    }


    /* ========================================
       KEEP TOP-LEFT SANAS MASK
    ======================================== */

    .hero-image-mask-top {
        display: block;

        top: 0;
        left: 0;

        width: 158px;
        height: 104px;

        border-bottom-right-radius: 22px;
    }

    .hero-image-mask-top::after {
        content: "";

        position: absolute;

        top: 0;
        right: -20px;

        width: 20px;
        height: 20px;

        background: transparent;

        border-top-left-radius: 20px;

        box-shadow:
            -10px -10px 0 10px #ffffff;
    }


    /* ========================================
       REMOVE DESKTOP BOTTOM-RIGHT MASK
    ======================================== */

    .hero-image-mask-main {
        display: none !important;
    }

    .hero-image-mask-main::before,
    .hero-image-mask-main::after {
        display: none !important;
        content: none !important;
    }


    /* ========================================
       REMOVE DESKTOP CENTRE BRIDGE
    ======================================== */

    .hero-image-panel-bridge {
        display: none !important;
    }


    /* ========================================
       SANAS CONTENT — TOP LEFT
    ======================================== */

    .hero-sanas-card {
        position: absolute;

        z-index: 5;

        top: 0;
        left: 0;

        width: 158px;
        height: 104px;

        margin: 0;
        padding: 12px 14px;

        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;

        gap: 8px;

        background: transparent;

        border: none;
        border-radius: 0;

        box-shadow: none;

        box-sizing: border-box;
    }


    /* Hide desktop SANAS content */

    .hero-sanas-divider,
    .hero-sanas-card .hero-card-label,
    .hero-sanas-title {
        display: none;
    }


    /* SANAS logo */

    .hero-sanas-logo-wrap {
        width: 100%;
        height: auto;

        display: flex;
        align-items: center;
        justify-content: center;
    }

    .hero-sanas-logo {
        width: 108px;
        max-width: 108px;
        height: auto;

        display: block;
    }


    /* SANAS accreditation link */

    .hero-sanas-content {
        width: 100%;

        display: flex;
        justify-content: center;
    }

    .hero-sanas-link {
        position: relative;
    
        display: inline-flex;
        align-items: center;
        justify-content: center;
    
        padding: 0 0 3px;
    
        color: #3568c8;
    
        font-size: 9px;
        line-height: 1.2;
        font-weight: 500;
    
        text-align: center;
        white-space: nowrap;
    
        text-decoration: none !important;
    }

    .hero-sanas-link::after {
        display: none !important;
        content: none !important;
    }

    /* Remove arrow */

    .hero-sanas-link > span {
    display: none;
    }




    /* ========================================
   CREDENTIAL GLASS GRADIENT
    ======================================== */

    .hero-credentials {
        position: absolute;

        z-index: 6;

        left: 0;
        right: 0;
        bottom: 0;

        width: 100%;
        height: 82px;

        margin: 0;
        padding: 12px 8px 6px;

        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        align-items: end;

        gap: 0;

        background: linear-gradient(
        to top,
        rgba(10, 25, 65, 0.72) 0%,
        rgba(20, 39, 105, 0.48) 38%,
        rgba(20, 39, 105, 0.20) 70%,
        rgba(20, 39, 105, 0.00) 100%
    );

        -webkit-backdrop-filter: blur(5px);
        backdrop-filter: blur(5px);

        border: none;

        box-sizing: border-box;
    }


    /* ========================================
       CREDENTIAL ITEMS
    ======================================== */

    .hero-credential-card {
        position: relative;
    
        width: 100%;
        height: 66px;
        min-width: 0;
        min-height: 0;
    
        padding: 0 5px;
    
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    
        background: transparent;
    
        border: none;
        border-radius: 0;
    
        box-shadow: none;
    
        box-sizing: border-box;
    }

    /* ========================================
       CREDENTIAL VERTICAL DIVIDERS
    ======================================== */

    .hero-credential-card:not(:last-child)::after {
        content: "";

        position: absolute;

        top: 5px;
        right: 0;
        bottom: 5px;

        width: 1px;

        background: rgba(255, 255, 255, 0.45);
    }


    /* ========================================
       CREDENTIAL PRIMARY VALUE
    ======================================== */

    .hero-credential-card .hero-credential-number {
        display: block;
    
        margin: 0;
    
        color: #ffffff;
    
        font-size: 14px !important;
        line-height: 1.1;
        font-weight: 600;
    
        text-align: center;
        white-space: nowrap;
    }


    /* ========================================
       HIDE DESKTOP DIVIDER + LABEL
    ======================================== */

    .hero-credential-card .hero-card-label {
        display: block;
    
        margin: 0 0 3px;
    
        color: #8db2ff;
    
        font-size: 7px !important;
        line-height: 1.1;
        font-weight: 600;
        letter-spacing: 0.65px;
    
        text-align: center;
        white-space: nowrap;
    }

    .hero-credential-card .hero-credential-line {
        display: block;
    
        width: 20px;
        height: 1.5px;
    
        margin: 6px auto 5px;
    
        background: #6f9fff;
    }


    /* ========================================
       CREDENTIAL DESCRIPTION
    ======================================== */

    .hero-credential-card .hero-credential-title {
        display: block;
    
        margin: 0;
    
        color: rgba(255, 255, 255, 0.88);
    
        font-size: 9px !important;
        line-height: 1.2;
        font-weight: 400;
    
        text-align: center;
        white-space: nowrap;
    }

    /* ========================================
   HERO ACTIONS — MOBILE
======================================== */

.hero-actions {
    width: 100%;

    margin: 18px auto 0;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 18px;
}


/* ========================================
   GET A QUOTE — MOBILE
======================================== */

.hero-quote-btn {
    min-width: 0;
    width: auto;
    height: 40px;

    padding: 0 20px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 0;

    font-size: 11px;
    line-height: 1;

    text-align: center;
}


/* Remove arrow */

.hero-quote-btn > span:last-child {
    display: none;
}


/* Remove arrow hover movement */

.hero-quote-btn:hover > span:last-child {
    transform: none;
}


/* ========================================
   VIEW SERVICES — MOBILE
======================================== */

.hero-services-btn {
    position: relative;

    padding: 10px 0 7px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 0;

    font-size: 11.5px;
    line-height: 1;

    text-align: center;

    text-decoration: none !important;
    border-bottom: none !important;
}


/* Remove arrow */

.hero-services-btn > span:last-child {
    display: none;
}


/* Full-width underline */

.hero-services-btn::after {
    display: none !important;
    content: none !important;
}


/* Remove desktop hover animation */

.hero-services-btn:hover::after {
    width: 100%;
    transform: none;
}

}

/* ============================================================


/* ============================================================
   04–07. HOMEPAGE — REMAINING SECTIONS
============================================================ */

/* ========================================HOME — VERIFICATION PROCESS======================================== */

@media (min-width: 481px) and (max-width: 768px) {

    /* ========================================
       SECTION
    ======================================== */

    .verification-process {
        width: 100%;
        padding: 80px 40px;
        box-sizing: border-box;
    }

    /* ========================================
       HEADING
    ======================================== */

    .verification-heading {
        width: 100%;
        max-width: 620px;

        margin: 0 auto;
    }

    .verification-eyebrow {
        margin: 0 0 10px;

        font-size: 13px;
        line-height: 1.2;
        letter-spacing: 1.5px;
    }

    .verification-title {
        margin: 0;

        font-size: 36px;
        line-height: 1.12;
        letter-spacing: -0.5px;
    }

    .verification-description {
        width: 100%;
        max-width: 560px;

        margin: 14px auto 0;

        font-size: 15px;
        line-height: 1.55;
    }


    /* ========================================
       TIMELINE
    ======================================== */

    .process-timeline {
        width: 100%;

        margin-top: 44px;

        display: grid;

        grid-template-columns:
            repeat(4, minmax(0, 1fr));

        column-gap: 16px;
    }


    /* ========================================
       TIMELINE TRACK
    ======================================== */

    .timeline-track {
        top: 43px;

        left: calc(12.5% - 6px);
        right: calc(12.5% - 6px);
    }


    /* ========================================
       PROCESS STEP
    ======================================== */

    .process-step {
        min-width: 0;

        padding:
            0
            4px
            52px;

        box-sizing: border-box;
    }


    /* ========================================
       NUMBER
    ======================================== */

    .process-number {
        margin: 0 0 17px;

        font-size: 17px;
        line-height: 1;
    }


    /* ========================================
       MARKER
    ======================================== */

    .process-marker {
        height: 18px;

        margin-bottom: 20px;
    }

    .process-marker span {
        width: 11px;
        height: 11px;
    }


    /* ========================================
       CONTENT
    ======================================== */

    .process-content {
        width: 100%;
        max-width: 155px;

        margin: 0 auto;
    }

    .process-content h3 {
        margin: 0 0 10px;

        font-size: 15px;
        line-height: 1.35;
    }

    .process-content p {
        margin: 0;

        font-size: 12px;
        line-height: 1.55;
        font-weight: 300;
    }


    /* ========================================
    TABLET PROCESS CTA
    ======================================== */

    /* Hide individual desktop hover links */

    .process-link {
    display: none;
    }


    /* Remove space previously reserved for them */

    .process-step {
    padding: 0 4px;
    }


    /* Single tablet CTA */

    .verification-mobile-action {
    display: flex;
    justify-content: center;

    margin-top: 30px;
    }

    .verification-mobile-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    padding: 11px 16px;

    color: #142769;
    background: transparent;

    border: 1px solid rgba(20, 39, 105, 0.25);
    border-radius: 6px;

    font-size: 11px;
    line-height: 1;
    font-weight: 500;

    text-decoration: none;
    }

    /* =========================================================
   768px — STATIC VERIFICATION TIMELINE
   ========================================================= */

    /* Show the blue timeline as complete */
    .timeline-progress {
    width: 100% !important;
    transition: none !important;
    }

    /* All markers remain visually active */
    .process-marker span {
    background: #3568c8 !important;
    border-color: #3568c8 !important;

    transform: none !important;

    box-shadow:
        0 0 0 4px rgba(53, 104, 200, 0.10) !important;

    transition: none !important;
    }

    /* Keep all step numbers consistent */
    .process-number {
    color: #142769 !important;
    transition: none !important;
    }

}


/* ========================================
   MOBILE
   480px AND BELOW
======================================== */
/* ========================================
   MOBILE / TABLET PROCESS CTA
   HIDDEN ON DESKTOP
======================================== */

.process-mobile-cta {
    display: none;
}

@media (max-width: 480px) {

    /* ========================================
       VERIFICATION PROCESS — MOBILE
    ======================================== */

    .verification-process {
        width: 100%;
    
        padding: 48px 24px;
    
        box-sizing: border-box;
    }


    /* ========================================
       HEADING
    ======================================== */

    .verification-heading {
        width: 100%;
        max-width: 100%;
    
        margin: 0 auto;
    
        text-align: center;
    }
    
    .verification-eyebrow {
        margin: 0 0 10px;
    
        font-size: 11px;
        line-height: 1.2;
        font-weight: 600;
        letter-spacing: 1.4px;
    }
    
    .verification-title {
        width: 100%;
        max-width: none;
    
        margin: 0 auto;
    
        font-size: 28px;
        line-height: 1.15;
        font-weight: 500;
        letter-spacing: -0.4px;
    
        text-align: center;
    }
    
    .verification-title span {
        display: block;
        white-space: nowrap;
    }

    .verification-description {
        width: 100%;
        max-width: 320px;
    
        margin: 12px auto 0;
    
        font-size: 12px;
        line-height: 1.55;
        font-weight: 400;
    }


    /* ========================================
       TIMELINE
    ======================================== */

    .process-timeline {
        position: relative;
    
        width: 100%;
    
        margin-top: 32px;
    
        display: block;
    }
    
    .timeline-track {
        display: none;
    }


    /* ========================================
       PROCESS STEP
    ======================================== */

    .process-step {
        position: relative;
    
        width: 100%;
    
        padding: 0 0 28px 48px;
        padding-left: 58px;
    
        text-align: left;
    
        box-sizing: border-box;
    }
    
    .process-step:last-child {
        padding-bottom: 0;
    }


    /* ========================================
       VERTICAL TIMELINE LINE
    ======================================== */

    .process-step::before {
        content: "";
    
        position: absolute;
    
        top: 27px;
        bottom: -1px;
        left: 14px;
    
        width: 1px;
    
        background: rgba(20, 39, 105, 0.16);
    }
    
    .process-step:last-child::before {
        display: none;
    }


    /* ========================================
       STEP NUMBER
    ======================================== */

    .process-number {
        top: 2px;
        left: 48px;
        width: auto;
        margin: 0;
    
        font-size: 12px;
        line-height: 20px;
        font-weight: 500;
        text-align: left;
    }

    /* ========================================
       TIMELINE MARKER
    ======================================== */

    .process-marker {
        position: absolute;
        top: 5px;
        left: 28px;
    
        width: 13px;
        height: 13px;
        margin: 0;
    
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    .process-marker span {
        width: 8px;
        height: 8px;
    }


    /* ========================================
       STEP CONTENT
    ======================================== */

    .process-content {
        width: 100%;
        max-width: none;
    
        margin: 0;
    }
    
    .process-content h3 {
        margin: 0 0 5px;
    
        font-size: 16px;
        line-height: 1.25;
        font-weight: 500;
    }
    
    .process-content p {
        margin: 0;
    
        font-size: 11.5px;
        line-height: 1.5;
        font-weight: 300;
    }


    /* ========================================
       HIDE INDIVIDUAL LEARN MORE BUTTONS
    ======================================== */

    .process-step .process-link {
        display: none;
    }


    /* ========================================
       SINGLE PROCESS CTA
    ======================================== */

    .process-mobile-cta {
        margin-top: 26px;
    
        display: flex;
        justify-content: center;
    }
    
    .process-mobile-cta a {
        height: 38px;
    
        padding: 0 16px;
    
        display: inline-flex;
        align-items: center;
        justify-content: center;
    
        color: #142769;
        background: transparent;
    
        border: 1px solid rgba(20, 39, 105, 0.22);
        border-radius: 8px;
    
        font-size: 10.5px;
        line-height: 1;
        font-weight: 500;
    
        text-decoration: none;
    
        box-sizing: border-box;
    }
    
    
    /* Remove previous underline */
    .process-mobile-cta a::after {
        display: none;
        content: none;
    }

    /* =========================================================
   402px — SCROLL VERIFICATION TIMELINE
   ========================================================= */

.process-timeline {
    --mobile-progress: 0%;
}

/* Base vertical line stays grey */
.process-step::before {
    top: 18px;
    left: 34px;
}
/* Blue progress line */
.process-timeline::after {
    left: 34px;
    top: 11px;

    width: 2px;
    height: var(--mobile-progress, 0px);

    background: #3568c8;
    z-index: 1;
    pointer-events: none;
}

/* Markers begin white */
.process-marker span {
    background: #ffffff !important;
    border-color: #142769 !important;

    transform: none !important;
    box-shadow: none !important;

    transition:
        background 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease !important;
}

/* Marker becomes blue once reached */
.process-step.is-scroll-active .process-marker span {
    background: #3568c8 !important;
    border-color: #3568c8 !important;

    box-shadow:
        0 0 0 4px rgba(53, 104, 200, 0.10) !important;
}

}

/* ========================================
   HOME — WHY ORGANISATIONS CHOOSE US

   DESKTOP 769px AND ABOVE 
   TABLET 481px — 768px
======================================== */

@media (min-width: 481px) and (max-width: 768px) {

    /* ========================================
       SECTION
    ======================================== */

    .why-choose-us {
        width: 100%;
    
        padding: 80px 40px;
    
        box-sizing: border-box;
    }


    /* ========================================
       MAIN LAYOUT
    ======================================== */

    .why-container {
        width: 100%;

        display: grid;
        grid-template-columns: 0.9fr 1.1fr;

        gap: 50px;

        align-items: center;
    }

    /* ========================================
       LEFT CONTENT
    ======================================== */

    .why-content {
        width: 100%;
        max-width: none;
    }

    .why-eyebrow {
        margin: 0 0 12px;

        font-size: 12px;
        line-height: 1.2;
        letter-spacing: 1.4px;
    }

    .why-title {
        margin: 0;
    
        font-size: 30px;
        line-height: 1.1;
        letter-spacing: -0.4px;
    }
    
    .why-description {
        width: 100%;
    
        margin: 14px 0 0;
    
        font-size: 13px;
        line-height: 1.5;
    }
    
    /* ========================================
       BRAND STATEMENT
    ======================================== */

    .why-statement {
        margin-top: 18px;
    
        padding: 8px 0 8px 16px;
    
        border-left-width: 2px;
    }
    
    .why-statement h3 {
        margin: 0 0 5px;
    
        font-size: 14px;
        line-height: 1.3;
    }
    
    .why-statement p {
        margin: 0;
    
        font-size: 11px;
        line-height: 1.4;
    }

    /* ========================================
       STATISTICS
    ======================================== */

    .why-stats {
        width: 100%;
    
        margin-top: 18px;
        padding-top: 16px;
    }
    
    .why-stat {
        min-height: 82px;
    }
    
    .why-stat strong {
        margin: 0 0 5px;
    
        font-size: 30px;
        line-height: 1;
    }
    
    .why-stat p {
        font-size: 10px;
        line-height: 1.35;
    }
    
    .why-stat-divider {
        height: 78px;
    }

    /* ========================================
       RIGHT BENEFITS
    ======================================== */

    .why-benefits {
        width: 100%;
    }

    .why-benefit-item {
        width: 100%;
        min-height: 125px;
    
        grid-template-columns:
            30px
            2px
            1fr;
    
        column-gap: 18px;
    
        padding: 18px 0;
    
        box-sizing: border-box;
    }

    .why-benefit-number {
        padding-top: 5px;

        font-size: 13px;
    }

    .why-benefit-accent {
        width: 2px;
        min-height: 88px;
    }

    .why-benefit-content h3 {
        margin: 0 0 12px;

        font-size: 16px;
        line-height: 1.35;
    }

    .why-benefit-content p {
        width: 100%;
        max-width: none;

        margin: 0;

        font-size: 12px;
        line-height: 1.6;
    }

}

/* ========================================
   MOBILE - WHY CHOOSE 
   480px AND BELOW
======================================== */

@media (max-width: 480px) {

    /* ========================================
       SECTION
    ======================================== */

    .why-choose-us {
        width: 100%;
        padding: 48px 24px;
        box-sizing: border-box;
    }


    /* ========================================
       MAIN LAYOUT
    ======================================== */

    .why-container {
        width: 100%;

        display: grid;
        grid-template-columns: 1fr;

        gap: 28px;

        align-items: start;
    }


    /* ========================================
       LEFT CONTENT
    ======================================== */

    .why-content {
        width: 100%;
        max-width: none;
    }

    .why-eyebrow {
        margin: 0 0 12px;

        font-size: 11px;
        line-height: 1.2;
        letter-spacing: 1.4px;
    }

    .why-title {
        margin: 0;

        font-size: 30px;
        line-height: 1.15;
        letter-spacing: -0.4px;
    }

    .why-description {
        width: 100%;
        max-width: 350px;

        margin: 14px 0 0;

        font-size: 13px;
        line-height: 1.6;
    }


    /* ========================================
       BRAND STATEMENT
    ======================================== */

    .why-statement {
        margin-top: 20px;

        padding:
            8px
            0
            8px
            16px;

        border-left-width: 2px;
    }

    .why-statement h3 {
        margin: 0 0 5px;

        font-size: 15px;
        line-height: 1.35;
    }

    .why-statement p {
        margin: 0;

        font-size: 12px;
        line-height: 1.5;
    }


    /* ========================================
       STATISTICS
    ======================================== */

    .why-stats {
        width: 100%;
        max-width: none;

        margin-top: 22px;
        padding-top: 22px;

        grid-template-columns:
            1fr
            1px
            1fr;
    }

    .why-stat {
        min-height: 90px;
    }

    .why-stat strong {
        margin: 0 0 7px;

        font-size: 36px;
        line-height: 1;
    }

    .why-stat p {
        font-size: 11px;
        line-height: 1.45;
    }

    .why-stat-divider {
        height: 76px;
    }


    /* ========================================
       BENEFITS
    ======================================== */

    .why-benefits {
        width: 100%;
    }

    .why-benefit-item {
        width: 100%;
        min-height: 0;

        grid-template-columns:
            30px
            2px
            1fr;

        column-gap: 16px;

        align-items: stretch;

        padding: 22px 0;

        box-sizing: border-box;
    }

    .why-benefit-item:first-child {
        padding-top: 0;
    }

    .why-benefit-number {
        padding-top: 4px;

        font-size: 12px;
    }

    .why-benefit-accent {
        width: 2px;
        height: 100%;
        min-height: 92px;
    }

    .why-benefit-content {
        align-self: center;
    }

    .why-benefit-content h3 {
        margin: 0 0 8px;

        font-size: 16px;
        line-height: 1.35;
    }

    .why-benefit-content p {
        width: 100%;
        max-width: none;

        margin: 0;

        font-size: 12px;
        line-height: 1.55;
    }

}

/* ========================================
   SOCIAL INSIGHTS — TABLET
   481px → 900px
======================================== */

@media (min-width: 481px) and (max-width: 900px) {

    /* ========================================
       SECTION
    ======================================== */

    .social-insights {
        padding: 64px 40px;
        overflow: hidden;
    }


    /* ========================================
       HEADING
    ======================================== */

    .social-insights-heading {
        max-width: 680px;
    }

    .social-insights-eyebrow {
        margin-bottom: 12px;

        font-size: 14px;
        letter-spacing: 1.5px;
    }

    .social-insights-title {
        font-size: 42px;
        line-height: 1.12;
    }

    .social-insights-description {
        max-width: 620px;

        margin-top: 16px;

        font-size: 17px;
        line-height: 1.55;
    }

    .social-insights-container {
        width: 100%;
        max-width: 100%;
    }
    
    .social-feed-wrapper {
        width: 100%;
        max-width: 100%;
    
        margin: 0 auto;
    
        overflow: hidden;
    }


    /* ========================================
       PLATFORM TABS
    ======================================== */

    .social-feed-tabs {
        margin: 28px auto 20px;
    }


    /* ========================================
       FEED
    ======================================== */

    .social-feed-wrapper {
        width: 100%;
        max-width: none;
    }

    .social-feed-panel {
        width: 100%;
        max-width: 100%;
    
        display: flex;
        gap: 18px;
    
        overflow-x: auto;
        overflow-y: hidden;
    
        padding: 2px 0 14px;
    
        scroll-snap-type: x mandatory;
        scroll-behavior: smooth;
    
        overscroll-behavior-x: contain;
    
        -webkit-overflow-scrolling: touch;
    
        scrollbar-width: none;
    }
    
    .social-feed-panel::-webkit-scrollbar {
        display: none;
    }

    .social-feed-panel[hidden] {
        display: none !important;
    }


    /* ========================================
       CARDS
    ======================================== */

    .social-post {
        position: relative;
    
        flex: 0 0 calc(72% - 2px);
        width: calc(72% - 2px);
        max-width: calc(72% - 2px);
    
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }
    
    /* Third card becomes the hard end of the carousel */
    .social-post:last-child {
        scroll-snap-align: end;
    }

    .social-post-platform {
        position: absolute;
    
        top: 14px;
        left: 16px;
    
        width: 34px;
        height: 34px;
    
        margin: 0;
    
        display: flex;
        align-items: center;
        justify-content: center;
    
        z-index: 3;
    }


    /* ========================================
       CARD HEADER
    ======================================== */

    .social-post-header {
        position: relative;
    
        min-height: 68px;
    
        padding:
            0
            16px
            0
            62px;
    
        display: flex;
        align-items: center;
        gap: 8px;
    
        box-sizing: border-box;
    }

    .social-post-header strong {
        font-size: 13px;
    }


    /* ========================================
       IMAGE
    ======================================== */

    .social-post-image img {
        height: 300px;

        object-fit: cover;
        object-position: center;
    }


    /* ========================================
       CONTENT
    ======================================== */

    .social-post-text {
        padding:
            12px
            16px
            0;

        font-size: 12px;

        -webkit-line-clamp: 2;
    }

    .social-post-tags {
        padding:
            7px
            16px
            0;

        font-size: 11px;

        -webkit-line-clamp: 1;
    }

    .social-post-source-link {
        margin:
            auto
            16px
            16px;

        padding-top: 12px;
    }


    /* ========================================
       FOOTER
    ======================================== */

    .social-feed-footer {
        margin-top: 18px;
    }

}


/* ========================================
   SOCIAL INSIGHTS — MOBILE
   480px AND BELOW
======================================== */

@media (max-width: 480px) {

    /* ========================================
       SECTION
    ======================================== */

    .social-insights {
        width: 100%;

        padding: 48px 24px;

        box-sizing: border-box;

        overflow: hidden;
    }

    .social-insights-container {
        width: 100%;
        max-width: 100%;

        margin: 0 auto;
    }


    /* ========================================
       HEADING
    ======================================== */

    .social-insights-heading {
        width: 100%;
        max-width: 100%;

        margin: 0 auto;

        text-align: center;
    }

    .social-insights-eyebrow {
        margin: 0 0 10px;

        font-size: 11px;
        line-height: 1.2;
        letter-spacing: 1.4px;
    }

    .social-insights-title {
        margin: 0;

        font-size: 30px;
        line-height: 1.15;
        letter-spacing: -0.4px;
    }

    .social-insights-description {
        width: 100%;
        max-width: 350px;

        margin: 12px auto 0;

        font-size: 13px;
        line-height: 1.6;
    }


    /* ========================================
       PLATFORM TABS
    ======================================== */

    .social-feed-tabs {
        width: fit-content;

        margin: 24px auto 16px;

        padding: 4px;

        display: flex;
        align-items: center;
        gap: 4px;

        box-sizing: border-box;
    }

    .social-feed-tab {
        flex: none;

        min-width: 125px;

        padding: 8px 10px;

        display: flex;
        align-items: center;
        justify-content: center;
        gap: 7px;

        font-size: 12px;
    }

    .social-tab-icon {
        width: 21px;
        height: 21px;

        font-size: 14px;

        flex-shrink: 0;
    }


    /* ========================================
       FEED WRAPPER
    ======================================== */

    .social-feed-wrapper {
        width: 100%;
        max-width: 100%;

        margin: 0 auto;

        overflow: hidden;

        background: transparent;

        border: none;
        border-radius: 0;

        box-shadow: none;
    }


    /* ========================================
       MOBILE CAROUSEL
    ======================================== */

    .social-feed-panel {
        width: 100%;
        max-width: 100%;

        display: flex;

        gap: 14px;

        overflow-x: auto;
        overflow-y: hidden;

        padding: 2px 0 12px;

        scroll-snap-type: x mandatory;
        scroll-behavior: smooth;
        overscroll-behavior-x: contain;

        -webkit-overflow-scrolling: touch;

        scrollbar-width: none;
    }

    .social-feed-panel::-webkit-scrollbar {
        display: none;
    }

    .social-feed-panel[hidden] {
        display: none !important;
    }


    /* ========================================
       SOCIAL CARD
    ======================================== */

    .social-post {
        position: relative;

        flex: 0 0 88%;

        width: 88%;
        max-width: 88%;

        min-width: 0;

        padding: 0;

        display: block;

        background: #ffffff;

        border: 1px solid rgba(20, 39, 105, 0.10);
        border-radius: 10px;

        overflow: hidden;

        box-sizing: border-box;

        scroll-snap-align: start;
        scroll-snap-stop: always;
    }

    .social-post:last-child {
        scroll-snap-align: end;
    }


    /* ========================================
       PLATFORM ICON
    ======================================== */

    .social-post-platform {
        position: absolute;

        top: 14px;
        left: 14px;

        width: 34px;
        height: 34px;

        margin: 0;

        display: flex;
        align-items: center;
        justify-content: center;

        z-index: 3;

        flex-shrink: 0;
    }

    .social-post-platform.facebook {
        font-size: 21px;
    }

    .social-post-platform.linkedin {
        font-size: 19px;
    }


    /* ========================================
       CARD HEADER
    ======================================== */

    .social-post-header {
        width: 100%;

        min-height: 62px;

        margin: 0;

        padding:
            0
            14px
            0
            58px;

        display: flex;
        align-items: center;

        gap: 7px;

        box-sizing: border-box;
    }

    .social-post-header strong {
        min-width: 0;

        font-size: 12px;
        line-height: 1.3;
        font-weight: 600;
    }

    .social-post-time {
        margin-left: auto;

        font-size: 10px;
        line-height: 1.3;

        flex-shrink: 0;
    }


    /* ========================================
       POST IMAGE
    ======================================== */

    .social-post-image {
        width: 100%;

        margin: 0;

        overflow: hidden;
    }

    .social-post-image img {
        display: block;

        width: 100%;
        height: 280px;

        margin: 0;

        object-fit: cover;
        object-position: center;
    }


    /* ========================================
       POST TEXT
    ======================================== */

    .social-post-text {
        width: auto;
        max-width: none;

        margin: 0;

        padding:
            12px
            14px
            0;

        color: #4f596d;

        font-size: 11.5px;
        line-height: 1.5;

        display: -webkit-box;

        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;

        overflow: hidden;
    }


    /* ========================================
       HASHTAGS
    ======================================== */

    .social-post-tags {
        width: auto;

        margin: 0;

        padding:
            7px
            14px
            0;

        font-size: 10.5px;
        line-height: 1.4;

        display: -webkit-box;

        -webkit-box-orient: vertical;
        -webkit-line-clamp: 1;

        overflow: hidden;
    }


    /* ========================================
       POST SOURCE LINK
    ======================================== */

    .social-post-source-link {
        width: fit-content;

        margin:
            0
            14px
            14px;

        padding-top: 12px;

        display: inline-flex;
        align-items: center;

        font-size: 11px;
        line-height: 1.3;
    }


    /* ========================================
       FEED FOOTER
    ======================================== */

    .social-feed-footer {
        width: 100%;

        margin-top: 14px;

        display: flex;
        justify-content: center;
    }

    .social-profile-link {
        gap: 8px;

        font-size: 12px;
    }

    .social-profile-arrow {
        font-size: 15px;
    }

}

/* ========================================
   HOME — CORPORATE CTA / TRUST ORBIT

   DESKTOP 769px AND ABOVE
   TABLET 481px — 768px
======================================== */

@media (min-width: 481px) and (max-width: 768px) {

    /* ========================================
       SECTION
    ======================================== */

    .corporate-cta {
        width: 100%;
    
        padding: 55px 40px;
    
        background: #ffffff;
    
        box-sizing: border-box;
        overflow: hidden;
    }


    /* ========================================
       MAIN LAYOUT
    ======================================== */

    .corporate-cta-container {
        width: 100%;
        min-height: 330px;
    
        margin: 0 auto;
    
        display: grid;
        grid-template-columns: 0.9fr 1.1fr;
        column-gap: 32px;
    
        align-items: center;
    }


    /* ========================================
       LEFT CONTENT
    ======================================== */

    .corporate-cta-content {
        position: relative;
        z-index: 5;

        width: 100%;
        max-width: none;
    }


    /* EYEBROW */

    .corporate-cta-eyebrow {
        margin: 0 0 11px;
    
        color: #3568c8;
    
        font-size: 11px;
        line-height: 1.25;
        font-weight: 600;
        letter-spacing: 1.4px;
    }


    /* TITLE */

    .corporate-cta-title {
        margin: 0;
    
        color: #142769;
    
        font-size: 33px;
        line-height: 1.1;
        font-weight: 600;
        letter-spacing: -0.55px;
    }

    .corporate-cta-title span {
        display: block;
    }


    /* DESCRIPTION */

    .corporate-cta-description {
        width: 100%;
        max-width: 285px;
    
        margin: 17px 0 0;
    
        color: #5f6d8c;
    
        font-size: 13px;
        line-height: 1.6;
        font-weight: 300;
    }


    /* ========================================
       QUOTE BUTTON
    ======================================== */

    .corporate-cta-button {
        width: fit-content;
    
        margin-top: 24px;
        padding: 12px 18px;
    
        font-size: 12px;
        line-height: 1;
    }


/* =========================================
   CORPORATE CTA — TABLET (768px)
========================================= */

    .corporate-cta-actions {
        gap: 20px;
    }

    .corporate-contact-link {
        font-size: 13px;
        font-weight: 500;
        line-height: 1.4;
        gap: 0;
    }

    /* Hide arrow on tablet */
    .corporate-contact-link span:last-child {
        display: none;
    }

    /* Underline beneath the text */
    .corporate-contact-link::after {
        width: 100%;
        bottom: -4px;
        height: 1px;
    }




    /* ========================================
       RIGHT VISUAL
    ======================================== */

    .corporate-trust-visual {
        position: relative;
        isolation: isolate;
    
        width: 100%;
        height: 330px;
    
        overflow: visible;
    }


    /* ========================================
       MAP
    ======================================== */

    .corporate-map {
        position: absolute;
        z-index: 2;
    
        left: 52%;
        top: calc(50% - 12px);
    
        width: 315px;
        height: 275px;
    
        transform: translate(-50%, -50%);
    
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    .corporate-map-glow {
        position: absolute;
    
        left: 50%;
        top: 53%;
    
        width: 245px;
        height: 190px;
    
        transform: translate(-50%, -50%);
    
        border-radius: 50%;
    
        background:
            radial-gradient(
                circle,
                rgba(53, 104, 200, 0.09) 0%,
                rgba(53, 104, 200, 0.035) 48%,
                rgba(53, 104, 200, 0) 72%
            );
    
        pointer-events: none;
    }
    
    .corporate-map img {
        position: relative;
        z-index: 2;
    
        display: block;
    
        width: 270px;
        max-width: 100%;
        height: auto;
    
        object-fit: contain;
    }


    /* ========================================
       TRUST CARDS
    ======================================== */

    .corporate-trust-card {
        position: absolute;
        z-index: 5;

        width: 190px;
        min-height: 52px;

        padding: 8px 10px;

        display: grid;
        grid-template-columns: 18px 1px 1fr;
        column-gap: 6px;
        align-items: center;

        background: rgba(255, 255, 255, 0.98);

        border: 1px solid rgba(20, 39, 105, 0.10);
        border-radius: 7px;

        box-shadow:
            0 8px 20px
            rgba(20, 39, 105, 0.06);

        box-sizing: border-box;
    }


    /* ========================================
       CARD POSITIONS
    ======================================== */

    .corporate-card-01 {
        top: 18px;
        left: 23px;
        width: 165px;
    }

    .corporate-card-02 {
        left: -45px;
        bottom: 15px;
    }

    .corporate-card-03 {
        right: 0px;
        bottom: 15px;
    }


    /* ========================================
       CARD NUMBER
    ======================================== */

    .corporate-card-number {
        width: auto;
        height: auto;

        display: block;

        color: #3568c8;

        font-size: 9.5px;
        line-height: 1;
        font-weight: 600;
        letter-spacing: 0;
    }


    /* ========================================
       CARD DIVIDER
    ======================================== */

    .corporate-card-divider {
        width: 1px;
        height: 25px;

        background: rgba(20, 39, 105, 0.16);
    }


    /* ========================================
       CARD CONTENT
    ======================================== */

    .corporate-card-content {
        min-width: 0;
    }

    .corporate-card-content h3 {
        margin: 0 0 3px;

        color: #111111;

        font-size: 10px;
        line-height: 1.2;
        font-weight: 600;
        letter-spacing: -0.05px;

        white-space: nowrap;
    }

    .corporate-card-content p {
        margin: 0;

        color: #7a869d;

        font-size: 8px;
        line-height: 1.3;
        font-weight: 400;

        white-space: nowrap;
    }

}

/* ========================================
   MOBILE - SOCIAL INSIGHTS
   480px AND BELOW
======================================== */

@media (max-width: 480px) {

    /* ========================================
       SECTION
    ======================================== */

    .corporate-cta {
        width: 100%;
        padding: 48px 24px;
        background: #ffffff;
        box-sizing: border-box;
        overflow: hidden;
    }

    .corporate-cta-container {
        width: 100%;
        min-height: 0;
        margin: 0 auto;
        padding: 0;

        display: grid;
        grid-template-columns: 1fr;
        gap: 36px;

        align-items: start;
    }


    /* ========================================
       CONTENT
    ======================================== */

    .corporate-cta-content {
        position: relative;
        z-index: 5;

        width: 100%;
        max-width: none;
    }

    .corporate-cta-eyebrow {
        margin: 0 0 12px;

        font-size: 11px;
        line-height: 1.2;
        font-weight: 600;
        letter-spacing: 1.4px;
    }

    .corporate-cta-title {
        margin: 0;

        font-size: 32px;
        line-height: 1.12;
        font-weight: 600;
        letter-spacing: -0.5px;
    }

    .corporate-cta-description {
        width: 100%;
        max-width: 340px;

        margin: 16px 0 0;

        font-size: 13px;
        line-height: 1.6;
        font-weight: 300;
    }


    /* ========================================
       QUOTE BUTTON
    ======================================== */

    .corporate-cta-button {
        width: fit-content;

        margin-top: 24px;
        padding: 12px 17px;

        font-size: 12px;
        line-height: 1;

        box-sizing: border-box;
    }

    .corporate-cta-arrow {
        display: none;
    }


/* =========================================
   CORPORATE CTA — MOBILE (402px)
========================================= */

    .corporate-cta-actions {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 16px;
        margin-top: 16px;
    }

    .corporate-contact-link {
        font-size: 13px;
        font-weight: 500;
        line-height: 1.4;
        gap: 0;
        white-space: nowrap;
    }

    /* Remove arrow on mobile */
    .corporate-contact-link span:last-child {
        display: none;
    }

    /* Simple underline hyperlink */
    .corporate-contact-link::after {
        width: 100%;
        bottom: -4px;
        height: 1px;
    }

    /* ========================================
       TRUST VISUAL
    ======================================== */

    .corporate-trust-visual {
        position: relative;
    
        width: 100%;
        height: 430px;
    
        margin: -20px auto 0;
    
        display: block;
        overflow: visible;
    }


    /* ========================================
       MAP
    ======================================== */

    .corporate-map {
        position: absolute;
    
        left: 50%;
        top: 50%;
    
        width: 100%;
        max-width: 350px;
        height: 280px;
    
        margin: 0;
    
        transform: translate(-50%, -50%);
    
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .corporate-map-glow {
        position: absolute;
    
        left: 50%;
        top: 50%;
    
        width: 220px;
        height: 220px;
    
        transform: translate(-50%, -50%);
    }
    
    .corporate-map img {
        position: relative;
    
        width: 100%;
        max-width: 340px;
        height: auto;
    
        object-fit: contain;
    }


/* ========================================
   402px — COMPACT UNIFORM TRUST CARDS
======================================== */

.corporate-trust-card {
    width: 170px !important;
    height: 76px !important;
    min-height: 76px !important;

    padding: 0 !important;

    display: grid !important;
    grid-template-columns: 32px 1px 1fr !important;
    column-gap: 10px !important;
    align-items: center !important;

    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}


/* ========================================
   POSITIONS
======================================== */

.corporate-card-01 {
    left: 50%;
    top: 0;

    right: auto;
    bottom: auto;

    transform: translateX(-50%);
}

.corporate-card-02 {
    left: 0;
    bottom: 0;

    right: auto;
    top: auto;

    transform: none;
}

.corporate-card-03 {
    right: 0;
    bottom: 0;

    left: auto;
    top: auto;

    transform: none;
}


/* ========================================
   NUMBER
======================================== */

.corporate-trust-number {
    width: 32px !important;

    font-size: 10px !important;
    line-height: 1 !important;
    font-weight: 600 !important;

    text-align: center !important;
}



/* ========================================
   DIVIDER
======================================== */

.corporate-trust-divider {
    width: 1px !important;
    height: 56px !important;
}

/* ========================================
   TEXT
======================================== */

.corporate-trust-content {
    width: 100% !important;
    min-width: 0 !important;
}

.corporate-trust-content h3 {
    margin: 0 0 5px !important;

    font-size: 8px !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
}

.corporate-trust-content p {
    margin: 0 !important;

    font-size: 6px !important;
    line-height: 1.35 !important;
    font-weight: 400 !important;
}

}



/* ==============================================================SERVICES RESPONSIVE =============================================================== */


/* ========================================
   SERVICES PAGE — TABLET
   481px — 768px
======================================== */

@media (min-width: 481px) and (max-width: 768px) {

    /* ========================================
       PAGE WIDTH PROTECTION
    ======================================== */

    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: clip;
    }


    /* ========================================
       SERVICES HERO
    ======================================== */

    .services-hero {
        position: relative;

        width: 100%;
        height: 500px;

        overflow: hidden;
    }


    /* ========================================
       HERO IMAGE
    ======================================== */

    .services-hero-image {
        position: absolute;

        top: 0;
        right: 0;
        bottom: 0;
        left: 0;

        width: 100%;
        height: 100%;

        z-index: 1;
    }

    .services-hero-image img {
        display: block;

        width: 100%;
        height: 100%;

        object-fit: cover;
        object-position: 65% center;
    }


    /* ========================================
       HERO GRADIENT
    ======================================== */

    .services-hero::after {
        content: "";

        position: absolute;

        top: 0;
        left: 0;

        width: 82%;
        height: 100%;

        z-index: 2;

        background: linear-gradient(
            90deg,
            #ffffff 0%,
            rgba(255, 255, 255, 0.99) 32%,
            rgba(255, 255, 255, 0.94) 52%,
            rgba(255, 255, 255, 0.72) 68%,
            rgba(255, 255, 255, 0.30) 84%,
            rgba(255, 255, 255, 0) 100%
        );

        pointer-events: none;
    }


    /* ========================================
       HERO CONTENT
    ======================================== */

    .services-hero-content {
        position: relative;

        z-index: 3;

        width: 100%;
        height: 100%;

        padding: 0 40px;

        display: flex;
        flex-direction: column;
        justify-content: center;

        box-sizing: border-box;
    }

    .services-hero-eyebrow {
        margin: 0 0 6px;

        font-size: 13px;
        line-height: 1.2;

        letter-spacing: 0.8px;
    }

    .services-hero-content h1 {
        width: 390px;
        max-width: 390px;

        margin: 0;

        font-size: 36px;
        line-height: 1.1;

        letter-spacing: -0.6px;
    }

    .services-hero-line {
        width: 46px;
        height: 2px;

        margin: 20px 0 17px;
    }

    .services-hero-description {
        width: 390px;
        max-width: 390px;

        margin: 0;

        font-size: 13px;
        line-height: 1.55;
    }


    /* ========================================
   SERVICES JOURNEY NAV — TABLET
======================================== */

.services-journey-nav {
    position: sticky;
    top: 100px;
    z-index: 50;

    width: 100%;

    background: rgba(255, 255, 255, 0.98);

    border-top: 1px solid rgba(20, 39, 105, 0.06);
    border-bottom: 1px solid rgba(20, 39, 105, 0.08);

    box-shadow: 0 5px 16px rgba(20, 39, 105, 0.05);
}

.services-journey-nav-inner {
    width: 100%;
    max-width: 100%;
    height: 64px;

    margin: 0;
    padding: 0 24px;

    display: grid;
    grid-template-columns: 150px 1fr;

    align-items: stretch;

    box-sizing: border-box;
}


/* ========================================
   TABLET INTRO
======================================== */

.services-journey-nav-intro {
    display: flex;
    align-items: center;

    padding: 0 20px 0 0;

    border-right: 1px solid rgba(20, 39, 105, 0.10);
}

/* Hide long desktop eyebrow on tablet */
.services-journey-nav-eyebrow {
    display: none;
}

.services-journey-nav-title {
    color: #142769;

    font-size: 13px;
    line-height: 1.2;
    font-weight: 500;

    white-space: nowrap;
}


/* ========================================
   TABLET STEPS
======================================== */

.services-journey-nav-steps {
    width: 100%;
    height: 64px;

    display: grid;
    grid-template-columns: repeat(4, 1fr);

    align-items: stretch;
}

.services-journey-nav-link {
    width: 100%;
    height: 64px;

    padding: 0 8px;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 5px;

    color: #53627d;

    font-size: 12px;
    line-height: 1;

    text-align: center;
    white-space: nowrap;

    border-left: 1px solid rgba(20, 39, 105, 0.08);

    box-sizing: border-box;
}

.services-journey-nav-link:first-child {
    border-left: none;
}

.services-journey-nav-link span {
    color: #9bbce7;

    font-size: 11px;
    font-weight: 600;

    flex-shrink: 0;
}


/* ========================================
   TABLET ANCHOR OFFSET
======================================== */

#planning,
#assessment,
#onsite,
#outcome {
    scroll-margin-top: 180px;
}
}

/* ========================================
   VERIFICATION JOURNEY — TABLET
   481px — 768px
======================================== */

@media (min-width: 481px) and (max-width: 768px) {

    .services-journey {
        width: 100%;
        padding: 70px 40px 85px;
        box-sizing: border-box;
    }

    .services-journey-container {
        width: 100%;
        max-width: 100%;
        margin: 0 auto;
    }


    /* ========================================
       JOURNEY STEPS
    ======================================== */

    .journey-step {
        width: 100%;

        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr);

        column-gap: 30px;

        margin-bottom: 80px;
    }

    .journey-step-right {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr);
    }

    .journey-step:last-child {
        margin-bottom: 0;
    }


    /* ========================================
       JOURNEY IMAGES
    ======================================== */

    .journey-image {
        width: 100%;
        height: 270px;

        margin: 0;
        padding: 0;

        border-radius: 5px;
    }

    .journey-image img {
        width: 100%;
        height: 270px;

        margin: 0;
        padding: 0;

        object-fit: cover;
    }


    /* ========================================
       JOURNEY INFORMATION
    ======================================== */

    .journey-info {
        width: 100%;
        min-height: 270px;

        gap: 16px;
    }


    /* ========================================
       STEP NUMBER
    ======================================== */

    .journey-number {
        transform: translateY(-55px);

        font-size: 42px;
        line-height: 1;

        letter-spacing: -1px;
    }


    /* ========================================
       DIVIDER
    ======================================== */

    .journey-divider {
        height: 190px;

        transform: translateY(40px);
    }


    /* ========================================
       JOURNEY COPY
    ======================================== */

    .journey-copy {
        width: 100%;
        max-width: none;
    }

    .journey-copy h2 {
        margin-bottom: 14px;

        font-size: 24px;
        line-height: 1.2;

        letter-spacing: -0.3px;
    }

    .journey-copy p {
        font-size: 13px;
        line-height: 1.65;
    }

}

/* ========================================
   SERVICES PAGE — MOBILE
   480px AND BELOW
======================================== */

@media (max-width: 480px) {

    /* ========================================
       SERVICES HERO
    ======================================== */

    .services-hero {
        position: relative;
        width: 100%;
        height: 360px;
        overflow: hidden;
    }

    .services-hero-image {
        position: absolute;
        inset: 0;

        width: 100%;
        height: 100%;

        z-index: 1;
    }

    .services-hero-image img {
        display: block;

        width: 100%;
        height: 100%;

        object-fit: cover;
        object-position: 95% center;
    }


    /* ========================================
       HERO GRADIENT
    ======================================== */

    .services-hero::after {
        content: "";
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        z-index: 2;

        background: linear-gradient(
            180deg,
            rgba(10, 25, 65, 0.90) 0%,
            rgba(10, 25, 65, 0.86) 50%,
            rgba(10, 25, 65, 0.72) 78%,
            rgba(10, 25, 65, 0.28) 100%
        );

        pointer-events: none;
    }

    .services-hero-eyebrow {
        margin: 0 0 7px;
    
        font-size: 11px;
        line-height: 1.2;
        letter-spacing: 1px;
    
        text-align: center;
    }
    
    .services-hero-content h1 {
        width: 100%;
        max-width: 330px;
    
        margin: 0 auto;
    
        font-size: 32px;
        line-height: 1.08;
        font-weight: 600;
    
        letter-spacing: -0.6px;
        text-align: center;

        color: #ffffff;
    }
    
    .services-hero-line {
        width: 42px;
        height: 2px;
    
        margin: 20px 0 17px;
    
        align-self: center;
    }
    
    .services-hero-description {
        width: 100%;
        max-width: 330px;
    
        margin: 0 auto;
    
        font-size: 12.5px;
        line-height: 1.6;
    
        text-align: center;

        color: #e5e7eb;
    }


    /* ========================================
       HERO CONTENT
    ======================================== */

    .services-hero-content {
        position: relative;

        z-index: 3;

        width: 100%;
        height: 100%;

        padding: 0 24px;

        display: flex;
        flex-direction: column;
        justify-content: center;

        box-sizing: border-box;
    }

    .services-hero-eyebrow {
        margin: 0 0 7px;

        font-size: 11px;
        line-height: 1.2;
        letter-spacing: 1px;

        color: #8ebcff;
    }

    .services-hero-content h1 {
        width: 100%;
        max-width: 330px;

        margin: 0;

        font-size: 36px;
        line-height: 1.08;
        font-weight: 600;

        letter-spacing: -0.6px;
    }

    .services-hero-line {
        width: 44px;
        height: 2px;

        margin: 20px 0 18px;
        background: #6fa8ff;
    }

    .services-hero-description {
        width: 100%;
        max-width: 330px;

        margin: 0;

        font-size: 11.5px;
        line-height: 1.6;
    }


    /* ========================================
       JOURNEY NAV
    ======================================== */

    .services-journey-nav {
        position: sticky;

        top: 100px;
        z-index: 50;

        width: 100%;

        background: rgba(255, 255, 255, 0.98);

        border-top: 1px solid rgba(20, 39, 105, 0.06);
        border-bottom: 1px solid rgba(20, 39, 105, 0.08);

        box-shadow: 0 4px 14px rgba(20, 39, 105, 0.05);
    }

    .services-journey-nav-inner {
        width: 100%;
        max-width: 100%;
        height: 56px;

        margin: 0;
        padding: 0;

        display: block;

        box-sizing: border-box;
    }

    .services-journey-nav-intro {
        display: none;
    }


    /* ========================================
       JOURNEY STEPS
    ======================================== */

    .services-journey-nav-steps {
        width: 100%;
        height: 56px;

        display: grid;
        grid-template-columns: repeat(4, 1fr);

        align-items: stretch;
    }

    .services-journey-nav-link {
        width: 100%;
        height: 56px;

        padding: 0 4px;

        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;

        gap: 4px;

        color: #53627d;

        font-size: 12px;
        line-height: 1;

        text-align: center;
        white-space: nowrap;

        border-left: 1px solid rgba(20, 39, 105, 0.08);

        box-sizing: border-box;
    }

    .services-journey-nav-link:first-child {
        border-left: none;
    }

    .services-journey-nav-link:last-child {
        border-right: none;
    }

    .services-journey-nav-link span {
        color: #9bbce7;

        font-size: 10px;
        line-height: 1;
        font-weight: 600;
    }


    /* ========================================
       ANCHOR OFFSET
    ======================================== */

    #planning,
    #assessment,
    #onsite,
    #outcome {
        scroll-margin-top: 170px;
    }

}

/* ========================================
   VERIFICATION JOURNEY — MOBILE
   480px AND BELOW
======================================== */

@media (max-width: 480px) {

    /* ========================================
       SECTION
    ======================================== */

    .services-journey {
        width: 100%;
        padding: 48px 24px 70px;
        box-sizing: border-box;
    }

    .services-journey-container {
        width: 100%;
        max-width: 100%;
        margin: 0;
    }


    /* ========================================
       STEP
    ======================================== */

    .journey-step,
    .journey-step-right {
        width: 100%;

        display: flex;
        flex-direction: column;

        gap: 24px;

        margin: 0 0 64px;
    }

    .journey-step:last-child {
        margin-bottom: 0;
    }


    /* ========================================
       INFORMATION
    ======================================== */

    .journey-info,
    .journey-step-right .journey-info {
        width: 100%;
        min-height: 0;

        display: flex;
        flex-direction: column;
        align-items: flex-start;

        gap: 0;

        order: 1;
    }


    /* ========================================
       NUMBER
    ======================================== */

    .journey-number {
        order: 1;

        align-self: flex-start;

        margin: 0;

        transform: none;

        font-size: 34px;
        line-height: 1;
        font-weight: 300;

        letter-spacing: -1px;
    }


    /* ========================================
       DIVIDER
    ======================================== */

    .journey-divider {
        order: 2;

        width: 38px;
        height: 1px;

        flex: none;

        margin: 12px 0 18px;

        transform: none;

        background: rgba(53, 104, 200, 0.45);
    }


    /* ========================================
       COPY
    ======================================== */

    .journey-copy,
    .journey-step-right .journey-copy {
        order: 3;

        width: 100%;
        max-width: 100%;

        margin: 0;

        align-self: auto;

        text-align: left;
    }

    .journey-copy h2 {
        margin: 0 0 12px;

        font-size: 22px;
        line-height: 1.2;
        font-weight: 600;

        letter-spacing: -0.3px;
    }

    .journey-copy p {
        margin: 0;

        font-size: 13px;
        line-height: 1.65;
    }


    /* ========================================
       IMAGE
    ======================================== */

    .journey-image,
    .journey-step-right .journey-image {
        order: 2;

        width: 100%;
        height: 220px;

        margin: 0;
        padding: 0;

        overflow: hidden;

        border-radius: 5px;
    }

    .journey-image img {
        display: block;

        width: 100%;
        height: 100%;

        margin: 0;
        padding: 0;

        object-fit: cover;
    }

}

@media (max-width: 480px) {

    .services-journey-nav.is-following-mobile {
        position: fixed;

        top: 81px;
        left: 0;
        right: 0;

        width: 100%;

        z-index: 50;
    }

    .services-journey.nav-is-following-mobile {
        padding-top: 107px;
    }

    .services-journey-nav-link.is-active {
        color: #142769;
        background: #f7f9fc;
    }

    .services-journey-nav-link.is-active span {
        color: #3568c8;
    }

}

/* ========================================
   SERVICES CTA — TABLET
   481px — 768px
======================================== */

@media (min-width: 481px) and (max-width: 768px) {

    .services-cta {
        width: 100%;
    
        padding: 8px 40px 20px;
    
        box-sizing: border-box;
    }

    .services-cta-container {
        width: 100%;
        max-width: 100%;

        margin: 0 auto;
        padding: 48px 40px 50px;

        border-radius: 6px;

        box-sizing: border-box;
    }

    .services-cta-container::before {
        width: 52px;
        height: 2px;
    }


    /* ========================================
       TYPOGRAPHY
    ======================================== */

    .services-cta-eyebrow {
        margin: 0 0 14px;

        font-size: 9px;
        line-height: 1;

        letter-spacing: 1.8px;
    }

    .services-cta h2 {
        max-width: 520px;

        margin: 0 auto;

        font-size: 30px;
        line-height: 1.18;
        font-weight: 500;

        letter-spacing: -0.5px;
    }

    .services-cta-description {
        max-width: 500px;

        margin: 14px auto 0;

        font-size: 13px;
        line-height: 1.6;
    }


    /* ========================================
       ACTIONS
    ======================================== */

    .services-cta-actions {
        margin-top: 24px;

        gap: 10px;
    }

    .services-cta-button {
        min-width: 150px;
        height: 42px;

        padding: 0 20px;

        font-size: 11px;
    }

}

/* ========================================
   SERVICES CTA — MOBILE
   480px AND BELOW
======================================== */

@media (max-width: 480px) {

    .services-cta {
        width: 100%;

        padding: 8px 24px 24px;

        box-sizing: border-box;
    }

    .services-cta-container {
        width: 100%;
        max-width: 100%;

        margin: 0 auto;
        padding: 42px 24px 40px;

        border-radius: 5px;

        box-sizing: border-box;
    }

    .services-cta-container::before {
        width: 46px;
        height: 2px;
    }


    /* ========================================
       TYPOGRAPHY
    ======================================== */

    .services-cta-eyebrow {
        margin: 0 0 13px;
    
        font-size: 12px;
        line-height: 1;
    
        letter-spacing: 1.7px;
    }

    .services-cta h2 {
        width: 100%;
        max-width: 300px;

        margin: 0 auto;

        font-size: 26px;
        line-height: 1.18;
        font-weight: 500;

        letter-spacing: -0.4px;
    }

    .services-cta-description {
        width: 100%;
        max-width: 300px;

        margin: 14px auto 0;

        font-size: 12px;
        line-height: 1.6;
    }


    /* ========================================
       ACTIONS
    ======================================== */

    .services-cta-actions {
        width: 100%;

        margin-top: 22px;

        display: flex;
        flex-direction: column;

        gap: 9px;
    }

    .services-cta-button {
        width: 100%;
        min-width: 0;
        height: 44px;

        padding: 0 18px;

        font-size: 14px;

        box-sizing: border-box;
    }

}

/* ============================================================RESOURCES HERO ============================================================ */

/* =========================================================
   RESPONSIVE RESOURCE CONTROLS
   HIDDEN ON DESKTOP
========================================================= */

.resource-responsive-controls {
    display: none;
}


/* =========================================================
   RESOURCES HERO — TABLET
   481px–768px
========================================================= */

@media (min-width: 481px) and (max-width: 768px) {

    .resources-hero {
        position: relative;
        width: 100%;
        height: 500px;
        overflow: hidden;
    }

    .resources-hero-image {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        z-index: 1;
    }

    .resources-hero-image img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center center;
    }

    .resources-hero::after {
        content: "";
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        z-index: 2;

        background: linear-gradient(
            90deg,
            #ffffff 0%,
            rgba(255, 255, 255, 0.98) 30%,
            rgba(255, 255, 255, 0.88) 48%,
            rgba(255, 255, 255, 0.52) 65%,
            rgba(255, 255, 255, 0.12) 82%,
            rgba(255, 255, 255, 0) 100%
        );

        pointer-events: none;
    }

    .resources-hero-content {
        position: relative;
        z-index: 3;

        width: 100%;
        height: 100%;

        display: flex;
        flex-direction: column;
        justify-content: center;

        padding: 0 40px;

        box-sizing: border-box;
    }

    .resources-hero-eyebrow {
        margin: 0 0 7px;

        font-size: 14px;
        line-height: 1.2;
        font-weight: 600;
        letter-spacing: 0.7px;
    }

    .resources-hero-content h1 {
        width: 100%;
        max-width: 500px;

        margin: 0;

        font-size: 42px;
        line-height: 1.08;
        font-weight: 600;
        letter-spacing: -0.8px;
    }

    .resources-hero-line {
        width: 48px;
        height: 2px;

        margin: 22px 0 18px;
    }

    .resources-hero-description {
        width: 100%;
        max-width: 420px;

        margin: 0;

        font-size: 14px;
        line-height: 1.6;
    }

}


/* =========================================================
   RESOURCES HERO — MOBILE
   480px AND BELOW
========================================================= */

@media (max-width: 480px) {

    .resources-hero {
        position: relative;
        width: 100%;
        height: 340px;
        overflow: hidden;
    }

    .resources-hero-image {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        z-index: 1;
    }

    .resources-hero-image img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center center;
    }

    .resources-hero::after {
        content: "";
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        z-index: 2;

        background: linear-gradient(
            180deg,
            rgba(10, 25, 65, 0.90) 0%,
            rgba(10, 25, 65, 0.86) 50%,
            rgba(10, 25, 65, 0.72) 78%,
            rgba(10, 25, 65, 0.28) 100%
        );

        pointer-events: none;
    }

    .resources-hero-content {
        position: relative;
        z-index: 3;

        width: 100%;
        height: 100%;

        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;

        padding: 0 24px;

        text-align: center;

        box-sizing: border-box;
    }

    .resources-hero-eyebrow {
        margin: 0 0 8px;

        color: #8ebcff;

        font-size: 12px;
        line-height: 1.2;
        font-weight: 600;
        letter-spacing: 1.1px;
    }

    .resources-hero-content h1 {
        width: 100%;
        max-width: 350px;

        margin: 0 auto;

        color: #ffffff;

        font-size: 36px;
        line-height: 1.08;
        font-weight: 600;
        letter-spacing: -0.7px;
    }

    .resources-hero-line {
        width: 44px;
        height: 2px;

        margin: 20px auto 18px;

        background: #6fa8ff;
    }

    .resources-hero-description {
        width: 100%;
        max-width: 340px;

        margin: 0 auto;

        color: rgba(255, 255, 255, 0.90);

        font-size: 14px;
        line-height: 1.6;

        text-align: center;
    }

}


/* =========================================================
   RESOURCE LIBRARY — TABLET
   481px–768px
========================================================= */

@media (min-width: 481px) and (max-width: 768px) {

    /* LIBRARY */

    .resource-library {
        width: 100%;
        padding: 1px 40px 80px;
        box-sizing: border-box;
    }

    .resource-library-container {
        width: 100%;
        max-width: 100%;
        display: block;
        margin: 0 auto;
    }


    /* HIDE DESKTOP CONTROLS */

    .resource-categories {
        display: none;
    }

    .resource-content > .resource-search {
        display: none;
    }


    /* TABLET STICKY CONTROLS */

    .resource-responsive-controls {
        position: sticky;
        top: 100px;
        z-index: 30;

        display: block;

        width: 100%;

        margin: 0 0 38px;
        padding: 12px 0 14px;

        background: rgba(255, 255, 255, 0.98);

        border-bottom: none;

        box-sizing: border-box;
    }


    /* CATEGORY TABS */

    .resource-responsive-tabs-wrap {
        position: relative;
        width: 100%;
    }

    .resource-responsive-categories {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        width: 100%;
    }

    .resource-responsive-category {
        position: relative;

        min-width: 0;
        min-height: 52px;

        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;

        gap: 4px;

        margin: 0;
        padding: 8px 6px;

        background: transparent;

        border: 0;
        border-right: 1px solid rgba(20, 39, 105, 0.08);
        border-radius: 0;

        color: #53627d;

        font-family: inherit;
        font-size: 10px;
        line-height: 1.25;
        font-weight: 500;

        text-align: center;

        cursor: pointer;

        box-sizing: border-box;
    }

    .resource-responsive-category:last-child {
        border-right: 0;
    }

    .resource-responsive-category small {
        color: #8a95a8;

        font-size: 9px;
        line-height: 1;
        font-weight: 400;
    }

    .resource-responsive-category::after {
        content: "";

        position: absolute;

        right: 12px;
        bottom: 0;
        left: 12px;

        height: 2px;

        background: #3568c8;

        transform: scaleX(0);
        transform-origin: center;

        transition: transform 0.2s ease;
    }

    .resource-responsive-category:hover,
    .resource-responsive-category.is-active {
        color: #142769;
    }

    .resource-responsive-category:hover::after,
    .resource-responsive-category.is-active::after {
        transform: scaleX(1);
    }

    .resource-responsive-category:focus {
        outline: none;
    }

    .resource-responsive-category:focus-visible {
        outline: 1px solid #3568c8;
        outline-offset: -2px;
    }


    /* SEARCH */

    .resource-responsive-search {
        position: relative;

        width: 100%;

        margin-top: 10px;
    }

    .resource-responsive-search input {
        display: block;

        width: 100%;
        height: 46px;

        padding: 0 18px 0 47px;

        background: #ffffff;

        border: 1px solid #d8deea;
        border-radius: 6px;

        outline: none;

        color: #142769;

        font-family: inherit;
        font-size: 13px;
        font-weight: 400;

        box-sizing: border-box;

        transition: border-color 0.2s ease;
    }

    .resource-responsive-search input::placeholder {
        color: #a5afc0;
    }

    .resource-responsive-search input:focus {
        border-color: #3568c8;
    }

    .resource-responsive-search .resource-search-icon {
        position: absolute;

        top: 50%;
        left: 18px;

        width: 15px;
        height: 15px;

        border: 1.5px solid #9da8ba;
        border-radius: 50%;

        transform: translateY(-58%);

        pointer-events: none;

        z-index: 2;
    }

    .resource-responsive-search .resource-search-icon::after {
        content: "";

        position: absolute;

        right: -5px;
        bottom: -3px;

        width: 7px;
        height: 1.5px;

        background: #9da8ba;

        transform: rotate(45deg);
    }


    /* CONTENT */

    .resource-content {
        width: 100%;
        min-width: 0;
        min-height: 0;
    }

    .resource-content-eyebrow {
        margin: 0 0 6px;

        font-size: 12px;
        line-height: 1.2;
        letter-spacing: 0.7px;
    }

    .resource-content-heading h2 {
        margin: 0;

        font-size: 30px;
        line-height: 1.2;
        letter-spacing: -0.4px;
    }

    .resource-content-description {
        max-width: 580px;

        margin: 9px 0 0;

        font-size: 13px;
        line-height: 1.6;
    }


    /* ACCORDIONS */

    .resource-accordions {
        width: 100%;
        margin-top: 12px;
    }

    .resource-accordion {
        scroll-margin-top: 225px;
    }

    .resource-accordion-trigger {
        width: 100%;
        min-height: 82px;

        gap: 24px;

        padding: 0;
    }

    .resource-accordion-title {
        font-size: 20px;
        line-height: 1.25;
    }

    .resource-accordion-description {
        font-size: 12px;
        line-height: 1.5;
    }

    .resource-accordion-arrow {
        width: 14px;
        height: 14px;

        margin-right: 8px;
    }


    /* DOCUMENT ROWS */

    .resource-document {
        width: 100%;

        gap: 24px;

        padding: 18px 8px 18px 16px;

        box-sizing: border-box;
    }

    .resource-document-title {
        font-size: 13px;
        line-height: 1.5;
    }

    .resource-document-link {
        gap: 6px;

        font-size: 12px;
    }


    /* TABLET — NO ARROWS */

    .resource-tabs-arrow {
        display: none !important;
    }


    /*
     * IMPORTANT:
     * Mobile fixed state must never affect tablet.
     */

    .resource-responsive-controls.is-following-mobile {
        position: sticky;
        top: 100px;

        width: 100%;

        margin: 0 0 38px;
    }

    .resource-responsive-controls.is-following-mobile::before {
        content: none;
    }

}


/* =========================================================
   RESOURCE LIBRARY — MOBILE
   480px AND BELOW
========================================================= */

@media (max-width: 480px) {

    /* ========================================
       LIBRARY
    ======================================== */

    .resource-library {
        width: 100%;

        padding: 1px 24px 65px;

        box-sizing: border-box;
    }

    .resource-library-container {
        width: 100%;
        max-width: 100%;

        display: block;

        margin: 0 auto;
    }


    /* ========================================
       HIDE DESKTOP CONTROLS
    ======================================== */

    .resource-categories {
        display: none;
    }

    .resource-content > .resource-search {
        display: none;
    }


    /* ========================================
       RESPONSIVE CONTROLS — NORMAL STATE
    ======================================== */

    .resource-responsive-controls {
        position: relative;

        z-index: 30;

        display: block;

        width: calc(100% + 48px);

        margin: 0 -24px 40px;
        padding: 18px 24px 14px;

        background: #ffffff;

        border-bottom: 1px solid #e6eaf1;

        box-sizing: border-box;
    }


    /* ========================================
       RESPONSIVE CONTROLS — FOLLOWING STATE

       Only JS applies this after the hero
       has cleared the controls position.
    ======================================== */

    .resource-responsive-controls.is-following-mobile {
        position: fixed;

        top: 93px;
        left: 0;
        right: 0;

        width: 100%;

        margin: 0;

        z-index: 50;

        background: #ffffff;

        box-shadow: 0 1px 0 rgba(20, 39, 105, 0.08);
    }


    /*
     * White cover between the fixed header
     * and resource controls.
     *
     * This prevents underlying page content
     * appearing behind the gap.
     */

    .resource-responsive-controls.is-following-mobile::before {
        content: "";

        position: absolute;

        left: 0;
        right: 0;
        bottom: 100%;

        height: 94px;

        background: #ffffff;

        pointer-events: none;
    }


    /* ========================================
       CATEGORY TAB WRAPPER
    ======================================== */

    .resource-responsive-tabs-wrap {
        position: relative;

        display: block;

        width: 100%;
    }


    /* ========================================
       HORIZONTAL CATEGORY TABS
    ======================================== */

    .resource-responsive-categories {
        display: flex;

        width: calc(100% + 24px);

        margin-right: -24px;
        padding-right: 24px;

        overflow-x: auto;
        overflow-y: hidden;

        scrollbar-width: none;

        scroll-behavior: smooth;
    }

    .resource-responsive-categories::-webkit-scrollbar {
        display: none;
    }


    /* ========================================
       CATEGORY BUTTONS
    ======================================== */

    .resource-responsive-category {
        position: relative;

        flex: 0 0 auto;

        min-width: 105px;
        min-height: 48px;

        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;

        gap: 4px;

        margin: 0;
        padding: 7px 12px;

        background: transparent;

        border: 0;
        border-right: 1px solid rgba(20, 39, 105, 0.08);
        border-radius: 0;

        outline: none;

        color: #53627d;

        font-family: inherit;
        font-size: 10px;
        line-height: 1.25;
        font-weight: 500;

        white-space: nowrap;
        text-align: center;

        cursor: pointer;

        box-sizing: border-box;
    }

    .resource-responsive-category:first-child {
        min-width: 118px;
    }

    .resource-responsive-category:last-child {
        min-width: 110px;

        border-right: 0;
    }

    .resource-responsive-category small {
        color: #8a95a8;

        font-size: 9px;
        line-height: 1;
        font-weight: 400;
    }

    .resource-responsive-category::after {
        content: "";

        position: absolute;

        right: 12px;
        bottom: 0;
        left: 12px;

        height: 2px;

        background: #3568c8;

        transform: scaleX(0);
        transform-origin: center;

        transition: transform 0.2s ease;
    }

    .resource-responsive-category.is-active {
        color: #142769;
    }

    .resource-responsive-category.is-active::after {
        transform: scaleX(1);
    }

    .resource-responsive-category:focus {
        outline: none;
    }

    .resource-responsive-category:focus-visible {
        outline: 1px solid #3568c8;
        outline-offset: -2px;
    }


    /* ========================================
       MOBILE CATEGORY ARROWS
    ======================================== */

    .resource-tabs-arrow {
        position: absolute;

        top: 50%;

        z-index: 20;

        width: 30px;
        height: 40px;

        display: flex !important;
        align-items: center;
        justify-content: center;

        padding: 0;

        background: rgba(255, 255, 255, 0.96);

        border: 0;

        color: #3568c8;

        font-family: inherit;
        font-size: 26px;
        line-height: 1;

        transform: translateY(-50%);

        cursor: pointer;
    }

    .resource-tabs-arrow-left {
        left: -20px;
    }

    .resource-tabs-arrow-right {
        right: -20px;
    }


    /* ========================================
       SEARCH
    ======================================== */

    .resource-responsive-search {
        position: relative;

        display: block;

        width: 100%;

        margin-top: 9px;
    }

    .resource-responsive-search input {
        display: block;

        width: 100%;
        height: 44px;

        padding: 0 16px 0 44px;

        background: #ffffff;

        border: 1px solid #d8deea;
        border-radius: 6px;

        outline: none;

        color: #142769;

        font-family: inherit;
        font-size: 12px;
        font-weight: 400;

        box-sizing: border-box;
    }

    .resource-responsive-search input::placeholder {
        color: #a5afc0;
    }

    .resource-responsive-search input:focus {
        border-color: #3568c8;
    }

    .resource-responsive-search .resource-search-icon {
        position: absolute;

        top: 50%;
        left: 16px;

        width: 14px;
        height: 14px;

        border: 1.5px solid #9da8ba;
        border-radius: 50%;

        transform: translateY(-58%);

        pointer-events: none;

        z-index: 2;
    }

    .resource-responsive-search .resource-search-icon::after {
        content: "";

        position: absolute;

        right: -5px;
        bottom: -3px;

        width: 6px;
        height: 1.5px;

        background: #9da8ba;

        transform: rotate(45deg);
    }


    /* ========================================
       CONTENT
    ======================================== */

    .resource-content {
        width: 100%;

        min-width: 0;
        min-height: 0;
    }

    .resource-content-eyebrow {
        margin: 0 0 6px;

        font-size: 10px;
        line-height: 1.2;
        letter-spacing: 0.9px;
    }

    .resource-content-heading h2 {
        margin: 0;

        font-size: 22px;
        line-height: 1.18;
        letter-spacing: -0.4px;
    }

    .resource-content-description {
        width: 100%;
        max-width: 340px;

        margin: 10px 0 0;

        font-size: 12px;
        line-height: 1.6;
    }


    /* ========================================
       ACCORDIONS
    ======================================== */

    .resource-accordions {
        width: 100%;

        margin-top: 12px;
    }

    .resource-accordion {
        scroll-margin-top: 0;
    }

    .resource-accordion-trigger {
        width: 100%;
        min-height: 78px;

        gap: 18px;

        padding: 0;
    }

    .resource-accordion-heading {
        min-width: 0;
    }

    .resource-accordion-title {
        font-size: 18px;
        line-height: 1.25;
    }

    .resource-accordion-description {
        margin-top: 2px;

        font-size: 11px;
        line-height: 1.45;
    }

    .resource-accordion-arrow {
        flex: 0 0 auto;

        width: 12px;
        height: 12px;

        margin-right: 5px;
    }


    /* ========================================
       DOCUMENT ROWS
    ======================================== */

    .resource-document {
        width: 100%;

        display: flex;
        align-items: flex-start;
        justify-content: space-between;

        gap: 16px;

        padding: 16px 4px 16px 10px;

        box-sizing: border-box;
    }

    .resource-document-title {
        min-width: 0;

        margin: 0;

        font-size: 12px;
        line-height: 1.45;
    }

    .resource-document-link {
        flex: 0 0 auto;

        gap: 5px;

        font-size: 11px;
    }

    .resource-document-link span {
        font-size: 13px;
    }

}


/* =========================================================
   RESOURCES SUPPORT CTA — TABLET
   481px–768px
========================================================= */

@media (min-width: 481px) and (max-width: 768px) {

    .resources-support {
        width: 100%;

        height: auto !important;
        min-height: 0 !important;

        display: block;

        padding: 0 40px 12px;
        margin: 0;

        box-sizing: border-box;
    }

    .resources-support-container {
        width: 100%;
        max-width: 100%;

        height: auto !important;
        min-height: 0 !important;

        display: grid;
        grid-template-columns: 1fr;
        align-items: stretch;

        gap: 28px;

        margin: 0 auto;
        padding: 32px 40px;

        box-sizing: border-box;
    }

    .resources-support-content {
        width: 100%;
        max-width: 600px;
    }

    .resources-support-eyebrow {
        margin-bottom: 7px;

        font-size: 11px;
        letter-spacing: 0.9px;
    }

    .resources-support-content h2 {
        max-width: 540px;

        font-size: 26px;
        line-height: 1.25;
    }

    .resources-support-text {
        max-width: 520px;

        margin: 11px 0 22px;

        font-size: 13px;
        line-height: 1.65;
    }

    .resources-support-button {
        padding: 12px 18px;

        font-size: 12px;
    }

    .resources-support-trust {
        width: 100%;

        grid-template-columns: 2px 1fr;

        gap: 22px;

        padding-top: 4px;
    }

    .resources-support-line {
        width: 2px;
        height: 72px;
    }

    .resources-support-trust h3 {
        margin-bottom: 7px;

        font-size: 16px;
        line-height: 1.35;
    }

    .resources-support-trust p {
        max-width: 520px;

        font-size: 12px;
        line-height: 1.65;
    }

}


/* =========================================================
   RESOURCES SUPPORT CTA — MOBILE
   480px AND BELOW
========================================================= */

@media (max-width: 480px) {

    .resources-support {
        width: 100%;

        padding: 0 40px 12px;

        background: #ffffff;

        box-sizing: border-box;

        overflow: hidden;
    }

    .resources-support-container {
        width: 100%;
        max-width: 100%;

        display: grid;
        grid-template-columns: 1fr;
        align-items: stretch;

        gap: 34px;

        margin: 0 auto;
        padding: 32px 40px;

        background: #f6f8fc;

        border: 1px solid #e6eaf1;
        border-radius: 8px;

        box-sizing: border-box;
    }

    .resources-support-content {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .resources-support-eyebrow {
        margin: 0 0 7px;

        font-size: 10px;
        line-height: 1.2;
        letter-spacing: 0.9px;
    }

    .resources-support-content h2 {
        width: 100%;
        max-width: 290px;

        margin: 0;

        font-size: 24px;
        line-height: 1.2;
        letter-spacing: -0.3px;
    }

    .resources-support-text {
        width: 100%;
        max-width: 300px;

        margin: 11px 0 20px;

        font-size: 12px;
        line-height: 1.6;
    }

    .resources-support-button {
        padding: 12px 17px;

        font-size: 12px;
    }

    .resources-support-button span {
        width: auto;

        margin-left: 8px;

        opacity: 1;

        overflow: visible;

        transform: none;
    }

    .resources-support-button:hover {
        transform: none;
    }

    .resources-support-button:hover span {
        width: auto;

        margin-left: 8px;

        opacity: 1;

        transform: none;
    }

    .resources-support-trust {
        width: 100%;
        min-width: 0;

        display: grid;
        grid-template-columns: 2px minmax(0, 1fr);

        gap: 18px;

        align-items: center;
    }

    .resources-support-line {
        width: 2px;
        height: 72px;
    }

    .resources-support-trust-content {
        width: 100%;
        min-width: 0;
    }

    .resources-support-trust h3 {
        margin: 0 0 7px;

        font-size: 15px;
        line-height: 1.35;
    }

    .resources-support-trust p {
        width: 100%;
        max-width: 100%;

        margin: 0;

        font-size: 11px;
        line-height: 1.6;
    }

}



/* =========================================================QUOTATION PAGE — RESPONSIVE========================================================= */


/* =========================================================
   TABLET
   481px–768px
========================================================= */

@media (min-width: 481px) and (max-width: 768px) {

    /* =====================================================
       HERO
    ===================================================== */

    .quotation-hero {
        position: relative;

        width: 100%;
        height: 500px;

        overflow: hidden;

        background:
            linear-gradient(
                90deg,
                rgba(255, 255, 255, 1) 0%,
                rgba(255, 255, 255, 0.98) 30%,
                rgba(255, 255, 255, 0.88) 48%,
                rgba(255, 255, 255, 0.52) 65%,
                rgba(255, 255, 255, 0.12) 82%,
                rgba(255, 255, 255, 0) 100%
            ),
            url("../assets/images/quotation-hero.webp");

        background-size: cover;
        background-position: center right;
        background-repeat: no-repeat;
    }

    .quotation-hero-image {
        display: none;
    }

    .quotation-hero-content {
        position: relative;
        z-index: 2;

        width: 100%;
        max-width: none;
        height: 100%;

        display: flex;
        flex-direction: column;
        justify-content: center;

        margin: 0;
        padding: 0 40px;

        box-sizing: border-box;
    }

    .quotation-hero-eyebrow {
        margin: 0 0 10px;

        font-size: 12px;
        line-height: 1.2;
        letter-spacing: 0.8px;
    }

    .quotation-hero-content h1 {
        width: 100%;
        max-width: 500px;

        margin: 0;

        font-size: 42px;
        line-height: 1.08;
        font-weight: 500;
        letter-spacing: -0.8px;
    }

    .quotation-hero-line {
        width: 48px;
        height: 2px;

        margin: 20px 0 17px;
    }

    .quotation-hero-description {
        width: 100%;
        max-width: 430px;

        margin: 0;

        font-size: 14px;
        line-height: 1.6;
    }

    .quotation-start-link {
        margin-top: 20px;

        font-size: 13px;
    }

    .quotation-start-link::after {
        font-size: 18px;
        line-height: 1;
        position: relative;
        top: -1px;
    }


    /* =====================================================
       OFFLINE DOWNLOADS
    ===================================================== */

    .quotation-offline {
        margin-top: 25px;
    }

    .quotation-offline-label {
        margin: 0 0 10px;

        font-size: 9px;
        letter-spacing: 0.8px;
    }

    .quotation-offline-links {
        display: flex;
        align-items: center;

        gap: 24px;
    }

    .quotation-download-link {
        gap: 8px;

        font-size: 12px;
    }

    .quotation-download-icon {
        width: 16px;
        height: 17px;
    }


    /* =====================================================
       FORM ANCHOR
    ===================================================== */

    #quotation-form {
        scroll-margin-top: 50px;
    }


    /* =====================================================
       FORM SECTION
    ===================================================== */

    .quotation-form-section {
        width: 100%;
        padding: 60px 40px 45px;
        box-sizing: border-box;
    }

    .quotation-form-container {
        width: 100%;
        max-width: 100%;

        margin: 0 auto;
    }


    /* =====================================================
       FORM INTRO
    ===================================================== */

    .quotation-form-intro {
        width: 100%;
        max-width: 620px;

        margin: 0 auto 58px;

        text-align: center;
    }

    .quotation-form-intro-eyebrow {
        margin: 0 0 12px;

        font-size: 10px;
        line-height: 1.2;
        letter-spacing: 1.5px;
    }

    .quotation-form-intro h2 {
        margin: 0;

        font-size: 32px;
        line-height: 1.2;
        letter-spacing: -0.5px;
    }

    .quotation-form-intro-description {
        width: 100%;
        max-width: 560px;

        margin: 13px auto 0;

        font-size: 13px;
        line-height: 1.65;
    }


    /* =====================================================
       FORM SECTION HEADINGS
    ===================================================== */

    .quotation-form-heading,
    .quotation-business-section .quotation-form-heading {
        display: flex;
        align-items: flex-start;

        gap: 12px;

        margin-bottom: 28px;
    }

    .quotation-form-number {
        flex-shrink: 0;

        font-size: 21px;
        line-height: 1.1;
    }

    .quotation-form-heading-text h2 {
        margin: 0 0 5px;

        font-size: 19px;
        line-height: 1.25;
    }

    .quotation-form-heading-text p {
        margin: 0;

        font-size: 12px;
        line-height: 1.5;
    }


    /* =====================================================
       FORM GRID
    ===================================================== */

    .quotation-fields-grid,
    .quotation-business-section .quotation-fields-grid {
        display: grid;

        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        column-gap: 28px;
        row-gap: 26px;

        padding-left: 33px;
    }

    .quotation-field,
    .quotation-business-section .quotation-field {
        min-width: 0;
    }

    .quotation-field-full,
    .quotation-business-section .quotation-field-full {
        grid-column: 1 / -1;
    }


    /* =====================================================
       LABELS
    ===================================================== */

    .quotation-field label,
    .quotation-business-section .quotation-field label {
        margin: 0 0 8px;

        font-size: 14px;
        line-height: 1.3;
    }


    /* =====================================================
       INPUTS
    ===================================================== */

    .quotation-field input,
    .quotation-business-section .quotation-field input {
        width: 100%;
        height: 46px;

        padding: 0 14px;

        font-size: 11px;

        box-sizing: border-box;
    }


    /* =====================================================
       BUSINESS SECTION
    ===================================================== */

    .quotation-business-section {
        width: 100%;

        margin-top: 48px;
    }

    .quotation-form-divider {
        width: 100%;

        margin: 0 0 42px;
    }


    /* =====================================================
       LOCATION FIELD
    ===================================================== */

    .quotation-location-field {
        width: 100%;
    }

    .quotation-business-section
    .quotation-location-field input {
        width: 100%;

        padding-left: 42px;
        padding-right: 44px;
    }

    .quotation-location-search {
        left: 16px;
    }

    .quotation-business-section .quotation-field-help {
        margin: 6px 0 0;

        font-size: 9px;
        line-height: 1.45;
    }


    /* =====================================================
       LOCATION RESULTS
    ===================================================== */

    .quotation-location-results {
        width: 100%;
        max-height: 300px;

        padding: 7px;
    }

    .quotation-location-group-title,
    .quotation-geo-search-title {
        padding: 7px 10px;

        font-size: 9px;
    }

    .quotation-location-option {
        min-height: 38px;

        padding: 0 10px;

        font-size: 11px;
    }

    .quotation-geo-result {
        padding: 9px 10px;
    }

    .quotation-geo-result-name {
        font-size: 11px;
    }

    .quotation-geo-result-address {
        font-size: 9px;
    }

    .quotation-geo-status {
        padding: 12px 10px;

        font-size: 10px;
    }


    /* =====================================================
       CUSTOM SELECTS
    ===================================================== */

    .quotation-select-trigger {
        width: 100%;
        height: 46px;

        padding: 0 14px;

        font-size: 11px;
    }

    .quotation-select-menu {
        width: 100%;

        padding: 5px;
    }

    .quotation-select-option {
        min-height: 39px;

        padding: 0 10px;

        font-size: 11px;
    }


    /* =====================================================
       VALIDATION
    ===================================================== */

    .quotation-field-error {
        margin: 6px 0 0;

        font-size: 9px;
        line-height: 1.45;
    }


    /* =====================================================
       SUBMIT AREA
    ===================================================== */

    .quotation-submit-section {
        margin-top: 48px;
        padding-left: 33px;
    }

    .quotation-submit-content {
        display: flex;
        align-items: center;
        justify-content: space-between;

        gap: 30px;

        padding-top: 28px;
    }

    .quotation-submit-text {
        min-width: 0;
    }

    .quotation-submit-text h3 {
        margin: 0 0 6px;

        font-size: 16px;
        line-height: 1.3;
    }

    .quotation-submit-text p {
        max-width: 380px;

        margin: 0;

        font-size: 11px;
        line-height: 1.6;
    }

    .quotation-submit-button {
        flex-shrink: 0;

        min-width: 190px;
        height: 46px;

        padding: 0 18px;

        font-size: 11px;
    }

}


/* =========================================================
   MOBILE
   480px AND BELOW
========================================================= */

@media (max-width: 480px) {

    /* =====================================================
       HERO
    ===================================================== */

    .quotation-hero {
        position: relative;

        width: 100%;
        height: 400px;

        overflow: hidden;

        background:
            linear-gradient(
                180deg,
                rgba(10, 25, 65, 0.90) 0%,
                rgba(10, 25, 65, 0.86) 50%,
                rgba(10, 25, 65, 0.72) 78%,
                rgba(10, 25, 65, 0.28) 100%
            ),
            url("../assets/images/quotation-hero.webp");

        background-size: cover;
        background-position: center center;
        background-repeat: no-repeat;
    }

    .quotation-hero-image {
        display: none;
    }

    .quotation-hero-content {
        position: relative;
        z-index: 2;

        width: 100%;
        max-width: none;
        height: 100%;

        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;

        margin: 0;
        padding: 0 24px;

        text-align: center;

        box-sizing: border-box;
    }

    .quotation-hero-eyebrow {
        margin: 0 0 8px;

        color: #8ebcff;

        font-size: 12px;
        line-height: 1.2;
        font-weight: 600;
        letter-spacing: 1.1px;
    }

    .quotation-hero-content h1 {
        width: 100%;
        max-width: 350px;

        margin: 0 auto;

        color: #ffffff;

        font-size: 36px;
        line-height: 1.08;
        font-weight: 600;
        letter-spacing: -0.7px;
    }

    .quotation-hero-line {
        width: 44px;
        height: 2px;

        margin: 20px auto 18px;

        background: #6fa8ff;
    }

    .quotation-hero-description {
        width: 100%;
        max-width: 340px;

        margin: 0 auto;

        color: rgba(255, 255, 255, 0.90);

        font-size: 12px;
        line-height: 1.6;

        text-align: center;
    }

    .quotation-start-link {
        display: inline-flex;
        align-items: center;
        justify-content: center;

        margin-top: 20px;

        color: #ffffff;

        font-size: 12px;
    }

    .quotation-start-link:hover {
        color: #ffffff;
        transform: none;
    }

    .quotation-start-link::after {
        margin-left: 8px;
    
        color: #8ebcff;
    
        font-size: 18px;
        line-height: 1;
    
        position: relative;
        top: -1px;
    }

    .quotation-start-link:hover::after {
        transform: none;
    }


    /* =====================================================
       OFFLINE DOWNLOADS
    ===================================================== */

    .quotation-offline {
        width: 100%;

        margin-top: 25px;

        text-align: center;
    }

    .quotation-offline-label {
        margin: 0 0 11px;

        color: rgba(255, 255, 255, 0.68);

        font-size: 9px;
        line-height: 1.2;
        letter-spacing: 0.8px;
    }

    .quotation-offline-links {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-wrap: wrap;

        gap: 12px 22px;
    }

    .quotation-download-link {
        gap: 7px;

        color: #ffffff;

        font-size: 11px;
    }

    .quotation-download-link:hover {
        color: #ffffff;
        transform: none;
    }

    .quotation-download-icon {
        width: 15px;
        height: 16px;
    }


    /* =====================================================
       FORM ANCHOR
    ===================================================== */

    #quotation-form {
        scroll-margin-top: 18px;
    }


    /* =====================================================
       FORM SECTION
    ===================================================== */

    .quotation-form-section {
        width: 100%;
        padding: 52px 24px 40px;
        box-sizing: border-box;
    }

    .quotation-form-container {
        width: 100%;
        max-width: 100%;

        margin: 0 auto;
    }


    /* =====================================================
       FORM INTRO
    ===================================================== */

    .quotation-form-intro {
        width: 100%;
        max-width: 350px;

        margin: 0 auto 48px;

        text-align: center;
    }

    .quotation-form-intro-eyebrow {
        margin: 0 0 10px;

        font-size: 10px;
        line-height: 1.2;
        letter-spacing: 1.4px;
    }

    .quotation-form-intro h2 {
        margin: 0;

        font-size: 28px;
        line-height: 1.18;
        letter-spacing: -0.4px;
    }

    .quotation-form-intro-description {
        width: 100%;
        max-width: 330px;

        margin: 12px auto 0;

        font-size: 12px;
        line-height: 1.65;
    }


    /* =====================================================
       FORM SECTION HEADINGS
    ===================================================== */

    .quotation-form-heading,
    .quotation-business-section .quotation-form-heading {
        display: flex;
        align-items: flex-start;

        gap: 10px;

        margin-bottom: 26px;
    }

    .quotation-form-number {
        flex-shrink: 0;

        font-size: 19px;
        line-height: 1.1;
    }

    .quotation-form-heading-text {
        min-width: 0;
    }

    .quotation-form-heading-text h2 {
        margin: 0 0 5px;

        font-size: 18px;
        line-height: 1.25;
    }

    .quotation-form-heading-text p {
        margin: 0;

        font-size: 11px;
        line-height: 1.5;
    }


    /* =====================================================
       FORM GRID — SINGLE COLUMN
    ===================================================== */

    .quotation-fields-grid,
    .quotation-business-section .quotation-fields-grid {
        display: grid;

        grid-template-columns: minmax(0, 1fr);

        column-gap: 0;
        row-gap: 22px;

        padding-left: 0;
    }

    .quotation-field,
    .quotation-business-section .quotation-field {
        width: 100%;
        min-width: 0;
    }

    .quotation-field-full,
    .quotation-business-section .quotation-field-full {
        grid-column: auto;
    }


    /* =====================================================
       LABELS
    ===================================================== */

    .quotation-field label,
    .quotation-business-section .quotation-field label {
        margin: 0 0 8px;

        font-size: 14px;
        line-height: 1.3;
    }


    /* =====================================================
       INPUTS
    ===================================================== */

    .quotation-field input,
    .quotation-business-section .quotation-field input {
        width: 100%;
        height: 46px;

        padding: 0 14px;

        font-size: 12px;

        box-sizing: border-box;
    }


    /* =====================================================
       BUSINESS INFORMATION
    ===================================================== */

    .quotation-business-section {
        width: 100%;

        margin-top: 44px;
    }

    .quotation-form-divider {
        width: 100%;

        margin: 0 0 38px;
    }


    /* =====================================================
       LOCATION
    ===================================================== */

    .quotation-location-field {
        width: 100%;
        min-width: 0;
    }

    .quotation-business-section
    .quotation-location-field input {
        width: 100%;

        padding-left: 42px;
        padding-right: 42px;
    }

    .quotation-location-search {
        left: 16px;
    }

    .quotation-business-section .quotation-field-help {
        margin: 6px 0 0;

        font-size: 9px;
        line-height: 1.5;
    }

    /* Prevent iOS form-field auto zoom */

    .quotation-field input,
    .quotation-business-section .quotation-field input,
    .quotation-select-trigger {
    font-size: 16px;
}

    .quotation-field input::placeholder,
    .quotation-business-section .quotation-field input::placeholder {
    font-size: 12px;
}


    /* =====================================================
       LOCATION RESULTS
    ===================================================== */

    .quotation-geo-selector {
        width: 100%;
        min-width: 0;
    }

    .quotation-location-results {
        width: 100%;
        max-height: 280px;

        padding: 6px;

        border-radius: 5px;
    }

    .quotation-location-group +
    .quotation-location-group {
        margin-top: 9px;
        padding-top: 9px;
    }

    .quotation-location-group-title,
    .quotation-geo-search-title {
        padding: 7px 9px;

        font-size: 9px;
        line-height: 1.2;
        letter-spacing: 0.7px;
    }

    .quotation-location-option {
        min-height: 38px;

        padding: 0 9px;

        font-size: 11px;
        line-height: 1.4;
    }

    .quotation-location-option:hover {
        background: transparent;
        color: #142769;
    }

    .quotation-geo-result {
        padding: 9px;
    }

    .quotation-geo-result:hover {
        background: transparent;
    }

    .quotation-geo-result-name {
        font-size: 11px;
        line-height: 1.4;
    }

    .quotation-geo-result-address {
        margin-top: 3px;

        font-size: 9px;
        line-height: 1.4;
    }

    .quotation-geo-status {
        padding: 12px 9px;

        font-size: 10px;
        line-height: 1.5;
    }


    /* =====================================================
       CUSTOM SELECTS
    ===================================================== */

    .quotation-custom-select {
        width: 100%;
        min-width: 0;
    }

    .quotation-select-trigger {
        width: 100%;
        height: 46px;

        padding: 0 14px;

        font-size: 12px;
    }

    .quotation-select-value {
        min-width: 0;

        overflow: hidden;

        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .quotation-select-arrow {
        flex: 0 0 auto;

        margin-left: 12px;
    }

    .quotation-select-menu {
        width: 100%;

        padding: 5px;

        border-radius: 5px;
    }

    .quotation-select-option {
        min-height: 40px;

        padding: 0 10px;

        font-size: 11px;
        line-height: 1.4;
    }

    .quotation-select-option:hover {
        background: transparent;
        color: #142769;
    }

    .quotation-select-option.is-selected {
        background: #edf3fc;
        color: #2859b8;
    }


    /* =====================================================
       VALIDATION
    ===================================================== */

    .quotation-field-error {
        margin: 6px 0 0;

        font-size: 9px;
        line-height: 1.45;
    }


    /* =====================================================
       SUBMIT AREA
    ===================================================== */

    .quotation-submit-section {
        width: 100%;

        margin-top: 44px;
        padding-left: 0;

        box-sizing: border-box;
    }

    .quotation-submit-divider {
        width: 100%;
    }

    .quotation-submit-content {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;

        gap: 22px;

        padding-top: 26px;
    }

    .quotation-submit-text {
        width: 100%;
    }

    .quotation-submit-text h3 {
        margin: 0 0 6px;

        font-size: 16px;
        line-height: 1.3;
    }

    .quotation-submit-text p {
        width: 100%;
        max-width: 330px;

        margin: 0;

        font-size: 11px;
        line-height: 1.6;
    }

    .quotation-submit-button {
        width: 100%;
        min-width: 0;
        height: 48px;

        display: flex;
        align-items: center;
        justify-content: center;

        padding: 0 18px;

        font-size: 12px;

        transform: none;
    }

    .quotation-submit-button:hover {
        transform: none;
    }


    /* MOBILE — ARROW ALWAYS VISIBLE */

    .quotation-submit-arrow {
        width: auto;

        margin-left: 9px;

        opacity: 1;
        overflow: visible;

        transform: none;

        transition: none;
    }

    .quotation-submit-button:hover
    .quotation-submit-arrow {
        width: auto;

        margin-left: 9px;

        opacity: 1;

        transform: none;
    }

}

/* =========================================================CONTACT PAGE - RESPONSIVE========================================================= */


/* =========================================================
   TABLET - 481px TO 768px
========================================================= */

@media (min-width: 481px) and (max-width: 768px) {

    /* =========================
       HERO
    ========================= */

    .contact-hero {
        height: 500px;
    }

    .contact-hero-image img {
        object-position: center center;
    }

    .contact-hero::after {
        width: 100%;

        background: linear-gradient(
            90deg,
            rgba(255, 255, 255, 1) 0%,
            rgba(255, 255, 255, 0.98) 34%,
            rgba(255, 255, 255, 0.88) 55%,
            rgba(255, 255, 255, 0.52) 76%,
            rgba(255, 255, 255, 0.12) 100%
        );
    }

    .contact-hero-content {
        padding: 0 40px;
    }

    .contact-hero-eyebrow {
        margin-bottom: 6px;

        font-size: 16px;
    }

    .contact-hero-content h1 {
        width: 470px;
        max-width: 70%;

        font-size: 44px;
        line-height: 1.08;
        letter-spacing: -0.8px;
    }

    .contact-hero-line {
        width: 68px;
        height: 2px;

        margin: 22px 0 20px;
    }

    .contact-hero-description {
        width: 430px;
        max-width: 62%;

        font-size: 15px;
        line-height: 1.6;
    }

    .contact-hero-appeals {
        gap: 12px;

        margin-top: 22px;
    }

    .contact-hero-appeals > span,
    .contact-hero-appeals a {
        font-size: 12px;
    }

    .contact-hero-appeals a span {
        font-size: 13px;
    }


    /* =========================
       MAIN CONTACT AREA
    ========================= */

    .contact-main {
        margin-top: 0;

        padding: 70px 40px 80px;
    }

    .contact-main-container {
        max-width: none;
    }

    .contact-top-row {
        grid-template-columns: 0.82fr 1.18fr;

        column-gap: 42px;

        align-items: start;
    }


    /* =========================
       SECTION HEADINGS
    ========================= */

    .contact-section-eyebrow {
        font-size: 13px;
    }

    .contact-details h2,
    .contact-form-area h2,
    .contact-location-copy h2 {
        font-size: 27px;
    }

    .contact-section-line {
        width: 54px;

        margin: 10px 0 26px;
    }


    /* =========================
       CONTACT DETAILS
    ========================= */

    .contact-details {
        padding-right: 34px;
    }

    .contact-detail-item {
        gap: 14px;

        margin-bottom: 28px;
    }

    .contact-detail-icon {
        width: 44px;
        height: 44px;

        flex: 0 0 44px;
    }

    .contact-detail-icon svg {
        width: 21px;
        height: 21px;
    }

    .contact-detail-copy {
        min-width: 0;

        padding-top: 2px;
    }

    .contact-detail-copy > span {
        font-size: 10px;
    }

    .contact-detail-copy a,
    .contact-detail-copy p {
        font-size: 14px;
        line-height: 1.55;

        overflow-wrap: anywhere;
    }


    /* =========================
       CONTACT FORM
    ========================= */

    .contact-form-grid {
        grid-template-columns: 1fr;

        row-gap: 24px;
    }

    .contact-field label {
        margin-bottom: 8px;

        font-size: 14px;
    }

    .contact-field input {
        padding-bottom: 9px;

        font-size: 14px;
    }

    .contact-message-field {
        margin-top: 26px;
    }

    .contact-field textarea {
        height: 145px;

        padding: 12px;

        font-size: 14px;
    }

    .contact-form-submit {
        margin-top: 24px;
    }

    .contact-form-submit button {
        min-width: 150px;

        padding: 12px 26px;

        font-size: 14px;
    }

    .contact-security-note {
        max-width: 280px;

        text-align: center;
    }

    .contact-security-note span {
        font-size: 10px;
    }


    /* =========================
       LOCATION / MAP
    ========================= */

    .contact-location-row {
        grid-template-columns: 0.82fr 1.18fr;

        column-gap: 42px;

        width: calc(100% - 80px);

        margin: 0 auto;
        padding: 60px 0 80px;

        align-items: center;
    }

    .contact-location-copy {
        min-width: 0;
    }

    .contact-office {
        gap: 14px;
    }

    .contact-office-copy {
        min-width: 0;
    }

    .contact-office-copy h3 {
        font-size: 16px;
    }

    .contact-office-copy p {
        font-size: 14px;
        line-height: 1.55;
    }

    .contact-directions {
        gap: 10px;

        margin-top: 24px;
        padding-bottom: 7px;

        font-size: 14px;
    }

    .contact-map {
        width: 100%;
        height: 330px;

        justify-self: stretch;

        border-radius: 10px;
    }


    /* =========================
       TOUCH DEVICES
    ========================= */

    .contact-hero-appeals a:hover span,
    .contact-directions:hover span {
        transform: none;
    }
}


/* =========================================================
   MOBILE - UP TO 480px
   Target: 402px iPhone
========================================================= */

@media (max-width: 480px) {

    /* =========================
       HERO
    ========================= */

    .contact-hero {
        height: 340px;

        background: #0a1941;
    }

    .contact-hero-image img {
        object-position: center center;
    }

    .contact-hero::after {
        width: 100%;

        background: linear-gradient(
            180deg,
            rgba(10, 25, 65, 0.90) 100%,
            rgba(10, 25, 65, 0.86) 50%,
            rgba(10, 25, 65, 0.72) 25%,
            rgba(10, 25, 65, 0.28) 100%
        );
    }

    .contact-hero-content {
        align-items: center;
        justify-content: center;

        padding: 0 24px;

        text-align: center;
    }

    .contact-hero-eyebrow {
        margin-bottom: 8px;

        color: #8ebcff;

        font-size: 13px;
        letter-spacing: 0.8px;
    }

    .contact-hero-content h1 {
        width: 100%;
        max-width: 350px;

        color: #ffffff;

        font-size: 36px;
        line-height: 1.08;
        letter-spacing: -0.7px;
    }

    .contact-hero-line {
        width: 56px;
        height: 2px;

        margin: 20px auto 18px;

        background: #8ebcff;
    }

    .contact-hero-description {
        width: 100%;
        max-width: 340px;

        color: rgba(255, 255, 255, 0.78);

        font-size: 14px;
        line-height: 1.6;
    }

    .contact-hero-appeals {
        flex-direction: column;

        gap: 7px;

        width: 100%;

        margin-top: 22px;

        align-items: center;
    }

    .contact-hero-appeals > span {
        color: rgba(255, 255, 255, 0.62);

        font-size: 11px;
    }

    .contact-hero-appeals a {
        color: #8ebcff;

        border-bottom-color: rgba(142, 188, 255, 0.45);

        font-size: 12px;
    }

    .contact-hero-appeals a span {
        font-size: 14px;
    }


    /* =========================
       MAIN CONTACT AREA
    ========================= */

    .contact-main {
        margin-top: 0;

        padding: 54px 24px 64px;
    }

    .contact-main-container {
        max-width: none;
    }

    .contact-top-row {
        display: block;
    }


    /* =========================
       SHARED SECTION HEADINGS
    ========================= */

    .contact-section-eyebrow {
        margin-bottom: 6px;

        font-size: 12px;
        letter-spacing: 0.5px;
    }

    .contact-details h2,
    .contact-form-area h2,
    .contact-location-copy h2 {
        font-size: 28px;
        line-height: 1.2;
        letter-spacing: -0.4px;
    }

    .contact-section-line {
        width: 52px;
        height: 2px;

        margin: 11px 0 28px;
    }


    /* =========================
       CONTACT DETAILS
    ========================= */

    .contact-details {
        padding-right: 0;
        padding-bottom: 52px;

        border-right: none;
        border-bottom: 1px solid rgba(20, 39, 105, 0.14);
    }

    .contact-detail-item {
        gap: 15px;

        margin-bottom: 27px;
    }

    .contact-detail-icon {
        width: 44px;
        height: 44px;

        flex: 0 0 44px;
    }

    .contact-detail-icon svg {
        width: 21px;
        height: 21px;
    }

    .contact-detail-copy {
        min-width: 0;

        padding-top: 2px;
    }

    .contact-detail-copy > span {
        margin-bottom: 4px;

        font-size: 10px;
        letter-spacing: 0.2px;
    }

    .contact-detail-copy a,
    .contact-detail-copy p {
        font-size: 14px;
        line-height: 1.55;

        overflow-wrap: anywhere;
    }


    /* =========================
       FORM AREA
    ========================= */

    .contact-form-area {
        padding-top: 52px;
    }

    .contact-form-grid {
        grid-template-columns: 1fr;

        row-gap: 25px;
    }

    .contact-field label {
        margin-bottom: 8px;

        font-size: 14px;
    }

    /*
       Keep actual input text at 16px.
       This prevents iOS Safari zooming
       when a user focuses an input.
    */

    .contact-field input {
        padding-bottom: 10px;

        font-size: 16px;
    }

    .contact-field input::placeholder,
    .contact-field textarea::placeholder {
        font-size: 14px;
    }

    .contact-message-field {
        margin-top: 26px;
    }

    .contact-field textarea {
        height: 145px;

        padding: 12px;

        font-size: 16px;
        line-height: 1.5;
    }

    .contact-form-submit {
        margin-top: 24px;
    }

    .contact-form-submit button {
        width: 100%;
        min-width: 0;

        padding: 13px 24px;

        font-size: 15px;
    }

    .contact-security-note {
        width: 100%;
        max-width: 290px;

        margin-top: 13px;

        text-align: center;
    }

    .contact-security-note span {
        font-size: 10px;
        line-height: 1.45;
    }


    /* =========================
       LOCATION SECTION
    ========================= */

    .contact-location-row {
        display: flex;
        flex-direction: column;

        width: calc(100% - 48px);

        margin: 0 auto;
        padding: 52px 0 64px;

        border-top: 1px solid rgba(20, 39, 105, 0.14);
    }

    .contact-location-copy {
        width: 100%;
    }

    .contact-office {
        gap: 15px;
    }

    .contact-office-copy {
        min-width: 0;
    }

    .contact-office-copy h3 {
        margin-bottom: 5px;

        font-size: 16px;
    }

    .contact-office-copy p {
        font-size: 14px;
        line-height: 1.55;
    }

    .contact-directions {
        gap: 10px;

        margin-top: 23px;
        padding-bottom: 7px;

        font-size: 14px;
    }


    /* =========================
    DIRECTIONS ARROW
    ========================= */

    .contact-directions-arrow {
        position: relative;
    
        display: inline-block;
    
        width: 12px;
        height: 12px;
    
        flex: 0 0 12px;
    
        margin-left: 2px;
    
        border-top: 1.5px solid #3568c8;
        border-right: 1.5px solid #3568c8;
    
        transform: none;
    }
    
    .contact-directions-arrow::after {
        content: "";
    
        position: absolute;
    
        width: 14px;
        height: 1.5px;
    
        top: 5px;
        right: -1px;
    
        background: #3568c8;
    
        transform: rotate(-45deg);
        transform-origin: center;
    }

    /* =========================
       MAP
    ========================= */

    .contact-map {
        order: 2;

        width: 100%;
        height: 300px;

        margin-top: 40px;

        justify-self: auto;

        border-radius: 10px;
    }


    /* =========================
       TOUCH BEHAVIOUR
    ========================= */

    .contact-hero-appeals a:hover {
        color: #8ebcff;

        border-color: rgba(142, 188, 255, 0.45);
    }

    .contact-hero-appeals a:hover span {
        transform: none;
    }

    .contact-form-submit button:hover {
        background: #ffffff;
        color: #3568c8;
    }
}

/* =========================================================APPEALS & COMPLAINTS========================================================= */


/* =========================================================
   TABLET - 481px TO 768px
========================================================= */

@media (min-width: 481px) and (max-width: 768px) {

    /* =========================
       HERO
    ========================= */

    .appeals-hero {
        height: 500px;
    }

    .appeals-hero::before {
        top: -230px;
        right: -220px;

        width: 500px;
        height: 500px;

        box-shadow:
            0 0 0 55px rgba(53, 104, 200, 0.055),
            0 0 0 56px rgba(255, 255, 255, 0.40),
            0 0 0 110px rgba(53, 104, 200, 0.035),
            0 0 0 111px rgba(255, 255, 255, 0.28);
    }

    .appeals-hero::after {
        bottom: -360px;
        left: -260px;

        width: 520px;
        height: 520px;

        box-shadow:
            0 0 0 75px rgba(53, 104, 200, 0.055),
            0 0 0 76px rgba(255, 255, 255, 0.38),
            0 0 0 150px rgba(53, 104, 200, 0.03);
    }

    .appeals-hero-content {
        max-width: 650px;

        padding: 0 40px;
    }

    .appeals-hero-eyebrow {
        margin-bottom: 9px;

        font-size: 15px;
    }

    .appeals-hero-content h1 {
        font-size: 44px;
        line-height: 1.08;
        letter-spacing: -0.8px;
    }

    .appeals-hero-line {
        width: 52px;

        margin: 23px 0 20px;
    }

    .appeals-hero-description {
        max-width: 530px;

        font-size: 14px;
        line-height: 1.65;
    }


    /* =========================
       APPEAL / COMPLAINT
    ========================= */

    .appeal-type-section {
        padding: 58px 40px 75px;
    }

    .appeal-type-heading {
        margin-bottom: 38px;
    }

    .appeal-type-eyebrow {
        font-size: 14px;
    }

    .appeal-type-heading h2 {
        font-size: 31px;
    }

    .appeal-type-intro {
        margin-top: 9px;

        font-size: 13px;
    }

    .appeal-type-grid {
        gap: 22px;
    }

    .appeal-type-card {
        min-height: 320px;

        padding: 34px 28px 30px;

        border-radius: 10px;
    }

    .appeal-type-card h3 {
        font-size: 24px;
    }

    .appeal-type-line {
        width: 46px;

        margin: 11px 0 18px;
    }

    .appeal-type-card p {
        max-width: 290px;

        font-size: 13px;
        line-height: 1.65;
    }

    .appeal-type-button {
        min-width: 165px;

        padding: 10px 18px;

        font-size: 13px;
    }


    /* =========================
       OUR PROCESS
    ========================= */

    .appeals-process-section {
        padding: 65px 40px 72px;
    }

    .appeals-process-heading {
        margin-bottom: 45px;
    }

    .appeals-process-heading h2 {
        font-size: 30px;
    }

    .appeals-process-heading-line {
        width: 52px;
    }

    .appeals-process-grid {
        grid-template-columns: repeat(4, 1fr);

        column-gap: 20px;
    }

    .appeals-process-grid::before {
        top: 31px;

        left: 12.5%;
        right: 12.5%;
    }

    .appeals-process-number {
        width: 62px;
        height: 62px;

        margin-bottom: 16px;

        font-size: 18px;
    }

    .appeals-process-step h3 {
        font-size: 17px;
    }

    .appeals-process-step p {
        max-width: 150px;

        margin-top: 12px;

        font-size: 12px;
        line-height: 1.55;
    }


    /* =========================
       IMPORTANT NOTICE
    ========================= */

    .appeals-notice-section {
        padding: 65px 40px 75px;
    }

    .appeals-notice-container {
        gap: 22px;

        padding: 30px 32px;

        border-radius: 9px;
    }

    .appeals-notice-accent {
        height: 48px;
    }

    .appeals-notice-content h2 {
        margin-bottom: 9px;

        font-size: 19px;
    }

    .appeals-notice-content p {
        font-size: 13px;
        line-height: 1.65;
    }


    /* =========================
       TOUCH BEHAVIOUR
    ========================= */

    .appeal-type-button:hover {
        background: #ffffff;
        color: #3568c8;
    }
}


/* =========================================================
   MOBILE - UP TO 480px
   Target: 402px iPhone
========================================================= */

@media (max-width: 480px) {

    /* =========================
       HERO
    ========================= */

    .appeals-hero {
        height: 340px;
    }

    .appeals-hero::before {
        top: -170px;
        right: -210px;

        width: 390px;
        height: 390px;

        box-shadow:
            0 0 0 42px rgba(53, 104, 200, 0.055),
            0 0 0 43px rgba(255, 255, 255, 0.38),
            0 0 0 84px rgba(53, 104, 200, 0.035),
            0 0 0 85px rgba(255, 255, 255, 0.24);
    }

    .appeals-hero::after {
        bottom: -280px;
        left: -210px;

        width: 420px;
        height: 420px;

        box-shadow:
            0 0 0 58px rgba(53, 104, 200, 0.05),
            0 0 0 59px rgba(255, 255, 255, 0.34),
            0 0 0 116px rgba(53, 104, 200, 0.025);
    }

    .appeals-hero-content {
        max-width: none;

        padding: 0 24px;
    }

    .appeals-hero-eyebrow {
        margin-bottom: 9px;

        font-size: 12px;
        letter-spacing: 0.8px;
    }

    .appeals-hero-content h1 {
        font-size: 32px;
        line-height: 1.08;
        letter-spacing: -0.7px;
    }

    .appeals-hero-line {
        width: 48px;

        margin: 21px 0 18px;
    }

    .appeals-hero-description {
        max-width: 345px;

        font-size: 12px;
        line-height: 1.6;
    }


    /* =========================
       APPEAL / COMPLAINT
    ========================= */

    .appeal-type-section {
        padding: 52px 24px 64px;
    }

    .appeal-type-heading {
        margin-bottom: 32px;
    }

    .appeal-type-eyebrow {
        margin-bottom: 6px;

        font-size: 12px;
        letter-spacing: 0.5px;
    }

    .appeal-type-heading h2 {
        font-size: 28px;
        line-height: 1.2;
    }

    .appeal-type-intro {
        max-width: 320px;

        margin: 9px auto 0;

        font-size: 13px;
        line-height: 1.55;
    }

    .appeal-type-grid {
        grid-template-columns: 1fr;

        gap: 20px;
    }

    .appeal-type-card {
        min-height: 300px;

        padding: 32px 24px 28px;

        border-radius: 10px;
    }

    .appeal-type-card h3 {
        font-size: 24px;
    }

    .appeal-type-line {
        width: 46px;

        margin: 11px 0 18px;
    }

    .appeal-type-card p {
        max-width: 310px;

        font-size: 13px;
        line-height: 1.65;
    }

    .appeal-type-button {
        width: 100%;
        min-width: 0;

        margin-top: 28px;
        padding: 12px 20px;

        font-size: 13px;
    }


    /* =========================
   OUR PROCESS
========================= */

.appeals-process-section {
    padding: 58px 24px 64px;
}

.appeals-process-heading {
    margin-bottom: 38px;
}

.appeals-process-heading h2 {
    font-size: 28px;
}

.appeals-process-heading-line {
    width: 50px;
    margin-top: 10px;
}

.appeals-process-grid {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 46px;
}

/*
   Mobile vertical process line
*/

.appeals-process-grid::before {
    top: 29px;
    bottom: 29px;
    left: 28px;
    right: auto;

    width: 1px;
    height: auto;

    background: rgba(53, 104, 200, 0.30);
}

.appeals-process-step {
    display: grid;
    grid-template-columns: 58px 1fr;
    grid-template-rows: 29px auto;

    column-gap: 24px;
    row-gap: 8px;

    align-items: start;

    min-height: 58px;

    text-align: left;
}

.appeals-process-number {
    grid-column: 1;
    grid-row: 1 / span 2;

    width: 58px;
    height: 58px;

    margin: 0;

    font-size: 14px;
}

.appeals-process-step h3 {
    grid-column: 2;
    grid-row: 1;

    align-self: center;

    margin: 0;

    font-size: 16px;
    line-height: 1;
}

.appeals-process-step p {
    grid-column: 2;
    grid-row: 2;

    width: 100%;
    max-width: 245px;

    margin: 0;

    font-size: 14px;
    line-height: 1.5;
}

.appeals-process-step:last-child {
    min-height: 0;
}


    /* =========================
       IMPORTANT NOTICE
    ========================= */

    .appeals-notice-section {
        padding: 54px 24px 64px;
    }

    .appeals-notice-container {
        display: block;

        padding: 28px 24px;

        border-radius: 9px;
    }

    .appeals-notice-accent {
        width: 42px;
        height: 2px;

        margin: 0 0 18px;

        background: #3568c8;
    }

    .appeals-notice-content h2 {
        margin-bottom: 10px;

        font-size: 19px;
    }

    .appeals-notice-content p {
        font-size: 13px;
        line-height: 1.65;
    }


    /* =========================
       TOUCH BEHAVIOUR
    ========================= */

    .appeal-type-button:hover {
        background: #ffffff;
        color: #3568c8;
    }
}


/* =========================================================MEET THE TEAM========================================================= */

/* ========================================
   MEET THE TEAM — TABLET
======================================== */

@media (min-width: 481px) and (max-width: 768px) {

    /* ========================================
       HERO
    ======================================== */

    .team-hero {
        position: relative;
        width: 100%;
        height: 400px;
        overflow: hidden;
        background: #ffffff;
    }


    /* ========================================
       HERO IMAGE
    ======================================== */

    .team-hero-image {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        z-index: 1;
    }

    .team-hero-image img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: 62% 20%;
    }


    /* ========================================
       HERO READABILITY GRADIENT
    ======================================== */

    .team-hero::after {
        content: "";
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        z-index: 2;

        background: linear-gradient(
            90deg,
            #ffffff 0%,
            #ffffff 32%,
            rgba(255, 255, 255, 0.98) 48%,
            rgba(255, 255, 255, 0.90) 60%,
            rgba(255, 255, 255, 0.62) 72%,
            rgba(255, 255, 255, 0.20) 88%,
            rgba(255, 255, 255, 0) 100%
        );

        pointer-events: none;
    }


    /* ========================================
       HERO CONTENT
    ======================================== */

    .team-hero-content {
        position: relative;
        z-index: 3;

        width: 100%;
        height: 100%;

        display: flex;
        flex-direction: column;
        justify-content: center;

        padding: 0 48px;
        margin: 0;
    }


    /* ========================================
       HERO EYEBROW
    ======================================== */

    .team-hero-eyebrow {
        margin: 0 0 4px;

        color: #3568c8;

        font-size: 19px;
        line-height: 1.2;
        font-weight: 600;
        letter-spacing: 0.5px;
    }


    /* ========================================
       HERO HEADING
    ======================================== */

    .team-hero-content h1 {
        width: 570px;
        max-width: 100%;

        margin: 0;

        color: #142769;

        font-size: 48px;
        line-height: 1.06;
        font-weight: 600;
        letter-spacing: -1.2px;
    }


    /* ========================================
       HERO ACCENT LINE
    ======================================== */

    .team-hero-line {
        width: 70px;
        height: 3px;

        margin: 26px 0 22px;

        background: #3568c8;
    }


    /* ========================================
       HERO DESCRIPTION
    ======================================== */

    .team-hero-description {
        width: 410px;
        max-width: 100%;

        margin: 0;

        color: #3f4d68;

        font-size: 17px;
        line-height: 1.55;
        font-weight: 400;
    }


    /* ========================================
       TEAM GRID SECTION
    ======================================== */

    .team-grid-section {
        width: 100%;
        padding: 60px 48px 80px;
        background: #ffffff;
    }


    /* ========================================
       TEAM GRID
    ======================================== */

    .team-grid-container {
        width: 100%;
        max-width: 100%;
        margin: 0 auto;

        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));

        column-gap: 42px;
        row-gap: 65px;
    }


    /* ========================================
       TEAM MEMBER
    ======================================== */

    .team-member {
        width: 100%;
        min-width: 0;
    }


    /* ========================================
       MEMBER IMAGE
    ======================================== */

    .team-member-image {
        width: 100%;
        aspect-ratio: 4 / 5;

        overflow: hidden;
        background: #f2f2f2;
    }

    .team-member-image img {
        display: block;

        width: 100%;
        height: 100%;

        object-fit: cover;
        object-position: center;
    }


    /* ========================================
       MEMBER ACCENT LINE
    ======================================== */

    .team-member-line {
        width: 30px;
        height: 2px;

        margin: 16px 0 10px;

        background: #3568c8;
    }


    /* ========================================
       MEMBER NAME
    ======================================== */

    .team-member h2 {
        margin: 0;

        color: #142769;

        font-size: 17px;
        line-height: 1.3;
        font-weight: 600;
        letter-spacing: 0.2px;

        overflow-wrap: break-word;
    }


    /* ========================================
       MEMBER ROLE
    ======================================== */

    .team-member p {
        margin: 7px 0 0;

        color: #7a869d;

        font-size: 13px;
        line-height: 1.5;
        font-weight: 400;

        overflow-wrap: break-word;
    }

}

/* ========================================
   MEET THE TEAM — MOBILE HERO
   402px
======================================== */

@media (max-width: 402px) {

    .team-hero {
        position: relative;

        width: 100%;
        height: 340px;

        overflow: hidden;

        background: #142769;
    }


    /* ========================================
       HERO IMAGE
    ======================================== */

    .team-hero-image {
        position: absolute;
        inset: 0;

        width: 100%;
        height: 100%;

        z-index: 1;
    }

    .team-hero-image img {
        width: 100%;
        height: 100%;

        object-fit: cover;
        object-position: 62% center;
    }


    /* ========================================
       180° NAVY GRADIENT
    ======================================== */

    .team-hero::after {
        content: "";
    
        position: absolute;
        inset: 0;
    
        width: 100%;
        height: 100%;
    
        z-index: 2;

        background: linear-gradient(
            180deg,
            rgba(10, 25, 65, 0.90) 0%,
            rgba(10, 25, 65, 0.86) 50%,
            rgba(10, 25, 65, 0.72) 78%,
            rgba(10, 25, 65, 0.28) 100%
        );
    
        pointer-events: none;
    }


    /* ========================================
       HERO CONTENT — CENTRED
    ======================================== */

    .team-hero-content {
        position: relative;
    
        z-index: 3;
    
        width: 100%;
        height: 100%;
    
        display: flex;
        flex-direction: column;
    
        justify-content: center;
        align-items: center;
    
        padding: 0 24px;
    
        text-align: center;
    }


    /* ========================================
       EYEBROW
    ======================================== */

    .team-hero-eyebrow {
        margin-bottom: 8px;

        color: #6f9cff;

        font-size: 15px;
        line-height: 1.2;
        font-weight: 600;

        letter-spacing: 0.5px;
    }


    /* ========================================
       HEADING
    ======================================== */

    .team-hero-content h1 {
        width: 100%;
        max-width: 350px;

        margin: 0;

        color: #ffffff;

        font-size: 36px;
        line-height: 1.06;
        font-weight: 600;

        letter-spacing: -1px;
    }


    /* ========================================
       ACCENT LINE
    ======================================== */

    .team-hero-line {
        width: 52px;
        height: 3px;

        margin: 16px auto 14px;

        background: #6f9cff;
    }


    /* ========================================
       DESCRIPTION
    ======================================== */

    .team-hero-description {
        width: 100%;
        max-width: 345px;

        margin: 0 auto;

        color: rgba(255, 255, 255, 0.82);

        font-size: 12px;
        line-height: 1.5;
        font-weight: 400;

        text-align: center;
    }

   /* ========================================
   TEAM GRID — MOBILE 402px
   2 × 3 LAYOUT
======================================== */

.team-grid-section {
    padding: 42px 20px 60px;
}

.team-grid-container {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 18px;
    row-gap: 42px;
}

.team-member {
    width: 100%;
    max-width: none;
    margin: 0;
}

.team-member-image {
    width: 100%;
    aspect-ratio: 4 / 5;
    overflow: hidden;
}

.team-member-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.team-member-line {
    width: 26px;
    height: 2px;
    margin: 14px 0 9px;
}

.team-member h2 {
    margin: 0;
    font-size: 15px;
    line-height: 1.3;
    letter-spacing: 0;
}

.team-member p {
    margin: 6px 0 0;
    font-size: 11px;
    line-height: 1.4;
}
}

/* ========================================WORDPRESS CSS======================================== */

/* ========================================
   QUOTATION FORM STATUS
======================================== */

.quotation-form-status {
    width: calc(100% - 40px);
    max-width: none;
    margin: 40px 0 20px 40px;
    padding: 18px 24px;
    border-radius: 8px;
    border: 1px solid rgba(20, 39, 105, 0.14);
    background: #ffffff;
}

.quotation-form-status strong {
    display: block;
    margin-bottom: 6px;
    color: #142769;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
}

.quotation-form-status p {
    margin: 0;
    color: #4b5563;
    font-size: 14px;
    line-height: 1.6;
}

.quotation-form-status-success {
    border-left: 3px solid #3568c8;
}

.quotation-form-status-error {
    border-left: 3px solid #142769;
}

.quotation-form-status:focus {
    outline: none;
}

/* ========================================
   QUOTATION STATUS - TABLET
======================================== */

@media (max-width: 768px) {

    .quotation-form-status {
        width: auto;
        max-width: none;
        margin: 32px 0px 32px 32px;
        padding: 20px 22px;
    }

}


/* ========================================
   QUOTATION STATUS - MOBILE
======================================== */

@media (max-width: 480px) {

    .quotation-form-status {
        width: auto;
        max-width: none;
        margin: 28px 0px 28px 0px;
        padding: 18px 20px;
    }

    .quotation-form-status strong {
        margin-bottom: 6px;
        font-size: 15px;
        line-height: 1.4;
    }

    .quotation-form-status p {
        font-size: 13px;
        line-height: 1.6;
    }

}

/* ========================================
   CONTACT FORM — SPAM PROTECTION
======================================== */

.contact-honeypot {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

/* ========================================
   CONTACT FORM — SUBMISSION STATUS
======================================== */

.contact-form-status {
    margin-bottom: 28px;
    padding: 18px 20px;
    border-left: 3px solid #3568c8;
    background: rgba(53, 104, 200, 0.06);
    font-size: 15px;
    line-height: 1.6;
    color: #142769;
}

.contact-form-status strong {
    display: block;
    margin-bottom: 3px;
    font-weight: 600;
    color: #142769;
}

.contact-form-status span {
    display: block;
}

.contact-form-status.is-error {
    border-left-color: #c94a4a;
    background: rgba(201, 74, 74, 0.06);
}

.contact-form-status:focus {
    outline: none;
}

/* ========================================
   RESOURCE AFFIDAVIT SUBGROUP HEADERS
========================================= */

.resource-affidavit-group-header {
    display: flex;
    align-items: center;
    gap: 14px;

    margin: 12px 0 0;
    padding: 0 0 8px;

    background: transparent;
    border: 0;
    border-radius: 0;
}

.resource-affidavit-group-title,
.resource-affidavit-group-count {
    display: inline-flex;
    align-items: center;
    line-height: 1;
}

/* Small separator between title and count */
.resource-affidavit-group-count::before {
    content: "";
    display: block;

    width: 5px;
    height: 5px;
    margin-right: 12px;

    background: #9fa9be;
    border-radius: 50%;

    flex-shrink: 0;
}

/* Space between EME and QSE groups */
.resource-affidavit-group + .resource-affidavit-group {
    margin-top: 24px;
}

/* Affidavit subgroup heading — mobile only */
.resource-affidavit-group-title {
    font-size: 13px;
    letter-spacing: 0.03em;
}

.resource-affidavit-group-count {
    font-size: 12px;
}

.resource-affidavit-group-count::before {
    width: 4px;
    height: 4px;
    margin-right: 10px;
}

.resource-affidavit-group-header {
    gap: 10px;
}