/*--------------------------------------------------------------
This is your custom stylesheet.

Add your own styles here to make theme updates easier.
To override any styles from other stylesheets, simply copy them into here and edit away.

Make sure to respect the media queries! Otherwise you may
accidentally add desktop styles to the mobile layout.
https://www.w3schools.com/css/css_rwd_mediaqueries.asp
--------------------------------------------------------------*/

@font-face {
    font-family: 'didotregular';
    src: url('../fonts/header/didot_regular.woff2') format('woff2'),
         url('../fonts/header/didot_regular.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'didotitalic';
    src: url('../fonts/header/didot_italic.woff2') format('woff2'),
    url('../fonts/header/didot_italic.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Avenir Next LT Pro';
    src: url('../fonts/body/avenir_next_lt_pro_regular.woff2') format('woff2'),
         url('../fonts/body/avenir_next_lt_pro_regular.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'aston_script_boldbold';
    src: url('../fonts/script/aston_script.woff2') format('woff2'),
         url('../fonts/script/aston_script.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

:root {
    --pink: #E7A9B5;
    --cream: #F6E5E5;
    --slate-green: #7F9D95;
    --light-green: #D1E1DA;
    --very-light-green: #F2F6F4;
    --sea-green: #89C4BB;
    --tan: #FFFDF6;
    --gold: #B5A642;
    --text: #282828;
    --header-font: 'didotitalic', serif;
    --body-font: 'Avenir Next LT Pro', sans-serif;
    --script-font: 'aston_script_boldbold', cursive;
    --notch-size: 40px;
    --box-shadow: 0 10px 20px 0 rgba(0,0,0,0.1);
    --wpfnl-form-edge-padding: 50px;
    --wpfnl-input-padding: 21px 30px;
    --bb-button-radius: 0px !important;
    --bb-block-radius: 0px !important;
    --bb-option-radius: 0px !important;
    --bb-block-radius-inner: 0px !important;
    --bb-input-radius: 0px !important;
    --bb-label-type-radius: 0px !important;
    --bb-checkbox-radius: 0px !important;
}

html {
    scroll-padding-top: 142px;
    scroll-behavior: smooth;
}

body, html {
    overflow-x: clip !important;
}

*:focus:not(:focus-visible),
body input:focus,
body button:focus,
body a:focus,
body i:focus,
body *:focus,
body input:focus-visible,
body button:focus-visible,
body a:focus-visible,
body i:focus-visible,
body *:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

body {
    font-family: var(--body-font) !important;
    -webkit-font-smoothing: antialiased;
}

h1, h3, h4.bb-title {
    font-family: var(--header-font) !important;
    -webkit-font-smoothing: antialiased;
}

h2 {
    font-family: var(--script-font) !important;
}

.elementor-cta--skin-classic,
.elementor-cta--skin-classic .elementor-cta,
.elementor-cta--skin-classic .elementor-cta__content {
    overflow: visible !important;
}

.woocommerce-table .download-file a.button,
.ld-tabs-content .ld-tab-content p a,
button#place_order,
button.e-apply-coupon,
a.checkout-button,
.single_add_to_cart_button,
a.ld-primary-background,
.add_to_cart_button,
.wpfnl-checkout button,
.wpfnl-multistep-navigation button,
a.wp-element-button,
span.elementor-cta__button,
a.elementor-cta__button,
a.elementor-button {
    position: relative;
}

.woocommerce-table .download-file a.button:before,
.ld-tabs-content .ld-tab-content p a:before,
button#place_order:before,
button.e-apply-coupon:before,
a.checkout-button:before,
.single_add_to_cart_button:before,
a.ld-primary-background:before,
.add_to_cart_button:before,
.wpfnl-checkout button:before,
.wpfnl-multistep-navigation button:before,
a.wp-element-button:before,
a.elementor-button:not(.no-border):before,
span.elementor-cta__button:before,
a.elementor-cta__button:before {
    content: '';
    width: calc(100% - 8px);
    height: calc(100% - 8px);
    border: 2px solid rgba(255,255,255,0.5);
    position: absolute;
    top: 4px;
    left: 4px;
}

.elementor-widget-button.plain-btn a.elementor-button:hover {
    box-shadow: unset !important;
}

.elementor-widget-button.plain-btn a.elementor-button:before {
    display: none !important;
}

body.page-id-1703 h1.entry-title,
body.page-id-9 h1.entry-title,
.privacy-policy h1.entry-title {
    text-align: center !important;
}

#policy h2 {
    font-family: var(--header-font) !important;
}

#policy .accordions {
    border-radius: 0 !important;
    border: none !important;
    background: var(--very-light-green);
    padding: 30px;
}

#policy .accordion {
    border-color: var(--light-green) !important;
}

/* Pillar Heading Styles */

.pillar-cta-blob,
.pillar-heading {
    padding: 0 10px !important;
}

.pillar-cta-blob .elementor-cta,
.pillar-heading .elementor-heading-title {
    background: var(--tan);
    border-radius: 50%;
    aspect-ratio: 1 / 1;
    font-family: var(--body-font) !important;
    padding: 30px;
    margin: 0 auto;
    max-width: 270px;
    display: flex;
    flex: 0 0 270px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: all 150ms ease;
}

.pillar-heading h2.elementor-heading-title {
    font-family: var(--script-font) !important;
}

.pillar-cta-blob .elementor-cta * {
    font-family: var(--body-font) !important;
    font-style: normal !important;
    font-weight: 600;
}

.pillar-cta-blob .elementor-cta:hover,
.pillar-heading .elementor-heading-title:hover {
    color: white !important;
    background: var(--sea-green);
    transition: all 150ms ease;
}

.pillar-cta-blob .elementor-cta:hover .elementor-content-item {
    color: white !important;
}

@media(max-width: 800px) {
    .pillar-heading .elementor-heading-title {
        max-width: 270px;
        flex: 0 0 270px;
    }

    .pillar-cta-blob .elementor-cta {
        padding: 30px 20px;
    }
}

@media(max-width: 690px) {
    .pillar-heading .elementor-heading-title {
        padding: 45px 0;

    }

    .pillar-cta-blob .elementor-cta,
    .pillar-heading .elementor-heading-title {
        max-width: 250px;
        flex: 0 0 250px;
    }

    .hero-bg:before {
        background-image: linear-gradient(180deg, #28282800 0%, #28282880 100%) !important;
    }

    .pillar-cta-blob:nth-child(odd),
    .pillar-heading:nth-child(odd) {
        padding-left: 0 !important;
    }

    .pillar-cta-blob:nth-child(even),
    .pillar-heading:nth-child(even) {
        padding-right: 0 !important;
    }

    .pillar-cta-blob:nth-child(odd):last-child,
    .pillar-heading:nth-child(odd):last-child {
        padding: 0 !important;
    }
}

@media(max-width: 480px) {
    .pillar-heading .elementor-heading-title {
        /*max-width: 160px;*/
        /*padding: 50px 0;*/
    }
}

/* Notched Section and Image with Gold Border Styles */

.notched-section {
    position: relative !important;

    -webkit-mask:
            radial-gradient(circle var(--notch-size) at 0 0, transparent calc(var(--notch-size) - 0.5px), white calc(var(--notch-size) + 0.5px)) top left,
            radial-gradient(circle var(--notch-size) at 100% 0, transparent calc(var(--notch-size) - 0.5px), white calc(var(--notch-size) + 0.5px)) top right,
            radial-gradient(circle var(--notch-size) at 0 100%, transparent calc(var(--notch-size) - 0.5px), white calc(var(--notch-size) + 0.5px)) bottom left,
            radial-gradient(circle var(--notch-size) at 100% 100%, transparent calc(var(--notch-size) - 0.5px), white calc(var(--notch-size) + 0.5px)) bottom right;
    -webkit-mask-size: 51% 51%;
    -webkit-mask-repeat: no-repeat;
    mask:
            radial-gradient(circle var(--notch-size) at 0 0, transparent calc(var(--notch-size) - 0.5px), white calc(var(--notch-size) + 0.5px)) top left,
            radial-gradient(circle var(--notch-size) at 100% 0, transparent calc(var(--notch-size) - 0.5px), white calc(var(--notch-size) + 0.5px)) top right,
            radial-gradient(circle var(--notch-size) at 0 100%, transparent calc(var(--notch-size) - 0.5px), white calc(var(--notch-size) + 0.5px)) bottom left,
            radial-gradient(circle var(--notch-size) at 100% 100%, transparent calc(var(--notch-size) - 0.5px), white calc(var(--notch-size) + 0.5px)) bottom right;
    mask-size: 51% 51%;
    mask-repeat: no-repeat;
}

.notched-gold-border {
    position: absolute;
    top: 40px;
    left: 40px;
    right: 40px;
    bottom: 40px;
    width: calc(100% - 80px);
    height: calc(100% - 50px);
    border: 1px solid var(--gold);
    pointer-events: none;
    z-index: 200;

}

.notched-border-auto {
    display: inline-block;
    position: relative;
    width: fit-content !important;
    max-width: 100%;
}

.woocommerce ul.products li.product picture,
.woocommerce ul.products li.product img:not(picture img),
.woocommerce ul.products li.product .woocommerce-LoopProduct-link picture,
.woocommerce ul.products li.product .woocommerce-LoopProduct-link img,
.notched-border-auto picture,
.notched-border-auto img:not(picture img) {
    display: block;
    position: relative;
    -webkit-mask:
            radial-gradient(circle var(--notch-size) at 0 0, transparent calc(var(--notch-size) - 0.5px), white calc(var(--notch-size) + 0.5px)) top left,
            radial-gradient(circle var(--notch-size) at 100% 0, transparent calc(var(--notch-size) - 0.5px), white calc(var(--notch-size) + 0.5px)) top right,
            radial-gradient(circle var(--notch-size) at 0 100%, transparent calc(var(--notch-size) - 0.5px), white calc(var(--notch-size) + 0.5px)) bottom left,
            radial-gradient(circle var(--notch-size) at 100% 100%, transparent calc(var(--notch-size) - 0.5px), white calc(var(--notch-size) + 0.5px)) bottom right;
    -webkit-mask-size: 51% 51%;
    -webkit-mask-repeat: no-repeat;
    mask:
            radial-gradient(circle var(--notch-size) at 0 0, transparent calc(var(--notch-size) - 0.5px), white calc(var(--notch-size) + 0.5px)) top left,
            radial-gradient(circle var(--notch-size) at 100% 0, transparent calc(var(--notch-size) - 0.5px), white calc(var(--notch-size) + 0.5px)) top right,
            radial-gradient(circle var(--notch-size) at 0 100%, transparent calc(var(--notch-size) - 0.5px), white calc(var(--notch-size) + 0.5px)) bottom left,
            radial-gradient(circle var(--notch-size) at 100% 100%, transparent calc(var(--notch-size) - 0.5px), white calc(var(--notch-size) + 0.5px)) bottom right;
    mask-size: 51% 51%;
    mask-repeat: no-repeat;

    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    will-change: transform;
}

.notched-border-auto a {
    height: 100% !important;
}

.notched-border-auto img {
    display: block;
    max-width: 100%;
    /*height: 100%;*/
    /*object-fit: cover;*/
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
}

.elementor-widget-image {
    height: 100%;
}

.notched-border-auto::before {
    content: '';
    position: absolute;
    top: 10px;
    left: 10px;
    right: 10px;
    bottom: 10px;
    border: 1px solid var(--gold);
    pointer-events: none;
    z-index: 10;
}

@media(max-width:1000px) {
    :root {
        --notch-size: 25px;
    }
}

@media(max-width: 800px) {
    .bb-mobile-header {
        height:70px !important;
    }

    .sticky-header .site-content,
    body.buddypress.sticky-header .site-content,
    .single-sfwd-quiz.bb-buddypanel.sticky-header .site-content,
    .single-sfwd-lessons.bb-buddypanel.sticky-header .site-content,
    .single-sfwd-topic.bb-buddypanel.sticky-header .site-content,
    .bb-buddypanel.sticky-header .site-content {
        padding-top: 70px !important;
    }
}

/* Event Styles - Single Day View */

.single-tribe_events .bs-event-heading .tribe-event-schedule-short .bs-schedule-short-m {
    color: var(--sea-green);
}

.single-tribe_events .bs-event-heading .tribe-event-schedule-short .bs-schedule-short-d {
    color: var(--sea-green);
    font-family: var(--header-font);
}

.tribe-events-single-event-title {
    color: var(--text);
}

.single-tribe_events .bs-event-heading .tribe-event-schedule-long h2 {
    font-family: var(--body-font) !important;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: var(--gold);
}

.single-tribe_events h2.tribe-events-single-section-title:before {
    display: none;
}

.single-tribe_events h2.tribe-events-single-section-title {
    font-family: var(--header-font) !important;
    font-size: 28px;
    text-transform: none;
}

/* Event Styles - List View */

.tribe-events-view--list > .tribe-events-l-container {
    display: flex !important;
    flex-direction: column !important
}

.tribe-events-view--list .tribe-events-c-subscribe-dropdown__container {
    order: -1 !important;
}

.tribe-events-c-subscribe-dropdown {
    margin-top: 0 !important;
}

.tribe-events-c-subscribe-dropdown__button {
    background: var(--pink) !important;
    border: none !important;
    color: white !important;
    height: 57px !important;
    padding-top: 18px !important;
    border-radius: 0 !important;
}

.tribe-events-c-subscribe-dropdown__button:hover {
    background: var(--sea-green) !important;
}

.tribe-events-calendar-list__event-row h3 {
    letter-spacing: normal !important;
    text-transform: none !important;
    font-weight: 500 !important;
    color: var(--slate-green) !important;
    font-size: 24px !important;
}

.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-description {
    margin-top: 10px !important;
}

.tribe-events-calendar-list__event-description p:last-child {
    margin-bottom: 0 !important;
}

.tribe-events-calendar-list__event-row address span,
.tribe-events-calendar-list__event-row .tribe-events-calendar-list__event-description p,
.tribe-events .tribe-events-calendar-list h2 time,
.tribe-events-calendar-list__event-date-tag-weekday {
    color: var(--text) !important;
}

.tribe-events-calendar-list__event-row h3 a:hover,
.tribe-events .tribe-events-c-messages__message-list-item-link,
.tribe-events .tribe-events-calendar-list time {
    color: var(--sea-green) !important;
}

.tribe-events .tribe-events-calendar-list__event-date-tag-weekday {
    font-weight: 500 !important;
    text-transform: uppercase !important;
    font-size: 14px !important;
    letter-spacing: 1.6px;
}

.tribe-events-calendar-list__event-date-tag-daynum {
    font-size: 36px !important;
    color: var(--sea-green) !important;
    font-weight: 600 !important;
    font-family: var(--header-font) !important;
}

.tribe-events-calendar-list__event-datetime,
.tribe-events-calendar-list__event-datetime span {
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 1.6px !important;
    color: var(--gold);
}

@media(max-width: 1057px) {
    /*.tribe-events-calendar-list__event-wrapper .tribe-events-calendar-list__event-featured-image-wrapper .tribe-events-calendar-list__event-featured-image {*/
    /*    height: unset !important;*/
    /*}*/

    .tribe-events-calendar-list__event-featured-image img {
        height: inherit !important;
        object-fit: contain !important;
        object-position: left !important;
    }

    .tribe-events-calendar-list__event-row {
        padding-right: 24px !important;
    }
}

@media(max-width: 767px) {
    .tribe-events-header button svg path {
        fill: var(--sea-green) !important;
    }

    .tribe-events-header button:hover {
        box-shadow: none !important;
    }

    .tribe-events-header button:hover svg path {
        fill: white !important;
    }

    .tribe-events-calendar-list__event-row .tribe-events-calendar-list__event-details {
        padding-left: 21px !important;
    }

    .tribe-events .tribe-events-c-nav__list-item--today {
        align-items: center !important;
    }
}

/* Footer Styles */

.footer-widget-area .container,
.footer-bottom .container {
    max-width: 1400px;
}

.footer-widget-area .container {
    padding: 0 !important;
}

.footer-bottom .container {
    padding-top: 20px;
    border-top: 1px solid var(--gold);
    justify-content: center;
    gap: 20px;
}

.footer-widget-area .bb-grid {
    align-items: center;
}

.footer-widget-area .bb-grid aside {
    margin-bottom: 0;
    padding: 0;
}

.footer-widget-area .bb-grid aside a.wp-element-button {
    display: block;
}

.footer-widget-area ul.footer-socials li {
    margin-bottom: 0
}

.footer-widget-area ul.footer-socials li a {
    line-height: 15px;
    vertical-align: middle;
}

.footer-logo {
    margin-bottom: 0;
}

.footer-logo img {
    height: auto;
    max-height: unset;
    width: 120px;
}

.footer-btn-wrapper {
    display: flex;
    gap: 15px;
    align-items: center;
}

.footer-btn a {
    letter-spacing: 1.6px;
    text-transform: uppercase;
    font-size: 12px;
    font-weight: 500;
    padding: 13px 24px;
    width: 108px;
    text-align: center;
}

.footer-btn.green-btn a:hover {
    background: var(--pink) !important;
}

.footer-btn.pink-btn a:hover {
    background: var(--sea-green) !important;
}

.footer-socials a svg path {
    fill: var(--slate-green);
}

.footer-bottom-left {
    flex: unset;
    width: 50% !important;
}

.footer-bottom-right div,
.footer-bottom-left div {
    text-transform: uppercase;
    letter-spacing: 1.2px;
    font-size: 12px;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1.5em !important;
}

.footer-bottom-right div {
    text-align: left;
}

.footer-bottom-left div {
    text-align: right;
}

.footer-bottom-right.push-right {
    margin-left: 0;
    padding: 0;
    width: 50% !important;
    max-width: unset;
}

.footer-bottom-right a {
    text-decoration: underline;
}

.bb-buddypanel .bb-footer {
    padding-left: 30px !important;
    padding-right: 30px !important;
}

@media(max-width: 767px) {
    .footer-widget.area-2 {
        order: -1;
        width: 100%;
        max-width: 100%;
        flex: 0 0 100%;
        padding-bottom: 20px;
    }

    .footer-bottom-right.push-right,
    .footer-bottom-left {
        width: 100% !important
    }

    .footer-bottom-right div,
    .footer-bottom-left div {
        text-align: center;
    }

    .footer-bottom-right.push-right {
        margin: 0 !important;
    }

    .footer-bottom .container {
        gap: 10px;
    }
}

@media(max-width: 560px) {
    .footer-widget.area-1,
    .footer-widget.area-3 {
        width: 100%;
        max-width: 100%;
        flex: 0 0 100%;
    }

    .footer-btn-wrapper,
    .bb-footer .footer-socials {
        justify-content: center;
    }

    .bb-footer .footer-socials {
        padding-top: 20px;
    }
}

/* Gravity Form Styles */

.gform_body * {
    font-family: var(--body-font) !important;
}

.ginput_product_price_label,
.partial_entry_warning,
.grecaptcha-badge,
.gform_heading,
.gform-body label .gfield_requiredz {
    display: none !important;
}

.gform_wrapper form {
    margin-bottom: 0;
}

.gform-body label,
.gform-body legend {
    font-size: 14px !important;
    margin-bottom: 0 !important;
    line-height: 1.2em !important;
    color: var(--text);
    font-weight: 400 !important;
    font-family: var(--body-font) !important;
}

.gform-body input:not([type="checkbox"]),
.gform-body textarea,
.gform-body select {
    border: none !important;
    border-radius: 0 !important;
    background: white !important;
    color: var(--text) !important;
    padding: 21px 30px !important;
    font-size: 12px !important;
    line-height: 1.3em !important;
    height: 59px !important;
    text-transform: uppercase;
    letter-spacing: 1.2px !important;
    font-weight: 600 !important;
    box-shadow: unset !important;
}

.gform-body input::placeholder,
.gform-body select::placeholder {
    opacity: 0.8 !important;
    color: var(--text) !important;
}

.gform-theme--foundation .gform_fields {
    row-gap: 20px !important;
}

.gform_footer {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.gform_footer input[type=submit] {
    background: var(--sea-green) !important;
    line-height: 1em !important;
    color: white;
    padding: 21px 40px !important;
    font-size: 14px !important;
    letter-spacing: 1.6px !important;
    text-transform: uppercase !important;
    font-weight: 500 !important;
    border-radius: 0 !important;
    border: none !important;
}

.gform_footer input[type=submit]:hover {
    background: var(--pink) !important;
}

.gform_footer input[type="submit"]:focus {
    outline: transparent auto 0px !important;
    background-color: var(--pink) !important;
    color: white !important;
}

.gform_confirmation_message {
    font-size: 20px !important;
    color: white !important;
    background: var(--slate-green) !important;
    padding: 20px !important;
    text-align: center !important;
    font-weight: 500 !important;
}

.gfield--type-consent input[type=checkbox] {
    background: transparent !important;
    padding: 0 !important;
    border: 1px solid var(--slate-green) !important;
}

.gfield_checkbox input[type=checkbox]:checked+label:after {
    top: 7px !important;
}

.gform-theme--framework input[type=checkbox]:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *))::before {
    color: var(--slate-green);
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus,
select:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 30px white inset !important;
}

input:-webkit-autofill,
select:-webkit-autofill {
    -webkit-text-fill-color: var(--text) !important;
}

.gform_validation_errors,
.validation_message {
    display: none !important;
}

.gform_wrapper.gravity-theme .gfield_error label,
.gform_wrapper.gravity-theme .gfield_error legend,
.gfield_required_asterisk {
    color: salmon !important;
}

.gform_body input[aria-invalid=true],
.gform_body select[aria-invalid=true],
.gform_body textarea[aria-invalid=true] {
    border: 1px solid salmon !important;
}
