/*
 Theme Name:  P3 Child
 Description: Child theme for P3 Recovery
 Author:       Embark Agency
 Author URI:   https://embarkagency.com.au
 Template:     hello-elementor
 Version:      2.1.15
 Text Domain:  p3-child
*/


/* Font Imports
--------------------------------------------- */

/* Resets
--------------------------------------------- */

body,
.elementor-kit-5 {
    font-family: inter, sans-serif;
}

body .elementor[data-elementor-type="wp-page"] {
    overflow: hidden;
    overflow-y: scroll;
}

body {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 1rem;
}

.acf-map {
    width: 100%;
    height: 400px;
    border: #ccc solid 1px;
    margin: 20px 0;
}

.elementor-element p:last-child {
    margin-bottom: 0px;
}

body table tbody>tr:nth-child(odd)>td,
body table tbody>tr:nth-child(odd)>th,
body table tbody tr:hover>td,
body table tbody tr:hover>th {
    background-color: initial;
}

body table td,
body table th {
    border: 0;
    padding: 0;
    text-align: left;
}

.elementor-field-group .elementor-field-textual:focus {
    box-shadow: none;
}

canvas.mapboxgl-canvas {
    border-radius: 8px;
}

/* Fixes potential theme css conflict. */
.acf-map img {
    max-width: inherit !important;
}

a {
    cursor: pointer;
}

.sbi_photo_wrap {
    border-radius: 8px;
    overflow: hidden;
}

#sb_instagram.sbi_col_1 #sbi_images {
    grid-template-columns: repeat(1, 1fr);
    display: block !important;
	max-height: 377px;
}
#sb_instagram.sbi_col_1 > * {
	max-height: 377px;
}
.elementor #sb_instagram #sbi_images .sbi_item * {
    max-height: 377px;
}
@media all and (max-width:1024px){
	.elementor #sb_instagram #sbi_images * {
		max-height: 220px;
	}
	.elementor #sb_instagram #sbi_images .sbi_item * {
		max-height: 220px;
	}
}
@media all and (max-width:767px){
	.elementor #sb_instagram #sbi_images * {
		max-height: 330px;
	}
	.elementor #sb_instagram #sbi_images .sbi_item * {
		max-height: 330px;
	}
}
body .fa-light,
body fal {
    font-weight: 200;
}

::placeholder,
::-webkit-input-placeholder,
::-moz-placeholder,
:-ms-input-placeholder,
:-moz-placeholder,
body .elementor-field-group .elementor-field-textual::placeholder {
    opacity: 1;
}

body .elementor-column-gap-default>.elementor-column>.elementor-element-populated {
    padding: 0;
}

body button.f-button.is-close-btn {
    padding: 0;
    opacity: 1 !important;
    top: 6px !important;
    right: 6px !important;
}

body button.f-button.is-close-btn:hover {
    background: var(--p3-pink) !important;
    opacity: 0.75 !important;
}

body .popup-embed {
    border-radius: 20px;
}

/* Fix for the header height jumping issue on page load - pages that don't contain the top header bar are excluded */
@media all and (min-width:1200px) {
    header.sticky-header:not(.elementor-sticky--active):not(.no-top-header-bar) {
        min-height: 138px !important;
        margin-top: 59px !important;
    }
}



:root {
    /* Colour Variables
	--------------------------------------------- */
    --black: #000;
    --white: #FFF;
    --p3-pink: #F3735A;
    /*P3 Pink*/
    --p3-light-pink: #FC907B;
    /*Light Orange*/
    --p3-lighter-pink: #FFE4DF;
    /*Light Light Orange*/
    --p3-dark-green: #237383;
    /*P3 Dark Green*/
    --p3-darker-green: #003C4D;
    /*P3 Dark Green*/
    --p3-yellow: #FFD079;
    /*P3 Yellow*/
    --p3-light-yellow: #FEF6E6;
    /*P3 Light yellow*/
/*     --p3-light-blue: #7FCFD1; */
	--p3-light-blue: #003C4D;
	
    /*P3 Light Blue*/
/*     --p3-lighter-blue: #CDE7EB; */
	--p3-lighter-blue: #003C4D;
    /*Light blue*/
/*     --p3-lightest-blue: #F0F8F8; */
	--p3-lightest-blue: #e6e6e6;
	
    /*Lightest blue*/
    --p3-dark-blue: #003C4D;


    /* Spacing Variables
	--------------------------------------------- */
    --section-padding-y: 160px;
    --section-padding-y-md: 96px;
    --section-padding-y-xl: 192px;
    --section-padding-x: 0px;
    --header-padding-y: 40px;
    --header-padding-x: 0px;
    --footer-padding-y: 64px;
    --widgets-spacing: 32px;
}

.elementor .elementor-element {
    --widgets-spacing: 32px;
}


@media all and (max-width:1745px) {
    :root {
        --section-padding-x: 66px;
        --header-padding-x: 66px;
    }
}

@media all and (max-width:1366px) {
    :root {
        --section-padding-y: 96px;
        --section-padding-y-md: 96px;
        --section-padding-y-xl: 96px;
        --widgets-spacing: 24px;
    }

    .elementor .elementor-element {
        --widgets-spacing: 24px;
    }
}

@media all and (max-width:767px) {
    :root {
        --section-padding-y: 64px;
        --section-padding-y-md: 64px;
        --section-padding-y-xl: 64px;
        --section-padding-x: 30px;
        --header-padding-x: 30px;
        --header-padding-y: 32px;
    }
}

@media all and (max-width:400px) {}

/* Grid Gaps
--------------------------------------------- */

:root {
    --grid-gap: 93px 56px;
    --archive-gap: 72px 30px;
    --archive-cols: 3;
}

@media all and (max-width: 1366px) {
    --archive-gap: 64px 82px;
}

@media all and (max-width: 1200px) {
    :root {
        --grid-gap: 30px;
        --archive-cols: 2;
    }
}

@media all and (max-width:900px) {
    :root {
        --archive-gap: 64px 54px;
    }
}

@media all and (max-width:767px) {
    :root {
        --grid-gap: 20px;
        --archive-cols: 1;
        --archive-gap: 64px;
    }
}



/* Section Padding & Spacing
--------------------------------------------- */


.section-padding {
    padding: var(--section-padding-y) var(--section-padding-x);
}

.section-padding.top {
    padding: var(--section-padding-y) var(--section-padding-x) 0px;
}

.section-padding.bottom {
    padding: 0px var(--section-padding-x) var(--section-padding-y);
}

.section-padding-md {
    padding: var(--section-padding-y-md) var(--section-padding-x);
}

.section-padding-xl.top {
    padding: var(--section-padding-y-md) var(--section-padding-x) 0px;
}

.section-padding-xl.bottom {
    padding: 0px var(--section-padding-x) var(--section-padding-y-md);
}

.section-padding-xl {
    padding: var(--section-padding-y-xl) var(--section-padding-x);
}

.section-padding-xl.top {
    padding: var(--section-padding-y-xl) var(--section-padding-x) 0px;
}

.section-padding-xl.bottom {
    padding: 0px var(--section-padding-x) var(--section-padding-y-xl);
}

.section-padding.sides-only,
.section-padding-xl.sides-only {
    padding-top: 0;
    padding-bottom: 0;
}

.section-padding.title-bar {
    padding: var(--title-bar-top) var(--section-padding-x) var(--title-bar-bottom);
}

.elementor .elementor-widget:not(:last-child).elementor-element {
    margin-bottom: var(--widgets-spacing);
}

.elementor .elementor-widget:not(:last-child).elementor-absolute:not(.keep-spacing),
.elementor .elementor-widget:not(:last-child).elementor-widget__width-auto:not(.keep-spacing),
.elementor .elementor-widget:not(:last-child).elementor-widget__width-initial:not(.keep-spacing) {
    margin-bottom: 0;
}

.header-offset {
    margin-top: var(--header-height) !important;
    position: relative;
}

/* header {
    padding: var(--header-padding-y) var(--header-padding-x);
} */

footer {
    padding: var(--footer-padding-y) var(--section-padding-x);
}

/* Hide on
--------------------------------------------- */

@media all and (min-width: 1367px) {
    .hide-on.desktop {
        display: none !important;
    }
}

@media all and (max-width: 1367px) and (min-width: 1201px) {
    .hide-on.laptop {
        display: none !important;
    }
}

@media all and (max-width: 1200px) and (min-width: 901px) {
    .hide-on.tablet-extra {
        display: none !important;
    }
}

@media all and (max-width: 900px) and (min-width: 768px) {
    .hide-on.tablet {
        display: none !important;
    }
}

@media all and (max-width: 767px) {
    .hide-on.mobile {
        display: none !important;
    }
}

/* Section offset for transparent header
--------------------------------------------- */
:root {
    --admin-bar-height: 0px;
    --min-banner-height: 0px;
    --banner-padding: 40px;
}

.logged-in {
    --admin-bar-height: 32px;
}

@media all and (max-width: 1366px) {
    :root {
        --header-height: 128.19px;
    }
}

@media all and (max-width: 767px) {
    :root {
        --header-height: 112.19px;
        --banner-padding: 40px;
    }

    .logged-in {
        --admin-bar-height: 46px;
    }
}

.elementor-editor-active.logged-in {
    --admin-bar-height: 0px;
}

.elementor .page-banner.no-header {
    --header-height: 0px;
}

.elementor-location-header .sticky-header {
    position: absolute;
    width: 100%;
    top: var(--admin-bar-height);
}

.elementor .page-banner {
    background-color: var(--dark-grey);
    background-blend-mode: multiply;
}

.elementor .page-banner .elementor-container {
    height: 100vh;
    max-height: calc(100vh - var(--header-height));
}

.page-banner>.elementor-container>.elementor-column>.elementor-widget-wrap {
    max-height: calc(100% - 180px);
}
@media all and (max-width:1440px) and (min-width:1200px) {
	.page-banner>.elementor-container>.elementor-column>.elementor-widget-wrap {
		max-height: calc(100% - 100px);
	}
}
@media all and (max-width:1200px) {
    .page-banner>.elementor-container>.elementor-column>.elementor-widget-wrap {
        max-height: 100%;
    }
}

.elementor .page-banner.mask {
    --mask-light-blue: url(https://p3recovery.com/wp-content/uploads/2022/12/P3-Desktop-Banner-Mask_Light-Blue-Compressed.png);
    --mask-green: url(https://p3recovery.com/wp-content/uploads/2022/12/P3-Desktop-Banner-Mask_Green-Compressed.png);
    --mask-dark-blue: url(https://p3recovery.com/wp-content/uploads/2022/12/P3-Desktop-Banner-Mask_Dark-Blue-Compressed.png);
    --mask-orange: url(https://p3recovery.com/wp-content/uploads/2022/12/P3-Desktop-Banner-Mask_Orange-Compressed.png);
}

body .elementor[data-elementor-type="wp-page"],
body div[data-elementor-type="single-post"] {
    margin-top: calc(var(--header-height)*-1);
}

@media all and (max-width:767px) {

    .elementor .page-banner.mask .elementor-background-overlay {
        opacity: 0 !important;
    }
}

.banner-mask-orange .franchise-btn {
    background: var(--p3-dark-green);
    border-color: var(--p3-dark-green);
}

.banner-mask-orange .franchise-btn:hover {
    background: var(--p3-light-blue);
    border-color: var(--p3-light-blue);
}

.elementor .page-banner.mask:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100vw;
    height: 100%;
    background-image: url(https://p3recovery.com/wp-content/uploads/2022/12/BannerMask.png);
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
}

.elementor .page-banner.mask.dark:before {
    background-image: url(https://p3recovery.com/wp-content/uploads/2022/12/P3-BannerMask-Dark.png);
}

.elementor .page-banner.mask.light:before {
    background-image: url(https://p3recovery.com/wp-content/uploads/2022/12/P3-BannerMask-Light.png);
}


.postid-1280 .page-banner.mask:before,
.postid-576 .page-banner.mask:before {
	display: none;
}



.elementor .page-banner.mask.light-blue:before {
    background-image: var(--mask-light-blue);
}

.elementor .page-banner.mask.green:before {
    background-image: var(--mask-green);
}

.elementor .page-banner.mask.dark-blue:before {
    background-image: var(--mask-dark-blue);
}

.elementor .page-banner.mask.orange:before {
    background-image: var(--mask-orange);
}

.elementor .page-banner.mask .elementor-container {
    z-index: 2;
}

.mobile-video-banner video.elementor-background-video-hosted.elementor-html5-video {
    height: 100%;
}

@media all and (max-width:767px) {
    .elementor .page-banner.mask.mobile-video-banner:before {
        display: none;
    }
}




@media all and (max-width:767px) {
    .elementor .page-banner.mask {
        background-image: none !important;
    }

    .elementor .page-banner.mask,
    .banner-mask-green .elementor .page-banner.mask {
        background-color: #468896 !important;
    }

    .banner-mask-dark-blue .elementor .page-banner.mask,
    .elementor .page-banner.mask.dark {
        background-color: #1a4f5d !important;
    }

    .banner-mask-orange .elementor .page-banner.mask {
        background-color: #f68773 !important;
    }

    .banner-mask-light-blue .elementor .page-banner.mask {
        background-color: #98d8d8 !important;
    }
}

/* Typography
--------------------------------------------- */
.elementor h1,
.elementor .text-h1 {
    font-family: var(--e-global-typography-1bb5176-font-family), inter, sans-serif;
    font-size: var(--e-global-typography-1bb5176-font-size);
    font-weight: var(--e-global-typography-1bb5176-font-weight);
    line-height: var(--e-global-typography-1bb5176-line-height);
    letter-spacing: var(--e-global-typography-1bb5176-letter-spacing);
    word-spacing: var(--e-global-typography-1bb5176-word-spacing);
}

.elementor h2,
.elementor .text-h2 {
    font-family: var(--e-global-typography-da93086-font-family), inter, sans-serif;
    font-size: var(--e-global-typography-da93086-font-size);
    font-weight: var(--e-global-typography-da93086-font-weight);
    line-height: var(--e-global-typography-da93086-line-height);
    letter-spacing: var(--e-global-typography-da93086-letter-spacing);
    word-spacing: var(--e-global-typography-da93086-word-spacing);
}

.elementor h3,
.elementor .text-h3,
.elementor .text-sub-heading {
    font-family: var(--e-global-typography-b35e6f3-font-family), inter, sans-serif;
    font-size: var(--e-global-typography-b35e6f3-font-size);
    font-weight: var(--e-global-typography-b35e6f3-font-weight);
    line-height: var(--e-global-typography-b35e6f3-line-height);
    letter-spacing: var(--e-global-typography-b35e6f3-letter-spacing);
    word-spacing: var(--e-global-typography-b35e6f3-word-spacing);
}

.elementor h4,
.elementor .text-h4,
.elementor h3.post-title,
.elementor .text-service-heading {
    font-family: var(--e-global-typography-acfb5fe-font-family), inter, sans-serif;
    font-size: var(--e-global-typography-acfb5fe-font-size);
    line-height: var(--e-global-typography-acfb5fe-line-height);
    letter-spacing: var(--e-global-typography-acfb5fe-letter-spacing);
    word-spacing: var(--e-global-typography-acfb5fe-word-spacing);
    font-weight: 400;
}

.elementor .text-module-cta {
    font-family: var(--e-global-typography-21cf53a-font-family), inter, sans-serif;
    font-size: var(--e-global-typography-21cf53a-font-size);
    font-weight: var(--e-global-typography-21cf53a-font-weight);
    line-height: var(--e-global-typography-21cf53a-line-height);
    letter-spacing: var(--e-global-typography-21cf53a-letter-spacing);
    word-spacing: var(--e-global-typography-21cf53a-word-spacing);
}

.elementor .text-footer-body {
    font-family: var(--e-global-typography-350d202-font-family), inter, sans-serif;
    font-size: var(--e-global-typography-350d202-font-size);
    line-height: var(--e-global-typography-350d202-line-height);
    letter-spacing: var(--e-global-typography-350d202-letter-spacing);
    word-spacing: var(--e-global-typography-350d202-word-spacing);
}

.elementor .text-membership-heading {
    font-family: var(--e-global-typography-f53e3da-font-family), inter, sans-serif;
    font-size: var(--e-global-typography-f53e3da-font-size);
    font-weight: var(--e-global-typography-f53e3da-font-weight);
    line-height: var(--e-global-typography-f53e3da-line-height);
    letter-spacing: var(--e-global-typography-f53e3da-letter-spacing);
    word-spacing: var(--e-global-typography-f53e3da-word-spacing);
}

.elementor .text-per-month {
    font-family: var(--e-global-typography-17b2030-font-family), inter, sans-serif;
    font-size: var(--e-global-typography-17b2030-font-size);
    font-weight: var(--e-global-typography-17b2030-font-weight);
    line-height: var(--e-global-typography-17b2030-line-height);
    letter-spacing: var(--e-global-typography-17b2030-letter-spacing);
    word-spacing: var(--e-global-typography-17b2030-word-spacing);
}

.elementor .text-body {
    font-family: var(--e-global-typography-1c451a8-font-family), inter, sans-serif;
    font-size: var(--e-global-typography-1c451a8-font-size);
    line-height: var(--e-global-typography-1c451a8-line-height);
    letter-spacing: var(--e-global-typography-1c451a8-letter-spacing);
    word-spacing: var(--e-global-typography-1c451a8-word-spacing);
}

.elementor .text-body-large {
    font-family: var(--e-global-typography-8abd705-font-family), inter, sans-serif;
    font-size: var(--e-global-typography-8abd705-font-size);
    line-height: var(--e-global-typography-8abd705-line-height);
    letter-spacing: var(--e-global-typography-8abd705-letter-spacing);
    word-spacing: var(--e-global-typography-8abd705-word-spacing);
}

.elementor .text-membership-body {
    font-family: var(--e-global-typography-31f8ec2-font-family), inter, sans-serif;
    font-size: var(--e-global-typography-31f8ec2-font-size);
    font-weight: var(--e-global-typography-31f8ec2-font-weight);
    line-height: var(--e-global-typography-31f8ec2-line-height);
    letter-spacing: var(--e-global-typography-31f8ec2-letter-spacing);
    word-spacing: var(--e-global-typography-31f8ec2-word-spacing);
}

.elementor .elementor-field-subgroup .elementor-field-option label {
    font-size: 14px;
    line-height: 22px;
    font-weight: 400;
}

.elementor .text-cta-para {
    font-size: 38px;
    line-height: 1.3em;
}

@media all and (max-width: 1440px) {
    .elementor .text-cta-para {
        font-size: 32px;
    }
}

@media all and (max-width: 1440px) {
    .elementor .text-cta-para {
        font-size: 32px;
    }
}

@media all and (max-width: 1200px) {
    .elementor .text-cta-para {
        font-size: 24px;
    }
}

@media all and (max-width: 900px) {
    .elementor .text-cta-para {
        font-size: 19px;
        line-height: 1.5em;
    }
}

/* General Site Elements
--------------------------------------------- */

.elementor-form .elementor-message {
    border: none;
}

.post-body * {
    margin: 0;
}

.post-body p,
.post-body h2,
.post-body h3,
.post-body h4,
.post-body ul,
.post-body ol,
.post-body blockquote {
    margin-bottom: var(--widgets-spacing);
}

.post-body h3 {
    font-weight: 300 !important;
}

.post-body blockquote {
    position: relative;
}

.post-body blockquote {
    padding: 64px 32px;
    background-color: var(--p3-lightest-blue);
    font-style: italic;
    border-radius: 5px;
}

.post-body blockquote:before {
    content: open-quote;
    display: inline;
    font-size: 60px;
    font-weight: bold;
    position: absolute;
    top: 32px;
    left: 32px;
}

.post-body blockquote:after {
    content: close-quote;
    display: inline;
    font-size: 60px;
    font-weight: bold;
    position: absolute;
    bottom: 32px;
    right: 32px;
}

ul,
ol {
    list-style-type: none;
    padding-left: 0;
}

ul.marker li:before,
.post-body ul li:before {
    content: "+";
    padding-right: 5px;
    font-weight: 500;
}

ol {
    counter-reset: list-number;
}

ol li:before {
    counter-increment: list-number;
    content: counter(list-number) '. ';
    font-weight: 500;
}

.max-w-lg {
    max-width: 1139px;
}

.max-w-xl {
    max-width: 1197px;
}

@media all and (max-width: 1366px) {
    .max-w-lg {
        max-width: 797px;
    }

    .max-w-xl {
        max-width: 813px;
    }
}

.elementor-editor-active [data-aos] {
    opacity: 1 !important;
    transform: none !important;
}

select#order-filter {
    appearance: none;
    -webkit-appearance: none;
    border: 1px solid var(--p3-darker-green);
    color: var(--p3-darker-green);
    background: var(--p3-lightest-blue);
    border-radius: 5px;
    font-weight: 500;
}

/* Button Variations
--------------------------------------------- */
.elementor .btn {
    font-family: var(--e-global-typography-eb73008-font-family), inter, sans-serif;
    font-size: var(--e-global-typography-eb73008-font-size);
    font-weight: var(--e-global-typography-eb73008-font-weight);
    line-height: var(--e-global-typography-eb73008-line-height);
    letter-spacing: var(--e-global-typography-eb73008-letter-spacing);
    word-spacing: var(--e-global-typography-eb73008-word-spacing);
    color: var(--white);
    background-color: var(--p3-pink);
    border-style: solid;
    border-width: 0;
    border-color: #FFFFFF00;
    border-radius: 50px 50px 50px 50px;
    padding: 20px 30px 20px 30px;
    text-decoration: none;
    transition: all .3s;
    text-align: center;
}

.elementor .btn.inline-block {
    display: inline-block;
}

.elementor .btn.inline-block:first-of-type {
    margin-right: 5px;
}

.elementor .btn.inline-block:last-of-type {
    margin-left: 5px;
}

.elementor .btn-small,
.elementor .elementor-button.elementor-size-xs {
    font-size: var(--e-global-typography-bfe3f11-font-size);
    line-height: var(--e-global-typography-bfe3f11-line-height);
    letter-spacing: var(--e-global-typography-bfe3f11-letter-spacing);
    word-spacing: var(--e-global-typography-bfe3f11-word-spacing);
    padding: 17px 35px;
}

.elementor .btn:hover {
    background-color: var(--p3-dark-green);
}

.elementor .btn-secondary .elementor-button,
.elementor .btn.btn-secondary {
    border-color: transparent;
    background: var(--p3-lighter-blue);
    color: var(--white);
}

.elementor .btn-secondary .elementor-button:hover,
.elementor .btn.btn-secondary:hover {
    border-color: transparent;
    background: var(--p3-dark-green);
    color: var(--white);
}

.elementor .btn-blue .elementor-button,
.elementor .btn.btn-blue {
    border-color: transparent;
    background: var(--p3-dark-green);
    color: var(--white);
}

.elementor .btn-blue .elementor-button:hover,
.elementor .btn.btn-blue:hover {
    border-color: transparent;
    background: var(--p3-light-blue);
    color: var(--white);
}


@media all and (max-width: 1366px) {
    .elementor .btn {
        padding: 17px 27px;
    }

    .elementor .btn-small,
    .elementor .elementor-button.elementor-size-xs {
        padding: 17px 30px;
    }
}


/* Mobile Menu
--------------------------------------------- */

.mobile-menu {}

.mobile-menu .mobile-menu-section {
    min-height: calc(100vh - var(--admin-bar-height));
}

.mobile-menu-toggle .elementor-icon-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
}


/* Element Feathering
--------------------------------------------- */
.feathered-element {
    position: relative;
    overflow: visible;
}

.feathered-element:before,
.feathered-element:after {
    content: '';
    position: absolute;
    top: 0;
    height: 100%;
    width: 200px;
    pointer-events: none;
	z-index: 2;
}

.feathered-element:before {
    left: 0px;
    background: linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%);
}

.feathered-element:after {
    right: 0px;
    background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%);
}

@media all and (max-width:900px){
	.feathered-element:before,
	.feathered-element:after {
		width: 100px;
	}
}




/* Service/Packages Boxes Component
--------------------------------------------- */


article.item.athletes,
article.item.group-bookings {
    display: none;
}

/* .package-grid,
.service-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 30px;
} */

.package-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 30px;
}

.package-grid .item,
.service-grid .item {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    ;
}

.package-grid .item {
    padding: 70px;
    background: var(--p3-lightest-blue);
    border-radius: 5px;
}

.service-grid.cards .item {
    background: var(--p3-lightest-blue);
    padding: 32px;
    border-radius: 5px;
    height: 550px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    position: relative;
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    border-radius: 8px;
    overflow: hidden;
}

@media all and (max-width:1200px) {
    .service-grid.cards .item {
        height: 460px;
    }
}

.service-grid.cards .item:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 30%, #003C4D 90%);
    z-index: 1;
    transition: 0.3s ease;
}

.service-grid.cards .item[data-colour-scheme='red']::before {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 30%, var(--p3-pink) 90%);
}

.service-grid.cards .item[data-colour-scheme='dark-green']::before {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 30%, var(--p3-dark-green) 90%);
}

.service-grid.cards .item[data-colour-scheme='light-blue']::before {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 30%, var(--p3-light-blue) 90%);
}

.service-grid.cards .item[data-colour-scheme='red'] .btn.btn-small:nth-child(2) {
    background: var(--p3-dark-green);
    color: #fff;
}

.service-grid.cards .item[data-colour-scheme='red'] .btn.btn-small:nth-child(2):hover {
    background: var(--p3-light-blue);
    color: #fff;
}


.service-grid.cards .item:hover:before {
    opacity: 1;
    transition: 0.3s ease;
}

.service-grid.cards .hover-content {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 32px;
    opacity: 0;
    visibility: hidden;
    transition: 0.3s all;
    color: #fff;
    z-index: 1;
    display: none;
}

.service-grid.cards .hover-content p {
    color: #fff;
}

.service-grid.cards .item:hover .hover-content {
    opacity: 1;
    visibility: visible;
    transition: 0.3s all;
}

.service-grid .item .content {
    position: relative;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    z-index: 2;
}

.service-grid .item h3 {
    color: #fff;
    opacity: 1;
    transition: 0.3s all;
    z-index: 3;
    margin-bottom: 0 !important;
    font-family: inter, sans-serif;
    font-size: 30px;
    font-style: normal;
    font-weight: 400;
    line-height: 130%;
}

.service-grid .item .content>* {
    margin-bottom: 20px;
}

.service-grid .item .card-thumbnail {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-size: cover;
    transform: scale(1);
    transition: 0.3s ease;
    z-index: 0;
    background-position: center center;
}

.service-grid .item:hover .card-thumbnail {
    transform: scale(1.1);
    transition: 0.3s ease;
}


.package-grid .item .content>*,
.package-grid .item .title {
    margin-bottom: 30px;
}

.package-grid .item .right-col .btn {
    display: none;
}

.package-grid .item .title {
    display: flex;
    align-items: center;
}

.package-grid .item .title .icon {
    margin-right: 26px;
    height: 60px;
}

.service-grid .buttons {
    padding-top: 0px;
    display: flex;
    gap: 12px;
}

.service-grid .buttons .content {
    display: none;
}

.package-grid .buttons a,
.service-grid .buttons a {
    display: inline-block;
    margin-right: 0;
}

.service-grid .buttons a {
    padding: 16px 20px;
}

.package-grid .buttons a {
    min-width: 195px;
    text-align: center;
}

.service-grid .buttons a:first-child {
    margin-right: 15px;
}

.package-grid h3,
.service-grid h3 {
    margin: 0;
}

.package-grid .text-module-cta {
    color: var(--p3-light-blue);
    margin-bottom: 30px;
}

.service-grid img:not(.service-icon) {
    border-radius: 6px;
}

.service-grid .service-thumbnail {
    width: 100%;
    height: 312px;
    object-fit: cover;
}

.service-grid .slick-slide {
    margin: 0 10px;
}

/* the parent */
.service-grid .slick-list {
    margin: 0 -10px;
}

.slick-next,
.slick-prev {
    z-index: 10;
}

.slick-next,
.slick-prev {
    font-size: 0;
    line-height: 0;
    position: absolute;
    top: 50%;
    display: block;
    width: 20px;
    height: 20px;
    padding: 0;
    -webkit-transform: translate(0, -50%);
    transform: translate(0, -50%);
    cursor: pointer;
    color: transparent;
    border: none;
    outline: 0;
    background: 0 0
}

.service-grid .slick-next,
.service-grid .slick-prev {
    z-index: 2;
    font-size: 0px !important;
    line-height: normal !important;
    width: 50px !important;
    height: 50px !important;
    padding: 0px !important;
    background: transparent;
    border: 0px;
    top: unset;
    bottom: 0;
}


.slick-next {
    right: 50%;
}

.slick-prev {
    left: 50%;
}

.service-grid .slick-next::before,
.service-grid .slick-prev::before {
    color: var(--p3-dark-green);
    font-weight: 300;
}

.service-grid .slick-next:hover::before,
.service-grid .slick-prev:hover::before {
    color: var(--p3-darker-green);
}

.service-grid .slick-next:hover,
.service-grid .slick-prev:hover,
.service-grid .slick-next:focus,
.service-grid .slick-prev:focus {
    background: transparent !important;
    border: 0px !important;
    outline: none !important;
}

.service-grid .slick-next {
    transform: translate(calc(100% + 10px), calc(100% + 24px));
}

.service-grid .slick-prev {
    transform: translate(calc(-100% - 10px), calc(100% + 24px));
}

.service-grid .slick-next::before {
    content: "\f061";
    font-family: 'Font Awesome 6 Pro' !important;
    font-size: 38px;
    line-height: 1;
}

.service-grid .slick-prev::before {
    content: "\f060";
    font-family: 'Font Awesome 6 Pro' !important;
    font-size: 38px;
    line-height: 1;
}


@media all and (max-width:1366px) {
    .package-grid .item {
        padding: 48px;
    }

    .package-grid .item .title .icon {
        height: 50px;
    }

    .package-grid a {
        min-width: 148px;
        text-align: center;
    }

    .service-grid .item .content>* {
        margin-bottom: 20px;
    }

    .service-grid {
        grid-gap: 20px;
    }

    .service-grid .buttons {
        display: flex;
        width: 100%;
        align-items: center;
        align-content: center;
        gap: 16px;
    }

    .service-grid .buttons a {
        width: 180px;
        display: block;
    }

    .service-grid .buttons a:first-child {
        margin-right: 0;
    }
}

@media all and (max-width: 1200px) {
    .package-grid {
        display: block;
    }

    .package-grid .item:not(:last-child) {
        margin-bottom: 15px;
    }

    .package-grid .item .content>*,
    .package-grid .item .title,
    .package-grid .text-module-cta {
        margin-bottom: 25px;
    }

    .package-grid .item .left-col {
        margin-bottom: 0;
    }

    .package-grid .item .right-col ul {
        margin-bottom: 25px;
    }

    .package-grid .item .content {
        display: grid;
        grid-template-columns: repeat(12, 1fr);
    }

    .package-grid .item .content .left-col {
        grid-column: 1 / span 8;
    }

    .package-grid .item .content .right-col {
        grid-column: 10 / span 4;
    }

    .service-grid .service-thumbnail {
        height: 241px;
    }

    .package-grid .buttons {
        display: none;
    }

    .service-grid .buttons {
        padding-top: 15px;
    }

    .service-grid.cards .item {
        padding: 20px;
    }
}

@media all and (max-width: 900px) {
    .service-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 30px 15px;
    }

    .package-grid .item {
        padding: 30px;
    }

    .package-grid .item .content .left-col {
        grid-column: 1 / span 6;
    }

    .package-grid .item .content .right-col {
        grid-column: 8 / span 5;
    }
}

@media all and (max-width: 767px) {

    .service-grid,
    .package-grid {
        display: block;
    }

    .package-grid .item .content {
        display: block;
    }

    .package-grid .item .left-col {
        margin-bottom: 25px;
    }

    .package-grid .item .right-col {
        margin-bottom: 0;
    }

    .service-grid .item:not(:last-child),
    .package-grid .item:not(:last-child) {
        margin-bottom: 32px;
    }

    .service-grid .buttons {
        flex-direction: column;
        align-items: flex-start;
    }

    .service-grid .slick-next,
    .service-grid .slick-prev {
        width: 35px !important;
        height: 35px !important;
    }

    .service-grid .slick-prev {
        transform: translate(calc(-100% - 10px), calc(100% + 0px));
    }

    .service-grid .slick-next {
        transform: translate(calc(100% + 10px), calc(100% + 0px));
    }

    .service-grid.cards .item {
        padding: 30px;
    }
}

/* Reviews Components
--------------------------------------------- */

:root {
    --gr-gap: 32px;
    /*--gr-cols: 3;*/
}

.reviews-grid {
    display: flex;
    grid-gap: 32px;
}

.reviews-grid .review-item {
    display: flex;
    flex-direction: column;
    padding: 40px;
    background: var(--p3-lightest-blue);
    border-radius: 5px;
    min-height: 380px;
}

.reviews-grid .review-item>*:not(:last-child) {
    margin-bottom: 25px;
}

.reviews-container .reviews-grid .review-item {
    padding: 45px !important;
}

.review-item .user {
    display: flex;
    width: 100%;
    align-items: center;
}

.review-item .user .review-picture {
    width: 80px;
    height: 80px;
    background-color: var(--p3-light-blue);
    margin-right: 25px;
    border-radius: 100%;
}

.review-item .rating,
.reviews-container .reviews-grid .review-item .review-stars ul {
    font-size: 32px;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    width: fit-content;
    grid-gap: 5px;
    color: #FFD079;
}

.reviews-container .reviews-grid .review-item .review-stars {
    padding-left: 0 !important;
}

.reviews-container .reviews-grid .review-item .review-stars ul li {
    width: 32px;
    height: 32px;
}

.reviews-container .reviews-grid .review-item .review-stars:before {
    display: none;
}

.review-item .body p {
    margin: 0;
}

.reviews-container .reviews-arrow {
    top: 30px;
}

.reviews-container .reviews-arrow:after {
    background: var(--p3-dark-green);
}

.reviews-container .reviews-arrow:hover:after {
    background: var(--p3-pink);
}

@media all and (min-width: 1025px) {
    .review-item .body p {
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 8;
        line-clamp: 8;
        -webkit-box-orient: vertical;
    }
}

.review-item .body a {
    text-decoration: underline;
    display: block;
    margin-top: 10px;
}

@media all and (max-width: 1366px) {
    .review-item .user .review-picture {
        width: 60px;
        height: 60px;
        margin-right: 10px;
    }

    .reviews-grid .review-item {
        padding: 25px;
    }

    .review-item .rating,
    .reviews-container .reviews-grid .review-item .review-stars ul {
        font-size: 25px;
    }

    .reviews-container .reviews-grid .review-item .review-stars ul li {
        width: 25px;
        height: 25px;
    }

    .reviews-grid .review-item>*:not(:last-child) {
        margin-bottom: 16px;
    }
}

@media all and (max-width: 1348px) {
    .reviews-grid .review-item {
        min-height: 290px;
    }
}

@media all and (max-width: 1024px) {

    /* .review-item .body a {
		display: none;
	} */
}

@media all and (max-width: 900px) {}

@media all and (max-width: 767px) {
    .reviews-grid {
        display: block;
    }

    .reviews-grid .review-item {
        min-height: 1px;
    }

    .review-item .body a {
        padding-bottom: 25px;
    }
}




/* Blog Slider Component
--------------------------------------------- */

.background-slider:not(.slick-initialized),
.foreground-slider:not(.slick-initialized) {
    display: none;
}

.blog-slider-wrapper {
    overflow: hidden;
}

.blog-slider .background-slider {
    margin: 0 -15px;
}

.blog-slider .slide.slick-slide {
    max-height: 740px;
    margin: 0 15px;
    border-radius: 8px;
    overflow: hidden;
}

.blog-slider .slide-image {
    padding-bottom: 740px;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
}

.blog-slider .foreground-slider {
    max-width: 520px;
    max-height: 520px;
    height: 520px;
    position: absolute;
    bottom: 0;
    left: 0;
    transform: translate(23vw, -70px);
    background: #fff;
    border-radius: 8px;
}

.blog-slider article.post.card {
    padding: 40px;
    display: grid;
    justify-content: space-between;
    grid-auto-rows: 1fr;
    max-height: 520px;
    align-content: space-between;
}

.blog-slider .post.card a {
    display: inline-block;
    color: inherit;
    transition: 0.2s ease;
}

.blog-slider .post.card .card-title {
    display: block;
}

.blog-slider .post.card a:hover {
    color: var(--p3-light-blue);
    transition: 0.2s ease;
}

.blog-slider .card-content h3 {
    margin: 0 0 32px;
    font-weight: 400;
}

.blog-slider .card-header {
    display: flex;
    justify-content: space-between;
}

.blog-slider .card-footer {
    margin-top: 32px;
}

.blog-slider .slide-nav {
    color: var(--p3-darker-green);
    cursor: pointer;
}

.blog-slider .slide-nav .arrow-prev {
    margin-right: 32px;
}

.blog-slider .post-count {
    color: var(--p3-light-blue);
    width: 100px;
    text-align: right;
}

.blog-slider .card-footer {
    display: flex;
    flex-direction: column;
}

.blog-slider .card-footer .read-more {
    margin-bottom: 30px;
}

.blog-slider .card-footer .read-more .btn {
    font-weight: 500;
    background: transparent;
    border: 1px solid var(--p3-darker-green);
}

.blog-slider .card-footer .read-more .btn:hover {
    color: var(--white);
    background: var(--p3-darker-green);
}

.blog-slider .post-categories .post-category {
    border: solid 1px var(--p3-dark-green);
    height: fit-content;
    padding: 2px 10px;
    border-radius: 50px;
    display: inline-block;
    margin: 0 3px 3px 0;
}

.blog-slider .slide-nav {
    font-size: 24px;
}

.blog-slider .slide-nav .fa-thin {
    font-weight: 300;
}

@media all and (max-width:1440px) and (min-width:768px) {
    .blog-slider .foreground-slider {
        left: 64px;
        transform: translate(0, -64px);
    }

}

@media all and (max-width:767px) {

    .blog-slider .foreground-slider,
    .blog-slider .background-slider {
        position: relative;
        left: 0;
        transform: translate(0, 0);
        height: auto;
        max-height: none;
        min-height: none;
    }

    .blog-slider .slide-image {
        padding-bottom: 200px;
    }

    .blog-slider .slide.slick-slide {
        max-height: none;
    }

    .blog-slider article.post.card {
        padding: 32px;
        background: var(--p3-lightest-blue);
        display: block;
        max-height: 100%;
    }

    .blog-slider .card-header {
        margin-bottom: 32px;
    }
}


.team {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-gap: 65px;
}

.team-member {
    text-align: center;
}

.team-member .team-member-image img {
    border-radius: 100%;
    object-fit: cover;
    object-position: center center;
    width: 300px;
    height: 300px;
    background: #f4f4f4;
}

@media all and (max-width: 1366px) {
    .team-member .team-member-image img {
        width: 200px;
        height: 200px;
    }
}

@media all and (max-width: 1200px) {
    .team {
        grid-gap: 40px;
    }

    .team-member .team-member-image img {
        width: 180px;
        height: 180px;
    }
}

@media all and (max-width: 900px) {
    .team {
        grid-template-columns: repeat(3, 1fr)
    }

    .team-member .team-member-image img {
        width: 120px;
        height: 120px;
    }
}

@media all and (max-width: 900px) {
    .team {
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 30px
    }
}




.locations {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-gap: 65px;
}

.location-item {
    text-align: center;
}

.location-item .location-image>img {
    border-radius: 100%;
    width: 300px;
    height: 300px;
    object-fit: cover;
    object-position: center center;
}

@media all and (max-width: 1366px) {
    .location-item .location-image>img {
        width: 200px;
        height: 200px;
    }
}

@media all and (max-width: 1200px) {
    .locations {
        grid-gap: 40px;
    }

    .location-item .location-image>img {
        width: 180px;
        height: 180px;
    }
}

@media all and (max-width: 900px) {
    .locations {
        grid-template-columns: repeat(3, 1fr);
    }

    .location-item .location-image>img {
        width: 120px;
        height: 120px;
    }
}

@media all and (max-width: 900px) {
    .locations {
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 30px;
    }
}



/* Service Template - Benefits List
--------------------------------------------- */
/* .benefits-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-gap: 30px;
} */

.benefits-list {
    display: none;
}

.benefits-list .slick-slide {
    margin: 0 10px;
}

/* the parent */
.benefits-list .slick-list {
    margin: 0 -10px;
}

.benefit-card {
    background: var(--p3-lightest-blue);
    padding: 32px;
    border-radius: 5px;
    display: flex;
    flex-direction: column;
    align-content: flex-start;
    align-items: flex-start;
    min-height: 420px;
}

.benefit-card>*:not(:last-child) {
    margin-bottom: 22px;
}

.elementor .benefit-card h3 {
    font-family: inter, sans-serif;
    margin-top: 0;
    font-size: 1.25rem;
    line-height: 26px;
    font-weight: 600;
    max-width: 210px;
    letter-spacing: 0;
}

.icon-wrapper {
    display: flex;
    width: 50px;
    height: 47px;
}

.benefit-card img {
    max-height: 42px;
    object-fit: contain;
}

@media all and (max-width:1366px) {
    .benefits-list {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media all and (max-width:900px) {
    .benefits-list {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media all and (max-width:767px) {
    .benefits-list {
        grid-template-columns: repeat(1, 1fr);
    }
}





.pagination-grid {
    display: block;
    text-align: center;
    padding-top: 40px;
}

.pagination-grid .pagination-num {
    display: inline-block;
    margin: 5px;
    border-radius: 5px;
    padding: 5px 15px;
    transition: all 0.3s;
}


.pagination-grid .pagination-num:hover,
.pagination-grid .pagination-num.active {
    background-color: var(--p3-pink);
    color: var(--white);
}

.archive-grid.archive-posts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 32px;
}

.archive-grid .post-item {
    background-color: var(--p3-lightest-blue);
    border-radius: 5px;
    /*display: flex;*/
    /*flex-direction: column;*/
    /*justify-content: space-between*/
}

.post-item .item-meta {
    margin-bottom: 16px;
}

.archive-grid .post-item:hover {}

.archive-grid .post-item .col-1 {
    height: 300px;
    overflow: hidden;
    border-radius: 5px 5px 0 0;
}

.archive-grid .post-item .thumbnail {
    height: 100%;
    background-size: cover;
    background-position: center center;
    border-radius: 5px 5px 0 0;
    transition: all 0.8s;
}

.archive-grid .post-item .categories .category:first-child {
    margin-left: 0;
}

.archive-grid .post-item .categories .category {
    border: solid 1px var(--p3-dark-green);
    padding: 2px 8px;
    margin: 5px;
    display: inline-block;
    border-radius: 50px;
    font-size: 14px;
}

.archive-grid .post-item .btn {
    display: inline-block;
}

.archive-grid .post-item:hover .col-1 .thumbnail {
    transform: scale(1.3);
}

.archive-grid .post-item .col-2 {
    padding: 32px;
}

@media all and (max-width: 1366px) {
    .archive-grid.archive-posts {
        grid-gap: 20px;
    }
}

@media all and (max-width: 1200px) {
    .archive-grid.archive-posts {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media all and (max-width: 767px) {
    .archive-grid.archive-posts {
        grid-template-columns: 1fr;
    }
}


/* Form Styles
--------------------------------------------- */

.elementor .elementor-form-fields-wrapper.elementor-labels-above .elementor-field-group>textarea {
    border-radius: 10px;
}

.elementor-kit-5 input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    padding: 0px !important;
    height: 17px;
    width: 17px;
    display: inline-block !important;
    border: 4px solid #F0F8F8;
    cursor: pointer;
    margin-right: 10px;
}

.elementor-kit-5 input[type="radio"]:checked {
    background: #7FCFD1 !important;
    border: 4px solid #F0F8F8 !important;
}

.elementor-kit-5 .elementor-field-subgroup .elementor-field-option {
    display: flex;
    align-items: center;
    margin-bottom: 6px;
}

.elementor-form-fields-wrapper .elementor-select-wrapper .select-caret-down-wrapper {
    display: none;
}



/* Mega Menu Styles
--------------------------------------------- */

/* Hide the mega menu on the location template page only */
.single-location .mega-menu {
    display: none;
}

.elementskit-megamenu-panel {
    transform: translateX(calc(-50% + 44px)) !important;
}

.mega-menu-card {
    padding: 32px;
    border-radius: 5px;
    background: #fff;
    margin-top: 14px;
    display: grid;
    grid-template-columns: 224px 1fr;
    grid-gap: 32px;
    box-shadow: 0px 0px 5px #00000036;
}

.mega-menu-card:before {
    content: '';
    position: absolute;
    top: 14px;
    left: 50%;
    width: 18px;
    height: 18px;
    transform: translateY(-100%);
    border-left: 9px solid #0000;
    border-right: 9px solid #0000;
    border-bottom: 14px solid #fff;
}

.menu-col-2 {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 64px;
}

.menu-col-2 .menu-item-group {
    flex: 1 1 calc(50% - 32px);
    position: relative;
}

.menu-col-2 .menu-item-group:nth-child(odd):after {
    content: '';
    position: absolute;
    height: 100%;
    border-left: 1px solid var(--p3-light-blue);
    top: 0;
    right: -32px;
}

.menu-item-thumbnail {
    padding-bottom: 100%;
    background-image: url('https://p3recovery.com.au//wp-content/uploads/2022/09/Reception-9.jpg');
    max-height: 224px;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}

.menu-items li {
    font-size: 1rem;
    line-height: 30px;
    color: var(--p3-darker-green);
    margin-bottom: 2px;
}

.menu-items a {
    transition: 0.1s all;
}

.menu-items a:hover {
    transition: 0.1s all;
    color: var(--p3-light-blue);
}

span.menu-subheading {
    display: block;
    margin-bottom: 10px;
}

.menu-item-thumbnail {
    position: relative;
    overflow: hidden;
}

.menu-item-thumbnail>div {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    display: none;
}

/* Solution Single - Pricing Table
--------------------------------------------- */
.pricing-table {
    display: grid;
    grid-template-columns: repeat(3, 2fr);
    grid-gap: 30px;
}

.pricing-table .price-item {
    padding: 32px;
    border-radius: 5px;
    background: var(--p3-lightest-blue);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.pricing-table .item-header {
    display: flex;
	flex-direction: column;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
	gap: 32px;
}

.pricing-table h3 {
    margin: 0;
    margin-bottom: 0 !important;
}

.elementor .pricing-table h3 {
    font-family: var(--e-global-typography-da93086-font-family), inter, sans-serif;
}

.pricing-table .item-header>*:not(:last-child),
.pricing-table .additional-item:not(:last-child) {
    margin-bottom: 22px;
}

.pricing-table .additional-item {
    font-size: 0.84em;
    line-height: 1.25rem;
    font-style: italic;
}

.pricing-table .additional-item>* {
    display: inline;
}

.pricing-table .additional-item .item-label {
    text-transform: uppercase;
    font-weight: 600;
    font-style: italic;
}

.pricing-table .additional-item .item-label:after {
    content: ': '
}

.pricing-table .btn {
    display: inline-block;
    margin-top: 22px;
}

.pricing-table ul.add-ons-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 0 64px;
    width: 100%;
}

.pricing-table ul.add-ons-list li {
    padding: 10px 0;
    border-bottom: 1px solid var(--p3-dark-green);
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    font-size: 1.25rem;
}

.pricing-table ul.add-ons-list li .price {
    font-weight: 500;
}

@media all and (max-width:1200px) {
    .pricing-table {
        grid-template-columns: repeat(2, 1fr);
    }

    .price-item.add-ons {
        grid-column: span 2 !important;
    }

    .pricing-table ul.add-ons-list {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media all and (max-width:767px) {
    .pricing-table {
        grid-template-columns: repeat(1, 1fr);
    }

    .pricing-table ul.add-ons-list {
        grid-template-columns: repeat(1, 1fr) !important;
    }

    .price-item.add-ons {
        grid-column: span 1 !important;
    }

    .pricing-table ul.add-ons-list li {
        font-size: 1.13rem;
    }
}

/* Fancybox Styles
--------------------------------------------- */
#franchise-form button.f-button.is-close-btn {
    padding: 0;
    color: #fff;
    opacity: 1;
}


/* Franchise Popup Styles
--------------------------------------------- */



header.elementor-sticky--effects button.franchise-btn {
    border-color: var(--p3-dark-green) !important;
    background: var(--p3-dark-green) !important;

}

header.elementor-sticky--effects button.franchise-btn:hover {
    border-color: var(--white) !important;
    background-color: var(--white) !important;
    color: var(--p3-pink) !important;
}



/* Pricing Page Styles
--------------------------------------------- */

/* Pricing Cards */

.pricing-cards {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 30px;
    align-items: center;
}
.pricing-cards .pricing-card {
    width: 100%;
    border: 1px solid var(--p3-dark-green);
    text-align: center;
    font-family: var(--e-global-typography-1bb5176-font-family), inter, sans-serif;
    border-radius: 5px;
    height: auto;
    display: flex;
    flex-direction: column;
}
.pricing-cards .pricing-card:last-child {
    border: 1px solid var(--p3-dark-blue);
}
.pricing-cards .pricing-card.featured {
    color: var(--p3-pink);
    border: 1px solid var(--p3-pink);
}
.pricing-cards .pricing-card:last-child .card-header {
    background: var(--p3-dark-blue);
}
.pricing-cards .card-header {
    padding: 32px;
    background: var(--p3-dark-green);
    color: #fff;
    position: relative;
}
.pricing-cards .card-body {
    padding: 24px;
    display: flex;
    flex-direction: column;
    height: 100%;
    flex: 1;
}
.pricing-cards .pricing-card:last-child .card-body {
    color: var(--p3-dark-blue);
}
.pricing-cards .pricing-card.featured .card-header {
    background: var(--p3-pink);
}
.pricing-cards .card-header>* {
    display: block;
}
.pricing-cards .card-body .content-wrapper {
    margin-bottom: auto;
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.pricing-cards .card-body .button-wrapper {
    margin-top: auto;
    padding-top: 24px;
}
.pricing-cards .card-body>* {
    margin: 0;
}
.pricing-card .feature-label {
    width: auto;
    margin: auto;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    padding: 7px 14px;
    border: 1px solid var(--p3-pink);
    border-radius: 100px;
    font-size: 12px;
    line-height: 1;
    text-transform: uppercase;
    font-weight: 500;
    background: #fff;
    color: var(--p3-pink);
    letter-spacing: 0.1em;
}
.pricing-card .price {
    font-weight: 500;
    font-size: 4.38rem;
    line-height: 1;
}
.pricing-card.featured .price {
    font-size: 6.88rem;
}
.pricing-card .billing-period {
    font-size: 1.13rem;
    line-height: 30px;
    font-weight: 500;
    margin-top: 6px;
}
.elementor .pricing-card h3 {
    font-size: 1.88rem;
    line-height: 34px;
    font-weight: 500;
    max-width: 252px;
    margin: auto;
}
ul.card-features {
    display: flex;
    flex-direction: column;
}
.pricing-card .card-features li {
    width: auto;
    display: inline-block;
    margin: auto;
}
.pricing-card .card-features li:before {
    content: '\f058';
    display: inline-block;
    font-family: 'Font Awesome 6 Pro';
    margin-right: 8px;
}
.card-body a.elementor-button {
    display: inline-block;
    width: auto;
    margin: auto;
    font-size: 1rem;
    line-height: 1;
}
@media all and (max-width:1366px) {
    .pricing-card .price {
        font-size: 3.38rem;
    }
    .pricing-card.featured .price {
        font-size: 4.88rem;
    }
}
@media all and (max-width:1024px) {
    .elementor .pricing-card h3 {
        font-size: 1.25rem;
        line-height: 26px;
    }
}
@media all and (max-width:1660px) and (min-width:901px) {
    .pricing-cards .pricing-card.featured {
        min-height: inherit;
    }
    .pricing-cards {
        flex-wrap: wrap;
        justify-content: center;
    }
    .pricing-cards .pricing-card {
        width: calc(50% - 15px);
        min-height: 526px;
    }
    .pricing-cards .pricing-card:only-child {
        width: 100%;
        max-width: 500px;
    }
    .pricing-cards .pricing-card:nth-child(2n+1):last-child {
        width: 100%;
        flex-direction: row;
        max-width: 100%;
        min-height: 0px;
    }
    .pricing-cards .pricing-card:nth-child(2n+1):last-child .card-header {
        width: 40%;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
    .pricing-cards .pricing-card:nth-child(2n+1):last-child .card-body {
        width: 60%;
    }
}

@media all and (max-width:900px) {
    .pricing-cards .pricing-card,
    .pricing-cards .pricing-card.featured {
        min-height: 0px;
    }
    .pricing-cards {
        flex-wrap: wrap;
        max-width: 500px;
        margin: auto;
    }
    .pricing-card .card-features li {
        display: block;
    }
    .pricing-card.featured .price {
        font-size: 3.38rem;
    }
    .pricing-cards .pricing-card:nth-child(2n+1):last-child {
        flex-direction: column;
    }
    .pricing-cards .pricing-card:nth-child(2n+1):last-child .card-header,
    .pricing-cards .pricing-card:nth-child(2n+1):last-child .card-body {
        width: 100%;
    }
}

/* Pricing Group Tables */

.price-groups {
    display: grid;
    grid-template-columns: 1fr;
    grid-gap: 50px;
}

.price-group h3 {
    margin: 0 0 24px;
    font-weight: 500;
    font-size: 1.88rem;
    line-height: 34px;
}

.price-items {
    display: grid;
    grid-template-columns: 1fr;
    grid-gap: 12px;
}

.price-item {
    padding: 20px 36px;
    display: flex;
    border-radius: 5px;
    align-items: center;
    justify-content: space-between;
}

.price-item a.btn {
    padding: 13px 20px;
}

.month-passes .price-item {
    border-color: var(--p3-darker-green);
}

.elementor .price-item h4 {
    margin: 0;
    font-size: 1.75rem;
    line-height: 38px;
    font-weight: 400;
    position: relative;
}

.price-item .pricing {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: flex-end;
    align-items: center;
    gap: 28px;
}

.price-item .price {
    font-family: var(--e-global-typography-1bb5176-font-family), inter, sans-serif;
    font-size: 1.75rem;
    line-height: 38px;
    font-weight: 500;
    color: var(--p3-darker-green);
}

.price-item .price.sale {
    margin-left: 6px;
    color: var(--p3-pink);
    position: relative;
}

.price-item.on-sale h4:before {
    content: 'Sale';
    font-weight: 500;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    line-height: 1;
    display: inline-block;
    padding: 4px 10px 6px;
    background: var(--p3-pink);
    border-radius: 100px;
    color: #fff;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translate(70px, -7px);
}

.price-item a.elementor-button {
    font-size: 1rem;
}

.price-item .promotext {
    font-size: 1rem;
    font-weight: 500;
    display: inline-block;
    background: #fff;
    border-radius: 100px;
    padding: 4px 16px;
    color: var(--p3-darker-green);
    border: 1px solid var(--p3-darker-green);
}

.price-group.highlight .price-item {
    background: #fff;
}

.pricing-hero-content {
    color: #fff;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.pricing-hero-content>* {
    margin: 0;
}

.hero-buttons {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px;
}

.elementor .hero-buttons .elementor-button {
    font-size: 1rem;
    line-height: 1;
}

.elementor a.elementor-button.learn-more {
    background: #fff;
    color: var(--p3-dark-green) !important;
}

.elementor a.elementor-button.learn-more:hover {
    background: var(--p3-pink);
    color: #fff !important;
}

.hero-price {
    font-family: var(--e-global-typography-1bb5176-font-family), inter, sans-serif;
    font-size: 1.25rem;
    text-transform: uppercase;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.1em;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    padding: 12px 22px 17px;
    border: 2px solid #fff;
    width: auto;
    margin-right: auto;
    border-radius: 200px;
}

.hero-price .price-before {
    margin-top: 5px;
}

/* Mindbody styling on Pricing Page  */

.price-item a.healcode-link,
.pricing-card a.healcode-link,
.hero-buttons a.healcode-link,
.elementor.promotions a.healcode-link {
    font-family: 'Inter', inter, sans-serif;
    color: #fff;
    background: var(--p3-pink);
    border-radius: 100px;
    padding: 12px 22px;
    font-size: 1rem;
    line-height: 1;
    font-weight: 600;
    display: inline-block;
    transition: 0.2s ease;
}

.elementor.promotions a.healcode-link,
.hero-buttons a.healcode-link {
    padding: 20px 30px;
}

.price-item a.healcode-link:hover,
.pricing-card a.healcode-link:hover,
.hero-buttons a.healcode-link:hover,
.elementor a.healcode-link:hover {
    background: var(--p3-dark-green);
    transition: 0.2s ease;
}

@media all and (min-width:1367px) {
    .elementor .pricing-hero-content h1 {
        max-width: 500px;
        font-size: 52px;
        line-height: 64px;
    }

    .hero-price .price {
        font-size: 3.05rem;
        margin-left: 10px;
    }
}

@media all and (max-width: 1366px) {
    .elementor .price-item h4 {
        font-size: 1.25rem;
        line-height: 28px;
    }

    .price-item.on-sale h4:before {
        font-size: 10px;
    }

    .price-item .price {
        font-size: 1.35rem;
        line-height: 28px;
    }

    .price-item a.elementor-button {
        padding: 12px 24px;
        min-width: auto;
    }

    .hero-price .price {
        font-size: 2.75rem;
    }

    .pricing-hero-content h1 {
        max-width: 400px;
    }

    .hero-buttons a.healcode-link {
        padding: 18px 20px;
    }
}

@media all and (max-width:900px) {
    .price-item a.elementor-button {
        min-width: 120px;
        padding: 12px 22px;
    }

    .elementor .price-item h4,
    .price-item .pricing {
        max-width: 50%;
    }

    .price-item .pricing {
        gap: 10px;
    }

    .price-item .promotext {
        display: none;
    }
}

@media all and (max-width:767px) {
    .price-item {
        padding: 24px;
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .elementor .price-item h4,
    .price-item .pricing {
        max-width: 100%;
    }

    .price-item .pricing {
        gap: 10px;
        width: 100%;
        justify-content: space-between;
    }

    .price-item.on-sale h4:before {
        position: relative;
        display: block;
        top: 0;
        left: 0;
        transform: none;
        width: auto;
        margin-right: auto;
        max-width: 60px;
        text-align: center;
        margin-bottom: 6px;
    }

    .hero-price .price {
        font-size: 1.75rem;
    }

    .hero-price {
        font-size: 1rem;
    }

    .pricing-hero-content h1 {
        max-width: 230px;
    }
}




/* Location Single Template Styles
--------------------------------------------- */

/* COntact Details Grid */
.contact-details-grid {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    gap: 32px;
}

.contact-details-grid .contact-card {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    gap: 26px;
    font-family: Inter;
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: 26px;
}

.contact-details-grid .card-icon {
    width: 80px;
    height: 80px;
    background: #e4e4e4;
    border-radius: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 30px;
    color: var(--p30-darkest-green);
}

@media all and (max-width:767px) {
    .contact-details-grid {
        flex-direction: column;
        gap: 48px;
    }
}

/* Promo Cards */

.promotion-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    grid-gap: 30px;
}

.promotion-cards .promo-card {
    border-radius: 10px;
    overflow: hidden;
    min-height: 410px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 32px;
    gap: 22px;
    color: #fff;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    position: relative;
}

.promotion-cards .promo-card.gift-card h3 {
    max-width: 400px;
}

.promo-card.promotions-carousel h3,
.promo-card.promotions-carousel .card-subheading {
    max-width: 320px;
}

.promotion-cards .promo-card.promotions-carousel {
    padding: 0px;
}

.promotion-cards .promo-card.promotions-carousel .swiper-container {
    height: 100%;
    width: 100%;
}

.promotion-cards .promo-card.promotions-carousel .carousel-card {
    padding: 32px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 22px;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    position: relative;
}

.promotion-cards .promo-card h3 {
    margin: 0;
    font-size: 38px;
    line-height: 45px;
}

.promotion-cards .promo-card .card-content {
    display: flex;
    flex-direction: column;
    gap: 22px;
    z-index: 1
}

.promotion-cards .card-footer {
    display: flex;
    justify-content: flex-end;
    z-index: 1
}

.promotion-cards .promo-card .btn {
    font-size: 1rem;
    line-height: 1rem;
    padding: 16px 18px;
}

.promotions-carousel .swiper-pagination .swiper-pagination-bullet {
    background: #fff;
}

.promotion-cards .promo-card:before,
.promotion-cards .promo-card.promotions-carousel .carousel-card:before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background: #000;
    top: 0;
    left: 0;
    opacity: 0.2;
    z-index: 0;
    pointer-events: none;
}

@media all and (max-width:1366px) {
    .promotion-cards .promo-card h3 {
        font-size: 28px;
        line-height: 36px;
    }

    .promotion-cards .promo-card.promotions-carousel .carousel-card,
    .promotion-cards .promo-card {
        padding: 24px;
        gap: 16px;
    }

    .promotion-cards .promo-card .card-content {
        gap: 16px;
    }
}

@media all and (max-width:1200px) {
    .promotion-cards {
        grid-template-columns: repeat(2, 1fr);
    }

    .promotion-cards .promo-card {
        min-height: 310px;
    }

    .promotion-cards .promo-card.promotions-carousel {
        grid-row: 1;
        grid-column: 1/3;
    }
}

@media all and (max-width:767px) {
    .promotion-cards {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .promotion-cards .promo-card.promotions-carousel {
        grid-row: auto;
        grid-column: auto;
    }
}

/* Service Cards / Carousel */

.swiper-outer-wrapper {
    position: relative;
    padding: 0 60px;
}

.service-carousel {
    padding: 0;
}

.service-card {
    padding: 32px 20px;
    display: flex;
    flex-direction: column;
    text-align: center;
    align-items: center;
    justify-content: flex-start;
    align-content: center;
    border: 1px solid var(--p3-dark-green);
    background: var(--p3-lightest-blue);
    border-radius: 10px;
    gap: 14px;
}

.service-card h3.service-label {
    margin: 0;
    font-size: 22px;
    line-height: 28px;
    width: 100%;
    display: table-caption;
    display: -ms-grid;
    -ms-grid-columns: min-content;
    font-weight: 400;
}

.service-card .service-heading {
    font-size: 0.88rem;
    line-height: 26px;
    text-transform: uppercase;
    font-weight: 500;
    letter-spacing: 1.4px;
}

.service-card p.service-description {
    margin: 0;
}
.service-cta-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    align-content: center;
    margin-top: 12px;
}
.service-cta-wrapper > * {
    height: 100%;
    max-height: 40px;
}
.service-cta-wrapper .estimated-time {
    display: flex;
    align-items: center;
    padding: 12px 38px 12px 8px;
    border: 1px solid var(--p3-pink);
    border-radius: 100px;
    margin-right: -36px;
    background: #fff;
    z-index: 0;
    pointer-events: none;
    font-size: 14px;
    color: var(--p3-pink);
}
.service-cta-wrapper .estimated-time i {
    margin-right: 4px;
}
.service-card a {
    font-family: 'Inter', inter, sans-serif;
    color: #fff !important;
    background: var(--p3-pink);
    border-radius: 100px;
    padding: 12px 22px;
    font-size: 1rem;
    line-height: 1;
    font-weight: 600;
    display: inline-block;
    transition: 0.2s ease;
    z-index: 1;
}

.service-card a:hover {
    background: var(--p3-dark-green);
    transition: 0.2s ease;
}

.swiper-outer-wrapper .swiper-button-next,
.swiper-outer-wrapper .swiper-button-prev {
    position: absolute;
    top: 50%;
    width: 53px;
    height: 53px;
    background: var(--p3-lightest-blue);
    border-radius: 100px;
}

.swiper-outer-wrapper .swiper-button-next:after,
.swiper-outer-wrapper .swiper-button-prev:after {
    font-size: 18px;
    color: var(--p3-darker-green);
}

.swiper-outer-wrapper .swiper-button-next:hover,
.swiper-outer-wrapper .swiper-button-prev:hover {
    background: var(--p3-dark-green);
}

.swiper-outer-wrapper .swiper-button-next:hover:after,
.swiper-outer-wrapper .swiper-button-prev:hover:after {
    color: #fff;
}

.swiper-outer-wrapper .swiper-button-next {
    right: -30px;
}

.swiper-outer-wrapper .swiper-button-prev {
    left: -30px;
}


/* Enable/Disable Code Below to Turn Carousel Into A Grid */

.single-location .service-carousel .swiper-wrapper {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    grid-gap: 24px !important;
}
@media all and (min-width:1441px) {
    .single-location .service-carousel.count-6 .swiper-wrapper {
        grid-template-columns: repeat(6, 1fr);
    }
}
@media all and (min-width:1441px) {
    .single-location .service-carousel.count-7 .swiper-wrapper {
        grid-template-columns: repeat(4, 1fr);
    }
}
.single-location .service-navigation {
    display: none;
}

@media all and (max-width:1440px) {
    .single-location .service-carousel .swiper-wrapper {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media all and (max-width:1000px) {
    .single-location .service-carousel .swiper-wrapper {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media all and (max-width:767px) {
    .single-location .service-carousel .swiper-wrapper {
        grid-template-columns: repeat(1, 1fr);
    }
}

/* END Turn Carousel Into A Grid */


@media all and (max-width:1366px) {
    .service-card h3.service-label {
        font-size: 28px;
        line-height: 36px;
    }
}

@media all and (max-width:767px) {
    .swiper-outer-wrapper {
        padding: 0 30px;
    }

    .swiper-outer-wrapper .swiper-button-next,
    .swiper-outer-wrapper .swiper-button-prev {
        width: 33px;
        height: 33px;
    }

    .swiper-outer-wrapper .swiper-button-next {
        right: -10px;
    }

    .swiper-outer-wrapper .swiper-button-prev {
        left: -10px;
    }
}

/* Business location and open hours information */
.business-information .business-address p {
    margin: 0;
}

.business-information .business-address p:first-child {
    margin-bottom: 10px;
}

.business-information .business-hours {
    margin-top: 24px;
}

.business-information .business-hours p {
    margin-bottom: 10px;
}

.open-hours li {
    display: flex;
    gap: 24px;
    justify-content: space-between;
    max-width: 320px;
}

/* Embark Blog Feed Plugin Styles
--------------------------------------------- */
.post-categories a {
    border: solid 1px var(--p3-dark-green);
    padding: 2px 8px;
    margin: 5px;
    display: inline-block;
    border-radius: 50px;
    font-size: 14px;
}

#embark-post-feed a.read-more {
    color: #fff;
    width: auto;
    max-width: 170px;
}

#embark-post-feed .post-content-wrapper {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 32px;
    align-content: flex-start;
    align-items: flex-start;
    text-align: left;
    background: var(--p3-lightest-blue);
}

#post-feed-container .post-thumbnail img {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

#cat-filter {
    display: flex;
    flex-direction: column;
    gap: 8px;
    position: relative;
    align-items: flex-start;
    width: 100%;
}

#cat-filter .filter-accordion {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-gap: 16px 24px;
    padding: 24px 0;
    border: 1px solid var(--p3-dark-green);
    border-left: 0;
    border-right: 0;
    width: 100%;
    max-height: 0;
    padding: 0px 0px;
    overflow: hidden;
    border-bottom: 0;
    border-top: 0;
}

#cat-filter .filter-accordion.active {
    max-height: fit-content;
    padding: 14px 0 24px;
    border-bottom: 1px solid var(--p3-dark-green);
}

.filter-label {
    min-width: fit-content;
    margin-right: 20px;
    font-weight: 500;
    font-size: 1.13rem;
}

#cat-filter .filter-label {
    display: block;
    width: 100%;
    padding-bottom: 16px;
    cursor: pointer;
    border-bottom: 1px solid var(--p3-dark-green);
}

#cat-filter .filter-label:hover {
    opacity: 0.8;
}

.post-feed-filters {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    margin-bottom: 50px;
    align-content: flex-start;
    align-items: flex-start;
    gap: 32px;
}

.order-filter-wrapper {
    padding-bottom: 20px;
    min-width: 260px;
}

#cat-filter button {
    padding: 9px 15px;
    background: var(--p3-lightest-blue);
    border: 1px solid var(--p3-lightest-blue);
}

#cat-filter button:hover,
#cat-filter button.active {
    background: var(--p3-dark-green);
}

@media all and (max-width:1440px) {
    #cat-filter .filter-accordion {
        display: flex;
        flex-wrap: wrap;
        gap: 16px;
    }
}

@media all and (max-width:900px) {
    .post-feed-filters {
        gap: 16px;
    }
}

@media all and (max-width:767px) {
    .post-feed-filters {
        flex-direction: column;
        gap: 24px;
    }

    button.category-button {
        width: 100%;
    }
}

@media all and (max-width:900px) and (min-width:768px) {
    #post-feed-container .post-thumbnail {
        padding-top: 100%;
        height: 100%;
    }

    #embark-post-feed .post-content-wrapper {
        display: flex;
        justify-content: center;
    }

    #post-feed-container {
        grid-template-columns: repeat(1, 1fr);
    }

    .post-item {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
}


/* Member Testimonials Grid
--------------------------------------------- */
.testimonial-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 24px;
}

.testimonial-cards .image-wrapper {
    position: relative;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    height: 0;
    padding-bottom: 100%;
}

.testimonial-cards .testimonial-card {
    position: relative;
    overflow: hidden;
    transition: opacity 1.3s ease;
    height: 0;
    padding-bottom: 100%;
    background: #fff;
    border-radius: 8px;
}

.testimonial-cards .bg1 {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-size: cover;
    background-position: center;
    z-index: 1;
    opacity: 1;
    transition: opacity 1s ease;
}

.testimonial-cards .bg2 {
    z-index: 2;
    opacity: 0;
    transition: opacity 1s ease;
}

.testimonial-cards .content-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    align-content: center;
    color: #fff;
    font-size: 1.75rem;
    line-height: normal;
    font-weight: 600;
    padding: 32px;
    background: #237383c4;
    opacity: 0;
    transition: 0.4s ease;
    z-index: 3;
}

.testimonial-cards .testimonial-card:hover .content-wrapper {
    opacity: 1;
    transition: 0.4s ease;
}

/* Offset the middle column in the first row */
.testimonial-cards>div:nth-child(1),
.testimonial-cards>div:nth-child(3) {
    transform: translateY(50px);
}

/* Offset the middle column in the second row */
.testimonial-cards>div:nth-child(4),
.testimonial-cards>div:nth-child(6) {
    transform: translateY(50px);
}


@media all and (max-width:1366px) {
    .testimonial-cards .content-wrapper {
        font-size: 1.25rem;
    }
}

@media all and (max-width:900px) and (min-width:768px) {
    .testimonial-cards .content-wrapper {
        font-size: 0.88rem;
    }
}

@media all and (max-width:767px) {
    .testimonial-cards {
        grid-template-columns: repeat(1, 1fr);
    }

    /* Offset the middle column in the first row */
    .testimonial-cards>div:nth-child(1),
    .testimonial-cards>div:nth-child(3),
    .testimonial-cards>div:nth-child(4),
    .testimonial-cards>div:nth-child(6) {
        transform: translateY(0px);
    }

    /* Hide all cards except the first one */
    .testimonial-cards .testimonial-card:not(:first-child) {
        display: none;
    }
}



/* Header CTA
--------------------------------------------- */
.header-cta {
    display: flex;
    flex-wrap: nowrap;
    align-content: center;
    align-items: center;
    justify-content: center;
    height: 50px;
    color: var(--white);
    text-align: center;
    position: relative;
    max-width: 1589px;
    margin: auto;
    font-size: 1.13rem;
    font-weight: 600;
    gap: 25px;
}

.cta-content {
    font-family: var(--e-global-typography-1bb5176-font-family), inter, sans-serif;
    font-size: 20px;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 500;
    line-height: 32px;
}

.cta-actions {
    /* position: absolute; */
    height: 100%;
    right: 0;
    display: inline-flex;
    align-items: center;
}

.elementor .cta-actions a {
    padding: 0 20px;
    font-weight: 600;
    font-size: 1rem;
    border-radius: 1000px;
    height: 100%;
    max-height: 44px;
    background: transparent;
    border: 1px solid var(--white);
    color: var(--white);
    display: flex;
    align-items: center;
}

.elementor .cta-actions a:hover {
    background: var(--p3-dark-green);
    border-color: var(--p3-dark-green);
}

@media all and (max-width:1366px) {
    .cta-content {
        font-size: 16px;
        line-height: 24px;
    }
}

@media all and (max-width:1366px) {
    .cta-content {
        font-size: 12px;
        line-height: 16px;
        text-align: left;
    }

    .cta-actions {
        justify-content: flex-end;
        min-width: 120px;
    }
}

@media all and (max-width:767px){
	.header-cta {
		height: auto;
		padding: 10px 30px;
	}
	.elementor .cta-actions a {
		min-height: 40px;
	}
}



/* Reviews CTA
--------------------------------------------- */

.reviews-cta {
    display: grid;
    grid-template-columns: 500px 1fr;
    gap: 266px;
    overflow: hidden;
    align-items: center;
}

.reviews-cta>div {
    display: flex;
    flex-direction: column;
    gap: 24px;
    overflow: hidden;
    width: 100%;
}

.reviews-cta .col-left {
    font-size: 22px;
}

.reviews-cta .review-stars {
    font-size: 28px;
    color: var(--p3-pink);
    display: flex;
    gap: 2px;
}

.reviews-cta .review-item {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.reviews-cta .review-item p {
    margin: 0;
    font-size: 28px;
    font-weight: 600;
    line-height: 34px;
}

.reviews-cta .review-item .review-author {
    font-size: 16px;
    font-weight: 400;
    line-height: 34px;
}

.reviews-cta-carousel {
    width: 100%;
    max-width: 100%;
    display: none;
}


@media all and (max-width:1600px) {
    .reviews-cta {
        gap: 64px;
    }
}

@media all and (max-width:1440px) {
    .reviews-cta {
        grid-template-columns: 0.5fr 1fr;
    }

    .reviews-cta .review-item p {
        font-size: 24px;
        line-height: 32px;
    }

    .reviews-cta .col-left {
        font-size: 18px;
    }
}

@media all and (max-width:1366px) and (min-width:1200px) {
	.reviews-cta .review-item p {
		font-size: 20px;
		line-height: 28px;
	}
	.reviews-cta>div {
		gap: 10px;
	}
	.reviews-cta .review-stars {
		font-size: 24px;
	}
}

@media all and (max-width:767px) {
    .reviews-cta {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .reviews-cta .review-item p {
        font-size: 20px;
        line-height: 28px;
    }
}


/* Square Image Carousel with Loading bar
--------------------------------------------- */

.square-image-carousel-wrapper {
    position: relative;
}

.square-image-carousel .slide-image-wrapper {
    height: 0;
    padding-bottom: 100%;
    border-radius: 8px;
    overflow: hidden;
    position: relative;
}

.square-image-carousel .slide-image-wrapper img {
    object-fit: cover;
    position: absolute;
    height: 100%;
    width: 100%;
}

.square-image-carousel-wrapper .loading-bar {
    position: absolute;
    bottom: 0;
    display: block;
    width: calc(100% - 80px);
    height: 4px;
    background: rgba(255, 255, 255, 0.50);
    border-radius: 10px;
    left: 50%;
    transform: translate(-50%, -40px);
    overflow: hidden;
}

.loading-bar .bar {
    display: inline-block;
    width: 0%;
    background: #fff;
    height: 100%;
    position: absolute;
}

@media all and (max-width:900px) {
    .square-image-carousel-wrapper .loading-bar {
        width: calc(100% - 48px);
        transform: translate(-50%, -24px);
    }
}


/* PPP Carousel Shortcode
--------------------------------------------- */

.ppp-carousel {
    display: none;
}

.ppp-slide {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 130px;
}

.ppp-slide>* {
    flex: 1;
}

.ppp-slide .col-image {
    padding-right: 32px;
}

.ppp-slide .col-content {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
}

.ppp-slide .col-content p {
    font-size: 38px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.3em;
}

.ppp-slide .col-content p.slide-smalltext {
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 24px;
}

.ppp-slide .col-image .image-wrapper {
    height: 0;
    padding-bottom: 70.5%;
    overflow: hidden;
    position: relative;
}

.ppp-slide .col-image .image-wrapper img {
    position: absolute;
    object-fit: cover;
    height: 100%;
    width: 100%;
}

.ppp-labels {
    display: flex;
    gap: 24px;
    color: var(--p3-light-blue);
    margin-bottom: 64px;
}

.ppp-labels .slide-label {
    font-family: normalidad-wide, inter, sans-serif !important;
}

.ppp-labels .slide-label.cta-content.active-label,
.ppp-labels .slide-label:hover {
    color: var(--p3-darker-green);
    text-decoration: underline;
    transition: 0.3s ease;
}

@media all and (max-width:1440px) {
    .ppp-slide .col-content p {
        font-size: 32px;
    }
}

@media all and (max-width:1200px) {
    .ppp-slide .col-content p {
        font-size: 24px;
    }

    .ppp-slide .col-content p.slide-smalltext {
        font-size: 14px;
        line-height: 1.5em;
    }

    .ppp-slide {
        grid-gap: 48px;
    }

    .ppp-labels {
        margin-bottom: 42px;
    }

    .ppp-slide .col-image {
        padding-right: 20px;
    }
}

@media all and (max-width:900px) {
    .ppp-slide .col-content p {
        font-size: 18px;
        line-height: 1.5em;
    }

    .ppp-slide {
        grid-template-columns: 1fr;
        grid-gap: 32px;
    }

    .ppp-slide .col-image {
        padding-right: 0px;
    }
}


/* Slick Slider Bullets
--------------------------------------------- */
.elementor .slick-dots {
    display: flex;
    justify-content: center;
    align-content: center;
    align-items: center;
    margin-top: 16px;
    gap: 10px;
}

.elementor .slick-dots button {
    font-size: 0;
    padding: 0;
    width: 16px;
    height: 16px;
    background-color: var(--p3-light-blue);
    border-color: var(--p3-light-blue);
}

.elementor .slick-dots .slick-active button,
.elementor .slick-dots button:hover {
    background-color: var(--p3-darker-green);
    border-color: var(--p3-darker-green);
}



/* What To Expect Items Shortcode
--------------------------------------------- */
.what-to-expect-items {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.what-to-expect-items * {
    margin: 0;
    padding: 0;
}
.expect-item {
    display: flex;
    gap: 12px;
    padding: 0px 0px 24px;
    border-bottom: 1px solid var( --e-global-color-64b4775 );
}
.expect-item h4 {
    min-width: 210px;
}
.expect-item p {
    max-width: 340px;
}

@media all and (max-width:1024px){
    .expect-item h4 {
    min-width: 140px;
    font-size: 18px !important;
}
}

/*Popup */
body .fancybox__container:not([aria-hidden]) {
    opacity: 1;
}
/* Hapana booking popups only — widen the fancybox so the schedule has room */
.fancybox__content:has(hapana-widget, hapana-widget-deferred) {
    min-width: 80vw;
}