:root {
    --section-heading-bg-00: #ae1c3f;
    --section-heading-bg-01: #dc0c15;
    --section-heading-bg-02: #523078;
    --section-heading-bg-03: #bab1ff;
    --section-heading-bg-04: #749da7;
    --section-heading-bg-05: #ff7ba3;
    --section-heading-bg-06: #a9aaba;
    --section-heading-bg-07: #ffffff;

    --section-bg-00: #ffffff;
    --section-bg-01: #eeeff2;
    --section-bg-02: #c9c9d4;
    --section-bg-03: #b4b4c3;
}
/*======================================================================*/
/* Section Backgrounds
/*======================================================================*/
#flexible-content .section {
    &[data-bg-color="--section-bg-00"] {
        background-color: var(--section-bg-00) !important;
    }
    &[data-bg-color="--section-bg-01"] {
        background-color: var(--section-bg-01) !important;
    }
    &[data-bg-color="--section-bg-02"] {
        background-color: var(--section-bg-02) !important;
    }
    &[data-bg-color="--section-bg-03"] {
        background-color: var(--section-bg-03) !important;
    }
    /* Show Padding */
    &[data-pad-top="1"][data-pad-top-size="xs"] .responsive-padding {
        padding-top: clamp(1.5rem, 7vw, 2rem) !important;
    }
    &[data-pad-top="1"][data-pad-top-size="s"] .responsive-padding {
        padding-top: clamp(2.5rem, 7vw, 4rem) !important;
    }
    &[data-pad-top="1"][data-pad-top-size="m"] .responsive-padding {
        padding-top: clamp(3rem, 7vw, 5rem) !important;
    }
    &[data-pad-top="1"][data-pad-top-size="l"] .responsive-padding {
        padding-top: clamp(4rem, 8vw, 6rem) !important;
    }
    &[data-pad-top="1"][data-pad-top-size="xl"] .responsive-padding {
        padding-top: clamp(5rem, 10vw, 8rem) !important;
    }
    &[data-pad-top=""] .responsive-padding {
        padding-top: 0px !important;
    }
    &[data-pad-bottom="1"][data-pad-bottom-size="xs"] .responsive-padding {
        padding-bottom: clamp(1.5rem, 7vw, 2rem) !important;
    }
    &[data-pad-bottom="1"][data-pad-bottom-size="s"] .responsive-padding {
        padding-bottom: clamp(2.5rem, 7vw, 4rem) !important;
    }
    &[data-pad-bottom="1"][data-pad-bottom-size="m"] .responsive-padding {
        padding-bottom: clamp(3rem, 7vw, 5rem) !important;
    }
    &[data-pad-bottom="1"][data-pad-bottom-size="l"] .responsive-padding {
        padding-bottom: clamp(4rem, 8vw, 6rem) !important;
    }
    &[data-pad-bottom="1"][data-pad-bottom-size="xl"] .responsive-padding {
        padding-bottom: clamp(5rem, 10vw, 8rem) !important;
    }
    &[data-pad-bottom=""] .responsive-padding {
        padding-bottom: 0px !important;
    }
}
/*======================================================================*/
/* Section Titles
/*======================================================================*/
#flexible-content .section-title {
    position: relative;
    z-index: 1;
    margin: 0px;
    padding: 0px;
    background-color: var(--section-bg-02);

    & .section-title__row {
        position: relative;
        padding-top: 1.5rem;
        padding-bottom: 1.5rem;
        display: block;

        & .section-title__title {
            position: relative;
            width: 100%;
            margin: 0px;
            padding: 0px;
            padding-left: 80px;

            & h2,
            & h1 {
                margin: 0px;
                padding: 0px;
                font-family: var(--ff-primary-100) !important;
                font-size: var(--fs-800) !important;
                font-weight: var(--fw-medium);
                line-height: var(--lh-100);
            }

            &:before {
                content: "";
                position: absolute;
                left: 0px;
                top: -10px;
                z-index: 1;
                width: 50px;
                aspect-ratio: 1;
                background-color: #fff;
                border-radius: 100%;
                margin-right: 2rem;
                display: block;
            }
        }
    }

    /* Do Background Colours */
    &[data-bg-color="--section-heading-bg-00"] {
        background-color: var(--section-heading-bg-00);
    }
    &[data-bg-color="--section-heading-bg-01"] {
        background-color: var(--section-heading-bg-01);
    }
    &[data-bg-color="--section-heading-bg-02"] {
        background-color: var(--section-heading-bg-02);
    }
    &[data-bg-color="--section-heading-bg-03"] {
        background-color: var(--section-heading-bg-03);
    }
    &[data-bg-color="--section-heading-bg-04"] {
        background-color: var(--section-heading-bg-04);
    }
    &[data-bg-color="--section-heading-bg-05"] {
        background-color: var(--section-heading-bg-05);
    }
    &[data-bg-color="--section-heading-bg-06"] {
        background-color: var(--section-heading-bg-06);
    }
    &[data-bg-color="--section-heading-bg-07"] {
        background-color: var(--section-heading-bg-07);
    }
    /* Do Text Colours */
    &[data-text-color="dark"] .section-title__title > * {
        color: var(--clr-neutral-100) !important;
    }
    &[data-text-color="light"] .section-title__title > * {
        color: var(--clr-neutral-700) !important;
    }
    /* Do Dot Colours */
    &[data-dot-color="dark"] .section-title__title:before {
        background-color: var(--clr-neutral-100);
    }
    &[data-dot-color="white"] .section-title__title:before {
        background-color: var(--clr-neutral-700);
    }
    &[data-dot-color="red"] .section-title__title:before {
        background-color: var(--clr-primary-100);
    }
}
@media (max-width: 1200px) {
    #flexible-content .section-title {
        & .section-title__title {
            padding-left: 68px !important;
        }
        & .section-title__title:before {
            width: 41px !important;
            top: -5px !important;
        }
    }
}
@media (max-width: 1024px) {
    #flexible-content .section-title {
        & .section-title__title {
            padding-left: 53px !important;
        }
        & .section-title__title:before {
            width: 32px !important;
            top: -1.5px !important;
        }
    }
}
@media (max-width: 767px) {
    #flexible-content .section-title {
        & .section-title__title {
            padding-left: 46px !important;
        }
        & .section-title__title:before {
            width: 28px !important;
            top: -3px !important;
        }
    }
}
/*======================================================================*/
/* Buttons
/*======================================================================*/
#flexible-content .section-btn-group {
    padding-block: 2rem;
    margin-top: 2rem;

    & .section-btn-group__btn {
        padding-block: 0.8em;
        padding-inline: 1.25em;
        background-color: transparent;
        color: #2b2e34;
        border: 1px solid #2b2e34;
        border-radius: 50vw;
        width: fit-content;
        transition: all 0.3s ease;

        &:hover {
            background-color: #2b2e34;
            color: #fff;
            border: 1px solid #2b2e34;
        }
    }
}
/*======================================================================*/
/* Team Grid
/*======================================================================*/
#flexible-content .team-grid.sectors {
    & article,
    & article[data-visibility="show"] {
        display: block !important;
    }
    & article[data-visibility="hide"] {
        display: none !important;
    }
}
/*======================================================================*/
/* Contact Form
/*======================================================================*/
#flexible-content .contact-form {
    position: relative;

    & .contact-form__intro {
        max-width: 980px;
        padding-bottom: clamp(1rem, 5vw, 3rem);

        & p,
        & li,
        & blockquote {
            font-size: var(--fs-500) !important;
            line-height: var(--lh-400);
            font-weight: var(--fw-roman) !important;
            color: var(--clr-neutral-100);
        }
    }

    & .contact-form__title {
        max-width: 980px;
        padding-bottom: clamp(1rem, 5vw, 1.5rem);

        & h2 {
            margin: 0px;
            padding: 0px;
            font-family: var(--ff-primary-100) !important;
            font-size: var(--fs-600) !important;
            line-height: var(--lh-400);
            font-weight: var(--fw-medium);
        }
    }

    & .contact-form__title:has(+ .contact-form__intro) {
        padding-bottom: 0.5rem;
    }

    & .contact-form__form-wrap {
        max-width: 980px;

        & .form-btn {
            width: fit-content;
            margin: 0px;
            padding-block: 0.8rem;
            padding-inline: 1.25rem;
            font-size: var(--fs-200) !important;
            border: var(--brd-neutral-100);
            border-radius: 50vw;
            color: var(--clr-neutral-100);
            background-color: transparent;
            cursor: pointer;
            transition: all 0.2s ease;

            &:hover {
                color: #fff;
                background-color: var(--clr-neutral-100);
            }
        }
    }
}
/*======================================================================*/
/* Intro Text Block
/*======================================================================*/
#flexible-content .intro-text-block {
    position: relative;
    max-width: 100% !important;

    & .intro-text-block__row {
        position: relative;

        & .intro-text-block__text {
            max-width: 980px;
        }
    }
}
/*======================================================================*/
/* Page Links List
/*======================================================================*/
#flexible-content .standard-page-links {
    margin: 0;
    padding: 0;

    & .standard-page-links__item {
        & h2.standard-page-links__title {
            font-size: var(--fs-800) !important;
            padding: 1rem 1rem 1rem 3rem;
            background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10.6 18.4' fill='%232b2e34'><g><polygon points='1.4,18.4 9.2,10.7 9.2,10.7 10.6,9.2 10.1,8.7 9.2,7.8 9.2,7.8 1.4,0 0,1.5 7.7,9.2 0,17 '/></g></svg>") !important;
            background-repeat: no-repeat;
            background-position: left 15px center;
            background-size: 1rem;
            transition: all 0.3s ease;

            & a {
                transition: none;
            }
        }
        &:hover {
            & .standard-page-links__title {
                opacity: 1;
                color: var(--clr-primary-100) !important;
                background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10.6 18.4' fill='%23dc0c15'><g><polygon points='1.4,18.4 9.2,10.7 9.2,10.7 10.6,9.2 10.1,8.7 9.2,7.8 9.2,7.8 1.4,0 0,1.5 7.7,9.2 0,17 '/></g></svg>") !important;
            }
        }
    }
}

#flexible-content .button-page-links {
    margin: 0px;
    padding: 0px;

    & .button-page-links__grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        grid-auto-rows: 1fr;
        gap: 2rem;

        & .button-page-links__btn {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            padding-top: 0.6em;
            padding-right: 1em;
            padding-bottom: 0.6em;
            padding-left: 1em;
            background-color: var(--clr-primary-100);
            color: #ffffff;
            border: 1px solid var(--clr-primary-100);
            border-radius: 50vw;
            width: auto;
            height: auto;
            min-height: 70px;
            text-align: center;
            line-height: var(--lh-300);
            transition: all 0.3s ease;

            &:hover {
                background-color: #2b2e34;
                color: #fff;
                border: 1px solid #2b2e34;
            }
        }
    }
}
@media (max-width: 1200px) {
    #flexible-content .button-page-links {
        & .button-page-links__grid {
            grid-template-columns: repeat(3, 1fr);
            gap: 2rem;
        }
    }
}
@media (max-width: 767px) {
    #flexible-content .button-page-links {
        & .button-page-links__grid {
            grid-template-columns: repeat(2, 1fr);
            gap: 1.5rem;
        }
    }
}
@media (max-width: 600px) {
    #flexible-content .button-page-links {
        & .button-page-links__grid {
            grid-template-columns: 1fr;
            gap: 1rem;
        }
    }
}
/*======================================================================*/
/* One Col Text Block
/*======================================================================*/
#flexible-content .one-col-text {
    position: relative;
    max-width: 100% !important;

    & .one-col-text__row {
        position: relative;

        & .one-col-text__text {
            max-width: 980px;
        }
        & h1,
        & h2,
        & h3,
        & h4,
        & h5,
        & h6 {
            font-family: var(--ff-primary-100);
            font-size: var(--fs-400) !important;
            font-weight: var(--fw-medium);
            line-height: var(--lh-500);
            padding-bottom: 10px;
        }
        & p,
        & li {
            font-size: var(--fs-400) !important;
        }
        & p a {
            color: var(--clr-primary-100);
            text-decoration: underline;
        }
    }
}
/* Overrides for stacking */
#flexible-content {
    & .intro-text-block + .one-col-text {
        & .one-col-text__row {
            padding-top: 0px !important;
        }
    }
    & .intro-text-block:has(+ .one-col-text) {
        & .intro-text-block__row {
            padding-bottom: clamp(2rem, 5vw, 3rem) !important;
        }
    }
}
/*======================================================================*/
/* Two Col Text Block
/*======================================================================*/
#flexible-content .two-col-text {
    position: relative;

    & .two-col-text__grid {
        display: grid;
        grid-template-columns: 2fr 1fr;
        grid-template-rows: auto;
        gap: clamp(3rem, 5vw, 5rem);
    }
}
/* Overrides for stacking */
#flexible-content {
    & .intro-text-block + .two-col-text {
        & .two-col-text__row {
            padding-top: 0px !important;
        }
    }
    & .intro-text-block:has(+ .two-col-text) {
        & .intro-text-block__row {
            padding-bottom: clamp(2rem, 5vw, 3rem) !important;
        }
    }
}
@media (max-width: 1200px) {
    #flexible-content .two-col-text {
        position: relative;

        & .two-col-text__grid {
            grid-template-columns: 1fr;
            gap: clamp(3rem, 5vw, 5rem);
        }
    }
}
/*======================================================================*/
/* Logo Carousel
/*======================================================================*/
#flexible-content .logo-carousel {
    --gap: clamp(2rem, 5vw, 4rem);
    --speed: 80s;
    --edge-fade: 80px;
    --logo-h: auto;
    --linear-grad: linear-gradient(90deg, transparent, #000 var(--edge-fade), #000 calc(100% - var(--edge-fade)), transparent);

    & .logo-carousel__scroller {
        overflow: hidden;

        -webkit-mask: var(--linear-grad);
        mask: var(--linear-grad);

        & .logo-carousel__track {
            display: flex;
            align-items: center;
            gap: var(--gap);
            width: max-content;

            animation: logo-carousel var(--speed) linear infinite;
            will-change: transform;

            & .logo-carousel__item {
                flex: 0 0 auto;
                height: var(--logo-h);
                display: grid;
                place-items: center;

                & img,
                & svg {
                    height: 100%;
                    width: auto;
                    max-width: 150px;
                    display: block;
                    opacity: 1;
                    transition: transform 0.2s ease, filter 0.2s ease, opacity 0.2s ease;

                    &:hover {
                        filter: none;
                        opacity: 1;
                        transform: scale(1.025);
                    }
                }
            }
        }

        /* Pause cleanly (no jump) */
        &:hover .logo-carousel__track,
        &:focus-within .logo-carousel__track {
            animation-play-state: paused;
        }
    }

    /* Respect users who prefer reduced motion */
    @media (prefers-reduced-motion: reduce) {
        .logo-carousel__scroller {
            -webkit-mask: none;
            mask: none;
            overflow-x: auto;
            scroll-snap-type: x mandatory;

            .logo-carousel__track {
                animation: none;
            }
            .logo-carousel__item {
                scroll-snap-align: center;
            }
        }
    }
}
@keyframes logo-carousel {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-50%);
    }
}
/*======================================================================*/
/* Stats Counter
/*======================================================================*/
#flexible-content .stats-counters {
    position: relative;

    & .stats-counters__intro {
        font-size: var(--fs-500) !important;
        padding-bottom: 3rem;
    }

    & .stats-counters__all-stats {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: clamp(2rem, 8vw, 6rem);

        & .stats-counters__stat-wrap {
            display: flex;
            flex-direction: column;
            justify-content: flex-start;
            align-items: flex-start;

            & .stats-counters__stat {
                display: flex;
                flex-direction: row;
                gap: 0;
                line-height: 1em;
                font-size: clamp(4rem, 5vw, 5rem) !important;
                color: var(--clr-primary-100);
                margin-bottom: 1rem;

                & .stat__number {
                    width: fit-content;
                }

                & .stat__prefix,
                & .stat__suffix {
                    width: fit-content;
                }
            }
        }
    }
}
@media (max-width: 980px) {
    #flexible-content .stats-counters {
        & .stats-counters__all-stats {
            grid-template-columns: repeat(2, 1fr);
            gap: clamp(2rem, 8vw, 6rem);
        }
    }
}
@media (max-width: 767px) {
    #flexible-content .stats-counters {
        & .stats-counters__all-stats {
            grid-template-columns: repeat(2, 1fr);
            gap: clamp(2rem, 8vw, 6rem);
        }
    }
}
/*======================================================================*/
/* Testimonials Carousel
/*======================================================================*/
#flexible-content .testimonials-carousel {
    position: relative;

    & .testimonials-carousel__wrap {
        overflow: hidden;
        position: relative;

        & .testimonials-carousel__track {
            display: flex;
            width: 100%;
            will-change: transform;
            transition: transform 400ms ease;

            & .testimonials-carousel__item {
                flex: 0 0 100%;
                display: grid;
                grid-template-columns: repeat(4, 1fr);
                grid-template-rows: 2;
                gap: 0px;
                padding-left: 50px;
                background-image: url("../_imgs/quotes.svg");
                background-size: 36px;
                background-position: left 4px;
                background-repeat: no-repeat;

                & .testimonials-carousel__quote {
                    grid-column-start: 1;
                    grid-column-end: 4;
                    margin-bottom: 1rem;
                    padding-right: 3em;

                    & p {
                        font-size: var(--fs-700) !important;
                        line-height: var(--lh-500);
                        font-weight: var(--fw-roman);
                        max-width: 100%;
                    }
                }

                & .testimonials-carousel__footer {
                    grid-column-start: 1;
                    grid-column-end: 4;
                    font-weight: var(--fw-medium);

                    & p {
                        padding-bottom: 0.2rem;
                    }
                }

                & .testimonials-carousel__aside {
                    grid-column-start: 4;
                    grid-column-end: 5;
                    grid-row-start: 1;
                    grid-row-end: 3;
                    border-left: 1px solid var(--clr-neutral-100);
                    padding-left: 3em;

                    & img {
                        max-height: 250px;
                        max-width: 150px;
                    }
                }
            }
        }

        & .testimonials-carousel__dots {
            display: flex;
            gap: 8px;
            justify-content: flex-start;
            align-items: center;
            margin-top: 3rem;
            padding-left: 50px;

            & .testimonials-carousel__dot {
                width: 12px;
                height: 12px;
                border-radius: 50%;
                border: 2px solid var(--clr-neutral-100);
                background: transparent;
                cursor: pointer;
                padding: 0;
                display: inline-block;

                &.is-active {
                    background: var(--clr-neutral-100);
                    border: 2px solid var(--clr-neutral-100);
                }
            }
        }
    }
}
@media (prefers-reduced-motion: reduce) {
    .testimonials-carousel__wrap {
        transition: none !important;
    }
}
@media (max-width: 767px) {
    #flexible-content .testimonials-carousel {
        & .testimonials-carousel__wrap {
            & .testimonials-carousel__track {
                & .testimonials-carousel__item {
                    flex: 0 0 100%;
                    display: grid;
                    grid-template-columns: 1fr;
                    grid-template-rows: auto;
                    gap: 0px;
                    background-size: 28px;

                    & .testimonials-carousel__quote {
                        grid-column-start: auto;
                        grid-column-end: auto;
                        margin-bottom: 1rem;
                        padding-right: 0em;
                    }

                    & .testimonials-carousel__footer {
                        grid-column-start: auto;
                        grid-column-end: auto;
                        font-weight: var(--fw-medium);
                    }

                    & .testimonials-carousel__aside {
                        grid-column-start: auto;
                        grid-column-end: auto;
                        grid-row-start: auto;
                        grid-row-end: auto;
                        border-left: 0px;
                        padding-left: 0em;
                        padding-top: 2em;
                    }
                }
            }
        }
    }
}
/*======================================================================*/
/* Key Contacts
/*======================================================================*/
#flexible-content .key-contacts {
    position: relative;

    & .key-contacts__intro {
        padding-bottom: 3rem;
        font-size: var(--fs-500) !important;
        line-height: var(--lh-400);
    }

    & .team-grid.sectors {
        & article {
            & .inner {
                display: flex;
                flex-direction: column;
            }
        }
    }

    & .team-profile__contacts {
        border-top: 0px;
        padding-top: 0px;
        margin-top: 1em;
    }
}
/*======================================================================*/
/* Latest Vacancies
/*======================================================================*/
#flexible-content .curr-vacancies {
    & .curr-vacancies__link:hover {
        opacity: 1;
        color: var(--clr-primary-100);
    }
    & .curr-vacancies__grid article {
        background-color: #fff;
    }
}
