@layer framework, utils, zoe, connor;

@layer utils {
    
:root {
    --open-sans: 'Open Sans', sans-serif; 
    --playfair-display: 'Playfair Display', serif;
    --sm: 35px;
    --md: 85px;
    --lg: 120px;
    --xl: 170px;
    --display-1: 60px;
    --display-2: 54px;
    --fz-title-1: 50px;
    --fz-title-2: 40px;
    --fz-title-3: 24px;
    --fz-title-4: 21px;
    --fz-title-5: 18px;
    --fz-title-6: 16px;
    --fz-content-base: var(--fz-title-6);
    --bs-border-radius: 10px;
    --header-font: var(--playfair-display);
    font-size: var(--fz-content-base);
}
@media (min-width:768px){
    :root{
        --fz-title-1: 60px;
        --display-2: 64px;
        --display-1: 90px;
    }
}
@media (min-width:992px){
    :root{
        --fz-title-1: 70px;
        --display-2: 76px;
        --display-1: 110px;
    }
}
@media (min-width:1400px){
    :root {
        --display-1: 146px;
    }
}
body{
    width:100%;
    overflow-x:hidden;
    font-family:var(--open-sans), var(--bs-font-sans-serif);
    position:Relative;
    letter-spacing:0.025em;
}
body.loader-active:not(.loaded) > *:not(.loader-wrapper) {
    content-visibility: hidden;
}
main{
    overflow-x:hidden;
    position:Relative;
}
h1, .h1,
h2, .h2,
.header-font{
    font-family:var(--header-font);
}
h1, .h1{
    font-weight:700;
    font-size:var(--fz-title-1);
    line-height:calc(80 / 70);
    font-style:italic;
    letter-spacing:0;
    color:var(--bs-dark);
}
h2, .h2{
    font-size:var(--fz-title-2);
    line-height:calc(52 / 40);
    font-weight:400;
    letter-spacing:0;
    color:var(--bs-dark);
}
h2 i, h2 b{
    font-size:var(--display-2);
    font-weight:700;
    font-style:italic;
    display:block;
    line-height:.9;
}
h3, .h3{
    font-size:var(--fz-title-3);
    line-height:34px;
    font-weight:400;
    color:var(--bs-dark);
}
h4, .h4{
    font-size:var(--fz-title-4);
    line-height:34px;
    color:inherit;
    font-weight:400;
}
h5, .h5{
    font-size:var(--fz-title-5);
    line-height:calc(36 / 21);
    color:inherit;
    font-weight:400;
}
h6, .h6{
    font-size:var(--fz-title-6);
    font-weight:400;
}
.display-1{
    font-size:var(--display-1);
    line-height:calc(132 / 146);
    font-weight:700;
    font-style:italic;
    letter-spacing:0.05em;
}
.display-2{
    font-size:var(--display-2);
    line-height:calc(72 / 76);
    font-weight:700;
    font-style:italic;
    letter-spacing:0.05em;
}
.lead{
    font-size:24px;
    line-height:34px;
}
img[width][height] {
    content-visibility: auto;
}
img {
    max-width: 100%;
    height: auto;
}
.btn{
    --bs-btn-font-family: var(--open-sans);
    --bs-btn-border-radius: 0px;
    --bs-btn-font-size: 18px;
    --bs-btn-padding-x: 1.75rem;
    --bs-btn-padding-y: 1.1875rem;
    --bs-btn-border-width: 1px;
    line-height:1;
    text-transform:uppercase;
}
.btn-lg{
    --bs-btn-padding-x: 3rem;
    --bs-btn-padding-y: 1.875rem;
}
.btn-primary {
    --bs-btn-color: var(--bs-dark);
    --bs-btn-bg: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: var(--bs-primary);
    --bs-btn-hover-bg: var(--bs-dark);
    --bs-btn-hover-border-color:var(--bs-primary);
    --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
    --bs-btn-active-color: var(--bs-dark);
    --bs-btn-active-bg: var(--bs-primary);
    --bs-btn-active-border-color: var(--bs-primary);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(var(--bs-primary-rgb), 0.125);
    --bs-btn-disabled-color: var(--bs-dark);
    --bs-btn-disabled-bg: var(--bs-primary);
    --bs-btn-disabled-border-color: var(--bs-primary);
}
.btn-outline-primary {
    --bs-btn-color: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: var(--bs-dark);
    --bs-btn-hover-bg: var(--bs-primary);
    --bs-btn-hover-border-color: var(--bs-primary);
    --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
    --bs-btn-active-color: var(--bs-dark);
    --bs-btn-active-bg: var(--bs-primary);
    --bs-btn-active-border-color: var(--bs-primary);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(var(--bs-primary-rgb), 0.125);
    --bs-btn-disabled-color: var(--bs-primary);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-primary);
    --bs-gradient: none;
}
section,
.pt-sm,
.py-sm {
    padding-top: var(--sm);
}
section,
.pb-sm,
.py-sm {
    padding-bottom: var(--sm);
}
.pt-md,
.py-md {
    padding-top: var(--md);
}
.pb-md,
.py-md {
    padding-bottom: var(--md);
}
.pt-lg,
.py-lg {
    padding-top: var(--lg);
}
.pb-lg,
.py-lg {
    padding-bottom: var(--lg);
}
.mt-sm,
.my-sm {
    margin-top: var(--sm);
}
.mb-sm,
.my-sm {
    margin-bottom: var(--sm);
}    
.mt-md,
.my-md {
    margin-top: var(--md);
}
.mb-md,
.my-md {
    margin-bottom: var(--md);
}
.mt-lg,
.my-lg {
    margin-top: var(--lg);
}
.mb-lg,
.my-lg {
    margin-bottom: var(--lg);
}
@media (min-width: 576px) {
    .pt-sm-mob,
    .py-sm-mob {
        padding-top: var(--sm);
    }
    .pb-sm-mob,
    .py-sm-mob {
        padding-bottom: var(--sm);
    }
    .pt-md-mob,
    .py-md-mob {
        padding-top: var(--md);
    }
    .pb-md-mob,
    .py-md-mob {
        padding-bottom: var(--md);
    }
    .pt-lg-mob,
    .py-lg-mob {
        padding-top: var(--lg);
    }
    .pb-lg-mob,
    .py-lg-mob {
        padding-bottom: var(--lg);
    }
    .mt-sm-mob,
    .my-sm-mob {
        margin-top: var(--sm);
    }
    .mb-sm-mob,
    .my-sm-mob {
        margin-bottom: var(--sm);
    }    
    .mt-md-mob,
    .my-md-mob {
        margin-top: var(--md);
    }
    .mb-md-mob,
    .my-md-mob {
        margin-bottom: var(--md);
    }
    .mt-lg-mob,
    .my-lg-mob {
        margin-top: var(--lg);
    }
    .mb-lg-mob,
    .my-lg-mob {
        margin-bottom: var(--lg);
    }
}
@media (min-width: 768px) {
    .pt-sm-tab,
    .py-sm-tab {
        padding-top: var(--sm);
    }
    .pb-sm-tab,
    .py-sm-tab {
        padding-bottom: var(--sm);
    }
    section,
    .pt-md-tab,
    .py-md-tab {
        padding-top: var(--md);
    }
    section,
    .pb-md-tab,
    .py-md-tab {
        padding-bottom: var(--md);
    }
    .pt-lg-tab,
    .py-lg-tab {
        padding-top: var(--lg);
    }
    .pb-lg-tab,
    .py-lg-tab {
        padding-bottom: var(--lg);
    }
    .mt-sm-tab,
    .my-sm-tab {
        margin-top: var(--sm);
    }
    .mb-sm-tab,
    .my-sm-tab {
        margin-bottom: var(--sm);
    }    
    .mt-md-tab,
    .my-md-tab {
        margin-top: var(--md);
    }
    .mb-md-tab,
    .my-md-tab {
        margin-bottom: var(--md);
    }
    .mt-lg-tab,
    .my-lg-tab {
        margin-top: var(--lg);
    }
    .mb-lg-tab,
    .my-lg-tab {
        margin-bottom: var(--lg);
    }
}
@media (min-width: 992px) {
    .pt-sm-lap,
    .py-sm-lap {
        padding-top: var(--sm);
    }
    .pb-sm-lap,
    .py-sm-lap {
        padding-bottom: var(--sm);
    }
    .pt-md-lap,
    .py-md-lap {
        padding-top: var(--md);
    }
    .pb-md-lap,
    .py-md-lap {
        padding-bottom: var(--md);
    }
    .pt-lg-lap,
    .py-lg-lap {
        padding-top: var(--lg);
    }
    .pb-lg-lap,
    .py-lg-lap {
        padding-bottom: var(--lg);
    }
    .mt-sm-lap,
    .my-sm-lap {
        margin-top: var(--sm);
    }
    .mb-sm-lap,
    .my-sm-lap {
        margin-bottom: var(--sm);
    }    
    .mt-md-lap,
    .my-md-lap {
        margin-top: var(--md);
    }
    .mb-md-lap,
    .my-md-lap {
        margin-bottom: var(--md);
    }
    .mt-lg-lap,
    .my-lg-lap {
        margin-top: var(--lg);
    }
    .mb-lg-lap,
    .my-lg-lap {
        margin-bottom: var(--lg);
    }
}
@media (min-width: 1200px) {
    .pt-sm-desk,
    .py-sm-desk {
        padding-top: var(--sm);
    }
    .pb-sm-desk,
    .py-sm-desk {
        padding-bottom: var(--sm);
    }
    .pt-md-desk,
    .py-md-desk {
        padding-top: var(--md);
    }
    .pb-md-desk,
    .py-md-desk {
        padding-bottom: var(--md);
    }
    .pt-lg-desk,
    .py-lg-desk {
        padding-top: var(--lg);
    }
    .pb-lg-desk,
    .py-lg-desk {
        padding-bottom: var(--lg);
    }
    .mt-sm-desk,
    .my-sm-desk {
        margin-top: var(--sm);
    }
    .mb-sm-desk,
    .my-sm-desk {
        margin-bottom: var(--sm);
    }    
    .mt-md-desk,
    .my-md-desk {
        margin-top: var(--md);
    }
    .mb-md-desk,
    .my-md-desk {
        margin-bottom: var(--md);
    }
    .mt-lg-desk,
    .my-lg-desk {
        margin-top: var(--lg);
    }
    .mb-lg-desk,
    .my-lg-desk {
        margin-bottom: var(--lg);
    }
}
}

@layer connor {
    
    }
@layer zoe {
    .navbar{
    --bs-navbar-brand-margin-end: 0rem;
    --bs-navbar-color: #fff;
    --bs-navbar-hover-color: var(--bs-primary);
    --bs-navbar-active-color: var(--bs-primary);
    --bs-navbar-nav-link-padding-x: 1rem;
    --bs-navbar-toggler-padding-y: 0.75rem;
    & .navbar-brand{
        & svg{
            height:60px;
        }
    }
    &::after {
        content: '';
        position: absolute;
        inset: 0;
        z-index: -1;
        background-color: rgba(var(--bs-dark-rgb),1);
        transition: all 0.25s ease;
        transition-property: transform;
    }
    .navbar-nav{
        --bs-nav-link-font-size: 18px;
        align-items:center;
        & .nav-link{
            text-transform:uppercase;
        }
    }
    & .dropdown-menu{
        --bs-dropdown-bg: var(--bs-dark);
        --bs-dropdown-color: #fff;
        --bs-dropdown-border-color: var(--bs-primary);
        --bs-dropdown-link-color: #fff;
        --bs-dropdown-link-hover-color: var(--bs-dark);
        --bs-dropdown-link-hover-bg: var(--bs-primary);
        --bs-dropdown-link-active-color: var(--bs-dark);
        --bs-dropdown-link-active-bg: var(--bs-primary);
        --bs-dropdown-border-radius: 0;
    }
    & .offcanvas{
        --bs-offcanvas-bg: var(--bs-dark);
        & .btn-close{
            --bs-btn-close-bg: none;
            --bs-btn-close-color: #fff;
        }
    }
    @media (min-width:992px){
        &:not([data-is-stuck="true"]){
            &::after {
                border-color: transparent;
                transform: translateY(calc(var(--nav-height) * -1));
            }
            &:not(.clear-lg){
                background-color:var(--bs-dark);
            }
        }
    }
}
.background-image-grid{
    height:auto;
    display:grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
    position:relative;
    width:100%;
    padding-top:0;
    padding-bottom:0;
    margin-top:86px;
    & .overlay-text {
        position:relative;
        z-index:3;
        margin-top:-17%;
    }
    & .background-square{
        z-index:1;
        position:relative;
        padding:0 30px 0 40px;
    }
    & .container-md{
        position:relative;
        z-index:3;
        grid-column: 1 / span 1;
        grid-row: 1 / span 1;
    }
    & .container-lg{
        position:relative;
        z-index:3;
        grid-column: 1 / span 1;
        grid-row: 1 / span 1;
    }
    & .container-xl{
        position:relative;
        z-index:3;
        grid-column: 1 / span 1;
        grid-row: 1 / span 1;
    }
    & .hero-picture{
        grid-column: 1 / span 1;
        grid-row: 1 / span 1;
        height:auto;
        width:100%;
        position:relative;
        z-index:1;
        
        & .bg-image{
            width:100% !important;
            height:auto;
            position:relative;
        }
    }
    &.course-hero{
        & .overlay-square{
           z-index:10;
           position:relative;
           margin-bottom:-27%;
           padding:0 30px 0 40px;
        }
    }
    &.catalog-hero{
        & .container-md{
            padding-top: var(--md);
            @media (min-width:992px){
                padding-top:0;
            }
        }
    }
}
.background-video-grid{
    min-height:500px;
    height:auto;
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows: 1fr;
    overflow:hidden;
    position:relative;
    width:100%;
    background-color:var(--bs-dark);
    &.opacity-bkg::before{
        content:'';
        grid-column: 1 / span 1;
        grid-row: 1 / span 1;
        position:relative;
        z-index:2;
        display:block;
        width:100vw;
        background:rgba(0,0,0,.3);
    }
    & h1, .h1, h2, .h2{
        color:var(--bs-primary);
    }
    & p {
        color:var(--bs-secondary);
    }
    & .container-lg{
        position:relative;
        z-index:3;
        grid-column: 1 / span 1;
        grid-row: 1 / span 1;
        align-self:center;
        padding-block:var(--md);
        @media (min-width:768px){
            padding-block:0;
        }
        @media(min-width:1400px){
            padding-top:var(--sm);
        }
        @media(min-width:1700px){
            padding-top:0;
        }
    }
    & .container-xl{
        position:relative;
        z-index:3;
        grid-column: 1 / span 1;
        grid-row: 1 / span 1;
        align-self:center;
        padding-block:var(--md);
        @media (min-width:768px){
            padding-block:0;
        }
        @media(min-width:1400px){
            padding-top:var(--sm);
        }
        @media(min-width:1700px){
            padding-top:0;
        }
    }
    & .youtube-background{
        grid-column: 1 / span 1;
        grid-row: 1 / span 1;
        height:100%;
        width:100%;
        position:relative;
        z-index:1;
        background-repeat:no-repeat;
        background-size:cover;
        & video{
            width:100% !important;
            height:100% !important;
            object-fit:cover;
            object-position:center;
            position:relative;
        }
        &:has(video){
            opacity:1;
        }
        @media (min-width: 768px) {
            height:clamp(600px, 80vh, 800px);
        }
    }
    @media (min-width: 768px) {
        height:clamp(600px, 80vh, 800px);
    }
    &.home-hero{
        &.opacity-bkg::before{
            background:rgba(0,0,0,.4);
        }
        & .youtube-background{
            @media (min-width: 768px) {
                height:100vh;
            }
        }
        @media (min-width: 768px) {
            height:100vh;
        }
    }
}
.overflow-img{
    @media (min-width:768px){
        position:relative;
        z-index:5;
        margin-top:-18vh;
    }
}
.btn-circle{
    --bs-btn-font-size: 30px;
    --bs-btn-border-radius: 50%;
    height:100px;
    width:100px;
    padding-top:34px;
}
.video-lightbox-grid{
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows: 1fr;
    overflow:hidden;
    position:relative;
    width:100%;
    & .hstack{
        position:relative;
        z-index:3;
        grid-column: 1 / span 1;
        grid-row: 1 / span 1;
        align-self:center;
    }
    & img{
        grid-column: 1 / span 1;
        grid-row: 1 / span 1;
        position:relative;
        z-index:1;
        @media (min-width:992px){
            width:100% !important;
            height:100% !important;
            object-fit:cover;
        }
    }
    @media (min-width:992px){
        height:100%;
    }
}
.stat-box{
    background-color:var(--bs-light);
    padding: var(--sm) .5rem calc(var(--sm) + 1.5rem);
    height:100%;
    & p{
        font-family:var(--header-font);
        color:var(--bs-dark);
        margin-bottom:0;
        &.stat-value{
            font-size:48px;
            font-weight:700;
            line-height:52px;
        }
    }
}
.fa-ul{
    --fa-li-margin:29px;
    & li{
        font-size:18px;
        line-height:30px;
        padding-left:5px;
        &:not(:last-child){
            margin-bottom:8px;
        }
        & .svg-inline--fa{
            color:var(--bs-primary);
            vertical-align:unset;
        }
    }
}
.top-list-item{
    & h3{
        color:var(--bs-dark);
    }
    & li{
        font-size:18px;
        line-height:30px;
        padding-block:5px;
    }
    & ul:not(.border-list){
        padding-left:20px;
    }
    & .border-list li{
        padding-block:10px;
        &:not(:last-child){
            border-bottom:1px solid var(--bs-primary);
        }
    }
}
.content{
    & p, li{
        font-size:var(--fz-title-4);
        line-height:30px;
        & a{
            color:inherit;
            font-weight:bold;
            text-decoration:none;
            &:hover{
                text-decoration:underline;
            }
            &:focus{
                text-decoration:underline;
            }
        }
    }
    & li:not(:last-child){
        margin-bottom:8px;
    }
    & p strong{
        color:var(--bs-dark);
        font-weight:400;
        text-transform:uppercase;
    }
    & blockquote{
        color:var(--bs-dark);
        font-style:italic;
        margin:3rem 0 3rem 3rem;
    }
    &.curriculum{
        & .subtitle{
            color:var(--bs-primary);
            margin-bottom:0;
            text-transform:uppercase;
            line-height:34px;
            font-size:18px;
        }
        & h3{
            color:#fff;
        }
        & p strong{
            color:#fff;
        }
        & p + ul{
            margin-top:2.5rem;
        }
        & ul + p{
            margin-top:3rem;
        }
        & blockquote{
            color:var(--bs-body-color);
            margin: 0rem 0 1.5rem 1.5rem;
        }
        & p + blockquote{
            margin-top:1.5rem;
        }
        & .table{
            --bs-table-bg: var(--bs-dark);
            --bs-table-color: var(--bs-body-color);
            & td{
                padding:0;
                line-height:30px;
                font-size:18px;
                &:first-child{
                    color:#fff;
                    padding-right:10px;
                }
            }
        }
    }
}
.content-two{
    & p, li{
        font-size:18px;
        line-height:30px;
        & a{
            color:inherit;
            font-weight:bold;
            text-decoration:none;
            &:hover{
                text-decoration:underline;
            }
            &:focus{
                text-decoration:underline;
            }
        }
    }
    & li:not(:last-child){
        margin-bottom:8px;
    }
    & p strong{
        color:var(--bs-dark);
        font-weight:400;
        text-transform:uppercase;
    }
    & blockquote{
        color:var(--bs-dark);
        font-style:italic;
        margin:3rem 0 3rem 3rem;
    }
    &.curriculum{
        & .subtitle{
            color:var(--bs-primary);
            margin-bottom:0;
            text-transform:uppercase;
            line-height:34px;
            font-size:18px;
        }
        & h3{
            color:#fff;
        }
        & p strong{
            color:#fff;
        }
        & p + ul{
            margin-top:2.5rem;
        }
        & ul + p{
            margin-top:3rem;
        }
        & blockquote{
            color:var(--bs-body-color);
            margin: 0rem 0 1.5rem 1.5rem;
        }
        & p + blockquote{
            margin-top:1.5rem;
        }
        & .table{
            --bs-table-bg: var(--bs-dark);
            --bs-table-color: var(--bs-body-color);
            & td{
                padding:0;
                line-height:30px;
                font-size:18px;
                &:first-child{
                    color:#fff;
                    padding-right:10px;
                }
            }
        }
    }
}
.simple-grid{
    height:auto;
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows: 1fr;
    overflow:hidden;
    position:relative;
    width:100%;
    & .back{
        grid-column: 1 / span 1;
        grid-row: 1 / span 1;
        position:relative;
        z-index:2;
        display:block;
        opacity:.5;
        @media (min-width:992px){
            opacity:1;
        }
    }
    & .front{
        grid-column: 1 / span 1;
        grid-row: 1 / span 1;
        position:relative;
        z-index:3;
        display:block;
        align-self:center;
    }
}
.swiper-slide{
    height:auto;
}
.swiper-nav{
    position:relative;
}
.swiper-button-prev, .swiper-button-next{
    position:relative;
    color:var(--bs-primary);
    top:unset;
    width:auto;
    height:auto;
    display:block;
    background:transparent;
    border:none;
    font-size:48px;
    left:unset;
    right:unset;
    &:after{
        display:none;
    }
    &:hover{
        color:var(--bs-dark);
    }
    &:focus{
        color:var(--bs-dark);
    }
}
.bg-dark .swiper-button-prev, .bg-dark .swiper-button-next{
    &:hover{
        color:#fff;
    }
    &:focus{
        color:#fff;
    }
}
hr.plain-hr{
    color: rgb(148, 146, 148);
}
.course-total{
    font-size:30px;
}
.card.service-card{
    --bs-card-border-width: 0;
    --bs-card-border-radius: 0;
    --bs-card-bg: transparent;
    --bs-card-inner-border-radius: 0;
    --bs-card-spacer-x: 0;
    height:100%;
    & .level{
        color:var(--bs-primary);
        margin-bottom:0;
        text-transform:uppercase;
        font-size:18px;
    }
    & .card-title{
        color:#fff;
        text-decoration: none;
    }
    & ul{
        list-style:none;
        padding-left:0;
        & li{
            font-size:18px;
            line-height:30px;
        }
    }
    & hr{
        opacity:.5;
    }
    & .rate p{
        color:#fff;
        margin-bottom:0;
        &.length{
            font-size:18px;
            line-height:30px;
        }
        &.cost{
            font-family: var(--header-font);
            font-size:30px;
            line-height:34px;
        }
    }
    & .require p{
        margin-bottom:0;
        font-size:18px;
        line-height:30px;
    }
}
.card.who-card{
    --bs-card-border-width: 0;
    --bs-card-border-radius: 0;
    --bs-card-bg: transparent;
    --bs-card-inner-border-radius: 0;
    --bs-card-spacer-x: 0;
    & p{
        font-size:18px;
        line-height:30px;
        &.card-title{
            color:var(--bs-dark);
            text-transform:uppercase;
        }
        &:not(.card-title){
            margin-bottom:0;
        }
    }
}
.card.educate-card{
    --bs-card-border-width: 0;
    --bs-card-border-radius: 0;
    --bs-card-bg: transparent;
    --bs-card-inner-border-radius: 0;
    --bs-card-spacer-x: 0;
    & .card-title{
        color:var(--bs-primary);
        text-transform:uppercase;
        font-size:18px;
    }
    & ul{
        list-style:none;
        padding-left:0;
        & li{
            font-size:18px;
            line-height:30px;
        }
    }
}
.square-grid{
    height:auto;
    display:grid;
    grid-template-columns: repeat(12, 1fr);
    grid-template-rows: 60px 1fr;
    overflow:hidden;
    position:relative;
    width:100%;
    padding-top:0;
    padding-bottom:0;
    & .square-svg{
        position:relative;
        z-index:1;
        grid-column: 6 / span 7;
        grid-row: 1 / span 2;
        align-self:start;
    }
    & img{
        position:relative;
        z-index:2;
        grid-column: 1 / span 10;
        grid-row: 2 / span 1;
        width:100%;
    }
}
.step-tpl{
    & .h4{
        color:var(--bs-dark);
    }
    & ul{
        margin-bottom:0;
        list-style:none;
        padding-left:0;
        & li{
            font-size:18px;
            line-height:30px;
            padding-block:5px;
        }
    }
    & p:not(.h4){
        font-size:18px;
        line-height:30px;
    }
    & .step-box{
        color:var(--bs-dark);
        font-family: var(--header-font);
        font-weight:700;
        font-style:italic;
        font-size:var(--display-2);
        overflow:visible;
        width: 100px;
        height: 133px;
        background-color:var(--bs-primary);
        margin-bottom:1.25rem;
        position:relative;
        & span{
            line-height:.9;
            position:absolute;
            right:-35px;
            bottom:15px;
        }
    }
}
.accordion{
    --bs-accordion-btn-color: var(--bs-dark);
    --bs-accordion-btn-icon: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" fill="%23080e13"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"/></svg>');
    --bs-accordion-btn-active-icon: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" fill="%23080e13"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"/></svg>');
    --bs-accordion-active-color: var(--bs-dark);
    --bs-accordion-active-bg: #fff;
    --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
    --bs-accordion-btn-padding-y: 2rem;
    --bs-accordion-btn-icon-width: 1rem;
    --bs-accordion-body-padding-y: 1.5rem;
    --bs-accordion-border-color: var(--bs-primary);
    --bs-accordion-border-radius: 0;
    --bs-accordion-inner-border-radius: 0;
    & .accordion-item{
        margin-bottom:10px;
        border-radius:var(--bs-accordion-border-radius);
        &:last-child{
            margin-bottom:0;
        }
        & .accordion-button{
            border-radius: var(--bs-accordion-inner-border-radius);
            line-height:inherit;
            font-size:21px;
            &:not(.collapsed){
                box-shadow:none;
            }
        }
        & .accordion-body{
            padding-top:0;
            & :last-child{
                margin-bottom:0;
            }
            & p, li{
                font-size:18px;
                line-height:30px;
                & a{
                    color:inherit;
                    font-weight:bold;
                    text-decoration:none;
                    &:hover{
                        text-decoration:underline;
                    }
                    &:focus{
                        text-decoration:underline;
                    }
                }
            }
        }
        &:not(:first-of-type){
            border-top:1px solid var(--bs-accordion-border-color);
        }
    }
}
.philo-quote{
    color:var(--bs-primary);
    font-family: var(--header-font);
    font-style:italic;
    font-size:24px;
    line-height:34px;
    letter-spacing:0;
    & .quote-mark{
        font-size:100px;
        font-weight:700;
        line-height:1px;
        bottom:-35px;
        display:inline-block;
        z-index:0;
        position:relative;
        @media(min-width:768px){
            font-size:146px;
            bottom:-45px;
        }
    }
    & p{
        z-index:1;
        position:relative;
    }
    @media (min-width:768px){
        font-size:30px;
        line-height:42px;
    }
}
.bg-primary .philo-quote{
    color:#fff;
}
.bg-primary .h4{
    color:#7a7a7a;
}
.google-stars{
    & svg{
        height:var(--fz-title-3);
        & path{
        fill:var(--bs-dark);
        }
    }
}
.card.google-card{
    --bs-card-border-color:var(--bs-primary);
    --bs-card-spacer-y: 30px;
    --bs-card-border-radius: 0;
    --bs-card-title-spacer-y: 0.25rem;
    & .card-title{
        color:var(--bs-dark);
        font-weight:400;
        font-size:var(--fz-title-4);
    }
    & .card-date{
        color:var(--bs-dark);
        font-weight:400;
    }
    & .hstack{
        padding-bottom:20px;
        padding-top:4px;
    }
    & svg{
        height:var(--fz-title-4);
        & path{
            fill:var(--bs-primary);
        }
    }
    & .card-body{
        padding-bottom:40px;
    }
    & .card-text{
        font-size:var(--fz-title-5);
        line-height:30px;
    }
}
.footer-cta{
    border:1px solid var(--bs-primary);
    padding-block:var(--md);
    & h2{
        color:var(--bs-primary);
    }
    & p{
        font-size:18px;
        line-height:30px;
    }
    & a.display-2{
        text-decoration:none;
        color:var(--bs-primary);
        border-bottom:2px solid var(--bs-primary);
        &:hover{
            color:#fff;
            border-color:#fff;
        }
        &:focus{
            color:#fff;
            border-color:#fff;
        }
    }
    @media (min-width:768px){
        padding-block:var(--lg);
    }
}
.lesson-type {
  font-size: 0.8em;
  font-weight: normal;
  color: #fff;
  opacity: 0.8;
}
.contact-grid{
    margin-top:86px;
    padding:var(--md) 0;
    height:auto;
    display:grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    overflow:hidden;
    position:relative;
    width:100%;
    & .content{
        position:relative;
        z-index:1;
        grid-column: 1 / span 1;
        grid-row: 1 / span 1;
        padding-top:var(--sm);
        padding-bottom:var(--sm);
        padding-left:.75rem;
        padding-right:.75rem;
        & .table{
            --bs-table-color: var(--bs-dark);
            font-family: var(--header-font);
            font-size:var(--fz-title-4);
            margin-top:2rem;
            margin-bottom:4rem;
            & a{
                color:var(--bs-dark);
                text-decoration:none;
                &:hover{
                    opacity:.5;
                }
                &:focus{
                    opacity:.5;
                }
            }
            & td{
                padding-left:0;
                padding-right:0;
                & b{
                    font-weight:400;
                    width:55px;
                    display:inline-block;
                }
            }
        }
        & .social-media{
            margin-bottom:0;
            & a{
                color:var(--bs-dark);
                font-size:var(--fz-title-4);
                &:hover{
                    opacity:.5;
                }
                &:focus{
                    opacity:.5;
                }
            }
            & .list-inline-item:not(:last-child) {
                margin-right: 1.5rem;
            }
        }
        & p:not(.lead){
            font-size:18px;
            line-height:30px;
        }
        @media(min-width:768px){
            padding-top:var(--md);
            padding-bottom:var(--md);
        }
        @media (min-width:992px){
            padding-top:var(--lg);
            grid-column: 1 / span 7;
            padding-right:0;
        }
        @media (min-width:1200px){
            grid-column: 2 / span 5;
            padding-left:0;
            padding-bottom:0;
        }
        @media (min-width:1600px){
            grid-column: 3 / span 5;
        }
    }
    & .form-box{
        position:relative;
        z-index:2;
        grid-column: 1 / span 1;
        grid-row: 2 / span 1;
        padding-block:var(--sm);
        padding-left:.75rem;
        padding-right:.75rem;
        @media(min-width:768px){
            padding-block:var(--md);
        }
        @media (min-width:992px){
            padding-block:var(--sm);
            grid-column: 8 / span 7;
            grid-row: 1 / span 1;
            min-height:calc(100vh - 86px);
        }
        @media (min-width:1200px){
            grid-column: 9 / span 5;
            padding-left:0;
            padding-right:0;
        }
        @media (min-width:1600px){
            grid-column: 10 / span 6;
        }
        & .error{
            color:#fff;
        }
        & label{
            text-transform:uppercase;
            color:var(--bs-primary);
            font-size:18px;
            margin-bottom:.25rem;
            & .error{
                font-size:.75rem;
            }
        }
        & .form-control{
            border-radius:0;
            color:#fff;
            font-size:21px;
            line-height:34px;
            background-color:rgba(251, 238, 206, 0.102);
            border-color:var(--bs-dark);
            padding: .75rem 1.75rem;
            &:focus{
                box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb),.25);
                border-color:var(--bs-primary);
            }
        }
        & .form-select{
            --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
            border-radius:0;
            color:#fff;
            font-size:21px;
            line-height:34px;
            background-color:#212526;
            border-color:var(--bs-dark);
            padding: .75rem 1.75rem;
            &:focus{
                box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb),.25);
                border-color:var(--bs-primary);
            }
        }
    }
    &::after{
        position:relative;
        z-index:1;
        grid-column: 1 / span 1;
        grid-row: 2 / span 1;
        height:100%;
        width:100%;
        content:'';
        background-color:var(--bs-dark);
        border-top:1px solid #fff;
        @media (min-width:992px){
            grid-column: 8 / span 7;
            grid-row: 1 / span 1;
        }
        @media (min-width:1600px){
            grid-column: 9 / span 9;
        }
    }
    @media (min-width: 768px) {
        padding:0;
    }
    @media (min-width: 992px) {
        column-gap: 1.5rem;
        grid-template-columns: 1fr repeat(12, calc((960px / 12) - 1.5rem)) 1fr;
    }
    @media (min-width: 1200px) {
        grid-template-columns: 1fr repeat(12, calc((1140px / 12) - 1.5rem)) 1fr;
    }
    @media (min-width: 1400px) {
        grid-template-columns: 1fr repeat(12, calc((1320px / 12) - 1.5rem)) 1fr;
    }
    @media (min-width: 1600px) {
        grid-template-columns: 1fr repeat(14, calc((1320px / 12) - 1.5rem)) 1fr;
    }
}
footer{
    padding-block:1rem;
    & p{
        margin-bottom:0;
        &.copyright{
            & a{
                color:inherit;
            }
        }
        &.address{
            color:var(--bs-dark);
            & a{
                color:inherit;
                text-decoration:none;
                &:hover{
                    opacity:.5;
                }
                &:focus{
                    opacity:.5;
                }
            }
        }
    }
    & .social-media{
        margin-bottom:0;
        & a{
            color:var(--bs-dark);
            font-size:var(--fz-title-3);
            &:hover{
                opacity:.5;
            }
            &:focus{
                opacity:.5;
            }
        }
        & .list-inline-item:not(:last-child) {
            margin-right: 1.5rem;
        }
    }
}
    }