/* =============================================================================
   CCH Styles CSS
   ============================================================================= */
/* =============================================================================
   1) TOKENS + BASIC UTILITIES
   ============================================================================= */

:root {
    --cch-font-headings: "Nunito", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
    --cch-font-body: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
    --cch-black: #001f45; /* Default text colour on light backgrounds. */
    --cch-heading-color: #002957;
    /*--cch-white: #F2F2F2;*/ /*#fff*/
    /*--cch-bg-light: #F2F2F2;*/ /*#F0F4F5*/ /*#CBCEDD*/
    /*--cch-bg-white: #FFFFFF;*/
    --cch-blue: #005Eb8; /*#005Eb8*/ /*#1d4289*/
    --cch-medium-blue: #003d7c;
    --cch-dark-blue: #002957;
    --cch-orange: #dc582a;
    --cch-green: #007a78; /* #007F3B */
    --cch-pink: #B8005E; /*#BF246D*/
    --cch-chev: #00805E;
    --cch-chev-orange: #00805E;
    --cch-border-grey: #D8DDE0;
    --cch-grey: #F0F4F5; /*#D9D9D9*/
    --cch-orange: #dc582a;
    --cch-yellow: #F8C300;
    --cch-red: #dc3545;
    --cch-white: #FFFFFF;
    --cch-bg-white: #FBFCFD;
    --cch-bg-off-white: #F9F9F8;
    --cch-bg-soft: #F1F5F9;
    --cch-bg-light: #d7e4f5;
    --cch-bg-grey: #F2F2F2;
}

html, body {
    max-width: 100%;
    overflow-x: hidden;
}

/* Background utilities */
.bg-white {
    background-color: #F9F9F8 !important;
    color: var(--cch-black);
}
.cch-bg-white {
    background-color: var(--cch-bg-white) !important;
    color: var(--cch-black);
}

.cch-bg-off-white {
    background-color: var(--cch-bg-off-white) !important;
    color: var(--cch-black);
}


.cch-bg-dark {
    background-color: var(--cch-dark-blue) !important;
    color: var(--cch-white);
}

.cch-bg-medium-blue {
    background-color: var(--cch-medium-blue) !important;
    color: var(--cch-white);
}

.cch-bg-blue {
    background-color: var(--cch-blue) !important;
    color: var(--cch-white);
}

.cch-bg-orange {
    background-color: var(--cch-orange) !important;
}

.cch-bg-chev {
    background-color: var(--cch-green) !important;
}

.cch-bg-light {
    background-color: var(--cch-bg-light) !important;
    color: var(--cch-black);
}

.cch-bg-soft {
    background-color: var(--cch-bg-soft) !important;
    color: var(--cch-black);
}

.cch-bg-yellow {
    background-color: var(--cch-yellow);
    color: var(--cch-black); /* #001F45 */
}



/* Text utilities */

.cch-text-blue {
    color: var(--cch-blue) !important;
}

.cch-text-orange {
    color: var(--cch-orange) !important;
}
/* Border utilities */
.cch-border-blue {
    border-color: var(--cch-blue) !important;
}

.cch-border-orange {
    border-color: var(--cch-orange) !important;
}
/* Legacy/global colour helpers (consider scoping to .cch long-term) */
.cch .bg-primary,
.cch .bg-primarynew,
.cch-bg-primary,
.bg-blue {
    background-color: var(--cch-blue) !important;
}

.bg-secondary,
.bg-orange {
    background-color: #EC5800 !important;
}

.bg-green {
    background-color: #338943 !important;
}

.bg-pink {
    background-color: #be2261 !important;
}

.bg-teal {
    background-color: #144e76 !important;
}

.bg-body-light {
    --bs-bg-opacity: 1;
    background-color: var(--cch-bg-white) !important;
    color: var(--cch-black);
}

.bg-primary-light {
    background: #328942 !important;
    color: #fff;
}
/* Consistent vertical spacing for page sections */
.cch .cch-section {
    padding-block: 2rem;
}

@media (min-width: 768px) {
    .cch .cch-section {
        padding-block: 1.5rem;
    }
}
/* =============================================================================
   2) GLOBAL BASE / OVERRIDES / CUSTOM
   ============================================================================= */
html {
    font-size: 100%; /* 16px */
}

body.cch {
    font-family: var(--cch-font-body);
    font-size: 1.1875rem; /* 19px */
    line-height: 1.3;
    background-color: var(--cch-bg-soft);
    color: var(--cch-black);
}

a {
    color: var(--cch-black);
    text-decoration: underline;
    font-weight: 400;
    line-height: 44px;
}

    a:hover {
        color: var(--cch-pink) !important;
        text-decoration: none;
    }

p {
    font-size: 1.188rem;
    line-height: 1.4;
    text-rendering: optimizeLegibility;
    margin-bottom: 1.5rem;
}

.cch p {
    font-size: 1rem; /* 16px */
    line-height: 1.4;
    text-rendering: optimizeLegibility;
    margin-bottom: 1.25rem;
}
/* SM+ */
@media (min-width: 576px) {
    .cch p {
        margin-bottom: 1.5rem;
    }
}

.p, em {
    font-style: italic;
    font-size: 0.875rem; /* 14px */
}

.cch-hr {
    border-top: 2px solid var(--cch-border-grey);
}

text-light {
    color: var(--cch-white) !important;
}

text-dark {
    color: var(--cch-black) !important;
}

ul,
ol {
    padding-left: 16px;
    margin-left: 0;
}

li {
    text-align: left;
    font-size: 1rem;
}

.card .card-text,
.card .card-text p {
    text-align: left;
}
/* =============================================================================
   3) TYPOGRAPHY
   ============================================================================= */
/* Headings: shared styling */
.cch h1, .cch h2, .cch h3, .cch h4, .cch h5, .cch h6,
.cch .h1, .cch .h2, .cch .h3, .cch .h4, .cch .h5, .cch .h6,
.cch .cch-heading,
.cch .cch-heading-large,
.cch .cch-heading-small {
    font-family: var(--cch-font-headings);
    font-style: normal;
    font-weight: 700;
    color: var(--cch-heading-color);
}

/* Headings and text switch to white in reusable dark-background regions. */
.cch :is(.cch-bg-dark, .cch-bg-medium-blue, .cch-bg-blue, .bg-primary, .bg-primarynew, .cch-bg-primary, .bg-blue, .bg-green, .bg-pink, .bg-teal) {
    color: var(--cch-white);
}

.cch :is(.cch-bg-dark, .cch-bg-medium-blue, .cch-bg-blue, .bg-primary, .bg-primarynew, .cch-bg-primary, .bg-blue, .bg-green, .bg-pink, .bg-teal) :is(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6),
.cch :is(.cch-bg-dark, .cch-bg-medium-blue, .cch-bg-blue, .bg-primary, .bg-primarynew, .cch-bg-primary, .bg-blue, .bg-green, .bg-pink, .bg-teal) :is(p, li) {
    color: var(--cch-white);
}

/* Footer headings remain white against the dark footer background. */
.cch footer.site-footer.cch-footer-main h1,
.cch footer.site-footer.cch-footer-main h2,
.cch footer.site-footer.cch-footer-main h3,
.cch footer.site-footer.cch-footer-main h4,
.cch footer.site-footer.cch-footer-main h5,
.cch footer.site-footer.cch-footer-main h6,
.cch footer.site-footer.cch-footer-main .h1,
.cch footer.site-footer.cch-footer-main .h2,
.cch footer.site-footer.cch-footer-main .h3,
.cch footer.site-footer.cch-footer-main .h4,
.cch footer.site-footer.cch-footer-main .h5,
.cch footer.site-footer.cch-footer-main .h6,
.cch footer.site-footer.cch-footer-main .cch-footer-widget__title {
    color: var(--cch-white, #fff) !important;
}

/* Heading scale: mobile first, with larger H1 and H2 from tablet upwards. */
.cch h1, .cch .h1 {
    font-size: 2.5rem; /* 40px */
    line-height: 1.15;
}
.cch h2, .cch .h2 {
    font-size: 1.875rem; /* 30px */
    line-height: 1.2;
}
.cch h3, .cch .h3 {
    font-size: 1.5rem; /* 24px */
    line-height: 1.25;
}

@media (min-width: 768px) {
    .cch h1, .cch .h1 {
        font-size: 2.625rem; /* 42px */
    }

    .cch h2, .cch .h2 {
        font-size: 2rem; /* 32px */
    }
}
.cch h4, .cch .h4 {
    font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.75rem); /* 20px to 28px */
    line-height: 1.3;
}
.cch h5, .cch .h5 {
    font-size: clamp(1.125rem, 1rem + 0.5vw, 1.5rem); /* 18px to 24px */
    line-height: 1.35;
}
.cch h6, .cch .h6 {
    font-size: clamp(1rem, 0.9375rem + 0.25vw, 1.1875rem); /* 16px to 19px */
    line-height: 1.35;
}
.cch .cch-heading-large {
    font-size: clamp(2.5rem, 1.75rem + 3vw, 3.75rem); /* 40px to 60px */
    line-height: 1.1;
}
.cch .cch-heading-small {
    font-size: clamp(1.5rem, 1.125rem + 1.5vw, 2.5rem); /* 24px to 40px */
    line-height: 1.25;
}
/* 22px */
.cch .cch-text-large {
    font-size: 1.375rem;
    line-height: 1.4;
}
/* 14px */
.cch .cch-text-small {
    font-size: 0.875rem;
    line-height: 1.4;
}

@media (min-width: 992px) {
    .cch .cch-heading-large--lg {
        font-size: 3.75rem;
        line-height: 1.1;
    }

    .cch .cch-heading-small--lg {
        font-size: 2.5rem;
        line-height: 1.25;
    }

    .cch .cch-text-large--lg {
        font-size: 1.375rem;
    }

    .cch .cch-text-small--lg {
        font-size: 0.875rem;
    }
}

/* =============================================================================
   Breadcrumb
   ============================================================================= */
/* Breadcrumb wrapper */
.cch-breadcrumb-wrapper {
    width: 100%;
    background: #f4f6f8;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

    .cch-breadcrumb-wrapper .container {
        padding-top: 0.25rem;
        padding-bottom: 0.25rem;
    }

/* Breadcrumb list */
.cch .breadcrumb {
    --bs-breadcrumb-item-padding-x: 0.4rem;
    font-size: 0.875rem; /* 14px */
    margin-bottom: 0;
}

/* Breadcrumb items */
.cch .breadcrumb-item {
    display: inline-flex;
    align-items: center;
    font-size: inherit;
}

/* Breadcrumb links */
.cch .breadcrumb-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding-block: 0.25rem;
    padding-inline: 0.25rem;
    color: var(--cch-blue);
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 0.18em;
}

.cch .breadcrumb-link--home {
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
}

/* Current page breadcrumb */
.cch .breadcrumb-item.active {
    min-height: 36px;
    padding-block: 0.25rem;
    padding-inline: 0;
    color: #222;
}

/* Keyboard focus */
.cch .breadcrumb-link:focus-visible {
    position: relative;
    z-index: 1;
    outline: 3px solid #f8c300;
    outline-offset: -3px;
    border-radius: 0.25rem;
}

@media (max-width: 767.98px) {
    .cch .cch-breadcrumb-wrapper + main > :first-child {
        padding-top: 0.75rem !important;
    }

    .cch .cch-breadcrumb-wrapper + main .umb-block-list > :first-child {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
}
/* =============================================================================
   5) BUTTONS (custom)
   ============================================================================= */

.btn {
    min-width: 44px;
    min-height: 44px;
}

.btn-primary {
    background-color: var(--cch-blue) !important;
    text-transform: uppercase;
    color: #fff;
}

.btn-secondary {
    background-color: var(--cch-pink) !important;
    text-transform: uppercase;
    color: #fff;
}
/* NOTE: this class name is misleading (bg utility also sets text-transform) */
.bg-orange {
    background-color: var(--cch-orange) !important;
    text-transform: uppercase;
}
/* Custom variants */
.btn-orange,
.btn-blue,
.btn-green {
    border-width: 2px;
    border-style: solid;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    box-shadow: 0 .125rem .25rem rgba(0,0,0,.12);
    transition: background-color .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out, box-shadow .3s ease-in-out, transform .3s ease-in-out;
    text-decoration: none;
}
    /* Lift on hover + focus */
    .btn-orange:hover,
    .btn-blue:hover,
    .btn-green:hover,
    .btn-orange:focus,
    .btn-blue:focus,
    .btn-green:focus {
        box-shadow: 0 .25rem .5rem rgba(0,0,0,.18);
        transform: translateY(-1px);
    }
    /* Pressed */
    .btn-orange:active,
    .btn-blue:active,
    .btn-green:active,
    .btn-orange.active,
    .btn-blue.active,
    .btn-green.active {
        transform: translateY(0);
        box-shadow: 0 .125rem .25rem rgba(0,0,0,.14);
    }
    /* Disabled */
    .btn-orange:disabled,
    .btn-blue:disabled,
    .btn-green:disabled,
    .btn-orange.disabled,
    .btn-blue.disabled,
    .btn-green.disabled {
        opacity: 0.6;
        cursor: not-allowed;
        pointer-events: none;
    }
    /* Keyboard focus */
    .btn-orange:focus-visible,
    .btn-blue:focus-visible,
    .btn-green:focus-visible {
        outline: 2px solid rgba(0,0,0,.55);
        outline-offset: 2px;
    }
/* Variants */
.btn-orange {
    background-color: var(--cch-orange);
    border-color: var(--cch-orange);
    color: #fff;
}

.btn-blue {
    background-color: var(--cch-blue);
    border-color: var(--cch-blue);
    color: #fff;
}

.btn-green {
    background-color: var(--cch-green);
    border-color: var(--cch-green);
    color: #fff;
}

.btn-pink {
    background-color: var(--cch-pink);
    border-color: var(--cch-pink);
    font-size: 14px;
    text-transform: uppercase;
    color: #fff;
}
/* Hover/focus colours */
.btn-orange:hover, .btn-orange:focus {
    background-color: var(--cch-green);
    border-color: var(--cch-green);
    color: #fff;
}

.btn-blue:hover, .btn-blue:focus {
    background-color: var(--cch-pink);
    border-color: var(--cch-pink);
    color: #fff !important;
}

.btn-green:hover, .btn-green:focus {
    background-color: var(--cch-green);
    border-color: var(--cch-green);
    color: #fff;
}

.btn-pink:hover, .btn-pink:focus {
    background-color: var(--cch-blue);
    border-color: var(--cch-blue);
    color: #fff;
}
/* =============================================================================
   6) SLIDER / CAROUSEL
   ============================================================================= */
/* =============================================================================
   Homepage image hero
   File: wwwroot/css/custom.css
   ============================================================================= */

/* HERO CSS DISABLED */
/* .cch .cch-home-hero--image { */
/*     position: relative; */
/*     isolation: isolate; */
/*     display: flex; */
/*     align-items: center; */
/*     min-height: clamp(26rem, 58vh, 38rem); */
/*     padding-block: 4rem; */
/*     background-image: linear-gradient( 90deg, rgba(0, 41, 87, 0.92) 0%, rgba(0, 41, 87, 0.78) 42%, rgba(0, 41, 87, 0.35) 100% ), var(--cch-home-hero-image); */
/*     background-repeat: no-repeat; */
/*     background-position: center; */
/*     background-size: cover; */
/* } */

/* HERO CSS DISABLED */
/* .cch .cch-home-hero__content { */
/*     max-width: 42rem; */
/* } */

/* HERO CSS DISABLED */
/* .cch .cch-home-hero--image .cch-home-hero__title { */
/*     margin-bottom: 1.25rem; */
/*     color: #fff; */
/*     font-size: clamp(2.25rem, 4vw, 4rem); */
/*     line-height: 1.1; */
/*     text-wrap: balance; */
/* } */

/* HERO CSS DISABLED */
/* .cch .cch-home-hero--image .cch-home-hero__intro { */
/*     max-width: 36rem; */
/*     color: #fff; */
/*     font-size: clamp(1rem, 1.4vw, 1.25rem); */
/*     line-height: 1.6; */
/* } */

@media (max-width: 991.98px) {
    /* HERO CSS DISABLED */
    /* .cch .cch-home-hero--image { */
    /*         min-height: auto; */
    /*         background-image: linear-gradient( rgba(0, 41, 87, 0.9), rgba(0, 41, 87, 0.9) ), var(--cch-home-hero-image); */
    /*     } */
}

/* HERO CSS DISABLED */
/* .cch-hero { */
/*     min-height: clamp(320px, 50vh, 600px); */
/* } */
/* Legacy specific carousel ID */
#cchCarousel001 {
    height: 600px;
}

    #cchCarousel001 .carousel-inner,
    #cchCarousel001 .carousel-item,
    #cchCarousel001 .cch-orbit-slide {
        height: 100%;
    }

    #cchCarousel001 .cch-orbit-slide {
        background-repeat: no-repeat;
        background-position: center;
        background-size: cover;
    }

    #cchCarousel001 .carousel-control-prev,
    #cchCarousel001 .carousel-control-next {
        top: 50%;
        bottom: auto;
        transform: translateY(-50%);
        width: auto;
        padding: 1rem;
        opacity: 1;
    }

        #cchCarousel001 .carousel-control-prev:hover,
        #cchCarousel001 .carousel-control-next:hover,
        #cchCarousel001 .carousel-control-prev:focus,
        #cchCarousel001 .carousel-control-next:focus {
            background-color: hsla(0, 0%, 4%, .5);
        }

        #cchCarousel001 .carousel-control-prev:focus-visible,
        #cchCarousel001 .carousel-control-next:focus-visible {
            outline: 3px solid currentColor;
            outline-offset: 3px;
        }
/* Generic slider sizing */
.cch-slider {
    width: 100%;
    max-width: 100%;
    height: clamp(320px, 50vh, 600px);
    position: relative;
}

    .cch-slider .carousel-inner,
    .cch-slider .carousel-item {
        height: 100%;
    }

    .cch-slider .carousel-item {
        position: relative;
        background: #000;
    }

    .cch-slider .cch-orbit-slide {
        height: 100%;
        background-repeat: no-repeat;
        background-position: center;
        background-size: cover;
    }

    .cch-slider .carousel-item img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
/* Overlay (gradient + text) */
.cch-slider-overlay {
    position: absolute;
    inset: 0;
    z-index: 5;
    pointer-events: none;
    display: flex;
    align-items: center;
}

    .cch-slider-overlay::before {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(rgba(0,0,0,.4), rgba(0,0,0,.1));
    }

.cch-slider-overlay__inner {
    position: relative;
    pointer-events: auto;
    width: min(100%, 40rem);
    padding: 0 1rem;
    margin-left: clamp(1rem, 6vw, 4rem);
    margin-right: auto;
}

.cch-slider-title {
    margin: 0 0 .25rem 0;
    color: #fff;
    font-weight: 900;
}

.cch-slider-subtitle {
    color: rgba(255,255,255,.9);
}
/* Controls + indicators */
.cch-slider .carousel-control-prev,
.cch-slider .carousel-control-next {
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    width: auto;
    padding: 1rem;
    opacity: 1;
}

.cch-slider .carousel-indicators,
.cch-slider .carousel-control-prev,
.cch-slider .carousel-control-next {
    z-index: 6;
}

    .cch-slider .carousel-control-prev:hover,
    .cch-slider .carousel-control-next:hover,
    .cch-slider .carousel-control-prev:focus,
    .cch-slider .carousel-control-next:focus {
        background-color: hsla(0, 0%, 4%, .5);
    }

    .cch-slider .carousel-control-prev:focus-visible,
    .cch-slider .carousel-control-next:focus-visible {
        outline: 3px solid currentColor;
        outline-offset: 3px;
    }
/* Slow fade (scoped) */
.cch-slider.carousel-fade .carousel-item {
    opacity: 0;
    transition: opacity 2200ms ease-in-out;
}

    .cch-slider.carousel-fade .carousel-item.active {
        opacity: 1;
    }

.cch-slider.carousel-fade .carousel-item-next.carousel-item-start,
.cch-slider.carousel-fade .carousel-item-prev.carousel-item-end {
    opacity: 1;
}

.cch-slider.carousel-fade .carousel-item,
.cch-slider.carousel-fade .carousel-item-next,
.cch-slider.carousel-fade .carousel-item-prev {
    transform: none !important;
}
/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
    .carousel-item {
        transition: none !important;
    }
}

/* =============================================================================
   Banner
   ============================================================================= */

/* HERO CSS DISABLED */
/* .cch .hero-banner { */
/*     position: relative; */
/* } */

.cch .banner-wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.cch .ratio-16x9 {
    aspect-ratio: 16 / 9;
}

.cch .banner-block {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: clamp(320px, 50vh, 600px);
    overflow: hidden;
}

.cch .banner-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
}

/* HERO CSS DISABLED */
/* .cch .hero-text { */
/*     position: relative; */
/*     z-index: 3; */
/*     max-width: 56rem; */
/*     color: #fff; */
/* } */

.cch .banner-title,
.cch .banner-subtitle {
    color: #fff;
}

.cch .banner-caption {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 4;
    display: inline-block;
    max-width: min(90%, 28rem);
    padding: 0.35rem 0.5rem;
    background-color: #000;
    color: #fff;
    font-size: 0.75rem;
    line-height: 1.2;
    font-weight: 500;
    text-transform: uppercase;
}

/* HERO CSS DISABLED */
/* .cch .cch-banner-hero { */
/*     position: relative; */
/*     isolation: isolate; */
/*     min-height: clamp(320px, 50vh, 600px); */
/*     background-image: linear-gradient( 90deg, rgba(0, 41, 87, 0.92) 0%, rgba(0, 41, 87, 0.78) 42%, rgba(0, 41, 87, 0.35) 100% ), var(--cch-banner-image); */
/*     background-repeat: no-repeat; */
/*     background-position: center; */
/*     background-size: cover; */
/* } */

@media (max-width: 991.98px) {
    /* HERO CSS DISABLED */
    /* .cch .cch-banner-hero { */
    /*         background-image: linear-gradient( rgba(0, 41, 87, 0.9), rgba(0, 41, 87, 0.9) ), var(--cch-banner-image); */
    /*     } */
}

/* HERO CSS DISABLED */
/* .cch .cch-banner-hero--no-image { */
/*     min-height: clamp(160px, 25vh, 300px); */
/*     background-color: var(--cch-medium-blue); */
/*     background-image: none; */
/* } */

@media (max-width: 991.98px) {
    /* HERO CSS DISABLED */
    /* .cch .cch-banner-hero--no-image { */
    /*         min-height: clamp(140px, 22vh, 240px); */
    /*         background-color: var(--cch-medium-blue); */
    /*         background-image: none; */
    /*     } */
}
/* =============================================================================
   7) SEARCH (nav dropdown + search panel + overlap)
   ============================================================================= */
/* Search panel sizing (single consolidated version) */
.cch-search-panel {
    --cch-search-height: 56px;
}

@media (min-width: 768px) {
    .cch-search-panel .row.g-2.align-items-center {
        align-items: stretch !important;
    }

    .cch-search-panel .col-md,
    .cch-search-panel .col-md-auto {
        display: flex;
    }

    .cch-search-panel input.form-control.form-control-lg {
        height: var(--cch-search-height) !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        line-height: calc(var(--cch-search-height) - 2px) !important;
    }

    .cch-search-panel button.btn.btn-blue.btn-lg {
        height: var(--cch-search-height) !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        line-height: 1 !important;
        white-space: nowrap;
    }

    .cch-search-panel .col-md-auto.d-grid > .btn {
        height: 100% !important;
    }
}
/* Search overlap helper (P2E + CCH over slider) */
#p2e-search {
    position: relative;
    z-index: 20;
}

    #p2e-search .p2e-search-inner {
        margin-top: clamp(-5rem, -7vw, -3rem);
        box-shadow: 0 12px 30px rgba(0,0,0,.15);
    }
    /* Prefer this over .bg-blue if you want to avoid side effects */
    #p2e-search.cch-bg-blue {
        background-color: var(--cch-blue);
    }

    #p2e-search .form-control:focus-visible {
        outline: 3px solid #111;
        outline-offset: 2px;
    }
/* CCH search block (over slider) */
.cch-search--over-slider {
    position: relative;
    z-index: 20;
}

    .cch-search--over-slider .cch-search__panel {
        margin-top: clamp(-5rem, -7vw, -3rem);
        box-shadow: 0 12px 30px rgba(0, 0, 0, .15);
    }

    .cch-search--over-slider .form-control:focus-visible {
        outline: 3px solid #111;
        outline-offset: 2px;
    }
/* Search form controls sizing inside .cch-search */
.cch-search .form-control,
.cch-search .btn {
    height: calc(1.5em + 1rem + 2px);
}

/* =============================================================================
   8) CARDS (general + components)
   ============================================================================= */
/* Generic card tweaks */
.card-img-top {
    height: 190px;
}
/* Exact aspect ratio of 438x281 */
.ratio-438x281 {
    --bs-aspect-ratio: calc(281 / 438 * 100%);
}
/* P2E section card */
.p2e-section-card {
    border-radius: 0;
    overflow: hidden;
    background: #fff;
}

.p2e-card-body {
    padding: 2rem;
}

.p2e-card-title {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.15;
    color: #111;
}

.p2e-card-text {
    color: #2b2b2b;
    font-size: 1rem;
}

.p2e-card-media {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

    .p2e-card-media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

.p2e-course-summary-title {
    background: #054fb9 !important;
}

.cch-course-summary__message {
    background-color: var(--cch-orange);
}

    .cch-course-summary__message p {
        margin: 0;
        font-weight: 600;
        text-transform: uppercase;
    }

    .cch-course-summary__message i {
        font-size: 1rem;
        line-height: 1;
        flex: 0 0 auto;
    }

.p2e-card-accent {
    display: block;
    height: 6px;
    background: var(--cch-pink) !important;
}
/* CC card component */
.cc-card {
    background: #fff;
    overflow: hidden;
    border-radius: 0;
}

.cc-card__media {
    display: block;
    aspect-ratio: 16/9;
    overflow: hidden;
}

    .cc-card__media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

.cc-card__accent {
    display: block;
    height: 10px;
    background: var(--cch-green);
}

.cc-card__title {
    color: #111;
    font-weight: 700;
    line-height: 1.15;
}


/* CCH generic card component (scoped) */
.cch .cch-card {
    background: #fff;
}

.cch .cch-card__body {
    padding: 1rem;
    font-size: .81818rem;
}

.cch .cch-card__title {
    margin-top: 0;
}

.cch .cch-card__link {
    color: inherit;
}

@media (min-width: 40em) {
    .cch .cch-card__body {
        padding: 2rem;
    }

    .cch .cch-card__title {
        min-height: 75px;
    }
}


.cch .p2e-course-card {
    background: #fff;
}

.cch .p2e-course-card-content {
    padding: 1rem;
    font-size: .81818rem;
}

@media (min-width: 40em) {
    .cch .p2e-course-card-content {
        padding: 2rem;
    }

        .cch .p2e-course-card-content h3 {
            min-height: 75px;
        }
}
/* Category chips + action pattern */
.cch-chip-link {
    display: inline-block;
    font-size: .63636rem;
    font-weight: 600;
    line-height: 1;
    padding: .25rem 1rem;
    border-radius: 32px;
    background: #fff;
    border: 1px solid #054fb9;
    color: #054fb9;
    text-decoration: none;
    text-transform: uppercase;
}

    .cch-chip-link:hover {
        background: var(--cch-pink);
        text-decoration: none;
    }

    .cch-chip-link:focus-visible {
        outline: 3px solid #111;
        outline-offset: 3px;
    }

.cch-action {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    min-height: 44px;
    padding: .25rem .5rem;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 700;
    color: #111;
}

.cch-action__dot {
    width: max(24px, 1.8em);
    height: max(24px, 1.8em);
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #f28c00;
    color: #111;
    flex: 0 0 auto;
    transition: background-color .15s ease, transform .15s ease;
}

    .cch-action__dot i {
        font-size: .9em;
        line-height: 1;
    }

.cch-action:hover .cch-action__dot,
.cch-action:focus-visible .cch-action__dot {
    background: #d97706;
    transform: translateX(1px);
}

.cch-action:focus-visible {
    outline: 3px solid #111;
    outline-offset: 3px;
}

.p2e-card-link:focus-visible {
    outline: 3px solid #111;
    outline-offset: 4px;
    border-radius: .75rem;
}
/* Card chevron */
.cch-courselist-title {
    text-transform: uppercase !important;
}

.cch-card__explore {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: .5rem;
}

.cch-card__chev-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    flex: 0 0 auto;
}

.cch-card__chev-hit {
    width: 44px;
    height: 44px;
}

.cch-card__chev-circle {
    width: 28px;
    height: 28px;
    border-radius: 9999px;
    background: var(--cch-blue);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color .15s ease-in-out;
}

.cch-card__chev-icon {
    font-size: 12px;
    line-height: 1;
    color: #fff;
}

.cch-card__chev-link:hover .cch-card__chev-circle,
.cch-card__chev-link:focus-visible .cch-card__chev-circle {
    background: var(--cch-pink);
}

.cch-card__chev-link:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
    border-radius: 9999px;
}
/* Training block card content */
.cch .cch-course-card .card-text li {
    font-size: 16px;
    line-height: 1.4;
    margin-bottom: 0.35rem;
}

.cch .cch-course-card .card-text ul,
.cch .cch-course-card .card-text ol {
    margin-bottom: 1rem;
    padding-left: 1.25rem;
}
/* Course card hover lift */
.cch-course-card {
    border-radius: .75rem;
    overflow: hidden;
    transition: transform .15s ease-in-out;
}

    .cch-course-card:hover {
        transform: translateY(-2px);
    }

.cch-course-card__img {
    display: block;
    aspect-ratio: 700/451;
    overflow: hidden;
}

    .cch-course-card__img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
/* Training block: image, blue bar and centred icon */
.cch .cch-course-card {
    border-radius: 0.75rem;
    overflow: hidden;
}

.cch .cch-course-card__media {
    position: relative;
}

.cch .cch-course-card .cch-card-accent--blue {
    height: 10px;
    background-color: var(--cch-blue);
}

.cch .cch-course-card__icon {
    position: absolute;
    left: 50%;
    bottom: -2.25rem;
    width: 4.5rem;
    height: 4.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 3px solid var(--cch-white);
    border-radius: 999px;
    background-color: var(--cch-blue);
    color: var(--cch-white);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.18);
    transform: translateX(-50%);
    z-index: 2;
}

    .cch .cch-course-card__icon i {
        font-size: 1.75rem;
        line-height: 1;
    }

.cch .cch-course-card .card-body {
    padding-top: 3.75rem;
    padding-right: 2rem;
    padding-bottom: 2rem;
    padding-left: 2rem;
}

.cch .cch-course-card .card-title {
    color: var(--cch-black);
}
/* Training block: image, blue bar and centred icon */
.cch .cch-course-card {
    border-radius: 0.75rem;
    overflow: hidden;
}

.cch .cch-course-card__media {
    position: relative;
}

.cch .cch-course-card .cch-card-accent--blue {
    height: 10px;
    background-color: var(--cch-blue);
}

.cch .cch-course-card__icon {
    position: absolute;
    left: 50%;
    bottom: -2.25rem;
    width: 4.5rem;
    height: 4.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 3px solid var(--cch-white);
    border-radius: 999px;
    background-color: var(--cch-blue);
    color: var(--cch-white);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.18);
    transform: translateX(-50%);
    z-index: 2;
}

    .cch .cch-course-card__icon i {
        font-size: 1.75rem;
        line-height: 1;
    }

.cch .cch-course-card .card-body {
    padding-top: 3.75rem;
    padding-right: 2rem;
    padding-bottom: 1rem;
    padding-left: 2rem;
}

.cch .cch-course-card .card-title {
    color: var(--cch-black);
}

/* =============================================================================
   Card accent bars & icons
   Use with: <span class="cch-card-accent cch-card-accent--pink"></span>
   ============================================================================= */
.cch-card-accent {
    display: block;
    height: 6px;
    background-color: var(--cch-pink);
}
.cch-card-accent {
    display: block;
    width: 100%;
    height: 0.5rem;
    flex: 0 0 auto;
    background-color: var(--cch-blue);
}

.cch-card-accent--blue {
    background-color: var(--cch-blue);
}

.cch-card-accent--green {
    background-color: var(--cch-green);
}

.cch-card-accent--orange {
    background-color: var(--cch-orange);
}

.cch-card-accent--pink {
    background-color: var(--cch-pink);
}

.cch-card-accent--yellow {
    background-color: var(--cch-yellow);
}

.cch-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 4.5rem;
    height: 4.5rem;
    border: 3px solid var(--cch-white);
    border-radius: 999px;
    color: var(--cch-white);
    background-color: var(--cch-blue);
    font-size: 1.625rem;
    line-height: 1;
    box-shadow: 0 0.25rem 0.65rem rgba(0, 0, 0, 0.16);
}

.cch-card-icon--pink {
    background-color: var(--cch-pink);
}

.cch-card-icon--blue {
    background-color: var(--cch-blue);
}

.cch-card-icon--green {
    background-color: var(--cch-green);
}

.cch-card-icon--orange {
    background-color: var(--cch-orange);
}

.cch-card-icon i {
    display: inline-block;
    line-height: 1;
}

/* =============================================================================
   Card icons
   Use with: <span class="cch-card-icon cch-card-icon--green"></span>
   ============================================================================= */

.cch-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 4.5rem;
    height: 4.5rem;
    border: 3px solid var(--cch-white);
    border-radius: 999px;
    color: var(--cch-white);
    background-color: var(--cch-blue);
    font-size: 1.625rem;
    line-height: 1;
    box-shadow: 0 0.25rem 0.65rem rgba(0, 0, 0, 0.16);
}

.cch-card-icon--pink {
    background-color: var(--cch-pink);
}

.cch-card-icon--blue {
    background-color: var(--cch-blue);
}

.cch-card-icon--green {
    background-color: var(--cch-green);
}

.cch-card-icon--orange {
    background-color: var(--cch-orange);
}

.cch-card-icon i {
    display: inline-block;
    line-height: 1;
}

.cch .cch-home-links .cch-card-icon {
    position: absolute;
    top: -2.25rem;
    left: 50%;
    z-index: 2;
    transform: translateX(-50%);
}


/* =============================================================================
   9) FORMS + FORM MODALS
   ============================================================================= */

label {
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.8;
    color: #0a0a0a;
}
/* Modal shell */
.cch-modal {
    border: 0;
    border-radius: 32px;
    overflow: hidden;
}

    .cch-modal .modal-header {
        padding: 24px 24px 8px 24px;
    }

    .cch-modal .modal-body {
        padding: 16px 24px 28px 24px;
    }

.cch-modal__title-pill {
    display: inline-block;
    background: #f5b21b;
    color: #0b0b0b;
    padding: 10px 26px;
    border-radius: 999px;
    font-weight: 800;
}

.cch-modal__close {
    filter: invert(1);
    opacity: 1;
}
/* Modal controls */
.cch-modal__control {
    background-color: #072a52;
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #fff;
    border-radius: 14px;
    padding: 12px 14px;
}

    .cch-modal__control::placeholder {
        color: #fff !important;
        font-size: 14px;
        opacity: 1;
    }

    .cch-modal__control,
    .cch-modal__control option {
        color: #fff;
    }

        .cch-modal__control:focus {
            background-color: #072a52;
            color: #fff;
            border-color: rgba(245, 178, 27, 0.9);
            box-shadow: 0 0 0 0.25rem rgba(245, 178, 27, 0.35);
        }
        /* Autofill */
        .cch-modal__control:-webkit-autofill,
        .cch-modal__control:-webkit-autofill:hover,
        .cch-modal__control:-webkit-autofill:focus {
            -webkit-text-fill-color: #fff;
            transition: background-color 9999s ease-in-out 0s;
            box-shadow: 0 0 0px 1000px #072a52 inset;
        }
/* Modal labels */
.cch-modal .form-label {
    font-size: 16px;
    font-weight: 700;
}
/* =============================================================================
   11) BROCHURE BAR (P2E)
   ============================================================================= */

.p2e-brochure-bar {
    background: #344194;
    color: #fff;
    position: relative;
    overflow: hidden;
    border-top: 2px solid rgba(0,0,0,.15);
    border-bottom: 2px solid rgba(0,0,0,.15);
}

.p2e-brochure-bar__inner {
    width: min(1100px, 100%);
    margin-inline: auto;
}

.p2e-brochure-bar::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 2px;
    background: rgba(255,255,255,.25);
}

.p2e-brochure-bar::after {
    content: "";
    position: absolute;
    inset: -50% -35% auto auto;
    width: 340px;
    height: 340px;
    background: rgba(255,255,255,.08);
    transform: rotate(25deg);
    pointer-events: none;
}

.p2e-brochure-bar h2,
.p2e-brochure-bar h3,
.p2e-brochure-bar p {
    color: inherit;
}

.p2e-brochure-bar .btn {
    min-height: 44px;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 14px;
}

    .p2e-brochure-bar .btn:focus-visible {
        outline: 3px solid #fff;
        outline-offset: 3px;
    }

@media (max-width: 576px) {
    .p2e-brochure-bar .newsletter-form .row {
        align-items: stretch;
    }
}
/* =============================================================================
   12) ACCESSIBILITY HELPERS
   ============================================================================= */

.skip-to-content {
    position: absolute;
    left: -999px;
    top: 0;
    background: var(--custom-base);
    color: #fff;
    padding: 8px;
    z-index: 100;
}

    .skip-to-content:focus {
        left: 45%;
        color: var(--custom-white);
    }
/* =============================================================================
   13) TOC / PROSE
   ============================================================================= */

.toc-sticky {
    top: 1rem;
}

#page-content h2,
#page-content h3 {
    scroll-margin-top: 6rem;
}

.toc-right {
    padding-left: 1rem;
    border-left: 1px solid rgba(0,0,0,.12);
}

.prose-content {
    text-align: left;
    max-width: 80ch;
}

    .prose-content :where(p, ul, ol, table, blockquote, pre) {
        margin-top: 0;
        margin-bottom: 1rem;
    }

    .prose-content :where(h2, h3, h4) {
        margin-top: 2rem;
        margin-bottom: 0.75rem;
        line-height: 1.2;
    }

        .prose-content :where(h2, h3, h4):first-child {
            margin-top: 0;
        }
/* =============================================================================
   14) STATS 
   ============================================================================= */
/* =============================================================================
   14) CCH STATS
   File: wwwroot/css/custom.css
   Scope: .cch-stats
   ============================================================================= */

.cch .cch-stats {
    background-color: var(--cch-pink);
    color: var(--cch-white);
    padding-block: 2.5rem;
}

    .cch .cch-stats ul {
        row-gap: 2rem;
    }

    .cch .cch-stats li {
        position: relative;
    }
    /* Individual stat item */
    .cch .cch-stats .cch-stat {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 0.875rem;
        height: 100%;
        text-align: center;
    }
    /* Diamond icon container */
    .cch .cch-stats .cch-stat__diamond {
        width: 5rem;
        height: 5rem;
        display: grid;
        place-items: center;
        margin: 0 auto;
        border: 3px solid currentColor;
        border-radius: 0.75rem;
        color: var(--cch-white);
        background-color: transparent;
        transform: rotate(45deg);
    }
    /* Icon inside diamond */
    .cch .cch-stats .cch-stat__icon {
        font-size: 2rem;
        line-height: 1;
        transform: rotate(-45deg);
    }
    /* Stat text */
    .cch .cch-stats .cch-stat__text {
        font-size: 1.25rem;
    }

    .cch .cch-stats .cch-stat__number {
        max-width: 15rem;
        margin: 0;
        color: var(--cch-white);
        font-family: var(--cch-font-headings);
        font-size: 1.125rem;
        font-weight: 700;
        line-height: 1.3;
    }
/* Tablet and above: add dividers between items */
@media (min-width: 768px) {
    .cch .cch-stats li:not(:last-child)::after {
        content: "";
        position: absolute;
        top: 50%;
        right: 0;
        width: 1px;
        height: 4rem;
        background-color: rgba(255, 255, 255, 0.55);
        transform: translateY(-50%);
    }
}
/* Desktop refinement */
@media (min-width: 992px) {
    .cch .cch-stats {
        padding-block: 3rem;
    }

        .cch .cch-stats .cch-stat__diamond {
            width: 5.5rem;
            height: 5.5rem;
        }

        .cch .cch-stats .cch-stat__icon {
            font-size: 2.25rem;
        }

        .cch .cch-stats .cch-stat__number {
            font-size: 1.25rem;
        }
}
/* Hover animation: grow the icon only */
.cch .cch-stats .cch-stat__icon {
    transition: transform 180ms ease-in-out;
}

.cch .cch-stats .cch-stat:hover .cch-stat__icon {
    transform: rotate(-45deg) scale(1.18);
}
/* =============================================================================
   15) BADGES
   ============================================================================= */
.cch-availability {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .25rem .6rem;
    border: 2px solid currentColor;
    border-radius: 9999px;
    font-weight: 700;
    font-size: 14px;
    line-height: 1.2;
    white-space: nowrap;
    color: #fff;
    background-color: var(--cch-orange);
}

    .cch-availability i {
        line-height: 1;
        font-size: .95rem;
    }

.cch-course-list .cch-availability.is-popular {
    background-color: var(--cch-red);
}

.cch-course-list .cch-availability.is-limited {
    background-color: var(--cch-green);
}

/* =============================================================================
   Partner Logo Row
   ============================================================================= */

.cch-partner-logos {
    padding-top: 2.5rem;
    padding-bottom: 3rem;
    overflow: hidden;
}

.cch-partner-logos__title {
    margin: 0;
    color: var(--cch-black);
    font-family: var(--cch-font-headings);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 700;
    line-height: 1.2;
}

.cch-partner-logos__inner {
    width: 100%;
}

.cch-partner-logos__row {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.cch-partner-logos__item {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 0;
    min-width: 0;
    max-width: 230px;
    min-height: 115px;
}

.cch-partner-logos__img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    object-fit: contain;
}

/* Logo balance modifiers */
.cch-partner-logos__img--wide {
    max-width: 285px;
    max-height: 95px;
}

.cch-partner-logos__img--medium {
    max-width: 230px;
    max-height: 90px;
}

.cch-partner-logos__img--small {
    max-width: 190px;
    max-height: 80px;
}

/* Enlarge partner artwork while leaving the Welsh Government logo unchanged. */
.cch-partner-logos__img--scalable {
    width: 100%;
    height: 95px;
    max-width: 100%;
    max-height: none;
}
/* Larger desktop screens */
@media (min-width: 1200px) {
    .cch-partner-logos__row {
        gap: 2.5rem;
    }

    .cch-partner-logos__item {
        max-width: 245px;
        min-height: 125px;
    }

    .cch-partner-logos__img--wide {
        max-width: 310px;
        max-height: 100px;
    }

    .cch-partner-logos__img--medium {
        max-width: 250px;
        max-height: 95px;
    }

    .cch-partner-logos__img--small {
        max-width: 205px;
        max-height: 85px;
    }

    .cch-partner-logos__img--scalable {
        height: 100px;
        max-width: 100%;
        max-height: none;
    }
}
/* Mobile carousel */
@media (max-width: 991.98px) {
    .cch-partner-logos {
        padding-top: 2rem;
        padding-bottom: 2rem;
    }

    .cch-partner-logos__slide {
        min-height: 130px;
        display: flex;
        align-items: center;
        justify-content: center;
        padding-inline: 3rem;
    }

    .cch-partner-logos__swiper {
        padding-bottom: 2.25rem;
    }

    .cch-partner-logos__swiper .swiper-pagination-bullet {
        width: 10px;
        height: 10px;
    }

    .cch-partner-logos__swiper .swiper-pagination-bullet-active {
        background: var(--cch-blue);
    }

    .cch-partner-logos__img--wide {
        max-width: 260px;
        max-height: 85px;
    }

    .cch-partner-logos__img--medium {
        max-width: 220px;
        max-height: 80px;
    }

    .cch-partner-logos__img--small {
        max-width: 180px;
        max-height: 75px;
    }

    .cch-partner-logos__img--scalable {
        height: 85px;
        max-width: 260px;
        max-height: none;
    }
}
/* Centre partner logo title and heading accent */
.cch .cch-partner-logos .cch-heading-accent {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

    .cch .cch-partner-logos .cch-heading-accent::after {
        margin-left: auto;
        margin-right: auto;
    }

.cch .cch-partner-logos p {
    max-width: 42rem;
}


/* =============================================================================
   Homepage About section
   ============================================================================= */

/*.cch .cch-home-about-section {
    background-color: var(--cch-white);
}*/

.cch .cch-home-about {
    max-width: 38rem;
}

    .cch .cch-home-about h2 {
        color: var(--cch-dark-blue);
        margin-bottom: 1rem;
    }

.cch .cch-home-section-intro {
    font-size: 1rem;
    line-height: 1.5;
    margin-bottom: 1.25rem;
}

.cch .cch-home-about-visual {
    display: flex;
    justify-content: center;
    align-items: center;
}

.cch .cch-home-about-visual__diamond {
    width: clamp(8rem, 18vw, 11rem);
    height: clamp(8rem, 18vw, 11rem);
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--cch-pink);
    border-radius: 1rem;
    transform: rotate(45deg);
}

.cch .cch-home-about-visual__icon {
    color: var(--cch-white);
    font-size: clamp(3rem, 7vw, 4.75rem);
    line-height: 1;
    transform: rotate(-45deg);
}

@media (max-width: 991.98px) {
    .cch .cch-home-about {
        max-width: none;
    }

    .cch .cch-home-about-visual {
        margin-top: 1.5rem;
    }
}
/* =============================================================================
   Homepage About section
   ============================================================================= */
/*.cch .cch-home-about-section {
    background-color: var(--cch-white);
}

.cch .cch-home-about {
    max-width: 38rem;
}

    .cch .cch-home-about h2 {
        color: var(--cch-dark-blue);
        margin-bottom: 1rem;
    }

.cch .cch-home-section-intro {
    font-size: 1rem;
    line-height: 1.5;
    margin-bottom: 1.25rem;
}

.cch .cch-home-about-visual {
    display: flex;
    justify-content: center;
    align-items: center;
}

.cch .cch-home-about-visual__logo-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(100%, 28rem);
    aspect-ratio: 1 / 1;
    padding: 1.5rem;
    border-radius: 50%;
    background:
        radial-gradient(circle at center, #ffffff 0%, #f8fafc 70%, #e9eef5 100%);
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.08);
}

.cch .cch-home-about-visual__logo {
    display: block;
    width: 100%;
    max-width: 24rem;
    height: auto;
    object-fit: contain;
}

@media (max-width: 991.98px) {
    .cch .cch-home-about {
        max-width: none;
    }

    .cch .cch-home-about-visual {
        margin-top: 1.5rem;
    }

    .cch .cch-home-about-visual__logo {
        max-width: 18rem;
    }
}
*/

.cch .cch-home-about-section {
    background-color: var(--cch-white);
}

.cch .cch-home-about {
    max-width: 38rem;
}

    .cch .cch-home-about h2 {
        color: var(--cch-dark-blue);
        margin-bottom: 1rem;
    }

.cch .cch-home-section-intro {
    font-size: 1rem;
    line-height: 1.5;
    margin-bottom: 1.25rem;
}

.cch .cch-home-about-visual {
    display: flex;
    justify-content: center;
    align-items: center;
}

.cch .cch-home-about-visual__logo-wrap {
    width: min(100%, 28rem);
}

.cch .cch-home-about-visual__logo {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 1.5rem;
    object-fit: cover;
}

@media (max-width: 991.98px) {
    .cch .cch-home-about {
        max-width: none;
    }

    .cch .cch-home-about-visual {
        margin-top: 1.5rem;
    }

    .cch .cch-home-about-visual__logo-wrap {
        width: min(100%, 22rem);
    }
}

/* =============================================================================
   Social Bar
   ============================================================================= */

.cch-social-bar {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
}

.cch-social-bar__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    text-align: center;
}

.cch-social-bar__title {
    margin: 0;
    color: var(--cch-white);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
}

.cch-social-bar__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .75rem;
}

.cch-social-bar__item {
    margin: 0;
}

.cch-social-bar__link {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--cch-white);
    border: 2px solid rgba(255, 255, 255, .45);
    border-radius: 50%;
    text-decoration: none;
    font-size: 1.125rem;
    line-height: 1;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}

    .cch-social-bar__link:hover {
        color: var(--cch-bg-dark);
        background-color: var(--cch-white);
        border-color: var(--cch-white);
        transform: translateY(-2px);
    }

    .cch-social-bar__link:focus-visible {
        outline: 3px solid var(--cch-white);
        outline-offset: 4px;
    }

@media (min-width: 768px) {
    .cch-social-bar {
        padding-top: 2rem;
        padding-bottom: 2rem;
    }

    .cch-social-bar__inner {
        flex-direction: row;
        gap: 2rem;
        text-align: left;
    }

    .cch-social-bar__title {
        font-size: 1.75rem;
    }
}


/* =============================================================================
   Homepage
   ============================================================================= */

.cch-home {
    background-color: var(--cch-bg-light);
}

/* HERO CSS DISABLED */
/* .cch-home-hero { */
/*     background-color: var(--cch-blue); */
/*     color: #fff; */
/* } */

/* HERO CSS DISABLED */
/* .cch-home-hero h1, */
/*     .cch-home-hero h2, */
/*     .cch-home-hero p, */
/*     .cch-home-hero li { */
/*         color: #fff; */
/*     } */

.cch-home-eyebrow {
    display: inline-block;
    margin-bottom: 0.75rem;
    font-size: 1rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* HERO CSS DISABLED */
/* .cch-home-hero__title { */
/*     max-width: 48rem; */
/*     margin-bottom: 1rem; */
/* } */

/* HERO CSS DISABLED */
/* .cch-home-hero__intro { */
/*     max-width: 42rem; */
/*     font-size: 1.25rem; */
/*     line-height: 1.5; */
/* } */

/* HERO CSS DISABLED */
/* .cch-home-hero__panel { */
/*     padding: 1.5rem; */
/*     border-radius: 1rem; */
/*     background-color: rgba(255, 255, 255, 0.12); */
/*     border: 1px solid rgba(255, 255, 255, 0.24); */
/* } */

.cch-home-list {
    margin-bottom: 0;
    padding-left: 1.25rem;
}

    .cch-home-list li + li {
        margin-top: 0.5rem;
    }

.cch-home-section-intro {
    max-width: 48rem;
    margin-right: auto;
    margin-left: auto;
    font-size: 1.125rem;
    line-height: 1.5;
}

.cch-home-card {
    background-color: #fff;
    border: 2px solid var(--cch-border-grey);
    border-radius: 1rem;
    overflow: hidden;
}

.cch-home-card__body {
    display: flex;
    min-height: 100%;
    flex-direction: column;
    padding: 1.5rem;
}

    .cch-home-card__body p {
        flex-grow: 1;
    }

.cch-home-card__link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    width: fit-content;
    margin-top: 1rem;
    font-weight: 700;
    color: var(--cch-blue);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

    .cch-home-card__link:hover,
    .cch-home-card__link:focus-visible {
        color: var(--cch-pink);
        text-decoration: none;
    }

    .cch-home-card__link:focus-visible {
        outline: 3px solid currentColor;
        outline-offset: 3px;
    }

.cch-home-feature {
    padding: 1.5rem;
    background-color: #fff;
    border-radius: 1rem;
    border-top: 8px solid var(--cch-orange);
}

.cch-home-contact {
    background-color: var(--cch-blue);
    color: #fff;
}

    .cch-home-contact h2,
    .cch-home-contact p {
        color: #fff;
    }

@media (min-width: 768px) {
    /* HERO CSS DISABLED */
    /* .cch-home-hero__panel, */
    /*     .cch-home-card__body, */
    /*     .cch-home-feature { */
    /*         padding: 2rem; */
    /*     } */
    .cch-home-card__body,
    .cch-home-feature {
        padding: 2rem;
    }
}

/* Homepage icons
   ============================================================================= */

/* HERO CSS DISABLED */
/* .cch-home-card__icon, */
/* .cch-home-hero__icon, */
/* .cch-home-contact__icon { */
/*     display: inline-flex; */
/*     align-items: center; */
/*     justify-content: center; */
/*     flex: 0 0 auto; */
/*     border-radius: 999px; */
/* } */
.cch-home-card__icon,
.cch-home-contact__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 999px;
}

.cch-home-card__icon {
    width: 4rem;
    height: 4rem;
    margin-bottom: 1.25rem;
    font-size: 1.75rem;
    color: #fff;
}

.cch-home-card__icon--green {
    background-color: var(--cch-green);
}

.cch-home-card__icon--blue {
    background-color: var(--cch-blue);
}

.cch-home-card__icon--orange {
    background-color: var(--cch-orange);
}

.cch-home-card__icon--pink {
    background-color: var(--cch-pink);
}

.cch-home-card__icon--yellow {
    background-color: var(--cch-yellow);
}

.cch-home-contact__icon {
    width: 4rem;
    height: 4rem;
    margin-bottom: 1rem;
    font-size: 1.75rem;
    color: #fff;
    border: 2px solid rgba(255, 255, 255, 0.8);
}

.cch-home .cch-section {
    padding-block: 2.5rem;
}

@media (min-width: 768px) {
    .cch-home .cch-section {
        padding-block: 4rem;
    }
}

/* HERO CSS DISABLED */
/* .cch-home-hero { */
/*     padding-block: 3rem; */
/* } */

@media (min-width: 992px) {
    /* HERO CSS DISABLED */
    /* .cch-home-hero { */
    /*         padding-block: 5rem; */
    /*     } */
}

/* HERO CSS DISABLED */
/* .cch-home-hero__title { */
/*     max-width: 42rem; */
/*     font-size: clamp(2rem, 4vw, 4rem); */
/*     line-height: 1.1; */
/* } */

/* HERO CSS DISABLED */
/* .cch-home-hero__intro { */
/*     max-width: 36rem; */
/*     font-size: clamp(1rem, 1.5vw, 1.25rem); */
/*     line-height: 1.5; */
/* } */

.cch-home-card {
    border: 1px solid var(--cch-border-grey);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.08);
}

.cch-home-card__body {
    padding: 1.5rem;
}

@media (min-width: 992px) {
    .cch-home-card__body {
        padding: 2rem;
    }
}

.cch-home-card h3 {
    margin-bottom: 0.75rem;
}

.cch-home-card p {
    line-height: 1.5;
}

.cch-home-card__icon {
    width: 4.5rem;
    height: 4.5rem;
    margin-bottom: 1.25rem;
    font-size: 2rem;
}

/* Homepage hero action list
   ============================================================================= */

.cch-home-action-list {
    display: grid;
    gap: 0.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

    .cch-home-action-list li {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        color: #fff;
        font-weight: 600;
        line-height: 1.4;
    }

.cch-home-action-list__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    background-color: #fff;
    color: var(--cch-blue);
    font-size: 1rem;
}

/* HERO CSS DISABLED */
/* .cch-home-hero { */
/*     padding-block: 3.5rem; */
/* } */

@media (min-width: 992px) {
    /* HERO CSS DISABLED */
    /* .cch-home-hero { */
    /*         padding-block: 5rem; */
    /*     } */
}

/* HERO CSS DISABLED */
/* .cch-home-hero__panel { */
/*     padding: 2rem; */
/* } */

.cch-home-action-list li {
    font-size: 1rem;
    font-weight: 700;
}

.cch-home-action-list__icon {
    width: 2.25rem;
    height: 2.25rem;
}

.cch-home-about {
    max-width: 52rem;
}

    .cch-home-about p {
        line-height: 1.6;
    }

.cch-home-about__panel {
    margin-block: 2rem;
}

.cch-home-card__body {
    padding: 2rem;
}

.cch-home-card__icon {
    width: 4.5rem;
    height: 4.5rem;
    font-size: 2rem;
}

.cch-home-card h3 {
    margin-bottom: 0.75rem;
}
/* =============================================================================
   Homepage shared section alignment
   ============================================================================= */

.cch-home-section-content,
.cch-home-about {
    max-width: 56rem;
    margin-inline: auto;
}

    .cch-home-section-content h2,
    .cch-home-about h2 {
        margin-bottom: 1rem;
    }

    .cch-home-section-content p,
    .cch-home-about p {
        line-height: 1.6;
    }

/* Centre homepage Explore section heading accent */
.cch .cch-home-section-content .cch-heading-accent {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

    .cch .cch-home-section-content .cch-heading-accent::after {
        margin-left: auto;
        margin-right: auto;
    }
/* =============================================================================
   Homepage image hero
   ============================================================================= */

/* HERO CSS DISABLED */
/* .cch .cch-home-hero--image { */
/*     position: relative; */
/*     isolation: isolate; */
/*     display: flex; */
/*     align-items: center; */
/*     min-height: clamp(28rem, 60vh, 40rem); */
/*     padding-block: 4rem; */
/*     background-image: linear-gradient( 90deg, rgba(0, 41, 87, 0.92) 0%, rgba(0, 41, 87, 0.78) 42%, rgba(0, 41, 87, 0.28) 100% ), var(--cch-home-hero-image); */
/*     background-repeat: no-repeat; */
/*     background-position: center; */
/*     background-size: cover; */
/* } */

/* HERO CSS DISABLED */
/* .cch .cch-home-hero--image .cch-home-hero__title, */
/*     .cch .cch-home-hero--image .cch-home-hero__intro { */
/*         color: #fff; */
/*     } */

/* HERO CSS DISABLED */
/* .cch .cch-home-hero--image .cch-home-hero__title { */
/*         max-width: 42rem; */
/*     } */

/* HERO CSS DISABLED */
/* .cch .cch-home-hero--image .cch-home-hero__intro { */
/*         max-width: 36rem; */
/*     } */

/* HERO CSS DISABLED */
/* .cch .cch-home-hero--image .cch-home-hero__panel { */
/*         background-color: rgba(0, 94, 184, 0.92); */
/*         border: 1px solid rgba(255, 255, 255, 0.45); */
/*         box-shadow: 0 1rem 2rem rgba(0, 31, 69, 0.25); */
/*     } */

@media (max-width: 991.98px) {
    /* HERO CSS DISABLED */
    /* .cch .cch-home-hero--image { */
    /*         background-image: linear-gradient( rgba(0, 41, 87, 0.88), rgba(0, 41, 87, 0.88) ), var(--cch-home-hero-image); */
    /*     } */
}
/* =============================================================================
   HOMEPAGE CARD WITH IMAGES
   ============================================================================= */

.cch .cch-home-links .cch-home-card--with-image {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--cch-border-grey);
    border-radius: 0.75rem;
    background-color: var(--cch-bg-white);
    box-shadow: 0 0.5rem 1rem rgba(0, 31, 69, 0.08);
    transition: box-shadow 180ms ease-in-out;
}

    .cch .cch-home-links .cch-home-card--with-image:hover,
    .cch .cch-home-links .cch-home-card--with-image:focus-within {
        box-shadow: 0 1rem 2rem rgba(0, 31, 69, 0.14);
    }

.cch .cch-home-links .cch-home-card__image-wrap {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    background-color: var(--cch-bg-light);
}

.cch .cch-home-links .cch-home-card__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cch .cch-home-links .cch-home-card__accent {
    display: block;
    height: 0.5rem;
}

.cch .cch-home-links .cch-home-card__accent--green,
.cch .cch-home-links .cch-home-card__icon--green {
    background-color: var(--cch-green);
}

.cch .cch-home-links .cch-home-card__accent--blue,
.cch .cch-home-links .cch-home-card__icon--blue {
    background-color: var(--cch-blue);
}

.cch .cch-home-links .cch-home-card__accent--orange,
.cch .cch-home-links .cch-home-card__icon--orange {
    background-color: var(--cch-orange);
}

.cch .cch-home-links .cch-home-card__body {
    position: relative;
    padding: 2.75rem 1.5rem 1.5rem;
    text-align: center;
}

.cch .cch-home-links .cch-home-card__icon {
    position: absolute;
    top: -2.25rem;
    left: 50%;
    z-index: 2;
    width: 4.5rem;
    height: 4.5rem;
    transform: translateX(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
    border: 3px solid var(--cch-white);
    border-radius: 50%;
    color: var(--cch-white);
    font-size: 1.625rem;
    line-height: 1;
    box-shadow: 0 0.25rem 0.65rem rgba(0, 0, 0, 0.16);
}

    .cch .cch-home-links .cch-home-card__icon i {
        display: inline-block;
        line-height: 1;
        transform: scale(1);
        transform-origin: center;
        transition: transform 180ms ease-in-out;
    }

.cch .cch-home-links .cch-home-card--with-image:hover .cch-home-card__icon i,
.cch .cch-home-links .cch-home-card--with-image:focus-within .cch-home-card__icon i {
    transform: scale(1.14);
}

.cch .cch-home-links .cch-home-card__link:focus-visible {
    outline: 3px solid var(--cch-orange);
    outline-offset: 4px;
    border-radius: 0.25rem;
}

@media (min-width: 992px) {
    .cch .cch-home-links .cch-home-card__body {
        padding: 3rem 2rem 2rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cch .cch-home-links .cch-home-card--with-image,
    .cch .cch-home-links .cch-home-card__icon i {
        transition: none;
    }

        .cch .cch-home-links .cch-home-card--with-image:hover .cch-home-card__icon i,
        .cch .cch-home-links .cch-home-card--with-image:focus-within .cch-home-card__icon i {
            transform: none;
        }
}
/* =============================================================================
   Homepage image cards - layout fix
   Keeps card links visible
   ============================================================================= */

.cch .cch-home-links .cch-home-card--with-image {
    display: flex;
    flex-direction: column;
    height: 100%;
}

    .cch .cch-home-links .cch-home-card--with-image .cch-home-card__body {
        display: flex;
        flex: 1 1 auto;
        flex-direction: column;
        min-height: 0;
        height: auto;
    }

        .cch .cch-home-links .cch-home-card--with-image .cch-home-card__body p {
            flex-grow: 1;
        }

.cch .cch-home-links .cch-home-card__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    width: fit-content;
    margin: 1rem auto 0;
    color: var(--cch-blue);
    font-weight: 700;
    text-decoration: none;
}

.cch .cch-link-label {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

/* WCAG 2.2 AAA 2.4.13: strong focus perimeter around complete card actions. */
.cch .cch-home-explore-section .cch-home-card__link:focus-visible,
.cch .cch-latest-news-section .cch-home-card__link:focus-visible {
    outline: 3px solid var(--cch-dark-blue, #002957);
    outline-offset: 3px;
    border-radius: 0.25rem;
}

    .cch .cch-home-links .cch-home-card__link:hover,
    .cch .cch-home-links .cch-home-card__link:focus-visible {
        color: var(--cch-pink) !important;
        text-decoration: none;
    }

/* Match the Explore cards to the Latest News card content layout. */
.cch .cch-home-explore-section .cch-home-card__body {
    padding: 3rem 1.75rem 1.75rem;
    text-align: left;
}

.cch .cch-home-explore-section .cch-home-card__body h3 {
    margin-bottom: 1rem;
}

.cch .cch-home-explore-section .cch-home-card__link {
    justify-content: flex-start;
    align-self: flex-start;
    gap: 0.5rem;
    margin-top: auto;
    margin-left: 0;
    margin-right: auto;
}

@media (min-width: 992px) {
    .cch .cch-home-explore-section .cch-home-card__body {
        padding: 3.25rem 2rem 2rem;
    }
}
/* =============================================================================
  Jump to top button (scoped)
   ============================================================================= */
.cch-back-to-top {
    position: static;
    right: auto;
    left: auto;
    bottom: auto;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    background: transparent;
    color: var(--cch-black);
    text-decoration: none;
    font-weight: 700;
    padding: .75rem 1rem;
    min-height: 44px;
}

    .cch-back-to-top:hover {
        color: var(--cch-pink);
        text-decoration: none;
    }

    .cch-back-to-top:focus-visible {
        outline: 3px solid var(--cch-orange);
        outline-offset: 3px;
    }

.cch-back-to-top__icon {
    font-size: 1rem;
    line-height: 1;
}

.cch .cch-back-to-top {
    font-size: 1rem; /* 16px */
    line-height: 1.4;
    text-rendering: optimizeLegibility;
    margin-bottom: 1.25rem;
}
/* SM+ */
@media (min-width: 576px) {
    .cch p {
        margin-bottom: 1.5rem;
    }
}

/* =============================================================================
   Homepage heading accent
   File: wwwroot/css/custom.css
   ============================================================================= */

.cch .cch-heading-accent {
    position: relative;
    display: block;
    width: fit-content;
    max-width: 100%;
    margin-bottom: 1.5rem;
    padding-bottom: 0;
}

    .cch .cch-heading-accent::after {
        content: "";
        position: static;
        display: block;
        width: clamp(9rem, 18vw, 14rem);
        height: 0.25rem;
        margin-top: 0.6rem;
        margin-left: 0;
        margin-right: auto;
        border-radius: 999px;
        transform: none;
        background: linear-gradient( 90deg, var(--cch-blue) 0%, var(--cch-blue) 25%, var(--cch-green) 25%, var(--cch-green) 50%, var(--cch-orange) 50%, var(--cch-orange) 75%, var(--cch-pink) 75%, var(--cch-pink) 100% );
    }

/* =============================================================================
   FINAL FOOTER OVERRIDE
   ============================================================================= */

.site-footer.cch-footer-main,
body .site-footer.cch-footer-main {
    clear: both;
    width: 100%;
    background-color: var(--cch-dark-blue, #002957) !important;
    color: var(--cch-white, #fff) !important;
    padding-top: 3rem;
    padding-bottom: 1.25rem;
}

    .site-footer.cch-footer-main .container {
        background-color: transparent !important;
    }

    .site-footer.cch-footer-main .row {
        align-items: flex-start;
    }

    .site-footer.cch-footer-main .cch-footer-widget {
        color: inherit;
    }

    .site-footer.cch-footer-main .cch-footer-logo {
        display: block;
        width: min(100%, 250px);
        aspect-ratio: 5 / 3;
        height: auto;
        object-fit: contain;
    }

    .site-footer.cch-footer-main .cch-footer-text,
    .site-footer.cch-footer-main p,
    .site-footer.cch-footer-main li,
    .site-footer.cch-footer-main span,
    .site-footer.cch-footer-main .cch-footer-contact__item {
        color: rgba(255, 255, 255, 0.9) !important;
        font-size: 1rem;
        line-height: 1.5;
    }

    .site-footer.cch-footer-main .cch-footer-text {
        max-width: 18rem;
        margin-bottom: 1.5rem;
    }

    .site-footer.cch-footer-main .cch-footer-widget__title,
    .site-footer.cch-footer-main h2,
    .site-footer.cch-footer-main h3,
    .site-footer.cch-footer-main .h5 {
        color: var(--cch-white, #fff) !important;
    }

    .site-footer.cch-footer-main .cch-footer-widget__title {
        position: relative;
        margin-bottom: 1rem;
        font-weight: 800;
    }

        .site-footer.cch-footer-main .cch-footer-widget__title::after {
            content: "";
            display: block;
            width: 3rem;
            height: 0.25rem;
            margin-top: 0.6rem;
            border-radius: 999px;
            background-color: var(--cch-orange, #dc582a);
        }

    .site-footer.cch-footer-main a,
    .site-footer.cch-footer-main .cch-footer-links a,
    .site-footer.cch-footer-main .cch-footer-contact a,
    .site-footer.cch-footer-main .cch-footer-legal a {
        display: inline-flex;
        align-items: center;
        min-height: 44px;
        color: var(--cch-white, #fff) !important;
        font-weight: 600;
        text-decoration: underline;
        text-underline-offset: 0.2em;
        text-decoration-thickness: 1.5px;
        line-height: 44px;
    }

        .site-footer.cch-footer-main a:hover {
            color: var(--cch-white, #fff) !important;
            text-decoration: none;
        }

        .site-footer.cch-footer-main a:focus {
            color: var(--cch-pink, #b8005e) !important;
            text-decoration: none;
        }

        .site-footer.cch-footer-main a:focus-visible {
            outline: 3px solid var(--cch-orange, #dc582a);
            outline-offset: 3px;
            border-radius: 0.25rem;
        }

    .site-footer.cch-footer-main .cch-footer-links,
    .site-footer.cch-footer-main .cch-footer-contact,
    .site-footer.cch-footer-main .cch-footer-social__list,
    .site-footer.cch-footer-main .cch-footer-legal {
        padding-left: 0;
        margin-left: 0;
    }

        .site-footer.cch-footer-main .cch-footer-links li + li,
        .site-footer.cch-footer-main .cch-footer-contact li + li {
            margin-top: 0.55rem;
        }

    .site-footer.cch-footer-main .cch-footer-contact__item {
        display: grid;
        grid-template-columns: 1.25rem minmax(0, 1fr);
        gap: 0.75rem;
        align-items: start;
        padding: 0;
        background: transparent !important;
        border: 0;
        box-shadow: none;
    }

        .site-footer.cch-footer-main .cch-footer-contact__item i {
            margin-top: 0.2rem;
            color: #ffffff !important;
            line-height: 1;
        }

    .site-footer.cch-footer-main .cch-footer-hours {
        display: flex;
        align-items: flex-start;
        gap: 0.75rem;
    }

    .site-footer.cch-footer-main .cch-footer-hours__icon {
        flex: 0 0 1.25rem;
        margin-top: 0.25rem;
        color: #005eb8;
        line-height: 1;
    }

    .site-footer.cch-footer-main .cch-footer-contact__address,
    .site-footer.cch-footer-main .cch-footer-contact a {
        word-break: break-word;
    }

    .site-footer.cch-footer-main .cch-footer-social__list {
        display: flex;
        flex-wrap: wrap;
        gap: 0.75rem;
        justify-content: flex-start;
    }

    .site-footer.cch-footer-main .cch-footer-social__item {
        margin: 0;
    }

    .site-footer.cch-footer-main .cch-footer-social__link {
        width: 44px;
        height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 999px;
        color: var(--cch-white, #fff) !important;
        font-size: 1.125rem;
        line-height: 1;
        text-decoration: none !important;
        transition: transform 160ms ease-in-out, box-shadow 160ms ease-in-out, background-color 160ms ease-in-out;
    }

    .site-footer.cch-footer-main .cch-footer-social__link--blue {
        background-color: var(--cch-blue, #005eb8);
    }

    .site-footer.cch-footer-main .cch-footer-social__link--pink {
        background-color: var(--cch-pink, #b8005e);
    }

    .site-footer.cch-footer-main .cch-footer-social__link--green {
        background-color: var(--cch-green, #007a78);
    }

    .site-footer.cch-footer-main .cch-footer-social__link--orange {
        background-color: var(--cch-orange, #dc582a);
    }

    .site-footer.cch-footer-main .cch-footer-social__link--red {
        background-color: var(--cch-red, #dc3545);
    }

    .site-footer.cch-footer-main .cch-footer-social__link:hover,
    .site-footer.cch-footer-main .cch-footer-social__link:focus {
        color: var(--cch-white, #fff) !important;
        text-decoration: none;
        transform: translateY(-2px);
        box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.25);
    }

    .site-footer.cch-footer-main .cch-footer-social__link:focus-visible {
        outline: 3px solid var(--cch-white, #fff);
        outline-offset: 4px;
    }

    .site-footer.cch-footer-main .cch-footer-bottom {
        margin-top: 2.5rem;
        padding-top: 1.25rem;
        border-top: 1px solid rgba(255, 255, 255, 0.18);
        text-align: center;
    }

    .site-footer.cch-footer-main .cch-footer-legal {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 0.5rem 1rem;
    }

        .site-footer.cch-footer-main .cch-footer-legal li {
            margin: 0;
            font-size: 0.875rem; /* 14px */
        }

        .site-footer.cch-footer-main .cch-footer-legal a {
            display: inline-flex;
            align-items: center;
            min-height: 44px;
        }

@media (max-width: 991.98px) {
    .site-footer.cch-footer-main .cch-footer-widget {
        text-align: left;
    }

    .site-footer.cch-footer-main .cch-footer-logo,
    .site-footer.cch-footer-main .cch-footer-text {
        margin-left: 0;
        margin-right: auto;
    }

    .site-footer.cch-footer-main .cch-footer-widget__title::after {
        margin-left: 0;
        margin-right: auto;
    }

    .site-footer.cch-footer-main .cch-footer-social__list {
        justify-content: flex-start;
    }

    .site-footer.cch-footer-main .cch-footer-contact__item {
        justify-items: start;
    }

    .site-footer.cch-footer-main .cch-footer-bottom {
        text-align: left;
    }

    .site-footer.cch-footer-main .cch-footer-legal {
        justify-content: flex-start;
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-footer.cch-footer-main .cch-footer-social__link {
        transition: none;
    }

        .site-footer.cch-footer-main .cch-footer-social__link:hover,
        .site-footer.cch-footer-main .cch-footer-social__link:focus {
            transform: none;
        }
}


/* =============================================================================
   Footer: dark style matching header
   ============================================================================= */

html body footer.site-footer.cch-footer-main {
    background-color: var(--cch-dark-blue, #002957) !important;
    color: var(--cch-white, #ffffff) !important;
    padding: 3rem 0 1.5rem !important;
}

    html body footer.site-footer.cch-footer-main .container {
        background: transparent !important;
    }

    html body footer.site-footer.cch-footer-main .cch-footer-text,
    html body footer.site-footer.cch-footer-main p,
    html body footer.site-footer.cch-footer-main li,
    html body footer.site-footer.cch-footer-main span,
    html body footer.site-footer.cch-footer-main i {
        color: #ffffff !important;
    }

    html body footer.site-footer.cch-footer-main .cch-footer-widget__title {
        color: #ffffff !important;
        font-weight: 800;
        margin-bottom: 1rem;
    }

    html body footer.site-footer.cch-footer-main a {
        color: #ffffff !important;
        text-decoration: underline !important;
        text-underline-offset: 0.2em;
    }

        html body footer.site-footer.cch-footer-main a:hover {
            color: #ffffff !important;
            text-decoration: none !important;
        }

        html body footer.site-footer.cch-footer-main a:focus {
            color: var(--cch-pink, #b8005e) !important;
            text-decoration: none !important;
        }

    html body footer.site-footer.cch-footer-main .cch-footer-links,
    html body footer.site-footer.cch-footer-main .cch-footer-contact,
    html body footer.site-footer.cch-footer-main .cch-footer-social__list,
    html body footer.site-footer.cch-footer-main .cch-footer-legal {
        padding-left: 0 !important;
    }

    html body footer.site-footer.cch-footer-main .cch-footer-social__list {
        display: flex;
        flex-wrap: wrap;
        gap: 0.75rem;
    }

    html body footer.site-footer.cch-footer-main .cch-footer-social__link {
        width: 44px;
        height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 999px;
        background-color: var(--cch-blue, #005eb8) !important;
        color: #ffffff !important;
        text-decoration: none !important;
    }

        html body footer.site-footer.cch-footer-main .cch-footer-social__link:hover,
        html body footer.site-footer.cch-footer-main .cch-footer-social__link:focus {
            background-color: var(--cch-pink, #b8005e) !important;
            color: #ffffff !important;
        }

    html body footer.site-footer.cch-footer-main .cch-footer-contact__item {
        display: flex;
        align-items: flex-start;
        gap: 0.75rem;
        margin-bottom: 0.75rem;
    }

        html body footer.site-footer.cch-footer-main .cch-footer-contact__item i {
            min-width: 1.25rem;
            margin-top: 0.25rem;
        }

    html body footer.site-footer.cch-footer-main .cch-footer-bottom {
        margin-top: 2rem;
        padding-top: 1rem;
        border-top: 1px solid rgba(255, 255, 255, 0.25);
    }

    html body footer.site-footer.cch-footer-main .cch-footer-legal {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem 1rem;
    }

@media (max-width: 575.98px) {
    html body footer.site-footer.cch-footer-main {
        padding-bottom: 6rem !important;
    }
}
.contact__map {
    display: block;
    max-width: 100%;
}

.contact__rich-text a {
    display: inline-block;
    max-width: 100%;
    min-height: 44px;
    padding-block: 0.625rem;
    overflow-wrap: anywhere;
    vertical-align: middle;
}

.contact__item {
    gap: 0.875rem;
}

.contact__icon {
    display: inline-flex;
    flex: 0 0 2.75rem;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    background-color: #e8f3ff;
    color: #005eb8;
    font-size: 1.125rem;
    line-height: 1;
}

.contact__item > p {
    margin-bottom: 0;
}

.contact-form-card {
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid #e1e7ee;
    border-radius: 0.75rem;
    background-color: #fff;
    box-shadow: 0 0.25rem 1rem rgba(20, 52, 79, 0.08);
}

.contact-form-card__header {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    margin-bottom: 1.5rem;
}

.contact-form-card__icon {
    display: inline-flex;
    flex: 0 0 2.75rem;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border: 1px solid #b9d9f6;
    border-radius: 50%;
    color: #006fbd;
    font-size: 1.125rem;
}

.contact-form-card__title {
    margin: 0;
    font-size: 1.125rem;
    line-height: 1.3;
}

.contact-form-card__required {
    margin: 0.125rem 0 0;
    color: #4f5b66;
    font-size: 0.875rem;
}

.contact-form-card .form-label {
    margin-bottom: 0.375rem;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.4;
}

.contact-form-card .form-control {
    min-height: 2.75rem;
    border-color: #767676;
}

.contact-form-card textarea.form-control {
    min-height: 7.5rem;
}

.contact-form-card .form-control:focus {
    border-color: #006fbd;
    box-shadow: 0 0 0 0.2rem rgba(0, 111, 189, 0.18);
}

.contact-form-card__privacy {
    color: #4f5b66;
    font-size: 0.75rem;
    line-height: 1.5;
}

.contact-form-card__submit {
    min-height: 2.75rem;
    font-weight: 700;
}

/* Keep footer text links white when keyboard focus shows the orange outline. */
html body footer.site-footer.cch-footer-main a:not(.cch-footer-social__link):focus-visible,
html body footer.site-footer.cch-footer-main a:not(.cch-footer-social__link):focus-visible span,
html body footer.site-footer.cch-footer-main a:not(.cch-footer-social__link):focus-visible i {
    color: var(--cch-white, #fff) !important;
}

html body footer.site-footer.cch-footer-main a:not(.cch-footer-social__link):focus-visible {
    outline: 3px solid var(--cch-orange, #dc582a);
    outline-offset: 3px;
    border-radius: 0.25rem;
}
