/* Custom CSS */
/* list of classes for front End Client-use
    hero

*/

:root {
    /* Primary Brand Colours */
    --tss-black: #202122;
    --tss-blue: #1b4599;
    --tss-dark-blue: #16397e;
    --tss-medium-blue: #1b52a2;
    --tss-light-blue: #189eda;
    --tss-pale-blue: #e6f8ff;
    --tss-yellow: #fab718;
    --tss-yellow-darker: #e3a617;
    --tss-white: #ffffff;
    --tss-background-blue: #dde3f0;
}

@font-face {
    font-family: "GothamBlack";
    src: url("/sfsites/c/resource/FontGotham/Gotham-Black.otf") format("opentype");
}
@font-face {
    font-family: "GothamBold";
    src: url("/sfsites/c/resource/FontGotham/Gotham-Bold.otf") format("opentype");
}
@font-face {
    font-family: "GothamMedium";
    src: url("/sfsites/c/resource/FontGotham/GothamMedium.ttf") format("opentype");
}
@font-face {
    font-family: "GothamLight";
    src: url("/sfsites/c/resource/FontGotham/Gotham-Light.otf") format("opentype");
}

body {
    margin: 0;
    line-height: 1.2;
    font-family: "GothamMedium", sans-serif;
}
/* undoing some default builder styles */
body .community_byo-scoped-header-and-footer__header-content {
    background-color: unset;
    color: unset;
    padding: unset;
}

/* Fonts */
body .comm-section-container h1,
body .comm-section-container h1 span,
body .comm-section-container .h1 p,
body .comm-section-container .h1 span,
body .comm-section-container h1 p,
body .comm-section-container .h1 {
    font-family: GothamBlack !important ;
    font-size: 55px;
    line-height: 1.2;
}
body .comm-section-container h2,
body .comm-section-container h2 span,
body .comm-section-container .h2 p,
body .comm-section-container .h2 span,
body .comm-section-container h2 p,
body .comm-section-container .h2 {
    font-family: GothamBold !important ;
    font-size: 35px;
    line-height: 1.2;
}
body .comm-section-container h3,
body .comm-section-container h3 span,
body .comm-section-container .h3 p,
body .comm-section-container .h3 span,
body .comm-section-container h3 p,
body .comm-section-container .h3 {
    font-family: GothamBlack !important ;
    font-size: 30px;
    line-height: 1.2;
}
body .comm-section-container h4,
body .comm-section-container h4 span,
body .comm-section-container .h4 p,
body .comm-section-container .h4 span,
body .comm-section-container h4 p,
body .comm-section-container .h4 {
    font-family: GothamBold !important ;
    font-size: 26px;
    line-height: 1.2;
}
body .comm-section-container .headline {
    font-family: GothamBold !important ;
    font-size: 27px;
    line-height: 1.2;
}
body .highlight {
    font-family: GothamBlack !important ;
    font-size: 55px;
    line-height: 1 !important;
}
body .subtitle {
    font-family: GothamBold !important ;
    font-size: 22px;
}

/* Mobile font fixes */
@media all and (max-width: 767px) {
    body .comm-section-container h1,
    body .comm-section-container h1 span,
    body .comm-section-container .h1 p,
    body .comm-section-container .h1 span,
    body .comm-section-container h1 p,
    body .comm-section-container .h1 {
        font-size: 35px;
    }

    body .comm-section-container h2,
    body .comm-section-container h2 span,
    body .comm-section-container .h2 p,
    body .comm-section-container .h2 span,
    body .comm-section-container h2 p,
    body .comm-section-container .h2 {
        font-size: 30px;
    }
    body .comm-section-container h3,
    body .comm-section-container h3 span,
    body .comm-section-container .h3 p,
    body .comm-section-container .h3 span,
    body .comm-section-container h3 p,
    body .comm-section-container .h3 {
        font-size: 25px;
    }
    body .comm-section-container h4,
    body .comm-section-container h4 span,
    body .comm-section-container .h4 p,
    body .comm-section-container .h4 span,
    body .comm-section-container h4 p,
    body .comm-section-container .h4 {
        font-size: 22px;
    }
    body .comm-section-container .headline {
        font-family: GothamBold !important ;
        font-size: 22px;
        line-height: 1.2;
    }
    body .highlight {
        font-family: GothamBlack !important ;
        font-size: 35px;
    }
    body .subtitle {
        font-family: GothamBold !important ;
        font-size: 20px;
    }
}

/*override for some sections*/
.no-padding,
.no-padding dxp_data_provider-data-proxy > *,
webruntime-component-container:has(.no-padding) {
    padding: 0 !important;
}

/* Prevents the styling breaking in the builder */
body webruntimedesign-design-component [class*="hero"],
.footer {
    position: relative;
    left: unset;
    right: unset;
    margin-left: unset;
    margin-right: unset;
    width: unset;
}

@media all and (min-width: 1025px) {
    /* Syles for full width header / hero sections  */
    [class*="hero"],
    .footer {
        width: 100vw;
        position: relative;
        left: 50%;
        right: 50%;
        margin-left: -50vw;
        margin-right: -50vw;
    }
    body [class*="hero"] > .columns-content {
        max-width: 1400px;
        margin-left: auto;
        margin-right: auto;
    }
}

/* Background colours for hero sections */
body .hero-light-blue {
    background-color: var(--tss-pale-blue);
    color: var(--tss-blue);
}
body .hero-blue {
    background-color: var(--tss-blue);
    color: var(--tss-white);
}
body .hero-yellow {
    background-color: var(--tss-yellow);
    color: var(--tss-blue);
}

/* Text colours for hero sections */
body .hero-light-blue .h1,
body .hero-light-blue .h2,
body .hero-light-blue .h3,
body .hero-light-blue p {
    color: var(--tss-blue);
}

body .hero-blue .h1,
body .hero-blue .h2,
body .hero-blue .h3,
body .hero-blue p {
    color: var(--tss-white);
}
body .hero-blue a {
    color: var(--tss-yellow);
}
body .hero-blue a:hover {
    color: var(--tss-yellow-darker);
}

body .hero-yellow,
body .hero-yellow .h1,
body .hero-yellow .h2,
body .hero-yellow .h3,
body .hero-yellow p {
    color: var(--tss-blue);
}

/* Colour Overrides */
.text-yellow * {
    color: var(--tss-yellow) !important;
}
.text-light-blue * {
    color: var(--tss-light-blue) !important;
}
.text-blue * {
    color: var(--tss-blue) !important;
}
.text-white * {
    color: var(--tss-white) !important;
}
.text-black * {
    color: var(--tss-black) !important;
}
/* Preventing the above rules from breaking the builder toolbar */
body .toolbar * {
    color: black !important;
}
/* fixing the toolbar, from itself? */
body .toolbar ul {
    margin-block-start: 0;
    margin-inline-end: 0;
    margin-block-end: 0;
    padding-inline-start: 0;
    line-height: 0;
    font-size: 12px;
    margin: 0;
    vertical-align: baseline;
}
/* Moving the toolbar out of the way of the thing you are editing   */
/* Need to actualy move the block you are editing down, as messing with the toolbar makes it behave weirdly */

body .toolbar + .editor {
    margin-top: 30px;
}

/* Border Styling for manual borders with CSS */

.border {
    border: 4px solid var(--tss-blue);
    border-radius: 5px;
}

/*Square images */

.square-image .image {
    object-fit: cover !important;
}

.square-image img {
    width: 100%;
    height: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover !important;
}

/* Buttons */

/* fix for buttons in the builder */
.proxy-select-label-container * {
    font-family: "Salesforce Sans" !important;
}

dxp_base-button .slds-button {
    font-family: GothamBold;
    font-size: 20px;
    padding: 0 15px;
    border-radius: 5px;
    text-decoration: none;
}

/*styes for buttons in HTML - manually entered buttons */
body [class*="tss-button"] {
    font-family: GothamBold;
    font-size: 20px;
    color: var(--tss-white) !important;
    background-color: var(--tss-blue) !important;
    padding: 10px 18px;
    border-radius: 5px;
    text-decoration: none !important;
    margin: 10px 10px 10px 0;
}
body [class*="tss-button"]:hover {
    color: var(--tss-white) !important;
    background-color: var(--tss-dark-blue) !important;
    text-decoration: none !important;
}

body .tss-button-yellow {
    color: var(--tss-blue) !important;
    background-color: var(--tss-yellow) !important;
}
body .tss-button-yellow:hover {
    color: var(--tss-dark-blue) !important;
    background-color: var(--tss-yellow-darker) !important;
}

/* fixing cropping issue on manually entered buttons. */
body community_builder-output-rich-text:has(.tss-button) {
    overflow: visible;
}

.vertical-center p,
.vertical-center div {
    display: flex;
    align-content: center;
    flex-wrap: wrap;
}

/* Centering text */
.center {
    text-align: center;
}

/* adding the corner branding */
.branding-corner::after {
    content: " ";
    position: absolute;
    height: 100%;
    width: 100%;
    background-image: url("/sfsites/c/resource/TSSbranding/tss-branding-corner.svg");
    background-repeat: no-repeat;
    background-position: left bottom;
    background-size: calc(50vw - 500px);
    z-index: 1;
    bottom: 0;
    left: -30px;
    pointer-events: none;
}
/* adding the corner branding */
.branding-bottom::after {
    content: " ";
    position: absolute;
    height: 100%;
    width: 100%;
    background-image: url("/sfsites/c/resource/TSSbranding/tss-branding-bottom.svg?v1");
    background-repeat: no-repeat;
    background-position: bottom;
    background-size: contain;
    z-index: 1;
    bottom: 0;
    left: 0;
    pointer-events: none;
}
/* fixes for very large screen sizes */
@media all and (min-width: 1700px) and (max-width:2199px) {
    .branding-bottom::after {
        background-position-y: calc( 100% + 3vw)!important;
    }
}
@media all and (min-width: 2200px) {
    .branding-bottom::after {
        background-position-y: calc( 100% + 6vw)!important;
    }
}

.branding-bottom-small::after {
    content: " ";
    position: absolute;
    height: 100%;
    width: 100%;
    background-image: url("/sfsites/c/resource/TSSbranding/tss-branding-bottom.svg?v1");
    background-repeat: no-repeat;
    background-position: 216px calc(100% - -83px);
    background-size: contain;
    z-index: 1;
    bottom: 0;
    left: 0;
    pointer-events: none;
    overflow: hidden;
}
/* adding the people branding */
@media all and (min-width: 1025px) {
    .branding-people::after {
        content: " ";
        top: 1px !important;
        position: relative !important;
        display: block;
        left: 85%;
        height: 500px;
        width: 500px;
        background-image: url(/sfsites/c/resource/TSSbranding/tss-branding-people.svg?v1);
        background-repeat: no-repeat;
        background-position: right;
        z-index: 1;
        pointer-events: none;
        overflow: overlay;
        margin-top: -600px;
        margin-bottom: 100px;
    }
    .branding-people-LHS::after {
        content: " ";
        top: 1px !important;
        position: relative !important;
        display: block;
        left: -20%;
        height: 500px;
        width: 500px;
        background-image: url(/sfsites/c/resource/TSSbranding/tss-branding-people.svg?v1);
        background-repeat: no-repeat;
        background-position: left;
        z-index: 1;
        pointer-events: none;
        overflow: overlay;
        margin-top: -600px;
        margin-bottom: 100px;

        /*flip the image horizontally */
        -moz-transform: scaleX(-1);
        -o-transform: scaleX(-1);
        -webkit-transform: scaleX(-1);
        transform: scaleX(-1);
        filter: FlipH;
        -ms-filter: "FlipH";
    }
}

/* header bar and top menu styling */
body .hero.top-bar {
    padding: 5px 40px;
}
.cb-header-desktop-layout {
    margin: 0 40px;
}
community_builder-customizable-header .nav-bar ul {
    display: flex;
    align-content: center;
    flex-wrap: wrap;
    justify-content: flex-end !important;
}
community_builder-customizable-header .nav-bar ul li {
    height: auto;
    align-content: center;
    flex-wrap: wrap;
    align-self: center;
}
body community_builder-customizable-header .nav-bar ul li a {
    align-self: center;
    vertical-align: text-bottom;
    line-height: 1;
    height: 27px;
    margin-top: 5px;
    color: var(--tss-blue) !important;
    padding: 10px 0;
}
body community_builder-customizable-header .nav-bar ul li a:hover {
    color: var(--tss-dark-blue) !important;
    text-decoration: underline;
}
.top-bar-link {
    font-family: GothamBold;
    color: var(--tss-white);
    font-weight: 400;
    font-size: 17px;
    line-height: 17px;
    text-decoration: none;
    top: 3px;
    position: relative;
}
.top-bar-link:hover {
    text-decoration: underline;
}
.top-bar community_builder-output-rich-text {
    padding: 0;
}

/* Vertical center for top bar link */

body .top-bar dxp_layout-column .column-content {
    display: block;
    align-content: center;
}

.header {
    padding: 10px 0;
    background: white;
}
header {
    box-shadow: 0 0 12px rgba(0, 0, 0, 0.5);
}

.header-logo,
.header-logo > a,
body .header-logo > a > div.dxp-content-layout-site-logo {
    width: 350px;
}

.background-blue-hands {
    background-image: url("/sfsites/c/resource/TSSbranding/BannerBlueHands.jpg");
    background-size: cover;
    background-repeat: no-repeat;
}
@media all and (min-width: 768px) {
    .scroll-down::before {
        content: "Scroll down to see our services";
        color: var(--tss-white);
        font-family: "GothamMedium";
        font-style: italic;
        position: absolute;
        height: 100%;
        width: 100%;
        background-image: url("/sfsites/c/resource/TSSbranding/ScrollDown.svg");
        background-size: 34px;
        background-repeat: no-repeat;
        background-position: center bottom;
        z-index: 2;
        pointer-events: none;
        font-size: 16px;
        display: flex;
        align-content: flex-end;
        flex-wrap: wrap;
        justify-content: center;
        text-align: center;
        bottom: calc(100% + 27px);
        line-height: 0;
        background-position-y: calc(100% + -19px);
    }
}

/*tabb section */
dxp_layout-tab-bar .dxp-tabs-container {
    display: flex;
    align-items: center;
    justify-content: center;
}
body dxp_layout-tab-bar .dxp-tabs-container ul.dxp-tab-bar-container {
    background-color: var(--tss-background-blue);
    width: auto !important;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    border-radius: 6px;
    border: unset !important;
}

li.dxp-tab-nav-container p {
    overflow: visible;
    top: 5px;
    position: relative;
    background-color: unset !important;
}
li.dxp-tab-nav-container[aria-active="false"] p,
li.dxp-tab-nav-container[aria-selected="false"] p,
li.dxp-tab-nav-container[data-active="false"] p {
    color: var(--tss-blue);
}

c-tss-info-card a.button button {
    padding: 16px 20px 5px 20px;
    position: relative;
}
c-tss-info-card h3 {
    padding: 20px 20px 0 20px;
    min-height: 130px;
    height: auto;
}
@media all and (min-width: 768px) and (max-width: 1025px) {
    c-tss-info-card h3 {
        padding: 20px 20px 0 20px;
        min-height: unset !important;
    }
    c-tss-info-card {
        max-width: 500px;
        margin: auto;
    }
}
/* Duplidate media rules above but prefixed to run in the builder preview mode */
.site-preview-mobile-body c-tss-info-card h3 {
    padding: 20px 20px 0 20px;
    min-height: unset !important;
}
.site-preview-mobile-body c-tss-info-card {
    max-width: 500px;
    margin: auto;
}

.map-overlay-container {
    background-color: var(--tss-blue);
    border-radius: 5px;
    padding: 20px 45px;
}
.tss-background-map {
    background-image: url("/sfsites/c/resource/TSSbranding/Map-Background-large.jpg");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}

footer a.menu-link {
    color: white !important;
    font-size: 22px;
    font-family: "GothamBold";
    margin-bottom: 20px;
    display: block;
    text-decoration: none !important;
}
footer a.menu-link:hover {
    text-decoration: underline !important;
}

/* fixing 'more' button vertical in the header menu*/
body [aria-controls="menuId-more-item"] {
    top: 13px;
    position: relative;
}
/* Fixing the arrow down location */
body [aria-controls="menuId-more-item"] slds-icon-utility-switch {
    transform-origin: 7px 7px;
}
/* fixing the horizontal alignment for the dropdown menu */
body community_builder-customizable-header .nav-bar community_navigation-customizable-navigation-dropdown ul {
    justify-content: flex-start !important ;
    margin-top: 24px;
    background-color: var(--tss-background-blue);
}
body community_builder-customizable-header .nav-bar community_navigation-customizable-navigation-dropdown ul li {
    justify-content: flex-start !important ;
    padding: 3px 5px 3px 10px;
    background-color: var(--tss-background-blue) !important;
    width: 100%;
}
body community_builder-customizable-header .nav-bar community_navigation-customizable-navigation-dropdown ul li a {
    background-color: unset !important;
}
body
    community_builder-customizable-header
    .nav-bar
    community_navigation-customizable-navigation-dropdown
    ul
    li
    a:hover {
    background-color: unset !important;
    text-decoration: underline;
}
body community_builder-customizable-header .nav-bar community_navigation-customizable-navigation-dropdown ul li:hover {
    background-color: var(--tss-pale-blue) !important;
}

/* Fixing horizontal scroll on page body */
body {
    overflow-x: hidden;
}

/* fixing line-height in rich text sections */
.slds-rich-text-editor__output {
    line-height: 1.2;
}


.button-container {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-wrap: wrap;
    overflow: visible;
}
/* Responsive fixes  */

@media all and (max-width: 1024px) {
    li.dxp-tab {
        margin: 4px;
    }
    body .hero.top-bar {
        margin-bottom: 0;
    }
    header.sticky-header community_layout-section {
        padding: 0;
    }
    header.sticky-header community_layout-section .header {
        padding: 0;
    }
    .scroll-down::before {
        bottom: calc(100% + 514px);
    }

    .map-overlay-container {
        padding: 20px 18px;
    }

    /*fixing mobile logo size */
    dxp_content_layout-site-logo.header-logo a {
        height: 60px !important;
        width: 100px !important;
        max-width: unset !important;
    }
    dxp_content_layout-site-logo.header-logo a .dxp-content-layout-site-logo {
        height: 60px !important;
        width: 100px !important;
        max-height: unset !important;
        display: flex;
    }
    .header .slds-button {
        font-size: 14px !important;
    }
    community_byo-scoped-header-and-footer {
        overflow-x: hidden;
    }

    body dxp_layout-tab-bar .dxp-tabs-container ul.dxp-tab-bar-container {
        max-width: 100%;
        flex-wrap: wrap;
        background-color: unset;
    }
    .center {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }
}
/* Responsive fixes for Builder - Duplicate of the Mobile media rules above,  */
/* but prefixed with the 'site preview' class as we want them to run on desktop screen size, */
/* if the builder is in preview mode*/

.site-preview-mobile-body li.dxp-tab {
    margin: 4px;
}

body .site-preview-mobile-body .hero.top-bar {
    margin-bottom: 0;
}
.site-preview-mobile-body header.sticky-header community_layout-section {
    padding: 0;
}
.site-preview-mobile-body header.sticky-header community_layout-section .header {
    padding: 0;
}
.site-preview-mobile-body .scroll-down::before {
    bottom: calc(100% + 514px);
}

.site-preview-mobile-body .map-overlay-container {
    padding: 20px 18px;
}

/*fixing mobile logo size */
.site-preview-mobile-body dxp_content_layout-site-logo.header-logo a {
    height: 60px !important;
    width: 100px !important;
    max-width: unset !important;
}
.site-preview-mobile-body dxp_content_layout-site-logo.header-logo a .dxp-content-layout-site-logo {
    height: 60px !important;
    width: 100px !important;
    max-height: unset !important;
    display: flex;
}
.site-preview-mobile-body .header .slds-button {
    font-size: 14px !important;
}
.site-preview-mobile-body community_byo-scoped-header-and-footer {
    overflow-x: hidden;
}

.site-preview-mobile-body .center {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

body .site-preview-mobile-body dxp_layout-tab-bar .dxp-tabs-container ul.dxp-tab-bar-container {
    max-width: 100%;
    flex-wrap: wrap;
    background-color: unset;
}


/* Code for AE form inserts - to allow for responsive height of the form iframes */
.ae-wrapper {
    width: 100%;
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
}
.ae-form {
    position: absolute;
    top:0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* Start Animations  */
.dxp-tab-container {
    -webkit-animation: slide-in-right 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
    animation: slide-in-right 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

.slide-in-right {
    -webkit-animation: slide-in-right 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
    animation: slide-in-right 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

/* ----------------------------------------------
 * Generated by Animista on 2024-10-28 16:29:25
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation slide-in-right
 * ----------------------------------------
 */
@-webkit-keyframes slide-in-right {
    0% {
        -webkit-transform: translateX(1000px);
        transform: translateX(1000px);
        opacity: 0;
    }
    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
        opacity: 1;
    }
}
@keyframes slide-in-right {
    0% {
        -webkit-transform: translateX(1000px);
        transform: translateX(1000px);
        opacity: 0;
    }
    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
        opacity: 1;
    }
}