@font-face {
    font-family: gotham_bold;
    src: url(../fonts/gotham_bold.otf);
}

@font-face {
    font-family: gotham_bold_ita;
    src: url(../fonts/gotham_bold_italic.ttf);
}

@font-face {
    font-family: gotham_medium;
    src: url(../fonts/gotham_medium.otf);
}

:root {
    --primary-color: #eb0045;
    --secondary-color: #5841b5;
    --accent-color: #3a98fe;
    --yellow-color: #f88a06;
    --white-color: white;

    --ff-gb: gotham_bold;
    --ff-gbi: gotham_bold_ita;
    --ff-gm: gotham_medium;

    --fs-167: clamp(2.5rem, 4.175vw, 10rem);
    --fs-130: clamp(2rem, 3.25vw, 7.8rem);
    --fs-125: clamp(1.9rem, 3.125vw, 7.5rem);
    --fs-115: clamp(1.75rem, 2.875vw, 6.9rem);
    --fs-104: clamp(1.6rem, 2.6vw, 6.24rem);
    --fs-87: clamp(1.4rem, 2.1875vw, 5.22rem);
    --fs-83: clamp(1.3rem, 2.08325vw, 4.98rem);
    --fs-73: clamp(1.1rem, 1.825vw, 4.38rem);
}

/* Text Colors */

.color-white {
    color: var(--white-color);
}

.color-primary {
    color: var(--primary-color);
}

.color-secondary {
    color: var(--secondary-color);
}

.color-accent {
    color: var(--accent-color);
}

.color-yellow {
    color: var(--yellow-color);
}

/* Background Colors */

.bgc-primary {
    background-color: var(--primary-color) !important;
}

.bgc-secondary {
    background-color: var(--secondary-color);
}

.bgc-accent {
    background-color: var(--accent-color);
}

.bgc-yellow {
    background-color: var(--yellow-color);
}

/* Font family */

.ff-gb {
    font-family: var(--ff-gb);
}

.ff-gbi {
    font-family: var(--ff-gbi);
}

.ff-gm {
    font-family: var(--ff-gm);
}

.ff-m {
    font-family: "Montserrat", sans-serif;
}

/* Font weight */

.fw-400 {
    font-weight: 400;
}

.fw-500 {
    font-weight: 500;
}

.fw-600 {
    font-weight: 600;
}

.fw-700 {
    font-weight: 700;
}

.fw-800 {
    font-weight: 800;
}

/* Font size */
/* Base (desktop ~4000px) */
.fs-167 {
    font-size: var(--fs-167);
}

.fs-130 {
    font-size: var(--fs-130);
}

.fs-125 {
    font-size: var(--fs-125);
}

.fs-115 {
    font-size: var(--fs-115);
}

.fs-104 {
    font-size: var(--fs-104);
}

.fs-87 {
    font-size: var(--fs-87);
}

.fs-83 {
    font-size: var(--fs-83);
}

.fs-73 {
    font-size: var(--fs-73);
}

/* ≤1400px */
@media (max-width: 1400px) {
    :root {
        --fs-167: clamp(1.75rem, 6.5vw, 4rem);
        --fs-130: clamp(1.5rem, 5vw, 3.2rem);
        --fs-125: clamp(1.4rem, 4.8vw, 3rem);
        --fs-115: clamp(1.3rem, 4.4vw, 2.8rem);
        --fs-104: clamp(1.2rem, 4vw, 2.55rem);
        --fs-87: clamp(1.05rem, 3.3vw, 2.1rem);
        --fs-83: clamp(1rem, 3.15vw, 2rem);
        --fs-73: clamp(0.9rem, 2.8vw, 1.75rem);
    }
}

/* ≤1200px */
@media (max-width: 1200px) {
    :root {
        --fs-167: clamp(1.6rem, 7vw, 3.5rem);
        --fs-130: clamp(1.4rem, 5.5vw, 2.8rem);
        --fs-125: clamp(1.3rem, 5.3vw, 2.65rem);
        --fs-115: clamp(1.2rem, 4.85vw, 2.45rem);
        --fs-104: clamp(1.1rem, 4.4vw, 2.22rem);
        --fs-87: clamp(1rem, 3.65vw, 1.85rem);
        --fs-83: clamp(0.95rem, 3.475vw, 1.75rem);
        --fs-73: clamp(0.85rem, 3.1vw, 1.55rem);
    }
}

/* ≤992px */
@media (max-width: 992px) {
    :root {
        --fs-167: clamp(1.5rem, 7.5vw, 3rem);
        --fs-130: clamp(1.3rem, 6vw, 2.4rem);
        --fs-125: clamp(1.25rem, 5.8vw, 2.3rem);
        --fs-115: clamp(1.15rem, 5.3vw, 2.1rem);
        --fs-104: clamp(1.05rem, 4.8vw, 1.9rem);
        --fs-87: clamp(0.95rem, 4vw, 1.6rem);
        --fs-83: clamp(0.9rem, 3.8vw, 1.5rem);
        --fs-73: clamp(0.8rem, 3.4vw, 1.35rem);
    }
}

/* ≤576px */
@media (max-width: 576px) {
    :root {
        --fs-167: clamp(1.3rem, 9vw, 2.2rem);
        --fs-130: clamp(1.1rem, 7vw, 1.75rem);
        --fs-125: clamp(1.05rem, 6.8vw, 1.65rem);
        --fs-115: clamp(1rem, 6.2vw, 1.5rem);
        --fs-104: clamp(0.9rem, 5.6vw, 1.35rem);
        --fs-87: clamp(0.8rem, 4.7vw, 1.15rem);
        --fs-83: clamp(0.75rem, 4.5vw, 1.1rem);
        --fs-73: clamp(0.7rem, 4vw, 1rem);
    }
}

body {
    margin: 0 !important;
}

/* Header */
.logo img,
.footer-logo {
    width: max(100px, 19.5vw);
    transition: 1s;
}

.site-header {
    padding: 5vw 12.875vw 2vw;
    background-color: transparent;
    position: fixed;
    z-index: 1000;
    top: 0;
    width: 100%;
    transition: 0.25s;
}


.site-header.scrolled {
    background-color: rgba(255, 255, 255, 0.5);
    padding: 1vw 12.875vw 0.8vw;
}

.scrolled .logo img {
    width: max(80px, 10vw);
}


/* Hero section */

.hero_section {
    background: linear-gradient(#6bb2fe, #fff 80%);
    padding: 17.25vw 6.25vw 0 13.25vw;
}

.hero_section h1 p {
    margin-bottom: 0 !important;
}

.featured_images {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(10px, 1.04vw, 20px);
}

.featured_item img {
    width: auto;
    height: max(40px, 5.375vw);
    display: block;
    object-fit: contain;
}

.banner_butterfly_bg {
    width: 63.375vw;
}

.banner_butterfly {
    width: max(20px, 3.25vw);
    left: min(-4vw, -20px);
}

.primary-btn {
    padding: max(1.45vw, 10px) 1.6vw !important;
    display: block !important;
    width: fit-content;
    border-radius: 30px !important;
    text-wrap: nowrap;
}

.person_image>img {
    width: max(36.5vw, 200px);
}


.yt-video {
    background-color: #5942b5;
    padding: max(5.25vw, 40px) 0;
}

.yt-video .yt-thumbnail-wrapper {
    width: 75vw;
    height: 41.75vw;
    border-radius: 30px;
    display: block;
    margin: 0 auto;
    box-shadow: 0 0 30px #161163;
    position: relative;
    cursor: pointer;
    overflow: hidden;
}

.yt-video .yt-thumbnail-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Custom center play button */
.yt-thumbnail-wrapper .play-btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: max(70px, 8.125vw);
    height: max(70px, 8.125vw);
    background: #dfd5d7;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.yt-thumbnail-wrapper .play-btn::after {
    content: '';
    border-style: solid;
    border-width: max(1.625vw, 12px) 0 max(1.625vw, 12px) max(2.75vw, 22px);
    border-color: transparent transparent transparent #595556;
    margin-left: 4px;
}

/* YouTube branding bottom right */
.yt-thumbnail-wrapper .yt-brand {
    position: absolute;
    bottom: 14px;
    right: 18px;
    display: flex;
    align-items: center;
    gap: 6px;
    background: rgba(0, 0, 0, 0.55);
    border-radius: 4px;
    padding: 4px 8px;
}

.yt-thumbnail-wrapper .yt-brand span {
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    font-family: sans-serif;
}

.support_card {
    padding: 5vw 3.125vw;
    gap: 1.5vw;
}

.support_card img {
    width: max(80px, 15.75vw);
}

.sec_4 {
    background: linear-gradient(#75b7fe 30%, #3a98fe);
    padding: 4.25vw 9.75vw 0 13.25vw;
}

.white-coat_img img {
    width: max(200px, 33.75vw);
}

.sec_4 .flower {
    height: max(24px, 4.25vw);
    /* width: 4.25vw; */
    transform: translateX(-100%);
    left: -2vw;
}

.sec-6 {
    padding: 6vw 12.75vw;
    gap: 4.15vw;
}

.sec-6-left img {
    width: 21.625vw;
}

.left-content strong {
    color: var(--primary-color);
}

.left-content p {
    margin-bottom: 0;
}

.main-content h3 {
    color: #2e1e8e;
    font-size: clamp(1.9rem, 3.125vw, 7.5rem);
}

.main-content ul {
    margin: 0;

}

.main-content li {
    color: var(--secondary-color);
    font-size: clamp(1.4rem, 2.1875vw, 5.22rem);
}

.main-content li strong {
    color: var(--primary-color);
}

.who-for-section {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 3.25vw 13vw 3vw;
    position: relative;
}

.who-for-heading {
    margin-bottom: max(2vw, 20px);
}

/* Flex container — wraps automatically when items are added */
.who-for-flex {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0 5vw;
    /* max-width: 1100px; */
    margin: 0 auto;
}

.who-for-item {
    flex: 0 0 auto;
    width: max(180px, 19.375vw);
    aspect-ratio: 1 / 1;
}

/* Circle uses the PNG from ACF as background */
.circle-wrapper {
    width: 100%;
    height: 100%;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 5% 8% 0;
    position: relative;
    box-sizing: border-box;
}

/* Exclamation mark sitting on top edge */
.exclaim {
    position: absolute;
    top: 6%;
    left: 50%;
    transform: translateX(-50%);
    color: #fff;
    font-size: clamp(18px, 2.5vw, 30px);
    font-weight: 900;
    font-family: inherit;
    line-height: 1;
}

.circle-wrapper p {
    line-height: 1.3;
    word-break: break-word;
}

.journey_story h3 {
    color: var(--primary-color);
    font-size: var(--fs-130);
    font-family: var(--ff-gb);
}

.journey_story>p {
    color: var(--secondary-color);
    font-size: var(--fs-83);
    font-family: var(--ff-gm);
    margin: max(20px, .75vw) 0;
}

.journey_story blockquote {
    font-family: var(--ff-gbi);
    font-size: var(--fs-83);
    color: var(--primary-color);
    border-top: 6px solid var(--primary-color);
    border-bottom: 6px solid var(--primary-color);
    margin: 0;
    padding: max(2vw, 20px) 0 max(2vw, 20px) max(2.5vw, 24px);
}

.journey_story blockquote p {
    margin: 0;
}

.journey_sec {
    padding: 3.25vw 13.125vw;
}

.journey_sec>div.d-flex {
    gap: 4vw;
}

.profile-img {
    height: 21.25vw;
    width: 21.25vw;
}

.name .flower {
    height: max(24px, 4.25vw);
    width: auto;
    transform: translateX(min(-24px, -4.25vw));
    left: -1vw;
}

.quote_text p {
    margin: 0;
}

.book_sec {
    padding: 3.625vw 5.25vw;
    background: linear-gradient(#75b7fe, #3a98fe 30%);
}

.book_sec p {
    margin: 0;
}

.book_img {
    width: max(150px, 18.5vw);
    margin: 3.625vw 0 3.125vw;

}

.book_img img {
    width: 100%;
    height: auto;
    filter: drop-shadow(8px 5px 10px rgba(0, 0, 0, 0.5));
}

.testimonials_sec {
    position: relative;
    padding: max(30px, 3.125vw) 3.75vw;
}

.testimonials-swiper {
    width: 100%;
    overflow: hidden;
}

.swiper-wrapper {
    align-items: stretch !important;
}

.swiper-slide {
    display: flex;
    height: auto !important;
    /* swiper sets height inline, override it */
    margin-right: 2px;
}

/* Divider between slides — only when 2 are visible */
@media (min-width: 768px) {
    .swiper-slide:not(:last-child) .testimonial_item {
        border-right: 3px solid white;
        padding-right: 55px;
    }

    .swiper-slide:not(:first-child) .testimonial_item {
        padding-left: 55px;
    }
}

.testimonial_item {
    display: flex;
    flex-direction: column;
    padding: 20px 40px;
    width: 100%;
    text-align: center;
    height: 100%;
    /* fill the stretched slide */
}

.testimonial_review {
    margin-bottom: 30px;
    font-size: max(16px, 1.5vw);
}

.testimonial_author {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    color: #f8d8d6;
}


.plus_icon {
    width: max(30px, 3.75vw);
    height: auto;
}

/* Arrows */
.testimonial_prev,
.testimonial_next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    background: none;
    border: none;
    cursor: pointer;
    padding: 10px;
    display: flex;
    align-items: center;
}

.testimonial_prev {
    left: 0px;
}

.testimonial_next {
    right: 0px;
}

.testimonial_prev img,
.testimonial_next img {
    height: max(28px, 3vw);
    width: auto;
}

/* Disabled state */
.testimonial_prev.swiper-button-disabled,
.testimonial_next.swiper-button-disabled {
    opacity: 0.3;
    cursor: not-allowed;
    pointer-events: none;
}

footer {
    background: linear-gradient(#3a98fe, #fff 75%);
    padding: 4.375vw 13.5vw 0;
}

.footer_contact_content p {
    font-size: var(--fs-87);
}

.footer_contact_content h4 {
    font-size: var(--fs-125);
}

.footer_content {
    line-height: 1.25;
}

.footer_content p {
    margin-bottom: max(4vw, 20px);
}

.footer_content strong {
    color: var(--primary-color);
    line-height: 1 !important;

}

.footer_image {
    height: max(34vw, 250px);
    width: auto;
}

.social-links a {
    display: flex;
    justify-content: center;
    align-items: center;
    height: max(40px, 2.7vw);
    width: max(40px, 2.7vw);
    transition: 0.25s;
	text-decoration: none;
}

.social-links a i {
    font-size: max(16px, 1.1vw);
}

.social-links a:hover {
    background: var(--primary-color);
}

.cf7-field-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 20px;
}

.cf7-field-group p {
    margin: 0;
}

.cf7-field-group .wpcf7-form-control-wrap {
    width: 100%;
}

.cf7-field-group input,
.cf7-field-group textarea {
    width: 100%;
    background-color: #d8eaff;
    border: none;
    border-radius: 12px !important;
    padding: 16px 20px !important;
    font-size: 1rem;
    color: #333;
    outline: none;
    box-sizing: border-box;
    box-shadow: 0 1px 3px #5288c2;
}

.cf7-field-group textarea {
    height: 150px;
    resize: none;
}

.cf7-field-group input:focus,
.cf7-field-group textarea:focus {
    background-color: #e6effa;
}

/* Submit button */
.wpcf7-submit {
    width: 100%;
    padding: 18px;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    letter-spacing: 0.02em;
    transition: opacity 0.2s ease;
}

.wpcf7-submit:hover {
    opacity: 0.9;
}

/* CF7 error/success messages */
.wpcf7-not-valid-tip {
    color: var(--primary-color);
    font-size: 0.8rem;
    margin-top: 4px;
}

.wpcf7 .wpcf7-response-output {
    border: none;
    border-radius: 8px;
    padding: 12px 16px;
    margin-top: 10px;
    font-size: 0.9rem;
}

#wpcf7-f6-o1 .wpcf7-form p {
    margin-bottom: 0;
}

/* ── Responsive ── */

@media (min-width: 1300px) and (max-width: 1600px) {
    body{
        zoom: 0.85;
    }
    
}

@media (max-width: 1400px) {
    .circle-wrapper p {
        font-size: clamp(20px, 2vw, 28px);
    }
}

@media (max-width: 991px) {
    footer {
        padding: 4.375vw 5vw 0;
    }

    .who-for-section {
        padding: 32px 0 80px;

    }

    .circle-wrapper p {
        font-size: 18px;
    }

}

/* 4 items or fewer on tablet, stacks to 2-col on small */
@media (max-width: 768px) {
    .who-for-item {
        width: clamp(140px, 38vw, 200px);
    }

    .who-for-flex {
        gap: 20px;
    }

    .who-for-section {
        padding: 32px 0 40px;
    }

}

@media (max-width: 767px) {
    .swiper-wrapper {
        align-items: center !important;
    }

    .swiper-slide {
        height: auto !important;
    }
}

/* Mobile */
@media(max-width: 575px) {

    .featured_images {
        grid-template-columns: repeat(3, 1fr);
    }

    .hero_section {
        padding: 17.25vw 16px 0 32px;
    }

    .site-header {
        padding: 5vw 32px 2vw;
    }

    .yt-video .yt-thumbnail-wrapper {
        width: 90%;
        height: auto;
    }

    .sec_4 {
        padding: 4.25vw 16px 0 32px;
    }

    .sec-6 {
        padding: 6vw 16px;
    }

    .who-for-section {
        padding: 32px 0 24px;
    }

    .journey_sec {
        padding: 20px 16px 28px 28px;
    }

    .book_sec {
        padding: 24px 16px 28px;
    }

    .circle-wrapper p {
        font-size: 16px;
    }

}

@media (max-width: 480px) {
    .who-for-item {
        width: clamp(130px, 44vw, 180px);
    }

    .who-for-flex {
        gap: 14px;
    }
}