/* ============================================================
   LIFED PROGRAM DETAILS V2
   HERO
============================================================ */
:root {
    --pdv2-brand: #00ae9d;
    --pdv2-brand-dark: #008f82;
    --pdv2-brand-soft: #eefaf8;
}

/* ============================================================
   HERO WRAPPER
============================================================ */

.pdv2-hero {
    padding:
        28px
        0
        0px;

    background: #ffffff;
    color: #111111;
}



/* ============================================================
   HERO GALLERY
============================================================ */

.pdv2-hero-gallery {
    position: relative;

    display: grid;

    grid-template-columns:
        minmax(0, 2fr)
        minmax(300px, 1fr);

    gap: 6px;

    width: 100%;

    aspect-ratio: 16 / 5.6;

    overflow: hidden;

    border-radius: 18px;

    background: #f3f3f3;
    
}


.pdv2-hero-gallery--single {
    grid-template-columns: 1fr;
}


/* ============================================================
   MAIN IMAGE
============================================================ */

.pdv2-hero-gallery__main {
    position: relative;

    min-width: 0;
    min-height: 0;

    overflow: hidden;

    background: #eeeeee;
}


/* ============================================================
   ALL GALLERY IMAGES
============================================================ */

.pdv2-hero-gallery__image {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform 400ms cubic-bezier(
            0.22,
            1,
            0.36,
            1
        );
}


@media (hover: hover) {

    .pdv2-hero-gallery__main:hover
    .pdv2-hero-gallery__image,

    .pdv2-hero-gallery__side-item:hover
    .pdv2-hero-gallery__image {
        transform: scale(1.018);
    }

}



/* ============================================================
   SIDE GALLERY
============================================================ */

.pdv2-hero-gallery__side {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    grid-template-rows:
        repeat(2, minmax(0, 1fr));

    gap: 6px;

    min-width: 0;
    min-height: 0;
}


.pdv2-hero-gallery__side-item {
    position: relative;

    min-width: 0;
    min-height: 0;

    overflow: hidden;

    background: #eeeeee;
}



/* ============================================================
   VIEW ALL PHOTOS BUTTON
============================================================ */

.pdv2-hero-gallery__view-button {
    position: absolute;

    right: 16px;
    bottom: 16px;

    z-index: 4;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 8px;

    min-height: 42px;

    padding:
        0
        15px;

    border: 1px solid
        rgba(17, 17, 17, 0.14);

    border-radius: 10px;

    background:
        rgba(255, 255, 255, 0.96);

    color: #111111;

    box-shadow:
        0 3px 14px
        rgba(0, 0, 0, 0.10);

    -webkit-backdrop-filter:
        blur(12px);

    backdrop-filter:
        blur(12px);

    font-family: inherit;

    font-size: 13px;
    font-weight: 600;
    line-height: 1;

    cursor: pointer;

    transition:
        background-color 160ms ease,
        transform 160ms ease,
        box-shadow 160ms ease;
}


.pdv2-hero-gallery__view-button:hover {
    background: #ffffff;

    transform:
        translateY(-1px);

    box-shadow:
        0 5px 18px
        rgba(0, 0, 0, 0.14);
}


.pdv2-hero-gallery__view-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 18px;
    height: 18px;
}


.pdv2-hero-gallery__view-icon svg {
    display: block;

    width: 100%;
    height: 100%;
}



/* ============================================================
   HERO CONTENT
============================================================ */

.pdv2-hero-content {
    padding:
        10px
        0
        25px;
}


.pdv2-hero-title {
    max-width: 1050px;

    margin: 0;

    color: #111111;

    font-size:
        clamp(
            2.15rem,
            3.15vw,
            2.35rem
        );

    font-weight: 700;

    line-height: 1.08;

    letter-spacing: -0.038em;
}



/* ============================================================
   FULL SCREEN GALLERY MODAL
============================================================ */

.pdv2-gallery-modal {
    --bs-modal-bg: #0b0b0b;

    background: #0b0b0b;
}


.pdv2-gallery-modal
.modal-dialog {
    margin: 0;
}


.pdv2-gallery-modal
.modal-content {
    display: flex;
    flex-direction: column;

    height: 100%;

    border: 0;
    border-radius: 0;

    background: #0b0b0b;

    color: #ffffff;
}



/* ============================================================
   MODAL HEADER
============================================================ */

.pdv2-gallery-modal__header {
    position: relative;

    z-index: 5;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 24px;

    min-height: 84px;

    padding:
        18px
        30px;

    border-bottom:
        1px solid
        rgba(255, 255, 255, 0.09);

    background: #0b0b0b;
}


.pdv2-gallery-modal__heading {
    min-width: 0;
}


.pdv2-gallery-modal__eyebrow {
    display: block;

    margin-bottom: 4px;

    color:
        rgba(255, 255, 255, 0.55);

    font-size: 10px;
    font-weight: 600;

    letter-spacing: 0.12em;

    text-transform: uppercase;
}


.pdv2-gallery-modal__title {
    max-width: 760px;

    margin: 0;

    overflow: hidden;

    color: #ffffff;

    font-size: 16px;
    font-weight: 500;

    line-height: 1.4;

    text-overflow: ellipsis;
    white-space: nowrap;
}


.pdv2-gallery-modal__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 auto;

    width: 42px;
    height: 42px;

    padding: 0;

    border:
        1px solid
        rgba(255, 255, 255, 0.16);

    border-radius: 50%;

    background:
        rgba(255, 255, 255, 0.05);

    color: #ffffff;

    cursor: pointer;

    transition:
        background-color 160ms ease,
        border-color 160ms ease;
}


.pdv2-gallery-modal__close:hover {
    border-color:
        rgba(255, 255, 255, 0.3);

    background:
        rgba(255, 255, 255, 0.1);
}


.pdv2-gallery-modal__close svg {
    width: 20px;
    height: 20px;
}



/* ============================================================
   GALLERY VIEWER
============================================================ */

.pdv2-gallery-viewer {
    display: flex;
    flex-direction: column;

    flex: 1;

    min-height: 0;
}



/* ============================================================
   MAIN GALLERY STAGE
============================================================ */

.pdv2-gallery-viewer__stage {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    flex: 1;

    min-height: 0;

    padding:
        22px
        90px;

    overflow: hidden;
}


.pdv2-gallery-viewer__main-image {
    display: block;

    width: auto;
    height: auto;

    max-width: 100%;
    max-height: 100%;

    object-fit: contain;

    user-select: none;
}



/* ============================================================
   COUNTER
============================================================ */

.pdv2-gallery-viewer__counter {
    position: absolute;

    right: 24px;
    bottom: 20px;

    display: inline-flex;
    align-items: center;

    gap: 5px;

    min-height: 34px;

    padding:
        0
        11px;

    border:
        1px solid
        rgba(255, 255, 255, 0.13);

    border-radius: 999px;

    background:
        rgba(0, 0, 0, 0.55);

    color:
        rgba(255, 255, 255, 0.9);

    -webkit-backdrop-filter:
        blur(10px);

    backdrop-filter:
        blur(10px);

    font-size: 12px;
    font-weight: 500;
}


.pdv2-gallery-viewer__counter-divider {
    color:
        rgba(255, 255, 255, 0.35);
}



/* ============================================================
   PREVIOUS / NEXT
============================================================ */

.pdv2-gallery-viewer__nav {
    position: absolute;

    top: 50%;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 48px;
    height: 48px;

    padding: 0;

    border:
        1px solid
        rgba(255, 255, 255, 0.13);

    border-radius: 50%;

    background:
        rgba(255, 255, 255, 0.07);

    color: #ffffff;

    transform:
        translateY(-50%);

    cursor: pointer;

    -webkit-backdrop-filter:
        blur(8px);

    backdrop-filter:
        blur(8px);

    transition:
        background-color 160ms ease,
        border-color 160ms ease;
}


.pdv2-gallery-viewer__nav:hover {
    border-color:
        rgba(255, 255, 255, 0.3);

    background:
        rgba(255, 255, 255, 0.14);
}


.pdv2-gallery-viewer__nav--prev {
    left: 24px;
}


.pdv2-gallery-viewer__nav--next {
    right: 24px;
}


.pdv2-gallery-viewer__nav svg {
    width: 21px;
    height: 21px;
}



/* ============================================================
   THUMBNAILS
============================================================ */

.pdv2-gallery-thumbnails {
    display: flex;
    align-items: center;

    gap: 8px;

    flex: 0 0 auto;

    padding:
        14px
        24px
        18px;

    overflow-x: auto;

    border-top:
        1px solid
        rgba(255, 255, 255, 0.08);

    scrollbar-width: none;
}


.pdv2-gallery-thumbnails::-webkit-scrollbar {
    display: none;
}


.pdv2-gallery-thumbnail {
    position: relative;

    flex:
        0
        0
        82px;

    width: 82px;
    height: 58px;

    padding: 0;

    overflow: hidden;

    border:
        2px solid
        transparent;

    border-radius: 7px;

    background: #171717;

    opacity: 0.56;

    cursor: pointer;

    transition:
        opacity 150ms ease,
        border-color 150ms ease;
}


.pdv2-gallery-thumbnail:hover {
    opacity: 0.82;
}


.pdv2-gallery-thumbnail.is-active {
    border-color: #ffffff;

    opacity: 1;
}


.pdv2-gallery-thumbnail img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}



/* ============================================================
   TABLET
============================================================ */

@media (max-width: 991.98px) {

    .pdv2-hero {
        padding-top: 22px;
    }


    .pdv2-hero-gallery {
        grid-template-columns:
            minmax(0, 1.7fr)
            minmax(260px, 1fr);

        aspect-ratio: 16 / 6;
    }


    .pdv2-hero-content {
        padding-top: 25px;
    }


    .pdv2-gallery-viewer__stage {
        padding:
            18px
            72px;
    }

}



/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 767.98px) {

    .pdv2-hero {
        padding:
            14px
            0
            12px;
    }


    .pdv2-hero-gallery {
        display: block;

        aspect-ratio: 4 / 3;

        border-radius: 14px;
    }


    .pdv2-hero-gallery__main {
        width: 100%;
        height: 100%;
    }


    /*
     * Mobile uses one strong hero image.
     * Supporting images remain accessible
     * through the gallery modal.
     */

    .pdv2-hero-gallery__side {
        display: none;
    }


    .pdv2-hero-gallery__view-button {
        right: 12px;
        bottom: 12px;

        min-height: 38px;

        padding:
            0
            12px;

        border-radius: 9px;

        font-size: 12px;
    }


    .pdv2-hero-gallery__view-icon {
        width: 16px;
        height: 16px;
    }


    .pdv2-hero-content {
        padding:
            22px
            2px
            8px;
    }


    .pdv2-hero-title {
        font-size:
            clamp(
                1.8rem,
                8vw,
                2.35rem
            );

        line-height: 1.12;

        letter-spacing: -0.032em;
    }


    /* Modal */

    .pdv2-gallery-modal__header {
        min-height: 70px;

        padding:
            14px
            16px;
    }


    .pdv2-gallery-modal__eyebrow {
        font-size: 9px;
    }


    .pdv2-gallery-modal__title {
        max-width:
            calc(100vw - 100px);

        font-size: 13px;
    }


    .pdv2-gallery-modal__close {
        width: 38px;
        height: 38px;
    }


    .pdv2-gallery-viewer__stage {
        padding:
            12px
            10px
            58px;
    }


    .pdv2-gallery-viewer__nav {
        top: auto;
        bottom: 12px;

        width: 40px;
        height: 40px;

        transform: none;

        background:
            rgba(255, 255, 255, 0.1);
    }


    .pdv2-gallery-viewer__nav--prev {
        left: 14px;
    }


    .pdv2-gallery-viewer__nav--next {
        right: 14px;
    }


    .pdv2-gallery-viewer__counter {
        right: 50%;
        bottom: 15px;

        transform:
            translateX(50%);
    }


    .pdv2-gallery-thumbnails {
        gap: 6px;

        padding:
            10px
            12px
            14px;
    }


    .pdv2-gallery-thumbnail {
        flex-basis: 66px;

        width: 66px;
        height: 48px;

        border-radius: 6px;
    }

}



/* ============================================================
   VERY SMALL MOBILE
============================================================ */

@media (max-width: 420px) {

    .pdv2-hero-gallery {
        aspect-ratio: 1 / 1;
    }


    .pdv2-hero-title {
        font-size: 1.75rem;
    }


    .pdv2-hero-gallery__view-button {
        max-width:
            calc(100% - 24px);
    }

}


/* ============================================================
   GALLERY MODAL
   STACKING / BACKDROP FIX
============================================================ */

/*
 * Gallery must sit above the website header,
 * sticky navigation and Bootstrap backdrop.
 */
.pdv2-gallery-modal {
    position: fixed !important;

    inset: 0 !important;

    z-index: 20002 !important;

    width: 100vw !important;
    height: 100dvh !important;

    padding: 0 !important;

    background: #0b0b0b !important;
}


.pdv2-gallery-modal
.modal-dialog {
    width: 100vw !important;
    max-width: none !important;

    height: 100dvh !important;
    max-height: none !important;

    margin: 0 !important;
}


.pdv2-gallery-modal
.modal-content {
    width: 100% !important;
    height: 100% !important;

    max-height: none !important;

    background: #0b0b0b !important;
}


/*
 * The gallery itself must always remain
 * above Bootstrap's backdrop.
 */
body.pdv2-gallery-open
.modal-backdrop {
    z-index: 20000 !important;
}


/*
 * Ensure the gallery image is never dimmed
 * by inherited opacity/filter rules.
 */
.pdv2-gallery-viewer,
.pdv2-gallery-viewer__stage,
.pdv2-gallery-viewer__main-image {
    opacity: 1 !important;

    filter: none !important;
}


.pdv2-gallery-viewer__main-image {
    position: relative;

    z-index: 2;
}


/* ============================================================
   PROGRAM DETAILS V2
   OVERVIEW / PROGRAM STRUCTURE
============================================================ */


/* ============================================================
   GENERAL SECTION
============================================================ */

.pdv2-section {
    position: relative;

    margin: 0;
    /*padding:
        0
        0
        58px;

    border-bottom:
        1px solid #e8e8e8;*/

    color: #111111;
}


.pdv2-section + .pdv2-section {
    padding-top: 2px;
    border-top: 1px solid #ddd;
    padding-top: 30px;
}


.pdv2-section__header {
    max-width: 760px;
}


.pdv2-section__eyebrow {
    margin-bottom: 10px;

    color: var(--pdv2-brand);

    font-size: 14px;
    font-weight: 700;

    line-height: 1.3;

    letter-spacing: 0.11em;

    text-transform: uppercase;
}


.pdv2-section__title {
    max-width: 760px;

    /*margin:
        0
        0
        22px;*/

    color: #111111;

    font-size:
        clamp(
            1.65rem,
            2.3vw,
            1.35rem
        );

    font-weight: 600;

    line-height: 1.18;

    letter-spacing: -0.03em;
}


.pdv2-section__intro {
    max-width: 700px;

    margin:
        -4px
        0
        30px;

    color: #606060;

    font-size: 16px;
    font-weight: 400;

    line-height: 1.52;
}


.pdv2-section__body {
    max-width: 760px;

    color: #505050;

    font-size: 16px;
    font-weight: 400;

    line-height: 1.52;
}



/* ============================================================
   OVERVIEW EXPAND / COLLAPSE
============================================================ */

.pdv2-expandable {
    position: relative;

    max-width: 760px;
}


.pdv2-expandable__content {
    position: relative;
}


.pdv2-expandable.is-collapsed
.pdv2-expandable__content {
    max-height:
        var(
            --pdv2-collapsed-height,
            210px
        );

    overflow: hidden;
}


.pdv2-expandable.is-collapsed
.pdv2-expandable__content::after {
    content: "";

    position: absolute;

    left: 0;
    right: 0;
    bottom: 0;

    height: 86px;

    pointer-events: none;

    background:
        linear-gradient(
            to bottom,
            rgba(255, 255, 255, 0),
            rgba(255, 255, 255, 0.92) 68%,
            #ffffff 100%
        );
}


.pdv2-expandable__toggle {
    display: inline-flex;
    align-items: center;

    gap: 5px;

    margin-top: 16px;

    padding: 0;

    border: 0;

    background: transparent;

    color: #111111;

    font-family: inherit;

    font-size: 13px;
    font-weight: 600;

    line-height: 1;

    cursor: pointer;
}


.pdv2-expandable__toggle[hidden] {
    display: none !important;
}


.pdv2-expandable__toggle svg {
    width: 17px;
    height: 17px;

    transition:
        transform 180ms ease;
}


.pdv2-expandable.is-expanded
.pdv2-expandable__toggle svg {
    transform: rotate(180deg);
}



/* ============================================================
   TAKEAWAY
============================================================ */

.pdv2-takeaway {
    display: grid;

    grid-template-columns:
        2px
        minmax(0, 1fr);

    gap: 22px;

    max-width: 760px;

    margin-top: 38px;
}


.pdv2-takeaway__line {
    width: 2px;

    background: #111111;
}


.pdv2-takeaway__content {
    padding:
        3px
        0;
}


.pdv2-takeaway__eyebrow {
    margin-bottom: 7px;

    color: var(--pdv2-brand);

    font-size: 14px;
    font-weight: 700;

    letter-spacing: 0.1em;

    text-transform: uppercase;
}


.pdv2-takeaway__title {
    margin:
        0
        0
        8px;

    color: #111111;

    font-size: 18px;
    font-weight: 600;

    line-height: 1.35;
}


.pdv2-takeaway__text {
    max-width: 670px;

    margin: 0;

    color: #5b5b5b;

    font-size: 16px;
    line-height: 1.52;
}



/* ============================================================
   WHO IS THIS FOR
============================================================ */

.pdv2-fit {
    max-width: 780px;

    margin-top: 40px;
    border-top: 1px solid #ddd;
    padding-top: 30px;
}


.pdv2-fit__header {
    margin-bottom: 24px;
}


.pdv2-fit__title {
    max-width: 630px;

    margin: 0;

    color: #111111;

    font-size: clamp(1.65rem, 2.3vw, 1.35rem);
    font-weight: 600;

    line-height: 1.4;

    letter-spacing: -0.018em;
}


.pdv2-fit__grid {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap: 14px;
}



/* ============================================================
   FIT CARD
============================================================ */

.pdv2-fit-card {
    padding: 22px;

    border:
        1px solid #e6e6e6;

    border-radius: 14px;

    background: #fafafa;
}


.pdv2-fit-card__head {
    display: flex;

    align-items: flex-start;

    gap: 12px;

    margin-bottom: 20px;
}


.pdv2-fit-card__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex:
        0
        0
        38px;

    width: 38px;
    height: 38px;

    border:
        1px solid #e4e4e4;

    border-radius: 50%;

    background: #ffffff;

    color: #111111;
}


.pdv2-fit-card__icon svg {
    width: 18px;
    height: 18px;
}


.pdv2-fit-card__label {
    margin-bottom: 3px;

    color: #111111;

    font-size: 15px;
    font-weight: 600;
}


.pdv2-fit-card__description {
    color: #858585;

    font-size: 14px;

    line-height: 1.5;
}



/* ============================================================
   FIT TAGS
============================================================ */

.pdv2-fit-tags {
    display: flex;

    flex-wrap: wrap;

    gap: 7px;
}


.pdv2-fit-tag {
    display: inline-flex;

    align-items: center;

    min-height: 31px;

    padding:
        6px
        10px;

    border:
        1px solid #e3e3e3;

    border-radius: 999px;

    background: #ffffff;

    color: #333333;

    font-size: 13px;
    font-weight: 500;

    line-height: 1.25;
}



/* ============================================================
   PROGRAM STRUCTURE
============================================================ */

.pdv2-structure {
    color: #111111;
}



/* ============================================================
   BOOKING GUIDE
============================================================ */

.pdv2-booking-guide {
    display: grid;

    grid-template-columns:
        44px
        minmax(0, 1fr);

    gap: 16px;

    max-width: 760px;

    margin-top: 8px;
}


.pdv2-booking-guide__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 44px;
    height: 44px;

    border:
        1px solid #dfdfdf;

    border-radius: 50%;

    background: #ffffff;

    color: #111111;
}


.pdv2-booking-guide__icon svg {
    width: 19px;
    height: 19px;
}


.pdv2-booking-guide__title {
    margin:
        1px
        0
        8px;

    color: #111111;

    font-size: 17px;
    font-weight: 600;

    line-height: 1.4;
}


.pdv2-booking-guide__text {
    max-width: 680px;

    color: #5e5e5e;

    font-size: 15px;

    line-height: 1.75;
}



/* ============================================================
   PROGRAM STRUCTURE FACTS
============================================================ */

.pdv2-structure-facts {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap: 1px;

    max-width: 760px;

    margin-top: 30px;

    overflow: hidden;

    border:
        1px solid #e5e5e5;

    border-radius: 12px;

    background: #e5e5e5;
}


.pdv2-structure-fact {
    display: flex;

    align-items: center;

    gap: 12px;

    min-height: 90px;

    padding:
        17px
        19px;

    background: #ffffff;
}


.pdv2-structure-fact__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex:
        0
        0
        36px;

    width: 36px;
    height: 36px;

    border-radius: 50%;

    background: #f6f6f6;

    color: #111111;
}


.pdv2-structure-fact__icon svg {
    width: 17px;
    height: 17px;
}


.pdv2-structure-fact__label {
    margin-bottom: 3px;

    color: #888888;

    font-size: 11px;
    font-weight: 500;

    line-height: 1.3;
}


.pdv2-structure-fact__value {
    color: #111111;

    font-size: 14px;
    font-weight: 600;

    line-height: 1.4;
}


.pdv2-structure-fact__dot {
    padding:
        0
        3px;

    color: #aaaaaa;
}



/* ============================================================
   NON CLINICAL NOTICE
============================================================ */

.pdv2-program-notice {
    display: flex;

    align-items: flex-start;

    gap: 10px;

    max-width: 760px;

    margin-top: 20px;

    padding:
        14px
        16px;

    border:
        1px solid #ececec;

    border-radius: 10px;

    background: #f8f8f8;
}


.pdv2-program-notice__icon {
    display: inline-flex;

    flex:
        0
        0
        18px;

    margin-top: 1px;

    color: #666666;
}


.pdv2-program-notice__icon svg {
    width: 18px;
    height: 18px;
}


.pdv2-program-notice__text {
    margin: 0;

    color: #686868;

    font-size: 12.5px;

    line-height: 1.6;
}



/* ============================================================
   TABLET
============================================================ */

@media (max-width: 991.98px) {

    .pdv2-section {
        padding-bottom: 50px;
    }


    .pdv2-section + .pdv2-section {
        padding-top: 50px;
    }


    .pdv2-fit__grid {
        grid-template-columns: 1fr;
    }

}



/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 767.98px) {

    .pdv2-section {
        padding-bottom: 40px;
    }


    .pdv2-section + .pdv2-section {
        padding-top: 40px;
    }


    .pdv2-section__eyebrow {
        margin-bottom: 8px;

        font-size: 9.5px;
    }


    .pdv2-section__title {
        margin-bottom: 17px;

        font-size: 24px;

        line-height: 1.25;
    }


    .pdv2-section__intro,
    .pdv2-section__body {
        font-size: 15px;

        line-height: 1.72;
    }


    .pdv2-takeaway {
        gap: 16px;

        margin-top: 30px;
    }


    .pdv2-fit {
        margin-top: 40px;
    }


    .pdv2-fit__title {
        font-size: 19px;
    }


    .pdv2-fit-card {
        padding: 18px;
    }


    .pdv2-booking-guide {
        grid-template-columns: 1fr;

        gap: 13px;
    }


    .pdv2-structure-facts {
        grid-template-columns: 1fr;
    }


    .pdv2-structure-fact {
        min-height: 76px;

        padding:
            14px
            16px;
    }


    .pdv2-program-notice {
        padding:
            13px
            14px;
    }

}

/* ============================================================
   PROGRAM DETAILS V2
   SUMMARY + STICKY NAVIGATION
============================================================ */


/* ============================================================
   PROGRAM SUMMARY
============================================================ */

.pdv2-summary {
    padding:
        25px
        0
        26px;

    background: #ffffff;
}


.pdv2-summary__items {
    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap:
        8px
        10px;
}



/* ============================================================
   SUMMARY ITEM
============================================================ */

.pdv2-summary-item {
    display: inline-flex;

    align-items: center;

    gap: 8px;

    min-height: 38px;

    padding:
        7px
        12px;

    border:
        1px solid #e5e5e5;

    border-radius: 999px;

    background: #ffffff;

    color: #222222;

    font-size: 13.5px;
    font-weight: 500;

    line-height: 1.3;

    white-space: nowrap;
}


.pdv2-summary-item__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex:
        0
        0
        17px;

    width: 17px;
    height: 17px;

    color: #111111;
}


.pdv2-summary-item__icon svg {
    display: block;
    width: 100%;
    height: 100%;
    color: var(--pdv2-brand);
}


.pdv2-summary-item__text {
    display: inline;

    min-width: 0;
}


.pdv2-summary-item__separator {
    display: inline-block;

    padding:
        0
        3px;

    color: #aaaaaa;
}



/* ============================================================
   STICKY SUBNAV WRAPPER
============================================================ */

.pdv2-subnav-wrapper {
    position: sticky;

    /*
     * If your global website header is fixed,
     * we can adjust this value later.
     */

    top:
        var(
            --pdv2-subnav-top,
            0px
        );

    z-index: 80;

    width: 100%;

    border-top:
        1px solid #eeeeee;

    border-bottom:
        1px solid #e5e5e5;

    background:
        rgba(
            255,
            255,
            255,
            0.96
        );

    -webkit-backdrop-filter:
        blur(14px);

    backdrop-filter:
        blur(14px);
}



/* ============================================================
   SUBNAV
============================================================ */

.pdv2-subnav {
    position: relative;

    display: flex;

    align-items: center;

    gap: 30px;

    width: 100%;

    min-height: 58px;

    margin: 0;
    padding: 0;

    overflow-x: auto;
    overflow-y: hidden;

    overscroll-behavior-inline:
        contain;

    scroll-behavior: smooth;

    scrollbar-width: none;
}


.pdv2-subnav::-webkit-scrollbar {
    display: none;
}



/* ============================================================
   SUBNAV LINK
============================================================ */

.pdv2-subnav__link {
    position: relative;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 auto;

    min-height: 58px;

    padding: 0;

    border: 0;

    color: #777777;

    font-family: inherit;

    font-size: 15px;
    font-weight: 500;

    line-height: 1;

    text-decoration: none;

    white-space: nowrap;

    transition:
        color 160ms ease;
}


.pdv2-subnav__link:hover {
    color: #111111;

    text-decoration: none;
}



/* ============================================================
   ACTIVE LINK
============================================================ */

.pdv2-subnav__link::after {
    content: "";

    position: absolute;

    left: 0;
    right: 0;
    bottom: -1px;

    height: 3px;

    background: var(--pdv2-brand);

    transform: scaleX(0);

    transform-origin: center;

    transition:
        transform 180ms ease;
}


.pdv2-subnav__link.active {
    color: #111111;

    font-weight: 600;
}


.pdv2-subnav__link.active::after {
    transform: scaleX(1);
}



/* ============================================================
   TABLET
============================================================ */

@media (max-width: 991.98px) {

    .pdv2-summary {
        padding-bottom: 22px;
    }


    .pdv2-subnav {
        gap: 25px;
    }

}



/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 767.98px) {

    .pdv2-summary {
        padding:
            2px
            0
            18px;
    }


    .pdv2-summary__items {
        gap: 6px;
    }


    .pdv2-summary-item {
        min-height: 34px;

        padding:
            6px
            10px;

        gap: 6px;

        font-size: 11.5px;
    }


    .pdv2-summary-item__icon {
        flex-basis: 15px;

        width: 15px;
        height: 15px;
    }



    /*
     * Let navigation reach the viewport edge
     * on mobile so horizontal scrolling feels
     * natural.
     */

    .pdv2-subnav-container {
        max-width: none;

        padding-left: 0;
        padding-right: 0;
    }


    .pdv2-subnav {
        min-height: 52px;

        gap: 23px;

        padding:
            0
            18px;

        scroll-padding-inline: 18px;
    }


    .pdv2-subnav__link {
        min-height: 52px;

        font-size: 12px;
    }

}



/* ============================================================
   VERY SMALL MOBILE
============================================================ */

@media (max-width: 420px) {

    .pdv2-summary-item {
        /*
         * Prevent very long language/location
         * items overflowing the screen.
         */

        max-width: 100%;

        white-space: normal;
    }


    .pdv2-summary-item__text {
        overflow-wrap: anywhere;
    }

}


/* ============================================================
   PROGRAM DETAILS V2
   EXPERIENCE FLOW / SCHEDULE
============================================================ */


/* ============================================================
   ALL PROGRAM PARAGRAPHS
============================================================ */

.program-content-layout p {
    text-align: justify;
    text-align-last: left;
    text-justify: inter-word;

    -webkit-hyphens: auto;
    hyphens: auto;
}



/* ============================================================
   JOURNEY HEADER
============================================================ */

.pdv2-journey__header {
    display: flex;

    align-items: flex-start;
    justify-content: space-between;

    gap: 30px;

    margin-bottom: 32px;
}


.pdv2-journey__header
.pdv2-section__intro {
    margin-bottom: 0;
}



/* ============================================================
   JOURNEY COUNT
============================================================ */

.pdv2-journey-count {
    display: inline-flex;

    align-items: center;

    gap: 7px;

    flex: 0 0 auto;

    min-height: 36px;

    margin-top: 3px;

    padding:
        6px
        11px;

    border:
        1px solid #e3e3e3;

    border-radius: 999px;

    background: #ffffff;

    color: #333333;

    font-size: 11.5px;
    font-weight: 600;

    line-height: 1;
}


.pdv2-journey-count__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 16px;
    height: 16px;

    color: #111111;
}


.pdv2-journey-count__icon svg {
    width: 100%;
    height: 100%;
}



/* ============================================================
   JOURNEY LIST
============================================================ */

.pdv2-journey-list {
    position: relative;

    max-width: 780px;
}



/* ============================================================
   JOURNEY ITEM
============================================================ */

.pdv2-journey-item {
    position: relative;

    display: grid;

    grid-template-columns:
        48px
        minmax(0, 1fr);

    gap: 18px;
}



/* ============================================================
   TIMELINE RAIL
============================================================ */

.pdv2-journey-item__rail {
    position: relative;

    display: flex;

    justify-content: center;
}


.pdv2-journey-item__rail::after {
    content: "";

    position: absolute;

    top: 42px;
    bottom: 0;

    left: 50%;

    width: 1px;

    background: #dddddd;

    transform:
        translateX(-50%);
}


.pdv2-journey-item:last-child
.pdv2-journey-item__rail::after {
    display: none;
}



/* ============================================================
   JOURNEY NUMBER
============================================================ */

.pdv2-journey-item__number {
    position: relative;

    z-index: 2;

    display: flex;

    align-items: center;
    justify-content: center;

    width: 40px;
    height: 40px;

    border:
        1px solid #dddddd;

    border-radius: 50%;

    background: #ffffff;

    color: #111111;

    font-size: 11px;
    font-weight: 650;

    letter-spacing: 0.04em;
}



/* ============================================================
   JOURNEY CONTENT
============================================================ */

.pdv2-journey-item__content {
    position: relative;

    margin-bottom: 18px;

    padding:
        20px
        22px
        22px;

    border:
        1px solid #e5e5e5;

    border-radius: 13px;

    background: #ffffff;

    transition:
        border-color 160ms ease,
        box-shadow 160ms ease;
}


@media (hover: hover) {

    .pdv2-journey-item__content:hover {
        border-color: #d5d5d5;

        box-shadow:
            0
            5px
            20px
            rgba(0, 0, 0, 0.045);
    }

}



/* ============================================================
   JOURNEY META
============================================================ */

.pdv2-journey-item__meta-row {
    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap:
        7px
        15px;

    margin-bottom: 10px;
}


.pdv2-journey-item__meta {
    display: inline-flex;

    align-items: center;

    gap: 6px;

    margin-bottom: 10px;

    color: #777777;

    font-size: 13.5px;
    font-weight: 500;

    line-height: 1.3;
}


.pdv2-journey-item__meta-row
.pdv2-journey-item__meta {
    margin-bottom: 0;
}


.pdv2-journey-item__meta-icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 15px;

    width: 15px;
    height: 15px;

    color: #555555;
}


.pdv2-journey-item__meta-icon svg {
    width: 100%;
    height: 100%;
}



/* ============================================================
   JOURNEY TITLE
============================================================ */

.pdv2-journey-item__title {
    margin:
        0
        0
        8px;

    color: #111111;

    font-size: 17px;
    font-weight: 600;

    line-height: 1.4;

    letter-spacing: -0.012em;
}


.pdv2-journey-item__description {
    margin: 0;

    color: #616161;

    font-size: 16px;

    line-height: 1.52;
}



/* ============================================================
   SIGNATURE EXPERIENCES
============================================================ */

.pdv2-signature-list {
    max-width: 780px;

    border-top:
        1px solid #e5e5e5;
}



/* ============================================================
   SIGNATURE ITEM
============================================================ */

.pdv2-signature-item {
    display: grid;

    grid-template-columns:
        50px
        minmax(0, 1fr);

    gap: 20px;

    padding:
        28px
        0;

    border-bottom:
        1px solid #e5e5e5;
}



/* ============================================================
   SIGNATURE INDEX
============================================================ */

.pdv2-signature-item__index {
    padding-top: 4px;

    color: #9a9a9a;

    font-size: 11px;
    font-weight: 600;

    letter-spacing: 0.08em;
}



/* ============================================================
   SIGNATURE KICKER
============================================================ */

.pdv2-signature-item__kicker {
    display: inline-flex;

    align-items: center;

    gap: 7px;

    margin-bottom: 9px;

    color: #777777;

    font-size: 10px;
    font-weight: 600;

    letter-spacing: 0.08em;

    text-transform: uppercase;
}


.pdv2-signature-item__diamond {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 13px;
    height: 13px;

    color: #111111;
}


.pdv2-signature-item__diamond svg {
    width: 100%;
    height: 100%;
}



/* ============================================================
   SIGNATURE TYPOGRAPHY
============================================================ */

.pdv2-signature-item__title {
    max-width: 680px;

    margin:
        0
        0
        9px;

    color: #111111;

    font-size: 18px;
    font-weight: 600;

    line-height: 1.4;

    letter-spacing: -0.015em;
}


.pdv2-signature-item__description {
    max-width: 680px;

    margin: 0;

    color: #606060;

    font-size: 14px;

    line-height: 1.75;
}



/* ============================================================
   EXPANDABLE JOURNEY OVERRIDE
============================================================ */

.pdv2-journey
.pdv2-expandable,

.pdv2-signature
.pdv2-expandable {
    max-width: 780px;
}


/*
 * The base expandable gradient was created
 * for the overview text. This slightly deeper
 * fade works better over timelines/lists.
 */

.pdv2-journey
.pdv2-expandable.is-collapsed
.pdv2-expandable__content::after,

.pdv2-signature
.pdv2-expandable.is-collapsed
.pdv2-expandable__content::after {
    height: 120px;

    background:
        linear-gradient(
            to bottom,
            rgba(255, 255, 255, 0),
            rgba(255, 255, 255, 0.94) 67%,
            #ffffff 100%
        );
}



/* ============================================================
   TABLET
============================================================ */

@media (max-width: 991.98px) {

    .pdv2-journey__header {
        gap: 22px;
    }

}



/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 767.98px) {

    .pdv2-journey__header {
        display: block;

        margin-bottom: 25px;
    }


    .pdv2-journey-count {
        margin-top: 5px;
    }


    .pdv2-journey-item {
        grid-template-columns:
            34px
            minmax(0, 1fr);

        gap: 11px;
    }


    .pdv2-journey-item__number {
        width: 32px;
        height: 32px;

        font-size: 9.5px;
    }


    .pdv2-journey-item__rail::after {
        top: 34px;
    }


    .pdv2-journey-item__content {
        margin-bottom: 14px;

        padding:
            17px
            16px
            18px;

        border-radius: 11px;
    }


    .pdv2-journey-item__title {
        font-size: 16px;
    }


    .pdv2-journey-item__description {
        font-size: 13.5px;
    }


    .pdv2-signature-item {
        grid-template-columns:
            34px
            minmax(0, 1fr);

        gap: 12px;

        padding:
            23px
            0;
    }


    .pdv2-signature-item__index {
        font-size: 9.5px;
    }


    .pdv2-signature-item__title {
        font-size: 16.5px;
    }


    .pdv2-signature-item__description {
        font-size: 13.5px;
    }

}



/* ============================================================
   VERY SMALL MOBILE
============================================================ */

@media (max-width: 420px) {

    .pdv2-journey-item {
        grid-template-columns:
            30px
            minmax(0, 1fr);

        gap: 9px;
    }


    .pdv2-journey-item__number {
        width: 29px;
        height: 29px;
    }


    .pdv2-journey-item__rail::after {
        top: 31px;
    }


    .pdv2-journey-item__content {
        padding:
            15px
            14px
            16px;
    }

}

/* ============================================================
   PROGRAM DETAILS V2
   WHAT'S INCLUDED
============================================================ */


/* ============================================================
   INCLUSIONS WRAPPER
============================================================ */

.pdv2-inclusions
.pdv2-section__intro {
    margin-bottom: 30px;
}


.pdv2-inclusions
.pdv2-expandable {
    max-width: 780px;
}



/* ============================================================
   INCLUSION GRID
============================================================ */

.pdv2-inclusions-grid {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap: 10px;
}



/* ============================================================
   INCLUSION ITEM
============================================================ */

.pdv2-inclusion-item {
    display: grid;

    grid-template-columns:
        42px
        minmax(0, 1fr);

    gap: 13px;

    align-items: center;

    min-height: 86px;

    padding:
        16px
        17px;

    border:
        1px solid #e5e5e5;

    border-radius: 12px;

    background: #ffffff;

    transition:
        border-color 160ms ease,
        box-shadow 160ms ease,
        transform 160ms ease;
}


@media (hover: hover) {

    .pdv2-inclusion-item:hover {
        border-color: #d8d8d8;

        box-shadow:
            0
            4px
            16px
            rgba(0, 0, 0, 0.04);

        transform:
            translateY(-1px);
    }

}



/* ============================================================
   ICON
============================================================ */

.pdv2-inclusion-item__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;

    border:
        1px solid #e5e5e5;

    border-radius: 50%;

    background: #f8f8f8;

    color: #111111;
}


.pdv2-inclusion-item__icon svg {
    width: 19px;
    height: 19px;
}



/* ============================================================
   CONTENT
============================================================ */

.pdv2-inclusion-item__content {
    min-width: 0;
}


.pdv2-inclusion-item__label {
    margin-bottom: 5px;

    color: #111111;

    font-size: 14px;
    font-weight: 600;

    line-height: 1.4;
}



/* ============================================================
   INCLUDED STATUS
============================================================ */

.pdv2-inclusion-item__status {
    display: inline-flex;

    align-items: center;

    gap: 5px;

    color: #858585;

    font-size: 12.5px;
    font-weight: 500;

    line-height: 1.3;

    text-transform: uppercase;

    letter-spacing: 0.055em;
}


.pdv2-inclusion-item__check {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 13px;
    height: 13px;

    color: #111111;
}


.pdv2-inclusion-item__check svg {
    width: 100%;
    height: 100%;
}



/* ============================================================
   COLLAPSED FADE
============================================================ */

.pdv2-inclusions
.pdv2-expandable.is-collapsed
.pdv2-expandable__content::after {
    height: 105px;

    background:
        linear-gradient(
            to bottom,
            rgba(255, 255, 255, 0),
            rgba(255, 255, 255, 0.94) 65%,
            #ffffff 100%
        );
}



/* ============================================================
   TABLET
============================================================ */

@media (max-width: 991.98px) {

    .pdv2-inclusions-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

}



/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 767.98px) {

    .pdv2-inclusions
    .pdv2-section__intro {
        margin-bottom: 24px;
    }


    .pdv2-inclusions-grid {
        grid-template-columns: 1fr;

        gap: 8px;
    }


    .pdv2-inclusion-item {
        grid-template-columns:
            38px
            minmax(0, 1fr);

        gap: 11px;

        min-height: 75px;

        padding:
            13px
            14px;

        border-radius: 10px;
    }


    .pdv2-inclusion-item__icon {
        width: 38px;
        height: 38px;
    }


    .pdv2-inclusion-item__icon svg {
        width: 17px;
        height: 17px;
    }


    .pdv2-inclusion-item__label {
        font-size: 13px;
    }


    .pdv2-inclusion-item__status {
        font-size: 10px;
    }

}



/* ============================================================
   VERY SMALL MOBILE
============================================================ */

@media (max-width: 420px) {

    .pdv2-inclusion-item {
        grid-template-columns:
            34px
            minmax(0, 1fr);

        gap: 10px;

        padding:
            12px;
    }


    .pdv2-inclusion-item__icon {
        width: 34px;
        height: 34px;
    }


    .pdv2-inclusion-item__icon svg {
        width: 16px;
        height: 16px;
    }

}

/* ============================================================
   PROGRAM DETAILS V2
   OUTCOMES + NOURISHMENT
============================================================ */


/* ============================================================
   WELLBEING GROUP
============================================================ */

.pdv2-wellbeing-group {
    max-width: 780px;

    margin-top: 32px;
}


.pdv2-wellbeing-group +
.pdv2-wellbeing-group {
    margin-top: 48px;

    /*padding-top: 44px;

    border-top: 1px solid #e7e7e7;*/
}



/* ============================================================
   GROUP HEADER
============================================================ */

.pdv2-wellbeing-group__header {
    display: flex;

    align-items: flex-start;

    gap: 13px;

    margin-bottom: 22px;
}


.pdv2-wellbeing-group__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 40px;

    width: 40px;
    height: 40px;

    border: 1px solid #e3e3e3;

    border-radius: 50%;

    background: #fafafa;

    color: #111111;
}


.pdv2-wellbeing-group__icon svg {
    width: 18px;
    height: 18px;
}


.pdv2-wellbeing-group__title {
    margin:
        1px
        0
        3px;

    color: #111111;

    font-size: 16px;
    font-weight: 600;

    line-height: 1.4;
}


.pdv2-wellbeing-group__subtitle {
    margin: 0;

    color: #858585;

    font-size: 14px;

    line-height: 1.55;
}



/* ============================================================
   OUTCOME GRID
============================================================ */

.pdv2-outcome-grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap: 9px;
}



/* ============================================================
   OUTCOME ITEM
============================================================ */

.pdv2-outcome-item {
    display: flex;

    align-items: center;

    gap: 10px;

    min-height: 64px;

    padding:
        12px
        13px;

    border: 1px solid #e6e6e6;

    border-radius: 11px;

    background: #ffffff;
}


.pdv2-outcome-item__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 32px;

    width: 32px;
    height: 32px;

    border-radius: 50%;

    background: #f6f6f6;

    color: #111111;
}


.pdv2-outcome-item__icon svg {
    width: 16px;
    height: 16px;
}


.pdv2-outcome-item__label {
    min-width: 0;

    color: #272727;

    font-size: 14px;
    font-weight: 550;

    line-height: 1.4;
}



/* ============================================================
   COLLAPSED OUTCOME FADE
============================================================ */

.pdv2-outcomes
.pdv2-expandable {
    max-width: 780px;
}


.pdv2-outcomes
.pdv2-expandable.is-collapsed
.pdv2-expandable__content::after {
    height: 110px;

    background:
        linear-gradient(
            to bottom,
            rgba(255,255,255,0),
            rgba(255,255,255,0.95) 65%,
            #ffffff 100%
        );
}



/* ============================================================
   DISCLAIMER
============================================================ */

.pdv2-wellbeing-disclaimer {
    display: flex;

    align-items: flex-start;

    gap: 8px;

    margin-top: 18px;

    padding:
        12px
        14px;

    border: 1px solid #ececec;

    border-radius: 9px;

    background: #f8f8f8;

    color: #747474;

    font-size: 14.5px;

    line-height: 1.55;
}


.pdv2-wellbeing-disclaimer__icon {
    display: inline-flex;

    flex: 0 0 16px;

    margin-top: 1px;
}


.pdv2-wellbeing-disclaimer__icon svg {
    width: 16px;
    height: 16px;
}



/* ============================================================
   NOURISHMENT
============================================================ */

.pdv2-nourishment-panel {
    max-width: 780px;

    padding: 23px;

    border: 1px solid #e5e5e5;

    border-radius: 14px;

    background: #fafafa;
}



/* ============================================================
   NOURISHMENT HEADER
============================================================ */

.pdv2-nourishment-panel__header {
    display: flex;

    align-items: flex-start;

    gap: 12px;

    margin-bottom: 20px;
}


.pdv2-nourishment-panel__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 40px;

    width: 40px;
    height: 40px;

    border: 1px solid #e4e4e4;

    border-radius: 50%;

    background: #ffffff;

    color: #111111;
}


.pdv2-nourishment-panel__icon svg {
    width: 18px;
    height: 18px;
}


.pdv2-nourishment-panel__title {
    margin:
        1px
        0
        3px;

    color: #111111;

    font-size: 16px;
    font-weight: 600;
}


.pdv2-nourishment-panel__subtitle {
    color: #858585;

    font-size: 14px;

    line-height: 1.5;
}



/* ============================================================
   NOURISHMENT GRID
============================================================ */

.pdv2-nourishment-grid {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap: 8px;
}


.pdv2-nourishment-item {
    display: flex;

    align-items: center;

    gap: 8px;

    min-height: 42px;

    padding:
        9px
        11px;

    border: 1px solid #e5e5e5;

    border-radius: 9px;

    background: #ffffff;

    color: #333333;

    font-size: 14px;
    font-weight: 500;

    line-height: 1.4;
}


.pdv2-nourishment-item__check {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 15px;

    width: 15px;
    height: 15px;

    color: #111111;
}


.pdv2-nourishment-item__check svg {
    width: 100%;
    height: 100%;
}



/* ============================================================
   MEAL PHILOSOPHY
============================================================ */

.pdv2-meal-philosophy {
    display: grid;

    grid-template-columns:
        38px
        minmax(0, 1fr);

    gap: 13px;

    margin-top: 22px;

    padding-top: 22px;

    border-top: 1px solid #e3e3e3;
}


.pdv2-meal-philosophy__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;

    border-radius: 50%;

    background: #ffffff;

    color: #111111;
}


.pdv2-meal-philosophy__icon svg {
    width: 18px;
    height: 18px;
}


.pdv2-meal-philosophy__label {
    margin-bottom: 7px;

    color: #111111;

    font-size: 13px;
    font-weight: 600;
}


.pdv2-meal-philosophy__text {
    margin: 0;

    color: #606060;

    font-size: 13.5px;

    line-height: 1.72;
}



/* ============================================================
   TABLET
============================================================ */

@media (max-width: 991.98px) {

    .pdv2-outcome-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

}



/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 767.98px) {

    .pdv2-wellbeing-group {
        margin-top: 27px;
    }


    .pdv2-wellbeing-group +
    .pdv2-wellbeing-group {
        margin-top: 38px;

        padding-top: 36px;
    }


    .pdv2-wellbeing-group__icon {
        flex-basis: 36px;

        width: 36px;
        height: 36px;
    }


    .pdv2-outcome-grid {
        grid-template-columns: 1fr;

        gap: 7px;
    }


    .pdv2-outcome-item {
        min-height: 58px;

        padding:
            10px
            12px;

        border-radius: 9px;
    }


    .pdv2-outcome-item__icon {
        flex-basis: 30px;

        width: 30px;
        height: 30px;
    }


    .pdv2-outcome-item__label {
        font-size: 12.5px;
    }


    .pdv2-nourishment-panel {
        padding: 18px;

        border-radius: 12px;
    }


    .pdv2-nourishment-grid {
        grid-template-columns: 1fr;
    }


    .pdv2-meal-philosophy {
        grid-template-columns:
            34px
            minmax(0, 1fr);
    }


    .pdv2-meal-philosophy__icon {
        width: 34px;
        height: 34px;
    }

}

/* ============================================================
   PROGRAM DETAILS V2
   SPACE / ACCOMMODATION / EXPERTS / TRAVEL
============================================================ */


/* ============================================================
   SPACE
============================================================ */

.pdv2-space
.pdv2-expandable,

.pdv2-accommodation
.pdv2-expandable,

.pdv2-experts
.pdv2-expandable {
    max-width: 780px;
}


.pdv2-space__description,
.pdv2-accommodation__description {
    max-width: 760px;

    margin: 0;

    color: #555555;

    font-size: 15px;

    line-height: 1.52;
}



/* ============================================================
   SPACE HIGHLIGHTS
============================================================ */

.pdv2-space-highlights {
    max-width: 780px;

    margin-top: 34px;

    padding: 22px;

    border: 1px solid #e5e5e5;

    border-radius: 14px;

    background: #fafafa;
}


.pdv2-space-highlights__header {
    display: flex;

    align-items: flex-start;

    gap: 12px;

    margin-bottom: 20px;
}


.pdv2-space-highlights__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 40px;

    width: 40px;
    height: 40px;

    border: 1px solid #e3e3e3;

    border-radius: 50%;

    background: #ffffff;

    color: #111111;
}


.pdv2-space-highlights__icon svg {
    width: 18px;
    height: 18px;
}


.pdv2-space-highlights__title {
    margin:
        1px
        0
        3px;

    color: #111111;

    font-size: 16px;
    font-weight: 600;
}


.pdv2-space-highlights__subtitle {
    margin: 0;

    color: #858585;

    font-size: 14px;

    line-height: 1.55;
}


.pdv2-space-highlights__grid {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap: 8px;
}


.pdv2-space-highlight {
    display: flex;

    align-items: center;

    gap: 8px;

    min-height: 42px;

    padding:
        9px
        11px;

    border: 1px solid #e5e5e5;

    border-radius: 9px;

    background: #ffffff;

    color: #333333;

    font-size: 14px;
    font-weight: 500;

    line-height: 1.4;
}


.pdv2-space-highlight__check {
    display: inline-flex;

    flex: 0 0 15px;

    width: 15px;
    height: 15px;

    color: #111111;
}


.pdv2-space-highlight__check svg {
    width: 100%;
    height: 100%;
}



/* ============================================================
   PRIVACY NOTE
============================================================ */

.pdv2-privacy-note {
    display: grid;

    grid-template-columns:
        38px
        minmax(0, 1fr);

    gap: 12px;

    max-width: 780px;

    margin-top: 18px;

    padding:
        15px
        17px;

    border: 1px solid #ececec;

    border-radius: 10px;

    background: #f8f8f8;
}


.pdv2-privacy-note__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;

    color: #111111;
}


.pdv2-privacy-note__icon svg {
    width: 18px;
    height: 18px;
}


.pdv2-privacy-note__title {
    /*margin-bottom: 3px;*/

    color: #111111;

    font-size: 14px;
    font-weight: 600;
}


.pdv2-privacy-note__text {
    margin: 0;

    color: #727272;

    font-size: 13px;

    line-height: 1.6;
}



/* ============================================================
   ACCOMMODATION
============================================================ */

.pdv2-accommodation-content {
    display: grid;

    grid-template-columns:
        46px
        minmax(0, 1fr);

    gap: 16px;

    max-width: 780px;
}


.pdv2-accommodation-content__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 46px;
    height: 46px;

    border: 1px solid #e2e2e2;

    border-radius: 50%;

    background: #fafafa;

    color: #111111;
}


.pdv2-accommodation-content__icon svg {
    width: 20px;
    height: 20px;
}



/* ============================================================
   EXPERTS
============================================================ */

.pdv2-experts {
    position: relative;
}



/* ============================================================
   EXPERT EXPANDABLE
============================================================ */

.pdv2-experts-expandable {
    width: 100%;
    max-width: 780px;
}


.pdv2-experts
.pdv2-expandable.is-collapsed
.pdv2-expandable__content::after {
    height: 135px;

    background:
        linear-gradient(
            to bottom,
            rgba(255,255,255,0),
            rgba(255,255,255,0.96) 68%,
            #ffffff 100%
        );
}



/* ============================================================
   EXPERT LIST
============================================================ */

.pdv2-experts-list {
    display: grid;

    gap: 18px;

    width: 100%;

    max-width: 780px;

    margin-top: 28px;
}



/* ============================================================
   EXPERT CARD
============================================================ */

.pdv2-expert {
    position: relative;

    display: grid;

    grid-template-columns:
        170px
        minmax(0, 1fr);

    gap: 25px;

    align-items: start;

    width: 100%;

    padding: 22px;

    border:
        1px solid #e5e5e5;

    border-radius: 18px;

    background: #ffffff;
}



/* ============================================================
   EXPERT NUMBER
============================================================ */

.pdv2-expert__number {
    position: absolute;

    top: 17px;
    right: 17px;

    z-index: 2;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;

    border:
        1px solid #dedede;

    border-radius: 50%;

    background: #fafafa;

    color: #555555;

    font-size: 11px;
    font-weight: 700;

    line-height: 1;

    letter-spacing: 0.06em;
}



/* ============================================================
   MEDIA COLUMN
============================================================ */

.pdv2-expert__media-column {
    display: flex;

    flex-direction: column;

    gap: 10px;

    width: 170px;
}


.pdv2-expert__media {
    width: 170px;
}



/* ============================================================
   PHOTO
============================================================ */

.pdv2-expert__photo,
.pdv2-expert__placeholder {
    display: block;

    width: 170px;
    height: 195px;

    border-radius: 14px;

    object-fit: cover;
    object-position: center top;
}


.pdv2-expert__photo {
    border:
        1px solid #eeeeee;

    background: #f7f7f7;
}


.pdv2-expert__placeholder {
    display: flex;

    align-items: center;
    justify-content: center;

    border:
        1px solid #e5e5e5;

    background: #f6f6f6;

    color: #999999;
}


.pdv2-expert__placeholder svg {
    width: 38px;
    height: 38px;
}



/* ============================================================
   ASSESSMENT BADGE
============================================================ */

.pdv2-expert__assessment {
    display: flex;

    align-items: flex-start;

    gap: 7px;

    width: 100%;

    padding:
        9px
        10px;

    border:
        1px solid
        rgba(0, 174, 157, 0.20);

    border-radius: 10px;

    background:
        rgba(0, 174, 157, 0.06);

    color: #008f82;

    font-size: 10.5px;
    font-weight: 650;

    line-height: 1.35;
}


.pdv2-expert__assessment-icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 17px;

    width: 17px;
    height: 17px;

    margin-top: 1px;

    border-radius: 50%;

    background: #00ae9d;

    color: #ffffff;
}


.pdv2-expert__assessment-icon svg {
    width: 10px;
    height: 10px;
}



/* ============================================================
   CONTENT
============================================================ */

.pdv2-expert__content {
    min-width: 0;

    padding-top: 2px;
}



/* ============================================================
   NAME
============================================================ */

.pdv2-expert__name {
    margin:
        0
        54px
        5px
        0;

    color: #111111;

    font-size: 22px;
    font-weight: 650;

    line-height: 1.25;

    letter-spacing: -0.025em;
}



/* ============================================================
   ROLE
============================================================ */

.pdv2-expert__role {
    margin-bottom: 15px;

    color: #666666;

    font-size: 13.5px;
    font-weight: 500;

    line-height: 1.45;
}



/* ============================================================
   BIO
============================================================ */

.pdv2-expert__bio {
    max-width: 520px;

    margin:
        0
        0
        17px;

    color: #555555;

    font-size: 14px;

    line-height: 1.72;

    text-align: justify;
    text-align-last: left;
    text-justify: inter-word;

    -webkit-hyphens: auto;
    hyphens: auto;
}



/* ============================================================
   QUALIFICATIONS
============================================================ */

.pdv2-expert__qualification {
    display: grid;

    grid-template-columns:
        32px
        minmax(0, 1fr);

    gap: 10px;

    align-items: start;

    max-width: 520px;

    padding:
        12px
        13px;

    border:
        1px solid #e9e9e9;

    border-radius: 11px;

    background: #fafafa;
}


.pdv2-expert__qualification-icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 32px;
    height: 32px;

    border-radius: 50%;

    background: #f0f0f0;

    color: #333333;
}


.pdv2-expert__qualification-icon svg {
    width: 16px;
    height: 16px;
}


.pdv2-expert__qualification-label {
    margin-bottom: 3px;

    color: #8b8b8b;

    font-size: 9px;
    font-weight: 700;

    line-height: 1.3;

    letter-spacing: 0.07em;

    text-transform: uppercase;
}


.pdv2-expert__qualification-value {
    color: #484848;

    font-size: 12px;
    font-weight: 500;

    line-height: 1.55;
}



/* ============================================================
   TABLET
============================================================ */

@media (max-width: 991.98px) {

    .pdv2-expert {
        grid-template-columns:
            145px
            minmax(0, 1fr);

        gap: 20px;

        padding: 19px;
    }


    .pdv2-expert__media-column,
    .pdv2-expert__media {
        width: 145px;
    }


    .pdv2-expert__photo,
    .pdv2-expert__placeholder {
        width: 145px;
        height: 170px;
    }


    .pdv2-expert__name {
        font-size: 20px;
    }

}



/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 767.98px) {

    .pdv2-experts-list {
        gap: 14px;

        margin-top: 22px;
    }


    .pdv2-expert {
        grid-template-columns: 1fr;

        gap: 16px;

        padding: 16px;

        border-radius: 15px;
    }


    .pdv2-expert__number {
        top: 13px;
        right: 13px;

        width: 36px;
        height: 36px;

        background:
            rgba(255,255,255,0.95);
    }


    .pdv2-expert__media-column,
    .pdv2-expert__media {
        width: 100%;
    }


    .pdv2-expert__photo,
    .pdv2-expert__placeholder {
        width: 100%;
        height: auto;

        aspect-ratio: 4 / 3;

        border-radius: 12px;
    }


    .pdv2-expert__photo {
        object-position: center 23%;
    }


    .pdv2-expert__assessment {
        width: fit-content;

        max-width: 100%;
    }


    .pdv2-expert__name {
        margin-right: 0;

        font-size: 19px;
    }


    .pdv2-expert__role {
        margin-bottom: 12px;

        font-size: 12.5px;
    }


    .pdv2-expert__bio {
        font-size: 13.5px;

        line-height: 1.68;
    }


    .pdv2-expert__qualification {
        max-width: none;
    }

}


/* ============================================================
   TRAVEL GRID
============================================================ */

.pdv2-travel-grid {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap: 10px;

    max-width: 780px;
}



/* ============================================================
   TRAVEL ITEM
============================================================ */

.pdv2-travel-item {
    display: grid;

    grid-template-columns:
        40px
        minmax(0, 1fr);

    gap: 12px;

    min-height: 92px;

    padding:
        17px;

    border: 1px solid #e5e5e5;

    border-radius: 12px;

    background: #ffffff;
}


.pdv2-travel-item__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 40px;
    height: 40px;

    border-radius: 50%;

    background: #f6f6f6;

    color: #111111;
}


.pdv2-travel-item__icon svg {
    width: 18px;
    height: 18px;
}


.pdv2-travel-item__label {
    margin-bottom: 5px;

    color: #8a8a8a;

    font-size: 12px;
    font-weight: 600;

    line-height: 1.3;

    letter-spacing: 0.055em;

    text-transform: uppercase;
}


.pdv2-travel-item__value {
    color: #222222;

    font-size: 14px;
    font-weight: 600;

    line-height: 1.5;
}


.pdv2-travel-item__sub {
    margin-top: 3px;

    color: #808080;

    font-size: 11.5px;

    line-height: 1.5;
}



/* ============================================================
   TABLET
============================================================ */

@media (max-width: 991.98px) {

    .pdv2-expert {
        grid-template-columns:
            130px
            minmax(0, 1fr);

        gap: 22px;
    }


    .pdv2-expert__media {
        width: 130px;
    }


    .pdv2-expert__photo,
    .pdv2-expert__placeholder {
        width: 130px;
        height: 155px;
    }

}



/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 767.98px) {

    .pdv2-space-highlights {
        padding: 18px;

        border-radius: 12px;
    }


    .pdv2-space-highlights__grid {
        grid-template-columns: 1fr;
    }


    .pdv2-accommodation-content {
        grid-template-columns: 1fr;

        gap: 14px;
    }


    .pdv2-accommodation-content__icon {
        width: 40px;
        height: 40px;
    }



    /* Experts */

    .pdv2-expert {
        grid-template-columns:
            92px
            minmax(0, 1fr);

        gap: 15px;

        padding:
            22px
            0;
    }


    .pdv2-expert__media {
        width: 92px;
    }


    .pdv2-expert__photo,
    .pdv2-expert__placeholder {
        width: 92px;
        height: 112px;

        border-radius: 10px;
    }


    .pdv2-expert__placeholder svg {
        width: 30px;
        height: 30px;
    }


    .pdv2-expert__name {
        font-size: 17px;
    }


    .pdv2-expert__role {
        margin-bottom: 10px;

        font-size: 11.5px;
    }


    .pdv2-expert__bio {
        font-size: 13px;
    }



    /* Travel */

    .pdv2-travel-grid {
        grid-template-columns: 1fr;

        gap: 8px;
    }


    .pdv2-travel-item {
        min-height: 82px;

        padding: 14px;
    }

}



/* ============================================================
   VERY SMALL MOBILE
============================================================ */

@media (max-width: 480px) {

    /*
     * On very small phones the expert photo
     * sits above the biography for better
     * text width and justification.
     */

    .pdv2-expert {
        grid-template-columns: 1fr;

        gap: 15px;
    }


    .pdv2-expert__media {
        width: 100%;
    }


    .pdv2-expert__photo,
    .pdv2-expert__placeholder {
        width: 100%;
        height: auto;

        aspect-ratio: 4 / 3;
    }


    .pdv2-expert__photo {
        object-position: center 25%;
    }


    .pdv2-privacy-note {
        grid-template-columns:
            32px
            minmax(0, 1fr);

        padding:
            13px
            14px;
    }


    .pdv2-privacy-note__icon {
        width: 32px;
        height: 32px;
    }

}


/* ============================================================
   PROGRAM DETAILS V2
   REVIEWS — HORIZONTAL CAROUSEL
============================================================ */


/* ============================================================
   HEADER
============================================================ */

.pdv2-reviews__heading {
    display: flex;

    align-items: flex-start;
    justify-content: space-between;

    gap: 28px;

    max-width: 780px;

    margin-bottom: 28px;
}


.pdv2-reviews__heading
.pdv2-section__intro {
    margin-bottom: 0;
}


.pdv2-reviews__heading-right {
    display: flex;

    align-items: center;

    gap: 10px;

    flex: 0 0 auto;
}



/* ============================================================
   SUMMARY
============================================================ */

.pdv2-reviews-summary {
    min-width: 108px;

    padding:
        10px
        12px;

    border:
        1px solid #e4e4e4;

    border-radius: 10px;

    background: #ffffff;
}


.pdv2-reviews-summary__rating {
    display: flex;

    align-items: baseline;

    gap: 3px;

    color: #111111;
}


.pdv2-reviews-summary__star {
    display: inline-flex;

    align-self: center;

    width: 15px;
    height: 15px;

    margin-right: 2px;

    color: #111111;
}


.pdv2-reviews-summary__star svg {
    width: 100%;
    height: 100%;
}


.pdv2-reviews-summary__rating strong {
    font-size: 19px;
    font-weight: 650;
}


.pdv2-reviews-summary__out-of {
    color: #909090;

    font-size: 10px;
}


.pdv2-reviews-summary__count {
    margin-top: 3px;

    color: #828282;

    font-size: 10.5px;
}



/* ============================================================
   NAVIGATION
============================================================ */

.pdv2-reviews-nav {
    display: flex;

    gap: 7px;
}


.pdv2-reviews-nav__button {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 40px;
    height: 40px;

    padding: 0;

    border:
        1px solid #dddddd;

    border-radius: 50%;

    background: #ffffff;

    color: #111111;

    cursor: pointer;
}


.pdv2-reviews-nav__button svg {
    width: 17px;
    height: 17px;
}


.pdv2-reviews-nav__button:disabled {
    color: #c7c7c7;

    background: #fafafa;

    cursor: default;
}



/* ============================================================
   CAROUSEL
============================================================ */

.pdv2-reviews-carousel {
    width: 100%;
    max-width: 780px;

    overflow: hidden;
}



/* ============================================================
   TRACK
============================================================ */

.pdv2-reviews-track {
    display: flex;

    align-items: stretch;

    gap: 14px;

    width: 100%;

    overflow-x: auto;
    overflow-y: hidden;

    padding:
        2px
        2px
        8px;

    scroll-snap-type:
        x mandatory;

    scroll-padding-inline: 2px;

    overscroll-behavior-inline: contain;

    scrollbar-width: none;

    -webkit-overflow-scrolling: touch;
}


.pdv2-reviews-track::-webkit-scrollbar {
    display: none;
}


.pdv2-reviews-track:focus {
    outline: none;
}


.pdv2-reviews-track--single
.pdv2-review {
    flex-basis: 100%;
}



/* ============================================================
   REVIEW CARD
============================================================ */

.pdv2-review {
    display: flex;

    flex-direction: column;

    flex:
        0
        0
        calc(
            (100% - 14px) / 2
        );

    min-width: 0;

    padding: 20px;

    border:
        1px solid #e5e5e5;

    border-radius: 16px;

    background: #ffffff;

    scroll-snap-align: start;
}



/* ============================================================
   HEADER
============================================================ */

.pdv2-review__header {
    display: flex;

    align-items: flex-start;
    justify-content: space-between;

    gap: 12px;
}



/* ============================================================
   PARTICIPANT
============================================================ */

.pdv2-review-participant {
    display: flex;

    align-items: center;

    gap: 10px;

    min-width: 0;
}


.pdv2-review-participant__avatar {
    display: flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 55px;
    width: 55px;
    height: 55px;

    overflow: hidden;

    border:
        1px solid #e6e6e6;

    border-radius: 50%;

    background: #f5f5f5;

    color: #111111;

    font-size: 13px;
    font-weight: 650;
}


.pdv2-review-participant__avatar img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}


.pdv2-review-participant__content {
    min-width: 0;
}


.pdv2-review-participant__name {
    margin-bottom: 4px;

    color: #111111;

    font-size: 16px;
    font-weight: 650;

    line-height: 1.35;
}



/* ============================================================
   PARTICIPANT META
============================================================ */

.pdv2-review-participant__meta {
    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 4px;

    color: #808080;

    font-size: 13px;

    line-height: 1.4;
}


.pdv2-review-participant__verified,
.pdv2-review-participant__location {
    display: inline-flex;

    align-items: center;

    gap: 3px;
}


.pdv2-review-participant__meta-icon {
    display: inline-flex;

    flex: 0 0 16px;
    width: 16px;
    height: 16px;

    color: #008f82;
}


.pdv2-review-participant__meta-icon svg {
    width: 100%;
    height: 100%;
}


.pdv2-review-participant__separator {
    color: #b5b5b5;
}



/* ============================================================
   RATING
============================================================ */

.pdv2-review-rating {
    display: inline-flex;

    align-items: center;

    flex: 0 0 auto;

    gap: 3px;

    min-height: 30px;

    padding:
        5px
        7px;

    border:
        1px solid #e6e6e6;

    border-radius: 8px;

    background: #fafafa;

    color: #111111;
}


.pdv2-review-rating__star {
    display: inline-flex;

    width: 12px;
    height: 12px;
}


.pdv2-review-rating__star svg {
    width: 100%;
    height: 100%;
}


.pdv2-review-rating strong {
    font-size: 12px;
    font-weight: 700;
}


.pdv2-review-rating > span:last-child {
    color: #989898;

    font-size: 9px;
}



/* ============================================================
   QUOTE
============================================================ */

.pdv2-review__quote {
    display: grid;

    grid-template-columns:
        20px
        minmax(0, 1fr);

    gap: 9px;

    flex: 1;

    margin-top: 21px;
}


.pdv2-review__quote-icon {
    display: inline-flex;

    width: 19px;
    height: 19px;

    color: #b0b0b0;
}


.pdv2-review__quote-icon svg {
    width: 100%;
    height: 100%;
}


.pdv2-review__quote blockquote {
    margin: 0;

    color: #4f4f4f;

    font-size: 14px;
    font-weight: 400;
    line-height: 1.52;

    text-align: justify;
    text-align-last: left;
    text-justify: inter-word;

    -webkit-hyphens: auto;
    hyphens: auto;
}



/* ============================================================
   FOOTER
============================================================ */

.pdv2-review__footer {
    display: flex;

    align-items: flex-end;
    justify-content: space-between;

    gap: 12px;

    margin-top: 20px;

    padding-top: 13px;

    border-top:
        1px solid #eeeeee;

    color: #888888;

    font-size: 10px;
    font-weight: 500;

    line-height: 1.45;
}


.pdv2-review__program {
    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 4px;

    min-width: 0;
}


.pdv2-review__footer-dot {
    color: #b5b5b5;
}


.pdv2-review__date {
    flex: 0 0 auto;

    color: #939393;

    white-space: nowrap;
}



/* ============================================================
   PROGRESS
============================================================ */

.pdv2-reviews-progress {
    padding:
        17px
        2px
        0;
}


.pdv2-reviews-progress__track {
    position: relative;

    width: 100%;
    height: 2px;

    overflow: hidden;

    border-radius: 999px;

    background: #ededed;
}


.pdv2-reviews-progress__thumb {
    display: block;

    width: 30%;
    height: 100%;

    border-radius: 999px;

    background: #111111;

    transform: translateX(0);
}



/* ============================================================
   TABLET
============================================================ */

@media (max-width: 991.98px) {

    .pdv2-reviews__heading {
        gap: 20px;
    }


    .pdv2-review {
        flex-basis: 78%;
    }

}



/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 767.98px) {

    .pdv2-reviews__heading {
        display: block;

        margin-bottom: 22px;
    }


    .pdv2-reviews__heading-right {
        justify-content: space-between;

        margin-top: 14px;
    }


    .pdv2-reviews-summary {
        min-width: 102px;
    }


    .pdv2-reviews-nav__button {
        width: 38px;
        height: 38px;
    }


    .pdv2-reviews-track {
        gap: 10px;

        /*
         * Allows the next card edge to remain
         * slightly visible as a scroll cue.
         */
        padding-right: 30px;
    }


    .pdv2-review {
        flex-basis: 91%;

        padding: 17px;

        border-radius: 14px;
    }


    .pdv2-review-participant__avatar {
        flex-basis: 40px;

        width: 40px;
        height: 40px;
    }


    .pdv2-review__quote {
        margin-top: 18px;
    }


    .pdv2-review__quote blockquote {
        font-size: 13px;

        line-height: 1.68;
    }


    .pdv2-review__footer {
        margin-top: 17px;
    }

}



/* ============================================================
   VERY SMALL MOBILE
============================================================ */

@media (max-width: 420px) {

    .pdv2-review {
        flex-basis: 94%;
    }


    .pdv2-review__header {
        gap: 8px;
    }


    .pdv2-review-participant__separator {
        display: none;
    }


    .pdv2-review-participant__location {
        flex-basis: 100%;
    }


    .pdv2-review-rating {
        padding:
            5px
            6px;
    }


    .pdv2-review__footer {
        display: block;
    }


    .pdv2-review__date {
        display: block;

        margin-top: 6px;
    }

}


/* ============================================================
   PROGRAM DETAILS V2
   LOCATION
============================================================ */


/* ============================================================
   LOCATION LAYOUT
============================================================ */

.pdv2-location-layout {
    display: grid;

    grid-template-columns:
        minmax(0, 0.92fr)
        minmax(300px, 1.08fr);

    gap: 24px;

    max-width: 780px;

    align-items: stretch;
}


.pdv2-location-layout--without-map {
    grid-template-columns:
        minmax(0, 1fr);

    max-width: 760px;
}



/* ============================================================
   LOCATION CONTENT
============================================================ */

.pdv2-location-content {
    min-width: 0;
}



/* ============================================================
   PROGRAM LOCATION
============================================================ */

.pdv2-location-place {
    display: grid;

    grid-template-columns:
        42px
        minmax(0, 1fr);

    gap: 13px;

    align-items: center;

    padding-bottom: 21px;

    border-bottom:
        1px solid #e8e8e8;
}


.pdv2-location-place__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;

    border:
        1px solid #e3e3e3;

    border-radius: 50%;

    background: #fafafa;

    color: #111111;
}


.pdv2-location-place__icon svg {
    width: 19px;
    height: 19px;
}


.pdv2-location-place__content {
    min-width: 0;
}


.pdv2-location-place__label {
    margin-bottom: 4px;

    color: #8b8b8b;

    font-size: 12px;
    font-weight: 600;

    line-height: 1.3;

    letter-spacing: 0.065em;

    text-transform: uppercase;
}


.pdv2-location-place__name {
    color: #111111;

    font-size: 16px;
    font-weight: 600;

    line-height: 1.52;

    letter-spacing: -0.012em;
}



/* ============================================================
   LOCATION DESCRIPTION
============================================================ */

.pdv2-location-description {
    margin-top: 22px;
}


.pdv2-location-description__text {
    margin: 0;

    color: #5b5b5b;

    font-size: 15px;

    line-height: 1.52;

    text-align: justify;
    text-align-last: left;
    text-justify: inter-word;

    -webkit-hyphens: auto;
    hyphens: auto;
}



/* ============================================================
   PRIVACY
============================================================ */

.pdv2-location-privacy {
    display: grid;

    grid-template-columns:
        36px
        minmax(0, 1fr);

    gap: 11px;

    margin-top: 24px;

    padding:
        14px
        15px;

    border:
        1px solid #e9e9e9;

    border-radius: 10px;

    background: #f8f8f8;
}


.pdv2-location-privacy__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 36px;
    height: 36px;

    color: #111111;
}


.pdv2-location-privacy__icon svg {
    width: 17px;
    height: 17px;
}


.pdv2-location-privacy__title {
    margin-bottom: 3px;

    color: #111111;

    font-size: 13.5px;
    font-weight: 600;

    line-height: 1.52;
}


.pdv2-location-privacy__text {
    margin: 0;

    color: #767676;

    font-size: 12.5px;

    line-height: 1.52;
}



/* ============================================================
   MAP WRAPPER
============================================================ */

.pdv2-location-map-wrap {
    display: flex;

    flex-direction: column;

    min-width: 0;

    overflow: hidden;

    border:
        1px solid #e4e4e4;

    border-radius: 14px;

    background: #ffffff;
}



/* ============================================================
   MAP HEADER
============================================================ */

.pdv2-location-map__top {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 14px;

    min-height: 67px;

    padding:
        13px
        15px;

    border-bottom:
        1px solid #e8e8e8;

    background: #ffffff;
}


.pdv2-location-map__label {
    margin-bottom: 3px;

    color: #8b8b8b;

    font-size: 10.5px;
    font-weight: 600;

    letter-spacing: 0.07em;

    text-transform: uppercase;
}


.pdv2-location-map__name {
    overflow: hidden;

    color: #111111;

    font-size: 12.5px;
    font-weight: 600;

    line-height: 1.4;

    text-overflow: ellipsis;
    white-space: nowrap;
}


.pdv2-location-map__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 34px;

    width: 34px;
    height: 34px;

    border-radius: 50%;

    background: #f6f6f6;

    color: #111111;
}


.pdv2-location-map__icon svg {
    width: 16px;
    height: 16px;
}



/* ============================================================
   LEAFLET MAP
============================================================ */

.pdv2-location-map {
    position: relative;

    flex: 1;

    min-height: 320px;

    background: #eeeeee;
}


.pdv2-location-map
.program-map {
    width: 100%;
    height: 100%;

    min-height: 320px;
}



/* ============================================================
   LEAFLET UI CLEANUP
============================================================ */

.pdv2-location-map
.leaflet-control-zoom {
    overflow: hidden;

    border:
        1px solid
        rgba(0, 0, 0, 0.11);

    border-radius: 8px;

    box-shadow:
        0
        3px
        12px
        rgba(0, 0, 0, 0.08);
}


.pdv2-location-map
.leaflet-control-zoom a {
    border-bottom-color: #e6e6e6;

    background: #ffffff;

    color: #111111;

    font-family: inherit;
}


.pdv2-location-map
.leaflet-control-attribution {
    background:
        rgba(255,255,255,0.88);

    color: #777777;

    font-size: 9px;
}



/* ============================================================
   EXPANDABLE FADE
============================================================ */

.pdv2-location
.pdv2-expandable.is-collapsed
.pdv2-expandable__content::after {
    height: 90px;

    background:
        linear-gradient(
            to bottom,
            rgba(255,255,255,0),
            rgba(255,255,255,0.95) 70%,
            #ffffff 100%
        );
}



/* ============================================================
   TABLET
============================================================ */

@media (max-width: 991.98px) {

    .pdv2-location-layout {
        grid-template-columns:
            minmax(0, 0.9fr)
            minmax(280px, 1.1fr);

        gap: 18px;
    }


    .pdv2-location-map,
    .pdv2-location-map
    .program-map {
        min-height: 300px;
    }

}



/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 767.98px) {

    .pdv2-location-layout {
        grid-template-columns: 1fr;

        gap: 22px;
    }


    .pdv2-location-place {
        grid-template-columns:
            38px
            minmax(0, 1fr);

        gap: 11px;
    }


    .pdv2-location-place__icon {
        width: 38px;
        height: 38px;
    }


    .pdv2-location-place__name {
        font-size: 15px;
    }


    .pdv2-location-description__text {
        font-size: 13.5px;
    }


    .pdv2-location-map-wrap {
        border-radius: 12px;
    }


    .pdv2-location-map,
    .pdv2-location-map
    .program-map {
        min-height: 300px;
    }

}



/* ============================================================
   VERY SMALL MOBILE
============================================================ */

@media (max-width: 420px) {

    .pdv2-location-privacy {
        grid-template-columns:
            31px
            minmax(0, 1fr);

        padding:
            12px
            13px;
    }


    .pdv2-location-privacy__icon {
        width: 31px;
        height: 31px;
    }


    .pdv2-location-map,
    .pdv2-location-map
    .program-map {
        min-height: 270px;
    }

}

/* ============================================================
   PROGRAM DETAILS V2
   BOOKING SIDEBAR
============================================================ */

:root {
    /*--pdv2-brand: #00ae9d;
    --pdv2-brand-dark: #008f82;
    --pdv2-brand-soft: #eefaf8;*/

    /*
     * Change this value if the global website header
     * is taller or shorter.
     */
    --pdv2-booking-top: 92px;
}



/* ============================================================
   STICKY DESKTOP COLUMN
============================================================ */

.pdv2-booking-column {
    align-self: stretch;
}


.pdv2-booking-sticky {
    position: sticky;

    top: var(--pdv2-booking-top);

    z-index: 30;

    width: 100%;

    padding-bottom: 40px;
}



/* ============================================================
   BOOKING CARD
============================================================ */

.pdv2-booking-card {
    width: 100%;

    /*
     * No internal scrolling.
     * The complete booking card stays as one unit.
     */
    max-height: none;

    overflow: visible;

    border:
        1px solid #dedede;

    border-radius: 18px;

    background: #ffffff;

    box-shadow:
        0 14px 40px
        rgba(0, 0, 0, 0.08);
}


/* ============================================================
   PRICE
============================================================ */

.pdv2-booking-price {
    padding:
        24px
        24px
        20px;
}


.pdv2-booking-price__top {
    display: flex;

    align-items: flex-start;
    justify-content: space-between;

    gap: 14px;
}


.pdv2-booking-price__label {
    margin-bottom: 5px;

    color: #7c7c7c;

    font-size: 10.5px;
    font-weight: 600;

    letter-spacing: 0.07em;

    text-transform: uppercase;
}


.pdv2-booking-price__amount {
    color: #111111;

    font-size: clamp(
        1.8rem,
        2.3vw,
        2.35rem
    );

    font-weight: 650;

    line-height: 1.08;

    letter-spacing: -0.035em;
}


.pdv2-booking-price__type {
    display: inline-flex;

    align-items: center;

    min-height: 29px;

    padding:
        5px
        9px;

    border-radius: 999px;

    background: #f4f4f4;
    color: #000000;

    font-size: 9.5px;
    font-weight: 650;

    white-space: nowrap;
}


.pdv2-booking-price__format {
    margin-top: 8px;

    color: #5d5d5d;

    font-size: 12px;
    font-weight: 500;

    line-height: 1.4;
}


.pdv2-booking-price__packages {
    margin-top: 4px;

    color: #969696;

    font-size: 10.5px;

    line-height: 1.4;
}



/* ============================================================
   ACTIONS
============================================================ */

.pdv2-booking-actions {
    display: grid;

    gap: 9px;

    padding:
        0
        24px
        20px;
}


.pdv2-booking-primary,
.pdv2-booking-secondary {
    display: flex;

    align-items: center;
    justify-content: center;

    gap: 8px;

    width: 100%;

    min-height: 49px;

    padding:
        10px
        16px;

    border-radius: 10px;

    font-size: 13px;
    font-weight: 650;

    line-height: 1;

    text-decoration: none;

    transition:
        background 160ms ease,
        border-color 160ms ease,
        color 160ms ease,
        transform 160ms ease;
}


.pdv2-booking-primary {
    border:
        1px solid
        var(--pdv2-brand);

    background:
        var(--pdv2-brand);

    color: #ffffff;
}


.pdv2-booking-primary svg,
.pdv2-booking-secondary svg {
    width: 17px;
    height: 17px;
}


@media (hover: hover) {

    .pdv2-booking-primary:hover {
        border-color:
            var(--pdv2-brand-dark);

        background:
            var(--pdv2-brand-dark);

        color: #ffffff;

        transform:
            translateY(-1px);
    }

}


.pdv2-booking-secondary {
    border:
        1px solid
        #d9d9d9;

    background: #ffffff;

    color:
        var(--pdv2-brand-dark);
}


@media (hover: hover) {

    .pdv2-booking-secondary:hover {
        border-color:
            var(--pdv2-brand);

        background:
            var(--pdv2-brand-soft);

        color:
            var(--pdv2-brand-dark);
    }

}



/* ============================================================
   TRUST
============================================================ */

.pdv2-booking-trust {
    display: grid;

    gap: 8px;

    margin:
        0
        24px;

    padding:
        16px
        0;

    border-top:
        1px solid #ededed;

    border-bottom:
        1px solid #ededed;
}


.pdv2-booking-trust__item {
    display: flex;

    align-items: center;

    gap: 8px;

    color: #5f5f5f;

    font-size: 11px;
    font-weight: 500;

    line-height: 1.4;
}


.pdv2-booking-trust__check {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 18px;

    width: 18px;
    height: 18px;

    border-radius: 50%;

    background:
        var(--pdv2-brand-soft);

    color:
        var(--pdv2-brand-dark);
}


.pdv2-booking-trust__check svg {
    width: 12px;
    height: 12px;
}



/* ============================================================
   PROGRAM OPTION
============================================================ */

.pdv2-booking-option {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 14px;

    margin:
        18px
        24px
        0;

    padding:
        14px;

    border: 1px solid rgb(133 133 133 / 28%);
    border-radius: 11px;
    background: #f9f9f9;
}


.pdv2-booking-option__eyebrow {
    margin-bottom: 3px;

    color:
        var(--pdv2-brand);

    font-size: 9px;
    font-weight: 650;

    letter-spacing: 0.07em;

    text-transform: uppercase;
}


.pdv2-booking-option__title {
    color: #111111;

    font-size: 12.5px;
    font-weight: 600;

    line-height: 1.4;
}


.pdv2-booking-option__sub {
    margin-top: 2px;

    color: #757575;

    font-size: 10.5px;

    line-height: 1.4;
}


.pdv2-booking-option__right {
    display: flex;

    align-items: center;

    gap: 9px;

    flex: 0 0 auto;
}


.pdv2-booking-option__price {
    color: #111111;

    font-size: 12px;
    font-weight: 650;
}


.pdv2-booking-option__selected {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 18px;
    height: 18px;

    border:
        1.5px solid
        var(--pdv2-brand);

    border-radius: 50%;

    background: #ffffff;
}


.pdv2-booking-option__selected span {
    display: block;

    width: 8px;
    height: 8px;

    border-radius: 50%;

    background:
        var(--pdv2-brand);
}



/* ============================================================
   CANCELLATION
============================================================ */

.pdv2-booking-cancellation {
    margin:
        18px
        24px
        0;

    padding:
        14px;

    border:
        1px solid #e5e5e5;

    border-radius: 11px;

    background: #fafafa;
}


.pdv2-booking-cancellation__top {
    display: flex;

    align-items: center;

    gap: 8px;

    margin-bottom: 7px;
}


.pdv2-booking-cancellation__badge {
    display: inline-flex;

    /*padding:
        4px
        7px;*/

    border-radius: 999px;

    background:
        var(--pdv2-brand-soft);

    color:
        var(--pdv2-brand-dark);

    font-size: 8.5px;
    font-weight: 700;

    letter-spacing: 0.05em;

    text-transform: uppercase;
}


.pdv2-booking-cancellation__title {
    font-weight: 600;
    color: var(--pdv2-brand);
    font-size: 9px;
    font-weight: 650;
    text-transform: uppercase;
}


.pdv2-booking-cancellation__text {
    margin:
        0
        0
        8px;

    color: #717171;

    font-size: 10.5px;

    line-height: 1.55;

    text-align: justify;
    text-align-last: left;
}


.pdv2-booking-cancellation__link {
    display: inline-flex;

    align-items: center;

    gap: 4px;

    padding: 0;

    border: 0;

    background: none;

    color:
        var(--pdv2-brand-dark);

    font-size: 10.5px;
    font-weight: 650;

    cursor: pointer;
}


.pdv2-booking-cancellation__link svg {
    width: 13px;
    height: 13px;
}



/* ============================================================
   PROGRAM DETAILS
============================================================ */

.pdv2-booking-details {
    margin-top: 19px;

    padding:
        18px
        24px;

    border-top:
        1px solid #ebebeb;
}


.pdv2-booking-details__heading {
    margin-bottom: 11px;

    color: #111111;

    font-size: 12px;
    font-weight: 650;
}


.pdv2-booking-detail {
    display: grid;

    grid-template-columns:
        minmax(0, 0.8fr)
        minmax(0, 1.2fr);

    gap: 14px;

    padding:
        8px
        0;

    border-bottom:
        1px solid #f0f0f0;
}


.pdv2-booking-detail:last-child {
    border-bottom: 0;
}


.pdv2-booking-detail > span {
    color: #8a8a8a;

    font-size: 10.5px;

    line-height: 1.45;
}


.pdv2-booking-detail strong {
    color: #333333;

    font-size: 10.8px;
    font-weight: 600;

    line-height: 1.45;

    text-align: right;
}



/* ============================================================
   HOST
============================================================ */

.pdv2-booking-host {
    padding:
        18px
        24px
        23px;

    border-top:
        1px solid #ebebeb;
}


.pdv2-booking-host__header {
    margin-bottom: 11px;

    color: #8b8b8b;

    font-size: 9.5px;
    font-weight: 650;

    letter-spacing: 0.07em;

    text-transform: uppercase;
}


.pdv2-booking-host__profile {
    display: grid;

    grid-template-columns:
        48px
        minmax(0, 1fr);

    gap: 11px;
}


.pdv2-booking-host__avatar {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 48px;
    height: 48px;

    overflow: hidden;

    border-radius: 50%;

    background: #eeeeee;

    color: #111111;

    font-size: 12px;
    font-weight: 650;
}


.pdv2-booking-host__avatar img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}


.pdv2-booking-host__name {
    margin-bottom: 3px;

    color: #111111;

    font-size: 13px;
    font-weight: 650;

    line-height: 1.35;
}


.pdv2-booking-host__verified {
    display: flex;

    align-items: center;

    gap: 4px;

    color:
        var(--pdv2-brand-dark);

    font-size: 9.5px;
    font-weight: 600;
}


.pdv2-booking-host__verified span {
    display: inline-flex;

    width: 13px;
    height: 13px;
}


.pdv2-booking-host__verified svg {
    width: 100%;
    height: 100%;
}


.pdv2-booking-host__specialities {
    margin-top: 6px;

    color: #747474;

    font-size: 10.5px;

    line-height: 1.45;
}


.pdv2-booking-host__rating {
    display: flex;

    align-items: center;

    gap: 4px;

    margin-top: 6px;

    color: #555555;

    font-size: 10px;
}


.pdv2-booking-host__rating svg {
    width: 13px;
    height: 13px;

    color:
        var(--pdv2-brand);
}


.pdv2-booking-host__rating strong {
    color: #222222;
}


.pdv2-booking-host__profile-link {
    display: inline-flex;

    align-items: center;

    gap: 5px;

    margin-top: 12px;

    padding: 0;

    border: 0;

    background: none;

    color:
        var(--pdv2-brand-dark);

    font-size: 10.5px;
    font-weight: 650;

    cursor: pointer;
}


.pdv2-booking-host__profile-link svg {
    width: 13px;
    height: 13px;
}



/* ============================================================
   MOBILE BOOKING BAR
============================================================ */

.pdv2-mobile-booking {
    display: none;
}



/* ============================================================
   EXISTING POLICY / HEALTHMATE MODAL BRAND OVERRIDES
============================================================ */

.cancellation-policy-modal__done,
.healthmate-profile-modal__done {
    border-color:
        var(--pdv2-brand) !important;

    background:
        var(--pdv2-brand) !important;

    color: #ffffff !important;
}


.cancellation-policy-modal__done:hover,
.healthmate-profile-modal__done:hover {
    border-color:
        var(--pdv2-brand-dark) !important;

    background:
        var(--pdv2-brand-dark) !important;
}


.cancellation-policy-modal__full-policy,
.healthmate-profile-modal__website {
    color:
        var(--pdv2-brand-dark) !important;
}


.cancellation-policy-badge--green {
    border-color:
        rgba(0, 174, 157, 0.24) !important;

    background:
        var(--pdv2-brand-soft) !important;

    color:
        var(--pdv2-brand-dark) !important;
}


.cancellation-policy-modal p,
.healthmate-profile-dialog p,
.healthmate-profile-section__text {
    text-align: justify;
    text-align-last: left;
    text-justify: inter-word;
}



/* ============================================================
   SMALLER DESKTOP
============================================================ */

@media (max-width: 1199.98px) {

    .pdv2-booking-price {
        padding:
            21px
            19px
            18px;
    }


    .pdv2-booking-actions {
        padding:
            0
            19px
            18px;
    }


    .pdv2-booking-trust,
    .pdv2-booking-option,
    .pdv2-booking-cancellation {
        margin-left: 19px;
        margin-right: 19px;
    }


    .pdv2-booking-details,
    .pdv2-booking-host {
        padding-left: 19px;
        padding-right: 19px;
    }

}



/* ============================================================
   TABLET / MOBILE
============================================================ */

@media (max-width: 991.98px) {

    .pdv2-booking-column {
        display: none;
    }


    .pdv2-mobile-booking {
        position: fixed;

        left: 0;
        right: 0;
        bottom: 0;

        z-index: 1040;

        display: flex;

        align-items: center;
        justify-content: space-between;

        gap: 14px;

        min-height: 76px;

        padding:
            10px
            16px
            calc(
                10px +
                env(safe-area-inset-bottom)
            );

        border-top:
            1px solid #e1e1e1;

        background:
            rgba(255,255,255,0.97);

        box-shadow:
            0 -7px 24px
            rgba(0,0,0,0.08);

        backdrop-filter:
            blur(16px);
    }


    .pdv2-mobile-booking__price {
        min-width: 0;
    }


    .pdv2-mobile-booking__from {
        display: block;

        margin-bottom: 2px;

        color: #8b8b8b;

        font-size: 9.5px;
        font-weight: 600;

        text-transform: uppercase;
    }


    .pdv2-mobile-booking__price strong {
        display: block;

        color: #111111;

        font-size: 17px;
        font-weight: 650;

        line-height: 1.1;
    }


    .pdv2-mobile-booking__cta {
        display: inline-flex;

        align-items: center;
        justify-content: center;

        gap: 7px;

        flex: 0 0 auto;

        min-height: 48px;

        padding:
            10px
            20px;

        border-radius: 10px;

        background:
            var(--pdv2-brand);

        color: #ffffff;

        font-size: 12.5px;
        font-weight: 650;

        text-decoration: none;
    }


    .pdv2-mobile-booking__cta svg {
        width: 16px;
        height: 16px;
    }


    /*
     * Prevent the fixed booking bar from covering
     * the final page content.
     */

    .program-content-layout {
        padding-bottom: 92px;
    }

}



/* ============================================================
   VERY SMALL MOBILE
============================================================ */

@media (max-width: 420px) {

    .pdv2-mobile-booking {
        gap: 10px;

        padding-left: 12px;
        padding-right: 12px;
    }


    .pdv2-mobile-booking__price strong {
        font-size: 15px;
    }


    .pdv2-mobile-booking__cta {
        min-height: 46px;

        padding:
            9px
            16px;
    }

}

/* ============================================================
   BOOKING SIDEBAR
   TYPOGRAPHY SIZE CORRECTION
============================================================ */


/* ------------------------------------------------------------
   PRICE AREA
------------------------------------------------------------ */

.pdv2-booking-price__label {
    font-size: 13px;
}


.pdv2-booking-price__amount {
    font-size: 2.45rem;
}


.pdv2-booking-price__type {
    font-size: 11px;

    padding:
        6px
        10px;
}


.pdv2-booking-price__format {
    font-size: 13.5px;
}


.pdv2-booking-price__packages {
    font-size: 14px;
}



/* ------------------------------------------------------------
   BUTTONS
------------------------------------------------------------ */

.pdv2-booking-primary,
.pdv2-booking-secondary {
    min-height: 52px;

    font-size: 14px;
}



/* ------------------------------------------------------------
   TRUST ITEMS
------------------------------------------------------------ */

.pdv2-booking-trust {
    gap: 10px;
}


.pdv2-booking-trust__item {
    font-size: 14.5px;

    line-height: 1.45;
}


.pdv2-booking-trust__check {
    flex-basis: 20px;

    width: 20px;
    height: 20px;
}


.pdv2-booking-trust__check svg {
    width: 13px;
    height: 13px;
}



/* ------------------------------------------------------------
   PROGRAM OPTION
------------------------------------------------------------ */

.pdv2-booking-option__eyebrow {
    font-size: 11px;
}


.pdv2-booking-option__title {
    font-size: 14px;
}


.pdv2-booking-option__sub {
    font-size: 12px;
}


.pdv2-booking-option__price {
    font-size: 13.5px;
}



/* ------------------------------------------------------------
   CANCELLATION
------------------------------------------------------------ */

.pdv2-booking-cancellation__badge {
    font-size: 9.5px;
}


.pdv2-booking-cancellation__title {
    font-size: 11px;
}


.pdv2-booking-cancellation__text {
    font-size: 14px;
    line-height: 1.52;
}


.pdv2-booking-cancellation__link {
    font-size: 13px;
}



/* ------------------------------------------------------------
   PROGRAM DETAILS
------------------------------------------------------------ */

.pdv2-booking-details__heading {
    margin-bottom: 14px;

    font-size: 15px;
}


.pdv2-booking-detail {
    padding:
        10px
        0;
}


.pdv2-booking-detail > span {
    font-size: 14px;

    line-height: 1.5;
}


.pdv2-booking-detail strong {
    font-size: 14px;

    line-height: 1.5;
}



/* ------------------------------------------------------------
   HOST / HEALTHMATE
------------------------------------------------------------ */

.pdv2-booking-host__header {
    font-size: 12px;
}


.pdv2-booking-host__name {
    font-size: 15px;
}


.pdv2-booking-host__verified {
    font-size: 12px;
}


.pdv2-booking-host__specialities {
    font-size: 12px;

    line-height: 1.5;
}


.pdv2-booking-host__rating {
    font-size: 13px;
}


.pdv2-booking-host__profile-link {
    font-size: 13px;
}



/* ------------------------------------------------------------
   SLIGHTLY MORE BREATHING ROOM
------------------------------------------------------------ */

.pdv2-booking-price {
    padding:
        26px
        24px
        21px;
}


.pdv2-booking-actions {
    padding:
        0
        24px
        22px;
}


.pdv2-booking-trust {
    padding:
        18px
        0;
}


.pdv2-booking-details {
    padding:
        20px
        24px;
}


.pdv2-booking-host {
    padding:
        20px
        24px
        24px;
}


/* ============================================================
   PROGRAM DETAILS V2
   CANCELLATION POLICY MODAL
============================================================ */


/* ============================================================
   MODAL SHELL
============================================================ */

.pdv2-policy-modal {
    --pdv2-policy-brand: var(--pdv2-brand, #00ae9d);
    --pdv2-policy-brand-dark: var(--pdv2-brand-dark, #008f82);
    --pdv2-policy-brand-soft: var(--pdv2-brand-soft, #eefaf8);
}


.pdv2-policy-modal
.modal-dialog {
    width: calc(100% - 32px);

    max-width: 780px;

    margin-left: auto;
    margin-right: auto;
}


.pdv2-policy-modal
.modal-content {
    overflow: hidden;

    max-height: min(
        88vh,
        900px
    );

    border: 0;

    border-radius: 18px;

    background: #ffffff;

    box-shadow:
        0
        24px
        70px
        rgba(0, 0, 0, 0.2);
}



/* ============================================================
   HEADER
============================================================ */

.pdv2-policy-modal__header {
    display: flex;

    align-items: flex-start;
    justify-content: space-between;

    gap: 20px;

    flex: 0 0 auto;

    padding:
        23px
        26px
        20px;

    border-bottom:
        1px solid #e9e9e9;

    background: #ffffff;
}


.pdv2-policy-modal__heading {
    display: flex;

    align-items: flex-start;

    gap: 13px;
}


.pdv2-policy-modal__heading-icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 42px;

    width: 42px;
    height: 42px;

    border-radius: 50%;

    background: #e8e8e8;
    color: #424141;
}


.pdv2-policy-modal__heading-icon svg {
    width: 20px;
    height: 20px;
}


.pdv2-policy-modal__eyebrow {
    
    color: #01ae9d;

    font-size: 11px;
    font-weight: 650;

    letter-spacing: 0.08em;

    text-transform: uppercase;
}


.pdv2-policy-modal__title {
    margin:
        0
        0
        8px;

    color: #111111;

    font-size: 21px;
    font-weight: 650;

    line-height: 1.2;

    letter-spacing: -0.025em;
}


.pdv2-policy-modal__badges {
    display: flex;

    flex-wrap: wrap;

    gap: 6px;
}


.pdv2-policy-badge {
    display: inline-flex;

    align-items: center;

    min-height: 25px;

    padding:
        4px
        8px;

    border: 1px solid #e3e3e3;

    border-radius: 999px;

        background: #fafafa;
    color: #424141;
    font-size: 9.5px;
    font-weight: 650;

    letter-spacing: 0.04em;

    text-transform: uppercase;
}


.pdv2-policy-badge--brand {
    border-color:
        rgba(0, 174, 157, 0.23);

        background: #fafafa;
    color: #424141;
    font-size: 9.5px;
}



/* ============================================================
   CLOSE
============================================================ */

.pdv2-policy-modal__close {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 36px;

    width: 36px;
    height: 36px;

    padding: 0;

    border:
        1px solid #e5e5e5;

    border-radius: 50%;

    background: #ffffff;

    color: #444444;

    cursor: pointer;
}


.pdv2-policy-modal__close svg {
    width: 16px;
    height: 16px;
}



/* ============================================================
   BODY
============================================================ */

.pdv2-policy-modal__body {
    padding:
        24px
        26px
        30px;

    background: #ffffff;
}



/* ============================================================
   GRACE PERIOD
============================================================ */

.pdv2-policy-highlight {
    display: grid;

    grid-template-columns:
        42px
        minmax(0, 1fr);

    gap: 14px;

    padding:
        17px
        18px;

    border: 1px solid rgb(83 83 83 / 22%);

    border-radius: 12px;

    background: #fafafa;
    color: #424141;
}


.pdv2-policy-highlight__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;

    border-radius: 50%;

        background: #e8e8e8;

    color: #424141;
}


.pdv2-policy-highlight__icon svg {
    width: 19px;
    height: 19px;
}


.pdv2-policy-highlight h3 {
    margin:
        1px
        0
        5px;

    color: #111111;

    font-size: 15px;
    font-weight: 650;
}


.pdv2-policy-highlight p {
    margin: 0;

    color: #424141;
    font-size: 13px;
    line-height: 1.52;

    text-align: justify;
    text-align-last: left;
}



/* ============================================================
   POLICY SECTION
============================================================ */

.pdv2-policy-section {
    margin-top: 29px;

    padding-top: 27px;

    border-top:
        1px solid #ebebeb;
}


.pdv2-policy-section__eyebrow {
    margin-bottom: 7px;
    color: #01ae9d;
    font-size: 11.5px;
    font-weight: 650;

    letter-spacing: 0.075em;

    text-transform: uppercase;
}


.pdv2-policy-section__title {
    margin:
        0
        0
        16px;

    color: #111111;

    font-size: 16px;
    font-weight: 650;

    line-height: 1.35;
}


.pdv2-policy-section__text {
    margin:
        0
        0
        12px;

    color: #555555;

    font-size: 13.5px;
    line-height: 1.52;

    text-align: justify;
    text-align-last: left;
}


.pdv2-policy-section__text:last-child {
    margin-bottom: 0;
}



/* ============================================================
   REFUND TABLE
============================================================ */

.pdv2-policy-table {
    overflow: hidden;

    border:
        1px solid #e4e4e4;

    border-radius: 11px;

    background: #ffffff;
}


.pdv2-policy-table__header,
.pdv2-policy-table__row {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        92px;

    gap: 18px;

    align-items: center;
}


.pdv2-policy-table__header {
    padding:
        10px
        14px;

    background: #f7f7f7;

    color: #777777;

    font-size: 12px;
    font-weight: 650;

    letter-spacing: 0.06em;

    text-transform: uppercase;
}


.pdv2-policy-table__header
span:last-child {
    text-align: right;
}


.pdv2-policy-table__row {
    min-height: 59px;

    padding:
        12px
        14px;

    border-top:
        1px solid #ececec;

    color: #454545;

    font-size: 13px;

    line-height: 1.45;
}


.pdv2-policy-table__row--active {
    position: relative;

    background:
        var(--pdv2-policy-brand-soft);
}


.pdv2-policy-table__row--active::before {
    content: "";

    position: absolute;

    top: 0;
    bottom: 0;
    left: 0;

    width: 3px;

    background:
        var(--pdv2-policy-brand);
}


.pdv2-policy-table__window {
    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 7px;
}


.pdv2-policy-table__current {
    display: inline-flex;

    padding:
        3px
        6px;

    border-radius: 999px;

    background:
        var(--pdv2-policy-brand);

    color: #ffffff;

    font-size: 8px;
    font-weight: 700;

    letter-spacing: 0.04em;

    text-transform: uppercase;
}


.pdv2-policy-table__refund {
    color:
        var(--pdv2-policy-brand-dark);

    font-size: 13px;
    font-weight: 700;

    text-align: right;
}


.pdv2-policy-table__refund--none {
    color: #555555;
}



/* ============================================================
   POLICY NOTE
============================================================ */

.pdv2-policy-note {
    margin:
        12px
        2px
        0;

    color: #898989;

    font-size: 13.5px;
    line-height: 1.52;

    text-align: justify;
    text-align-last: left;
}



/* ============================================================
   PROTECTION CARD
============================================================ */

.pdv2-policy-protection {
    display: grid;

    grid-template-columns:
        40px
        minmax(0, 1fr);

    gap: 13px;

    padding:
        17px
        18px;

    border:
        1px solid #e3e3e3;

    border-radius: 12px;

    background: #f7f7f7;
    margin-top: 12px;
}


.pdv2-policy-protection__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 40px;
    height: 40px;

    border-radius: 50%;

    background: #e8e8e8;

    color: #424141;
        
}


.pdv2-policy-protection__icon svg {
    width: 18px;
    height: 18px;
}


.pdv2-policy-protection h3 {
    margin:
        1px
        0
        7px;

    color: #111111;

    font-size: 14px;
    font-weight: 650;
}


.pdv2-policy-protection p {
    margin:
        0
        0
        9px;

    color: #555555;

    font-size: 14px;

    line-height: 1.52;

    text-align: justify;
    text-align-last: left;
}


.pdv2-policy-protection p:last-child {
    margin-bottom: 0;
}



/* ============================================================
   LIST
============================================================ */

.pdv2-policy-list {
    display: grid;

    gap: 9px;

    margin: 0;

    padding-left: 18px;

    color: #555555;

    font-size: 12.5px;

    line-height: 1.65;
}


.pdv2-policy-list li {
    padding-left: 3px;
}



/* ============================================================
   FOOTER
============================================================ */

.pdv2-policy-modal__footer {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 20px;

    flex: 0 0 auto;

    padding:
        15px
        26px;

    border-top:
        1px solid #e8e8e8;

    background:
        rgba(255, 255, 255, 0.98);
}


.pdv2-policy-modal__full-policy {
    display: inline-flex;

    align-items: center;

    gap: 5px;

    color:
        var(--pdv2-policy-brand-dark);

    font-size: 13px;
    font-weight: 650;

    text-decoration: none;
}


.pdv2-policy-modal__full-policy svg {
    width: 14px;
    height: 14px;
}


.pdv2-policy-modal__done {
    min-width: 90px;

    min-height: 40px;

    padding:
        9px
        18px;

    border:
        1px solid
        var(--pdv2-policy-brand);

    border-radius: 9px;

    background:
        var(--pdv2-policy-brand);

    color: #ffffff;

    font-size: 11.5px;
    font-weight: 650;

    cursor: pointer;
}



/* ============================================================
   HEALTHMATE PROFILE DIALOG
============================================================ */

.pdv2-healthmate-dialog {
    width:
        min(
            calc(100% - 32px),
            760px
        );

    max-width: 760px;

    max-height: 88vh;

    margin: auto;

    padding: 0;

    overflow: hidden;

    border: 0;

    border-radius: 18px;

    background: transparent;

    box-shadow:
        0
        24px
        80px
        rgba(0, 0, 0, 0.22);
}


.pdv2-healthmate-dialog::backdrop {
    background:
        rgba(0, 0, 0, 0.54);

    backdrop-filter:
        blur(3px);
}


.pdv2-healthmate-dialog__shell {
    display: flex;

    flex-direction: column;

    max-height: 88vh;

    background: #ffffff;
}



/* ============================================================
   HEALTHMATE HEADER
============================================================ */

.pdv2-healthmate-dialog__header {
    display: flex;

    align-items: flex-start;
    justify-content: space-between;

    gap: 20px;

    flex: 0 0 auto;

    padding:
        22px
        25px
        19px;

    border-bottom:
        1px solid #e9e9e9;
}


.pdv2-healthmate-dialog__eyebrow {
    margin-bottom: 4px;

    color:
        var(--pdv2-brand-dark);

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.085em;

    text-transform: uppercase;
}


.pdv2-healthmate-dialog__title {
    margin: 0;

    color: #111111;

    font-size: 21px;
    font-weight: 650;

    line-height: 1.25;

    letter-spacing: -0.025em;
}


.pdv2-healthmate-dialog__close {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 36px;

    width: 36px;
    height: 36px;

    padding: 0;

    border:
        1px solid #e5e5e5;

    border-radius: 50%;

    background: #ffffff;

    color: #444444;

    cursor: pointer;
}


.pdv2-healthmate-dialog__close svg {
    width: 16px;
    height: 16px;
}



/* ============================================================
   HEALTHMATE BODY
============================================================ */

.pdv2-healthmate-dialog__body {
    flex: 1 1 auto;

    overflow-y: auto;

    padding:
        25px;

    scrollbar-width: thin;
    scrollbar-color:
        #d7d7d7
        transparent;
}



/* ============================================================
   PROFILE HERO
============================================================ */

.pdv2-healthmate-profile {
    display: grid;

    grid-template-columns:
        150px
        minmax(0, 1fr);

    gap: 23px;

    align-items: center;
}


.pdv2-healthmate-profile__media {
    width: 150px;
}


.pdv2-healthmate-profile__photo,
.pdv2-healthmate-profile__placeholder {
    display: block;

    width: 150px;
    height: 170px;

    border-radius: 13px;

    object-fit: cover;
}


.pdv2-healthmate-profile__placeholder {
    display: flex;

    align-items: center;
    justify-content: center;

    border:
        1px solid #e5e5e5;

    background: #f5f5f5;

    color: #222222;

    font-size: 27px;
    font-weight: 650;
}


.pdv2-healthmate-profile__type {
    /*margin-bottom: 5px;*/

    color: #8a8a8a;

    font-size: 12px;
    font-weight: 650;

    letter-spacing: 0.07em;

    text-transform: uppercase;
}


.pdv2-healthmate-profile__name {
    margin:
        0
        0
        7px;

    color: #111111;

    font-size: 25px;
    font-weight: 650;

    line-height: 1.18;

    letter-spacing: -0.03em;
}


.pdv2-healthmate-profile__verified {
    display: inline-flex;

    align-items: center;

    gap: 5px;

    color:
        var(--pdv2-brand-dark);

    font-size: 13px;
    font-weight: 650;
}


.pdv2-healthmate-profile__verified-icon {
    display: inline-flex;

    width: 17px;
    height: 17px;
}


.pdv2-healthmate-profile__verified-icon svg {
    width: 100%;
    height: 100%;
}



/* ============================================================
   HEALTHMATE META
============================================================ */

.pdv2-healthmate-profile__meta {
    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 7px;

    margin-top: 13px;

    color: #747474;

    font-size: 14px;
}


.pdv2-healthmate-profile__rating,
.pdv2-healthmate-profile__location {
    display: inline-flex;

    align-items: center;

    gap: 5px;
}


.pdv2-healthmate-profile__rating svg,
.pdv2-healthmate-profile__location svg {
    width: 17px;
    height: 17px;
}


.pdv2-healthmate-profile__rating svg {
    color:
        var(--pdv2-brand);
}


.pdv2-healthmate-profile__rating strong {
    color: #222222;
}


.pdv2-healthmate-profile__dot {
    width: 3px;
    height: 3px;

    border-radius: 50%;

    background: #b1b1b1;
}



/* ============================================================
   QUICK FACTS
============================================================ */

.pdv2-healthmate-facts {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap: 9px;

    margin-top: 27px;
}


.pdv2-healthmate-fact {
    display: grid;

    grid-template-columns:
        38px
        minmax(0, 1fr);

    gap: 11px;

    align-items: center;

    min-height: 72px;

    padding:
        13px;

    border:
        1px solid #e6e6e6;

    border-radius: 11px;

    background: #fafafa;
}


.pdv2-healthmate-fact__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;

    border-radius: 50%;

    background:
        var(--pdv2-brand-soft);

    color:
        var(--pdv2-brand-dark);
}


.pdv2-healthmate-fact__icon svg {
    width: 18px;
    height: 18px;
}


.pdv2-healthmate-fact__label {
    margin-bottom: 3px;

    color: #8c8c8c;

    font-size: 11px;
    font-weight: 650;

    letter-spacing: 0.06em;

    text-transform: uppercase;
}


.pdv2-healthmate-fact__value {
    color: #222222;

    font-size: 15px;
    font-weight: 600;

    line-height: 1.4;
}



/* ============================================================
   PROFILE SECTIONS
============================================================ */

.pdv2-healthmate-section {
    margin-top: 29px;

    padding-top: 27px;

    border-top:
        1px solid #e9e9e9;
}


.pdv2-healthmate-section__eyebrow {


    color: #01ae9d;
    font-size: 13px;
    font-weight: 650;

    letter-spacing: 0.08em;

    text-transform: uppercase;
}


.pdv2-healthmate-section__title {
    margin:
        0
        0
        11px;

    color: #111111;

    font-size: 18px;
    font-weight: 650;
}


.pdv2-healthmate-section__text {
    margin: 0;

    color: #555555;

    font-size: 15px;

    line-height: 1.52;

    text-align: justify;
    text-align-last: left;
}



/* ============================================================
   EXPERTISE
============================================================ */

.pdv2-healthmate-expertise {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap: 8px;
}


.pdv2-healthmate-expertise__item {
    display: flex;

    align-items: center;

    gap: 8px;

    min-height: 42px;

    padding:
        9px
        11px;

    border:
        1px solid #e5e5e5;

    border-radius: 9px;

    color: #3d3d3d;

    font-size: 14px;
    font-weight: 500;
}


.pdv2-healthmate-expertise__check {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 17px;

    width: 17px;
    height: 17px;

    border-radius: 50%;

    background:
        var(--pdv2-brand-soft);

    color:
        var(--pdv2-brand-dark);
}


.pdv2-healthmate-expertise__check svg {
    width: 11px;
    height: 11px;
}



/* ============================================================
   HEALTHMATE LOCATION
============================================================ */

.pdv2-healthmate-location {
    display: grid;

    grid-template-columns:
        40px
        minmax(0, 1fr);

    gap: 12px;

    align-items: center;

    margin-top: 29px;

    padding:
        14px
        16px;

    border:
        1px solid #e5e5e5;

    border-radius: 11px;

    background: #fafafa;
}


.pdv2-healthmate-location__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 40px;
    height: 40px;

    border-radius: 50%;

    background: #ffffff;

    color:
        var(--pdv2-brand-dark);
}


.pdv2-healthmate-location__icon svg {
    width: 18px;
    height: 18px;
}


.pdv2-healthmate-location__label {


    color: #01ae9d;
    font-size: 12px;
    font-weight: 650;

    letter-spacing: 0.06em;

    text-transform: uppercase;
}


.pdv2-healthmate-location__value {
    color: #222222;

    font-size: 14.5px;
    font-weight: 600;
}



/* ============================================================
   HEALTHMATE FOOTER
============================================================ */

.pdv2-healthmate-dialog__footer {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 18px;

    flex: 0 0 auto;

    padding:
        14px
        25px;

    border-top:
        1px solid #e8e8e8;

    background: #ffffff;
}


.pdv2-healthmate-dialog__website {
    display: inline-flex;

    align-items: center;

    gap: 6px;

    color:
        var(--pdv2-brand-dark);

    font-size: 11px;
    font-weight: 650;

    text-decoration: none;
}


.pdv2-healthmate-dialog__website svg {
    width: 14px;
    height: 14px;
}


.pdv2-healthmate-dialog__done {
    min-width: 85px;

    min-height: 40px;

    padding:
        9px
        17px;

    border:
        1px solid
        var(--pdv2-brand);

    border-radius: 9px;

    background:
        var(--pdv2-brand);

    color: #ffffff;

    font-size: 11.5px;
    font-weight: 650;

    cursor: pointer;
}



/* ============================================================
   HOVER
============================================================ */

@media (hover: hover) {

    .pdv2-policy-modal__done:hover,
    .pdv2-healthmate-dialog__done:hover {
        border-color:
            var(--pdv2-brand-dark);

        background:
            var(--pdv2-brand-dark);
    }


    .pdv2-policy-modal__close:hover,
    .pdv2-healthmate-dialog__close:hover {
        border-color: #d4d4d4;

        background: #f7f7f7;
    }


    .pdv2-policy-modal__full-policy:hover,
    .pdv2-healthmate-dialog__website:hover {
        color:
            var(--pdv2-brand-dark);

        text-decoration: underline;
    }

}



/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 767.98px) {

    .pdv2-policy-modal
    .modal-dialog {
        width:
            calc(
                100% - 18px
            );

        margin:
            9px
            auto;
    }


    .pdv2-policy-modal
    .modal-content {
        max-height:
            calc(
                100dvh - 18px
            );

        border-radius: 14px;
    }


    .pdv2-policy-modal__header {
        padding:
            18px
            17px
            16px;
    }


    .pdv2-policy-modal__heading {
        gap: 10px;
    }


    .pdv2-policy-modal__heading-icon {
        flex-basis: 36px;

        width: 36px;
        height: 36px;
    }


    .pdv2-policy-modal__title {
        font-size: 18px;
    }


    .pdv2-policy-modal__body {
        padding:
            18px
            17px
            24px;
    }


    .pdv2-policy-highlight {
        grid-template-columns:
            36px
            minmax(0, 1fr);

        padding:
            14px;
    }


    .pdv2-policy-highlight__icon {
        width: 36px;
        height: 36px;
    }


    .pdv2-policy-table__header,
    .pdv2-policy-table__row {
        grid-template-columns:
            minmax(0, 1fr)
            64px;

        gap: 10px;
    }


    .pdv2-policy-table__row {
        padding:
            11px
            12px;

        font-size: 11px;
    }


    .pdv2-policy-modal__footer {
        padding:
            12px
            17px;
    }



    /* Healthmate dialog */

    .pdv2-healthmate-dialog {
        width:
            calc(
                100% - 18px
            );

        max-height:
            calc(
                100dvh - 18px
            );

        border-radius: 14px;
    }


    .pdv2-healthmate-dialog__shell {
        max-height:
            calc(
                100dvh - 18px
            );
    }


    .pdv2-healthmate-dialog__header {
        padding:
            18px
            17px
            16px;
    }


    .pdv2-healthmate-dialog__title {
        font-size: 18px;
    }


    .pdv2-healthmate-dialog__body {
        padding:
            18px
            17px
            23px;
    }


    .pdv2-healthmate-profile {
        grid-template-columns:
            100px
            minmax(0, 1fr);

        gap: 16px;
    }


    .pdv2-healthmate-profile__media {
        width: 100px;
    }


    .pdv2-healthmate-profile__photo,
    .pdv2-healthmate-profile__placeholder {
        width: 100px;
        height: 122px;

        border-radius: 11px;
    }


    .pdv2-healthmate-profile__name {
        font-size: 20px;
    }


    .pdv2-healthmate-facts {
        grid-template-columns: 1fr;
    }


    .pdv2-healthmate-expertise {
        grid-template-columns: 1fr;
    }


    .pdv2-healthmate-dialog__footer {
        padding:
            12px
            17px;
    }

}



/* ============================================================
   VERY SMALL MOBILE
============================================================ */

@media (max-width: 420px) {

    .pdv2-policy-modal__heading-icon {
        display: none;
    }


    .pdv2-policy-modal__full-policy span {
        font-size: 10px;
    }


    .pdv2-policy-modal__done {
        min-width: 74px;
    }


    .pdv2-healthmate-profile {
        grid-template-columns: 1fr;

        align-items: start;
    }


    .pdv2-healthmate-profile__media {
        width: 100%;
    }


    .pdv2-healthmate-profile__photo,
    .pdv2-healthmate-profile__placeholder {
        width: 100%;
        height: auto;

        aspect-ratio: 16 / 10;
    }


    .pdv2-healthmate-profile__photo {
        object-position: center 25%;
    }

}

/* ============================================================
   POLICY MODAL
   STACKING FIX
============================================================ */

/*
 * Cancellation policy modal must always sit
 * above its Bootstrap backdrop.
 */

.pdv2-policy-modal {
    z-index: 21010 !important;
}


body.pdv2-policy-open
.modal-backdrop {
    z-index: 21000 !important;
}


/*
 * The modal itself must remain fully opaque.
 */

.pdv2-policy-modal.show {
    opacity: 1 !important;
}


.pdv2-policy-modal
.modal-dialog,
.pdv2-policy-modal
.modal-content {
    position: relative;

    z-index: 1;

    opacity: 1 !important;

    filter: none !important;
}


/*
 * Keep the normal dark page overlay,
 * but never apply it over the modal.
 */

body.pdv2-policy-open
.modal-backdrop.show {
    opacity: 0.5;
}