/*
 Theme Name:   SCANS DFA
 Description:  Custom theme
 Author:       Carnoustie Creative
 Author URI:   https://www.carnoustiecreative.co.uk
 Template:     canvas
 Version:      1.0.5
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  project-theme

font-family: 'Montserrat', sans-serif;
font-family: 'Inter', sans-serif;

*/

@view-transition {
    navigation: auto;
}
  
::view-transition-group(root) {
    animation-duration: 1s;
}

:root {
    --scans-midnight-blue: #2A1672;
    --scans-niagra: #2CAA95;
    --scans-monte-carlo: #86D1CC;
    --scans-lavender: #DAD7E6;
    --scans-concrete: #EFEFEF;
}

.canvas {
    --canvas-aos-distance: 30px;
    --canvas-aos-distance-negative: -30px;
}

body.canvas {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    line-height: 1.5;
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.5rem, 1.5vw, 1.7rem);
}

.canvas h1,
.canvas h2,
.canvas h3,
.canvas h4 {
    font-family: 'Montserrat', sans-serif;
}

.canvas .cde-richtext .small-text {
    font-size: 1.4rem;
}

.site-header__main .container,
.site-footer .container {
    width: min(94vw, 100%);
}

.site-logo img, .custom-logo {
    max-height: 10rem;
    max-width: min(100%, 23rem);
}

.site-header__layout {
    padding-block: 4rem;
}

.site-header__main {
    border-bottom: 0.1rem solid var(--scans-concrete);
}

ul.widget-area.header-widget-area {
    margin-bottom: 0;
}

.header-widget-area--bottom .menu > li:last-child {
    margin-left: auto;
}

.canvas button,
.canvas .button,
.canvas a.button,
.canvas li.button>a,
.canvas input[type="submit"],
.canvas input[type="reset"],
.canvas input[type="button"] {
    padding: 1.3rem 3.5rem;
}

.canvas .site-header__main .site-header__layout .menu li {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.canvas button i,
.canvas .button i,
.canvas a.button i {
    margin-left: 0.4rem;
}

.canvas .button.alt-button {
    background-color: var(--scans-monte-carlo);
    color: #000;
}

.canvas .button.alt-button:hover 
{
    background-color: var(--scans-lavender);
    color: #000;
}

.canvas-primary-menu-align-left .site-header__main .menu {
    gap: 2vw;
    flex-wrap: nowrap;
}

.site-header__layout .menu a {
    text-align: center;
    border-radius: 0.5rem;
}

.site-header__layout--left {
    grid-template-columns: minmax(13rem, 3.2fr) minmax(0, 8fr);
}

.canvas .menu .current-menu-item > a, 
.canvas .menu .current_page_item > a {
    background: transparent;
    font-weight: bold;
}


footer.site-footer {
    background-image: url(dot-pattern.svg);
    background-size: 45%;
    background-position: right top;
    background-repeat: repeat-y;
}

@media ( max-width: 600px ) {

    footer.site-footer {        
        background-size: 75%;
    }

}

.site-footer .footer-50-right .widget_nav_menu .menu {
    grid-template-columns: minmax(0, 1fr);
    justify-content: stretch;
    justify-items: end;
    text-align: right;
}

.site-footer .footer-50-right .widget_nav_menu .menu > li {
    justify-self: end;
}    

.footer-section {
    border-top: none;
}

.site-footer {
    --canvas-footer-menu-item-max: 20rem;
  }

.canvas footer .menu > li:not(.button) > a {
    background: transparent;
    color: #fff !important;
    font-weight: unset !important;
}

.canvas footer .menu > li:not(.button) > a:hover {
    text-decoration: underline;
}

.cde-image-header strong {
    color: var(--scans-niagra);
    font-size: clamp(1.8rem, 1.9vw, 2.1rem);
    line-height: 1.4;
}

.cde-image-header .inner {
    padding: 3rem 0;
}

@media ( max-width: 720px ) {

    .cde-image-header .inner {
        padding: 3rem 1rem;
    }

}

.cde-image-header.image-header_textleft .container {
    width: min(94vw, var(--canvas-container-max)) !important;
    max-width: inherit !important;
} 

.canvas .cde-image-header.has-bgimage.image-header_textleft .inner {
    align-items: flex-start;
    max-width: 40%;
}

.cde-image-header .inner h1 + p {
    position: relative;
    font-size: clamp(1.65rem, 1.6vw, 1.8rem);
}

.cde-image-header .inner h1 + p:before {
    content: "";
    width: 8rem;
    height: 0.7rem;
    display: block;
    background-color: var(--scans-niagra);
    margin: 1.5rem 0 2.5rem;
}

@media ( max-width: 600px ) {

    .canvas .cde-image-header.has-bgimage.image-header_textleft .inner {     
        max-width: 70%;
    }

    .canvas .cde-image-header {
        min-height: 40rem;
    }

}

.cde-wide-text.has-bgimage.image-header_textleft .wrapper:before {
    background: linear-gradient(90deg, #10043A 29.81%, rgba(42, 22, 114, 0) 100%);
}

.canvas .cde-image-header.has-bgimage .inner {
    position: relative;
}

.canvas button.canvas-mobile-toggle {
    padding: 1rem 2rem;
    border-color: var(--scans-lavender)
}

.canvas .canvas-mobile-toggle__label {
    font-size: 1.2rem;    
}

.canvas .canvas-mobile-toggle__icon span {
    height: 0.25rem;
}

.canvas .canvas-mobile-panel .canvas-mobile-panel__close {
    border: 0.1rem solid var(--scans-lavender);
    background: transparent;
    color: var(--scans-midnight-blue);
}

.canvas-mobile-panel__inner .menu li:not(.button) {
    border-top: 0.1rem solid var(--scans-concrete)
}

.canvas-mobile-panel__inner .menu li.button {
    display: block;
    margin: 1rem 0;
}

.canvas-mobile-panel__inner .menu li.button a {
    display: block;
}

@media ( max-width: 600px ) {

    .site-footer .menu a {
        padding: 0;
    }

    .site-footer .widget_nav_menu .menu {
        row-gap: 2rem;
    }

    .site-footer .footer-50-right .widget_nav_menu .menu > li {
        justify-self: center;
    }

}

#level-1-logos {   
    --cde-balanced-logo-gap: 10vw;
}

#level-2-logos {   
    --cde-balanced-logo-gap: 13vw;
}

.canvas .cde-grid-list.icon-boxes {
    --scans-icon-box-gap: 2.7rem;
}

.canvas .cde-grid-list.icon-boxes.has-bgcolor:not(.col-none) {
    padding-block: 5rem;
}

.canvas .cde-grid-list.icon-boxes > .container {
    width: min(91.4vw, 131.6rem);
    max-width: none;
}

.canvas .cde-grid-list.icon-boxes > .container > .inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 57.5rem);
    align-items: start;
    column-gap: clamp(5rem, 10.5vw, 15rem);
}

.canvas .cde-grid-list.icon-boxes .before {
    max-width: 58.5rem;
    padding-top: 4.4rem;
}

.canvas .cde-grid-list.icon-boxes .grid-list {
    width: 100%;
    max-width: 100%;
    gap: var(--scans-icon-box-gap) !important;
}

.canvas .cde-grid-list.icon-boxes .cde-grid-item {
    overflow: hidden;
    list-style: none;
    border-radius: 1rem;
    background-color: var(--scans-niagra);
}

.canvas .cde-grid-list.icon-boxes .cde-grid-item-inner {
    height: 100%;
}

.canvas .cde-grid-list.icon-boxes .cde-grid-item a {
    position: relative;
    display: grid;
    min-height: 13.5rem;
    height: 100%;
    grid-template-columns: 9.3rem minmax(0, 1fr) 4.2rem;
    grid-template-rows: auto auto;
    align-content: center;
    align-items: center;
    column-gap: 2.2rem;
    row-gap: 0.2rem;
    padding: 2.2rem 3rem 2.2rem 2.5rem;
    color: #fff;
    text-decoration: none;
    letter-spacing: 0;
}

.canvas .cde-grid-list.icon-boxes .grid-list > li.cde-grid-item.has-link.has-bgcolor:not(.col-none) > .cde-grid-item-inner > a {
    display: grid;
    padding: 2.2rem 3rem 2.2rem 2.5rem;
}

.canvas .cde-grid-list.icon-boxes .cde-grid-item a:hover,
.canvas .cde-grid-list.icon-boxes .cde-grid-item a:focus {
    color: #fff;
}

.canvas .cde-grid-list.icon-boxes .cde-grid-item a:focus-visible {
    outline: 0.2rem solid #fff;
    outline-offset: -0.6rem;
}

.canvas .cde-grid-list.icon-boxes .cde-grid-item a::after {
    content: "";
    grid-column: 3;
    grid-row: 1 / span 2;
    justify-self: end;
    width: 2.8rem;
    height: 2.8rem;
    border-top: 0.2rem solid currentColor;
    border-right: 0.2rem solid currentColor;
    transform: rotate(45deg);
    transition: transform 180ms ease;
    position: relative;
    left: -1rem;
}

.canvas .cde-grid-list.icon-boxes .cde-grid-item a:hover::after,
.canvas .cde-grid-list.icon-boxes .cde-grid-item a:focus-visible::after {
    transform: translateX(0.3rem) rotate(45deg);
}

.canvas .cde-grid-list.icon-boxes .cde-grid-item {
    transition-duration: 0.3s;
}

.canvas .cde-grid-list.icon-boxes .cde-grid-item:hover {
    background-color: var(--scans-midnight-blue);
}

.canvas .cde-grid-list.icon-boxes p {
    background-color: transparent !important;
}

.canvas .cde-grid-list.icon-boxes .item-icon {
    grid-column: 1;
    grid-row: 1 / span 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 9.3rem;
    height: 9.3rem;
    margin: 0;
    border-radius: 50%;
    background-color: var(--scans-monte-carlo);
    color: var(--scans-midnight-blue);
}

.canvas .cde-grid-list.icon-boxes .item-icon i {
    font-size: 4.8rem;
    line-height: 1;
}

.canvas .cde-grid-list.icon-boxes .item-icon .svg-inline--fa {
    width: 4.8rem;
    height: 4.8rem;
}

.canvas .cde-grid-list.icon-boxes .item-label {
    grid-column: 2;
    align-self: end;
    margin: 0;
    color: #fff;
    font-family: 'Montserrat', sans-serif;
    font-size: 2.3rem;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: 0;
}

.canvas .cde-grid-list.icon-boxes .item-label span {
    display: block;
}

.canvas .cde-grid-list.icon-boxes .item-content {
    grid-column: 2;
    align-self: start;
    max-width: 32rem;
    margin: 0;
    color: #fff;
    font-size: 1.55rem;
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: 0;
}

.canvas .cde-grid-list.icon-boxes .item-content > :first-child {
    margin-top: 0;
}

.canvas .cde-grid-list.icon-boxes .item-content > :last-child {
    margin-bottom: 0;
}

@media ( max-width: 980px ) {

    .canvas .cde-grid-list.icon-boxes > .container > .inner {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 3rem;
    }

    .canvas .cde-grid-list.icon-boxes .before {
        max-width: none;
        padding-top: 0;
    }

}

@media ( max-width: 720px ) {

    .canvas .cde-grid-list.icon-boxes {
        --scans-icon-box-gap: 2.4rem;
    }

    .canvas .cde-grid-list.icon-boxes.has-bgcolor:not(.col-none) {
        padding-block: 4rem;
    }

    .canvas .cde-grid-list.icon-boxes .cde-grid-item a {
        min-height: 14rem;
        grid-template-columns: 9rem minmax(0, 1fr) 2.6rem;
        column-gap: 2rem;
        row-gap: 0.4rem;
        padding: 2.4rem 2rem;
    }

    .canvas .cde-grid-list.icon-boxes .grid-list > li.cde-grid-item.has-link.has-bgcolor:not(.col-none) > .cde-grid-item-inner > a {
        padding: 2.4rem 2rem;
    }

    .canvas .cde-grid-list.icon-boxes .cde-grid-item a::after {
        width: 2.4rem;
        height: 2.4rem;
    }

    .canvas .cde-grid-list.icon-boxes .item-icon {
        width: 9rem;
        height: 9rem;
    }

    .canvas .cde-grid-list.icon-boxes .item-icon i,
    .canvas .cde-grid-list.icon-boxes .item-icon .svg-inline--fa {
        width: 4.8rem;
        height: 4.8rem;
        font-size: 4.8rem;
    }

    .canvas .cde-grid-list.icon-boxes .item-label {
        font-size: 2.4rem;
    }

    .canvas .cde-grid-list.icon-boxes .item-content {
        max-width: none;
        font-size: 1.7rem;
        line-height: 1.4;
    }

}

@media ( max-width: 460px ) {

    .canvas .cde-grid-list.icon-boxes {
        --scans-icon-box-gap: 1.8rem;
    }

    .canvas .cde-grid-list.icon-boxes .cde-grid-item a {
        grid-template-columns: 7rem minmax(0, 1fr) 2rem;
        column-gap: 1.4rem;
        padding: 1.8rem;
    }

    .canvas .cde-grid-list.icon-boxes .grid-list > li.cde-grid-item.has-link.has-bgcolor:not(.col-none) > .cde-grid-item-inner > a {
        padding: 1.8rem;
    }

    .canvas .cde-grid-list.icon-boxes .cde-grid-item a::after {
        width: 2rem;
        height: 2rem;
    }

    .canvas .cde-grid-list.icon-boxes .item-icon {
        width: 7rem;
        height: 7rem;
    }

    .canvas .cde-grid-list.icon-boxes .item-icon i,
    .canvas .cde-grid-list.icon-boxes .item-icon .svg-inline--fa {
        width: 3.8rem;
        height: 3.8rem;
        font-size: 3.8rem;
    }

    .canvas .cde-grid-list.icon-boxes .item-label {
        font-size: 2rem;
    }

    .canvas .cde-grid-list.icon-boxes .item-content {
        font-size: 1.55rem;
    }

}

.flex-elm.has-bgcolor:not(.is-fullwidth) {
    border-radius: 1rem;
}

.gform-footer.gform_footer.top_label {
    margin: 5rem 0 1rem 0;
    justify-content: center;
}

.text-header {
    background: linear-gradient(90deg, #221061 29.81%, #31C2B5 100%);
    position: relative;
}

.text-header .inner {
    padding: 9rem 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

@media ( max-width: 600px ) {

    .text-header .inner {
        padding: 3rem 0;
    }

}

.text-header .inner h1,
.text-header .inner p {
    color: #fff;
    margin-bottom: 0;
}

.text-header .inner p {
    margin-top: 3rem;
    max-width: 70rem;
}

.text-header::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-image: url(scans-header-overlay.svg);
    background-position: center right;    
    background-repeat: no-repeat;
    background-size: 20%;
}


.cde-text-left-image-right:not(.has-bgcolor) .img {
    border-radius: 1rem;
}

.cde-text-left-image-right.has-bgcolor .left,
.cde-image-left-text-right.has-bgcolor .right {
    border-radius: 1rem;
}

.cde-text-left-image-right.has-bgcolor .right {
    border-top-right-radius: 1rem;
    border-bottom-right-radius: 1rem;
}

.cde-image-left-text-right.has-bgcolor .left {
    border-top-left-radius: 1rem;
    border-bottom-left-radius: 1rem;
}

.cde-image-left-text-right.has-bgcolor .right .inner, 
.cde-text-left-image-right.has-bgcolor .left .inner {
    max-width: unset;
    padding: 7rem;
}

@media ( max-width: 600px ) {

    .cde-image-left-text-right.has-bgcolor .right .inner, 
    .cde-text-left-image-right.has-bgcolor .left .inner {     
        padding: 3rem;
    }

}

@media ( max-width: 600px ) {

    .canvas .cde-two-cols .inner {
        row-gap: 1rem;
    }

}

.inline-icon-list .inner .has-bgcolor:not(.col-none) {
    padding: 1.5rem 2rem;
    border-radius: 1rem;
}

.inline-icon-list .cde-grid-item-inner {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    gap: 1rem;
}

.canvas .grid-list.cols-0 li {
    margin: 0;
}

.grid-list.cols-0 {
    gap: 2rem;
}

.inline-icon-list .item-icon {
    background-color: rgba(255, 255, 255, 0.2);
    padding: 0.5rem;
    width: 4rem;
    height: 4rem;
    border-radius: 100%;
    display: flex;
    flex-direction: column; 
    justify-content: center;
    align-items: center;
    color: var(--scans-midnight-blue);
}

.inline-icon-list .col-midnight-blue .item-icon {
    color: var(--scans-lavender);
}

.inline-icon-list .col-concrete .item-icon {
    background-color: rgba(255, 255, 255, 0.7);
}