:root {
    --ff-mulish: 'Mulish', sans-serif;
    --ff-lato: 'Lato', sans-serif;
    --ff-rufina: 'Rufina', serif;
    --ff-questrial: 'Questrial', sans-serif;

    --color-green: #015450;
    --color-pale-green: #dbe8df;
    --color-lite-green: #058466;
    --color-gray: #75777b;
    --color-white: #ffffff;
}
body {
    font-family: var(--ff-mulish);
    font-size: 16px;
}
body.admin-bar { margin-top: 32px; }
a { color: inherit }
nav a { text-decoration: none; font-family: var(--ff-lato); font-weight: bold; color: var(--color-green); display: inline-block;  }
nav li:not(.link-btn) a { line-height: 2; }
header {padding-block: 10px; }
header nav ul { gap: 20px;}
header nav ul { padding: 0; margin: 0; list-style-type: none;}
header nav ul ul { position: absolute; top: 100%; left: 50%; background-color: #fff; width: calc(100% + 70px); box-shadow: 0 .15em .25em rgba(0,0,0,.25); border-radius: 4px; transform: rotateX(-90deg) translateX(-50%); opacity: 0; visibility: hidden; transition: .5s; z-index: 10; transform-origin: top center; margin-bottom: 30px; }
header nav li:has(ul) { position: relative; }
header nav li:has(ul) > a { position: relative; padding-right: 20px; }
header nav li:has(ul) > a::before { border: solid; border-color: currentColor; content: " "; border-width: 0 2px 2px 0; padding: 2px; position: absolute; top: 50%; right: 2px; transform: translateY(-50%) rotate(45deg); transform-origin: center; transition: .5s; }
header nav li:has(ul):hover > ul{ opacity: 1; visibility: visible; transform: rotateX(0) translateX(-50%); }
header nav ul ul a {display: block; padding: 5px 10px; }

.logo img { max-width: 200px; height: initial;}

.link-btn--green { --btn-bg-color: var(--color-green); --btn-text-color: #fff; }
.link-btn a { font-size: 14px; font-weight: normal; display: inline-block; padding: 10px 35px; letter-spacing: 0.6px; border-radius: 100px; background-color: var(--btn-bg-color); color: var(--btn-text-color); }


.button,
.gform_button { border-radius: 100px; display: inline-block; padding: 10px 30px; font-size: 18px; font-weight: normal; color: var(--btn-text-color, inherit); background-color: var(--btn-bg-color, initial); border:1px solid var(--btn-bg-color); text-decoration: none; transition: background-color 0.6s ease-in-out; font-family: var(--ff-lato); text-align: center; }
.button--green,
.gform_button { --btn-bg-color: var(--color-green); --btn-text-color: #fff; }
.button--green:hover,
.gform_button:hover { --btn-bg-color: rgba(151, 189, 164, 0.35); border: 1px solid var(--color-green); color: var(--color-green) }
.button--clean { padding: 0; font-weight: bold; color: inherit; letter-spacing: 0.6px; }
.button--owhite { border-color: var(--color-white); --btn-text-color: var(--color-white);  border:1px solid currentColor; } 
.button--owhite:hover { --btn-bg-color: var(--color-green); --btn-text-color: #fff; border-color: var(--color-green) }
.gform_button { min-width: 200px ;}



.section--homebanner { width: 100%; aspect-ratio: 720 / 280; padding-block: 60px; background-repeat: no-repeat; background-position: center; background-size: cover;}
.section--homebanner .section-title { font-family: var(--ff-rufina); font-size: 70px; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.25); color: #fff;}
.section--homebanner .section-title + .btnbxd { margin-top: 30px;}
.section:has(.banner-video) { position: relative; overflow: hidden; }
.banner-video { position: absolute; inset: 0;  z-index: 0; }
.banner-video:after { content: ''; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.3); }
.section:has(.banner-video) .container { position: relative; z-index: 1; }

.section--homebanner + .section--ftrdblocks { padding-block: 0; }
.section--homebanner + .section--ftrdblocks .ftrd-items { position: relative; transform: translateY(-60px);}
.section--ftrdblocks { padding-block: 60px; background-color: var(--color-pale-green);}
.ftrd-item { color: var(--color-green)}
.ftrd-item .thumb { border-radius: 10px; overflow: hidden; aspect-ratio: 188 / 115; margin-bottom: 15px; }
.ftrd-item .thumb img { width: 100%; height: 100%;  object-fit: cover; transition: transform 1.2s ease-in-out; }
.ftrd-item:hover img { transform: scale(1.05);  }
.ftrd-title h2{ font-family: var(--ff-rufina); font-weight: bold; font-size: 40px; }
.ftrd-title span { font-family: var(--ff-lato); text-transform: uppercase; font-size: 16px; }


.thumb--video { --play-size: 60px; --play-color: #fff; position: relative; }
.thumb--video::before,
.thumb--video::after { pointer-events: none; content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 100; }
.thumb--video::before { width: var(--play-size); height: var(--play-size);  border:1px solid var(--play-color);  border-radius: 50%;  }
.thumb--video::after { width: 0; height: 0;  border-top: 10px solid transparent; border-bottom: 10px solid transparent; border-left: 20px solid var(--play-color); left: calc(50% + 3px); }


.section--content { padding-block: 60px; color: var(--color-gray); font-size: 20px;}
.copy h2 { font-size: 50px; font-family: var(--ff-rufina); color: var(--color-green); font-weight: bold; margin-bottom: 30px; }
.copy h2:has(+ .rotating-services) { margin-bottom: 10px; }
.copy .animated-text__item { color: var(--color-lite-green); display: block; font-size: 50px; font-family: var(--ff-rufina); font-weight: bold; }
.copy a:not(.button) {color: var(--color-lite-green); text-decoration: none; font-weight: bold; }
.copy a:not(.button):hover { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px;}
.copy p + h2 { margin-top: 60px;}
.copy h2 ~ p { max-width: 820px; margin-inline: auto; }
.copy p:has(a + a) { display: flex; gap: 30px; width: 100%; max-width: initial; justify-content: center;}

.section--testimonials {padding-block: 60px; background-image: linear-gradient(to bottom, #015450, #97bda4 131%); color: var(--color-white) }
.section--testimonials .section-header { margin-bottom: 30px; text-align: center;}
.section--testimonials .section-header h2 { font-family: var(--ff-rufina); font-size: 40px;}
.section--testimonials .section-header .subtitle { font-size: 18px; font-family: var(--ff-lato); margin-bottom: 10px; }
.section--testimonials .section-footer { margin-top: 50px;}
.section--testimonials .section-footer .button { width: 100%; max-width: 250px; }
.review-item { background-color: var(--color-white); color: var(--color-gray); padding: 30px 50px; text-align: center;  margin-inline: 20px; }
.review-item .review-author { color: var(--color-green); font-weight: bold; font-family: var(--ff-lato); }
.review-ratings { margin-bottom: 50px;}
.testimonials:not(.slick-initialized) { display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px;}

.section--contentthumb { padding-block: 40px; }
.section--contentthumb .thumb { background-color: #dbe8df; padding: 60px; }
.section--contentthumb .thumb  img { width: 100%; height: 100%; object-fit: cover;}

.testimonials--slider .slick-arrow { position: absolute; top: 50%; transform: translateY(-50%); background-color: initial; border: 0; }
.testimonials--slider .slick-prev { left: -20px; }
.testimonials--slider .slick-next { right: -20px; }



/* plugins */
.rotating-services { overflow: hidden; position: relative; text-align: center; margin: 0 auto; display: block; font-size: 7rem }
.rotating-services__headline--highlight { color: #068466; display: block; position: absolute; white-space: nowrap; left: 0; opacity: 0; width: 100%; top: 0; padding-bottom: 16px; }
.rotating-services__headline--highlight,
.rotating-services__headline--highlight.is-hidden { -webkit-animation: slide-out 0.6s; animation: slide-out 0.6s; }
.rotating-services__headline--highlight.is-visible { position: relative; top: 0; opacity: 1; -webkit-animation: slide-in 0.6s; animation: slide-in 0.6s; }

@keyframes slide-out  {
    0% {
        opacity: 1;
        transform: translateY(0);
    }
    100% {
        opacity: 0;
        transform: translateY(100%);
    }
}


@keyframes slide-in {
    0% {
        opacity: 0;
        transform: translateY(-100%);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

footer {   background-image: linear-gradient(to top, #015450, #97bda4 140%); padding-block: 60px; color: var(--color-white); }
.footer-top h2 { font-size: 60px; font-family: var(--ff-rufina); margin-bottom: 0; }
.footer-top .button { margin-inline: auto; }
.footer-top__inner { border-bottom: 1px solid #fff; padding-bottom: 30px; }
.footer-main a { color: inherit; font-weight: normal; font-family: var(--ff-lato);}
.footer-main a:hover { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.footer-main { margin-block: 50px; }
.footer-main .social-media a { color: #97bda4; }
.footer-main .social-media a:hover { color: var(--color-white); }
.footer-main .social-media svg { width: 30px;}



.hamburger {
    --theme: var(--color-green);
    padding: 15px 15px;
    display: inline-block;
    cursor: pointer;
    transition-property: opacity, filter;
    transition-duration: 0.15s;
    transition-timing-function: linear;
    font: inherit;
    color: inherit;
    text-transform: none;
    background-color: transparent;
    border: 0;
    margin: 0;
    overflow: visible; font-size: 0; transform: translateY(10px); }
.hamburger:hover {
    opacity: 0.7; }
.hamburger.is-active:hover {
    opacity: 0.7; }
.hamburger.is-active .hamburger-inner,
.hamburger.is-active .hamburger-inner::before,
.hamburger.is-active .hamburger-inner::after {
    background-color: var(--theme); }

.hamburger-box {
width: 40px;
height: 24px;
display: inline-block;
position: relative; }

.hamburger-inner {
display: block;
top: 50%;
margin-top: -2px; }
.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {
    width: 40px;
    height: 4px;
    background-color: var(--theme);
    border-radius: 4px;
    position: absolute;
    transition-property: transform;
    transition-duration: 0.15s;
    transition-timing-function: ease; }
.hamburger-inner::before, .hamburger-inner::after {
    content: "";
    display: block; }
.hamburger-inner::before {
    top: -10px; }
.hamburger-inner::after {
    bottom: -10px; }

    .hamburger--spin .hamburger-inner {
transition-duration: 0.22s;
transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
.hamburger--spin .hamburger-inner::before {
    transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in; }
.hamburger--spin .hamburger-inner::after {
    transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--spin.is-active .hamburger-inner {
transform: rotate(225deg);
transition-delay: 0.12s;
transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
.hamburger--spin.is-active .hamburger-inner::before {
    top: 0;
    opacity: 0;
    transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out; }
.hamburger--spin.is-active .hamburger-inner::after {
    bottom: 0;
    transform: rotate(-90deg);
    transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1); }


.mobile-menu { position: fixed; inset: 0; background-color: var(--color-green); color: var(--color-white); z-index: 1000; font-family: var(--ff-rufina); display: none; justify-content: center; }
.mobile-menu-open .mobile-menu { display: flex;}
.mobile-menu__inner { padding: 60px 100px; width: max-content; }
.mobile-menu a { text-decoration: none; font-size: 40px; }
.mobile-menu ul { list-style: none; margin-bottom: 20px; }
.mobile-menu .link-btn a { padding: 0; }
.mobile-trigger:has(.hamburger.is-active) { display: block !important; position: fixed; z-index: 2000; top: 20px; right: 10px; }
.hamburger.is-active { --theme: var(--color-white)}

.section-getintouch { overflow: hidden; }
.section-getintouch .copy { font-family: var(--ff-lato); font-size: 18px; line-height: 1.25; color: #75777b; max-width: 540px; padding-block: 30px }
.section-getintouch .copy address { color: #015450; }
.section-getintouch .copy .button { min-width: 200px; }
.section-getintouch .thumb-map .thumb { max-width: 400px; margin-left: auto; }
.section-getintouch .thumb-map .thumb img { width: 100%; }
.obg { padding-block: 48px; position: relative; }
.obg::before { content: ''; position: absolute; top: 0; left: 0; width: 100vw; height: 100%; background: rgba(151, 189, 164, 0.35); z-index: -1; }
.mapiframe { position: absolute; bottom: 70px; left: -40px; width: 380px; height: 260px; }
.mapiframe iframe { width: 100%; height: 100%; }

.reviewsbxd-cardlists { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 15px; } 
.reviewsbxd-cardlists .review-item { border: 1px solid #979797; padding: 16px 32px; }
.section-patientreviews:has(.reviewsbxd-cardlists) { padding-bottom: 48px; }

@media(min-width: 992px) {
    .mobile-menu { display: none; }
    
}


@media (max-width: 991px) {
    .footer-top h2 { font-size: 30px;}
    .footer-top .button { margin-inline: auto 0; }
    .footer-menu { width: 100%; }
    .footer-main .logo { width: 100%; }
    .footer-main .social-media { width: 100%; }

    .section--homebanner { height: 500px; }
    .section--homebanner .section-title { font-size: 50px; }
    .section--homebanner + .section--ftrdblocks .ftrd-items { transform: initial;}
    .section--homebanner + .section--ftrdblocks { padding-block: 30px;}
    .ftrd-item { width: 100%; max-width: 500px; margin: 0 auto 30px;  }
    .review-item { padding: 30px; }

    .obg::before { left: 50%; transform: translateX(-50%);  }
    .mapiframe { left: 0; }
	.mobile-menu a { font-size: 24px; }
	.mobile-menu__inner { padding: 60px; }
}


@media (max-width: 575px) {
    .section-getintouch .thumb-map .thumb { max-width: 100%; margin-bottom: 30px; }
    .mapiframe { position: relative; width: 100%; bottom: initial; left: initial;  }
	
	
}