/* =========================================================
   LIFED BOOKING
   Premium booking interface
   Single booking-specific stylesheet
   ========================================================= */


/* =========================================================
   TOKENS
   ========================================================= */

:root {

    --lfd-book-brand: #00ae9d;
    --lfd-book-brand-dark: #078f82;
    --lfd-book-brand-deep: #12645c;

    --lfd-book-brand-050: #f2fbf9;
    --lfd-book-brand-100: #e7f7f4;

    --lfd-book-green-050: #f4faef;
    --lfd-book-green-100: #eaf6dd;
    --lfd-book-green: #68ad49;

    --lfd-book-ink: #222222;
    --lfd-book-text: #536c67;
    --lfd-book-muted: #82938f;
    --lfd-book-faint: #a8b6b2;

    --lfd-book-page: #f7faf9;
    --lfd-book-white: #ffffff;
    --lfd-book-soft: #fbfdfc;

    --lfd-book-line: #e2ebe9;
    --lfd-book-line-strong: #d2dfdc;

    --lfd-book-danger: #c54e54;
    --lfd-book-danger-bg: #fff5f5;

    --lfd-book-radius-sm: 12px;
    --lfd-book-radius: 18px;
    --lfd-book-radius-lg: 28px;

    --lfd-book-shadow:
        0 24px 60px rgba(25, 67, 59, 0.075);

    --lfd-book-shadow-soft:
        0 12px 32px rgba(25, 67, 59, 0.055);
}

.text-muted {
    color: #424141 !important;
    font-size: 12px;
}


/* =========================================================
   RESET — BOOKING SCOPE
   ========================================================= */

#booking-form,
#booking-form *,
#booking-form *::before,
#booking-form *::after {
    box-sizing: border-box;
}


#booking-form .booking-card {
    margin: 0;
}


#booking-form hr {
    border: 0;
    border-top: 1px solid var(--lfd-book-line);
    opacity: 1;
}


/* =========================================================
   PAGE
   ========================================================= */

.booking-page {
    min-height: 100vh;

    padding:
        52px
        0
        96px;

    background: #f6f6f6;

    color: var(--lfd-book-text);
}


.booking-page > .container {
    max-width: 1240px;
}


/* =========================================================
   INTRO
   ========================================================= */

.lfd-booking-head {
    max-width: 760px;
    margin-bottom: 34px;
}


.lfd-booking-eyebrow {
    margin-bottom: 9px;

    color: var(--lfd-book-brand-dark);

    font-family: "Nunito", sans-serif;
    font-size: 0.69rem;
    font-weight: 800;

    letter-spacing: 0.15em;
    text-transform: uppercase;
}


.lfd-booking-head h1 {
    margin: 0;

    color: var(--lfd-book-ink);

    font-family: "Nunito", sans-serif;

    font-size:
        clamp(
            2.15rem,
            3.4vw,
            2.85rem
        );

    font-weight: 720;
    line-height: 1.06;

    letter-spacing: -0.048em;
}


.lfd-booking-head p {
    max-width: 700px;

    margin: 13px 0 0;

    color: var(--lfd-book-text);

    font-size: 0.94rem;
    line-height: 1.75;
}


.lfd-booking-head p strong {
    color: var(--lfd-book-ink);
    font-weight: 700;
}


/* =========================================================
   STEPPER
   ========================================================= */

.lfd-booking-stepper {
    position: relative;

    display: grid;

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

    margin:
        0
        0
        38px;

    padding: 0 26px;

    border: 0;
    background: transparent;
}


.lfd-booking-stepper::before {
    content: "";

    position: absolute;

    top: 20px;
    left: 12%;
    right: 12%;

    height: 1px;

    background: var(--lfd-book-line-strong);
}


.lfd-booking-step-tab {
    position: relative;
    z-index: 1;

    display: flex;

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

    gap: 10px;

    min-width: 0;

    padding: 0 10px;

    border: 0;

    background: transparent;

    text-align: left;

    cursor: default;
}


.lfd-booking-step-number {
    display: inline-flex;

    flex: 0 0 40px;

    width: 40px;
    height: 40px;

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

    border:
        1px solid
        var(--lfd-book-line-strong);

    border-radius: 50%;

    background: var(--lfd-book-page);

    color: var(--lfd-book-muted);

    font-family: "Nunito", sans-serif;

    font-size: 0.72rem;
    font-weight: 800;
}


.lfd-booking-step-copy {
    min-width: 0;

    padding-top: 2px;
}


.lfd-booking-step-copy small {
    display: block;

    margin-bottom: 2px;

    color: var(--lfd-book-muted);

    font-size: 0.6rem;
    font-weight: 800;

    letter-spacing: 0.08em;

    text-transform: uppercase;
}


.lfd-booking-step-copy strong {
    display: block;

    color: var(--lfd-book-text);

    font-family: "Nunito", sans-serif;

    font-size: 0.8rem;
    font-weight: 720;

    white-space: nowrap;
}


.lfd-booking-step-tab.is-active
.lfd-booking-step-number {
    border-color: var(--lfd-book-brand);

    background: var(--lfd-book-brand);

    color: #ffffff;

    box-shadow:
        0 8px 20px
        rgba(0, 174, 157, 0.19);
}


.lfd-booking-step-tab.is-active
.lfd-booking-step-copy strong {
    color: var(--lfd-book-ink);
}


.lfd-booking-step-tab.is-complete {
    cursor: pointer;
}


.lfd-booking-step-tab.is-complete
.lfd-booking-step-number {
    border-color: #b8ded9;

    background: var(--lfd-book-brand-100);

    color: var(--lfd-book-brand-dark);

    font-size: 0;
}


.lfd-booking-step-tab.is-complete
.lfd-booking-step-number::before {
    content: "✓";

    font-size: 0.75rem;
}


/* =========================================================
   MAIN GRID
   ========================================================= */

.booking-page .row {
    align-items: flex-start;
}


.booking-left,
.booking-right {
    width: 100%;
    min-width: 0;
}


/* =========================================================
   STEP DISPLAY
   ========================================================= */

.lfd-booking-step {
    display: none;
}


.lfd-booking-step.is-active {
    display: block;
}


/* =========================================================
   MAIN PREMIUM SURFACE
   ========================================================= */

.booking-engine
> .lfd-booking-step {
    padding:
        30px
        32px
        32px;

    border:
        1px solid
        var(--lfd-book-line);

    border-radius:
        var(--lfd-book-radius-lg);

    background: var(--lfd-book-white);

    box-shadow: var(--lfd-book-shadow);
}


/*
 * Kill nested legacy card styling.
 */

.booking-engine
> .lfd-booking-step
.booking-card,

.booking-engine
> .lfd-booking-step
.booking-card
.booking-card,

.booking-program-overview
> .booking-card,

.lfd-booking-schedule-card {
    border: 0;
    border-radius: 0;

    background: transparent;

    box-shadow: none;
}


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

.booking-tags {
    display: flex;

    flex-wrap: wrap;

    gap: 7px;

    margin:
        0
        0
        30px;
}


.booking-tag {
    display: inline-flex;

    min-height: 28px;

    align-items: center;

    padding: 5px 11px;

    border: 1px solid var(--lfd-book-line);

    border-radius: 999px;

    background: var(--lfd-book-soft);

    color: var(--lfd-book-text);

    font-size: 0.65rem;
    font-weight: 750;
}


.booking-tags
.booking-tag:first-child {
    border-color: #c6e7e3;

    background: var(--lfd-book-brand-100);

    color: var(--lfd-book-brand-dark);
}


.booking-tags
.booking-tag:nth-child(2) {
    border-color: #d4e9c5;

    background: var(--lfd-book-green-100);

    color: #558838;
}


/* =========================================================
   TITLES
   ========================================================= */

.booking-card-title {
    display: flex;

    align-items: center;

    gap: 12px;

    margin:
        0
        0
        30px;

    color: var(--lfd-book-ink);

    font-family: "Nunito", sans-serif;

    font-size: 1.18rem;
    font-weight: 730;

    letter-spacing: -0.025em;
}


.booking-card-title i {
    display: inline-flex;

    width: 40px;
    height: 40px;

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

    border-radius: 12px;

    background: var(--lfd-book-brand-100);

    color: var(--lfd-book-brand);

    font-size: 0.92rem;
}


.booking-subtitle,
.booking-section-title {
    color: var(--lfd-book-ink);

    font-family: "Nunito", sans-serif;

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


/* =========================================================
   SCHEDULE GRID
   ========================================================= */

.lfd-session-has-calendar
.lfd-booking-schedule-card {
    display: grid;

    grid-template-columns:
        minmax(340px, 0.97fr)
        minmax(0, 1.03fr);

    gap:
        28px
        34px;

    align-items: start;
}


.lfd-session-has-calendar
.lfd-booking-schedule-card
> .booking-card-title,

.lfd-session-has-calendar
.lfd-booking-schedule-card
> hr,

.lfd-session-has-calendar
.lfd-booking-schedule-card
> .booking-season-window,

.lfd-session-has-calendar
.lfd-booking-schedule-card
> #session-booking-message,

.lfd-session-has-calendar
.lfd-booking-schedule-card
> #weekly-journey-preview,

.lfd-session-has-calendar
.lfd-booking-schedule-card
> #flexi-session-builder {
    grid-column: 1 / -1;
}


.lfd-booking-date-panel {
    grid-column: 1;

    min-width: 0;

    margin: 0;
}


.lfd-booking-slot-panel {
    grid-column: 2;

    min-width: 0;

    margin: 0;
}


.lfd-booking-date-panel
.booking-field-label,

.lfd-booking-slot-panel
.booking-subtitle {
    display: block;

    margin:
        0
        0
        12px;

    color: var(--lfd-book-ink);

    font-family: "Nunito", sans-serif;

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


/* =========================================================
   HIDE FLATPICKR INPUT
   ========================================================= */

.lfd-booking-date-panel
input[type="text"] {
    position: absolute !important;

    width: 1px !important;
    height: 1px !important;

    padding: 0 !important;

    border: 0 !important;

    opacity: 0 !important;

    pointer-events: none !important;
}






/* =========================================================
   TIME SLOTS
   ========================================================= */

#session-time-slots {
    display: grid;

    grid-template-columns: 1fr;

    gap: 10px;
}


.booking-time-option {
    margin: 0;
}


.booking-time-slot-card {
    position: relative;

    display: block;

    width: 100%;

    min-height: 82px;

    margin: 0;

    border:
        1px solid
        var(--lfd-book-line);

    border-radius: 16px;

    background: #ffffff;

    overflow: hidden;

    cursor: pointer;

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


.booking-time-slot-card:hover {
    border-color: #b9ddd9;

    background: #fdfffe;
}


.booking-time-slot-card
input[type="radio"] {
    position: absolute;

    top: 29px;
    left: 18px;

    width: 18px;
    height: 18px;

    margin: 0;

    accent-color: var(--lfd-book-brand);
}


.booking-time-slot-content {
    min-height: 82px;

    display: flex;

    flex-direction: column;

    justify-content: center;

    padding:
        15px
        52px
        15px
        52px;
}


.booking-time {
    color: var(--lfd-book-ink);

    font-family: "Nunito", sans-serif;

    font-size: 0.83rem;
    font-weight: 720;
}


.booking-capacity {
    margin-top: 5px;

    color: var(--lfd-book-muted);

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


.booking-time-slot-card:has(
    input:checked
) {
    border-color: var(--lfd-book-brand);

    /*background:
        linear-gradient(
            135deg,
            var(--lfd-book-brand-050),
            #ffffff
        );*/

    box-shadow:
        0 0 0 3px
        rgba(0, 174, 157, 0.075);
}


.booking-time-slot-card:has(
    input:checked
)::after {
    content: "✓";

    position: absolute;

    top: 26px;
    right: 16px;

    display: flex;

    width: 27px;
    height: 27px;

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

    border-radius: 50%;

    background: var(--lfd-book-brand);

    color: #ffffff;

    font-size: 0.67rem;
    font-weight: 900;
}


.booking-time-slot-card:has(
    input:checked
)
.booking-capacity {
    color: var(--lfd-book-brand-dark);
}


.booking-time-slot-card:has(
    input:disabled
) {
    border-color: #e7eceb;

    background: #f7f8f8;

    opacity: 0.55;

    cursor: not-allowed;
}


/* =========================================================
   SESSION JOURNEY
   ========================================================= */

#weekly-journey-preview {
    margin-top: 4px !important;

    padding:
        24px
        0
        0 !important;

    border: 0 !important;

    border-top:
        1px solid
        var(--lfd-book-line) !important;

    border-radius: 0 !important;

    background: transparent !important;

    box-shadow: none !important;
}


#weekly-journey-preview
> .d-flex:first-child {
    margin-bottom: 14px !important;
}


#journey-description {
    margin:
        3px
        0
        0;

    color: var(--lfd-book-muted);

    font-size: 12px;

    line-height: 1.5;
}


#weekly-journey-count {
    padding:
        5px
        10px;

    border:
        1px solid
        #cccccc;

    border-radius: 999px;

    background: #e9e9e9;
    color: #414242;

    font-size: 0.65rem;
    font-weight: 800;
}


#weekly-journey-sessions {
    display: grid;

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

    gap: 9px;
}


.booking-journey-session {
    min-width: 0;

    padding:
        12px
        13px;

    border:
        1px solid
        var(--lfd-book-line);

    border-radius: 13px;
}


.booking-journey-top {
    display: flex;

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

    gap: 8px;

    margin-bottom: 8px;
}


.booking-journey-identity {
    display: flex;

    min-width: 0;

    align-items: center;

    gap: 8px;
}


.booking-journey-number {
    display: inline-flex !important;

    flex: 0 0 27px;

    width: 27px !important;
    height: 27px !important;

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

    margin: 0 !important;
    padding: 0 !important;

    border-radius: 8px;

    background: #e9e9e9;
    color: #414242;

    font-size: 0.61rem;
    font-weight: 800;
}


.booking-journey-title {
    color: var(--lfd-book-ink);

    font-family: "Nunito", sans-serif;

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


.booking-journey-status {
    flex: 0 0 auto;

    color:
        var(--lfd-book-brand-dark);

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

    white-space: nowrap;
}


.booking-journey-date,
.booking-journey-time {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--lfd-book-text);
    font-size: 12px;
    line-height: 1.45;
    padding-left: 35px;
}


.booking-journey-date {
    margin-bottom: 3px;
}


.booking-journey-time {
    color: #738883;
}


.booking-journey-date i,
.booking-journey-time i {
    width: 14px;

    color: #97a9a5;

    font-size: 0.64rem;
}


#weekly-journey-capacity {
    margin:
        11px
        0
        0 !important;

    padding:
        9px
        11px !important;

    border:
        1px solid
        #c8e7e2 !important;

    border-radius:
        10px !important;

    background:
        var(--lfd-book-brand-050) !important;

    color:
        var(--lfd-book-brand-dark) !important;

    font-size: 0.68rem !important;
}

#weekly-journey-capacity {
    display: flex;

    align-items: center;

    gap: 8px;
}

#weekly-journey-capacity i {
    flex: 0 0 auto;

    color: var(--lfd-book-brand-dark);

    font-size: 0.8rem;
}


#weekly-journey-capacity span {
    line-height: 1.5;
}


#weekly-journey-capacity strong {
    font-weight: 800;
}


/* =========================================================
   FLEXI BUILDER
   ========================================================= */

#flexi-session-builder {
    margin-top: 24px !important;

    padding:
        24px
        0
        0 !important;

    border: 0 !important;

    border-top:
        1px solid
        var(--lfd-book-line) !important;

    background: transparent !important;

    box-shadow: none !important;
}


/* =========================================================
   FORMS
   ========================================================= */

.booking-engine
.form-label {
    margin-bottom: 7px;

    color: var(--lfd-book-ink);

    font-size: 0.75rem;
    font-weight: 680;
}


.booking-engine
.form-control,

.booking-engine
.form-select {
    min-height: 50px;

    padding:
        11px
        13px;

    border:
        1px solid
        var(--lfd-book-line-strong);

    border-radius: 12px;

    background: #ffffff;

    color: var(--lfd-book-ink);

    font-size: 0.82rem;

    box-shadow: none;
}


.booking-engine
.form-control:focus,

.booking-engine
.form-select:focus {
    border-color:
        var(--lfd-book-brand);

    box-shadow:
        0 0 0 3px
        rgba(0, 174, 157, 0.075);
}


.booking-engine
.form-text {
    color: var(--lfd-book-muted);

    font-size: 0.68rem;

    line-height: 1.5;
}


/* =========================================================
   GUEST COUNTERS
   ========================================================= */

.booking-guest-counter {
    display: inline-grid;

    grid-template-columns:
        44px
        62px
        44px;

    align-items: center;

    overflow: hidden;

    border:
        1px solid
        var(--lfd-book-line-strong);

    border-radius: 12px;

    background: #ffffff;
}


.guest-counter-btn {
    width: 44px;
    height: 44px;

    padding: 0;

    border: 0;

    background: transparent;

    color: var(--lfd-book-ink);

    font-size: 1rem;
}


.guest-counter-btn:hover:not(:disabled) {
    background:
        var(--lfd-book-brand-050);

    color:
        var(--lfd-book-brand-dark);
}


.guest-counter-btn:disabled {
    color: #c7d0ce;
}


.booking-guest-counter
.form-control {
    min-height: 44px;

    padding: 0;

    border: 0;
    border-right:
        1px solid
        var(--lfd-book-line);

    border-left:
        1px solid
        var(--lfd-book-line);

    border-radius: 0;

    text-align: center;

    font-weight: 750;
}


/* =========================================================
   SMALL SUMMARY BLOCKS INSIDE STEPS
   ========================================================= */

.booking-date-summary {
    overflow: hidden;

    border:
        1px solid
        var(--lfd-book-line);

    border-radius: 14px;

    background:
        var(--lfd-book-soft);
}


.booking-summary-row {
    display: flex;

    min-height: 43px;

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

    gap: 12px;

    padding:
        0
        13px;

    border-bottom:
        1px solid
        var(--lfd-book-line);
}


.booking-summary-row:last-child {
    border-bottom: 0;
}


.booking-summary-row span {
    color: var(--lfd-book-muted);

    font-size: 0.7rem;
}


.booking-summary-row strong {
    color: var(--lfd-book-ink);

    font-size: 0.73rem;
}


/* =========================================================
   PACKAGE + PAYMENT
   ========================================================= */

.booking-package-card {
    position: relative;

    display: block;

    width: 100%;

    margin-bottom: 11px;

    overflow: hidden;

    border:
        1px solid
        var(--lfd-book-line);

    border-radius: 16px;

    background: #ffffff;

    cursor: pointer;

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


.booking-package-card:hover {
    border-color: #b8ddd8;

    background: #fdfffe;
}


.booking-package-card
input[type="radio"] {
    position: absolute;

    top: 20px;
    left: 18px;

    width: 18px;
    height: 18px;

    margin: 0;

    accent-color: var(--lfd-book-brand);
}


.booking-package-content {
    padding:
        18px
        50px
        18px
        52px;
}


.booking-package-header {
    display: flex;

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

    gap: 14px;
}


.booking-package-header strong,
.booking-package-content > strong {
    color: var(--lfd-book-ink);

    font-family: "Nunito", sans-serif;

    font-size: 0.83rem;
    font-weight: 720;
}


.booking-package-price {
    color: var(--lfd-book-ink);

    font-size: 0.88rem;
    font-weight: 760;

    white-space: nowrap;
}


.booking-package-price small {
    color: var(--lfd-book-muted);

    font-size: 0.62rem;
}


.booking-package-description {
    margin:
        8px
        0
        0;

    color: var(--lfd-book-muted);

    font-size: 0.7rem;
    line-height: 1.55;
}


.booking-package-card:has(
    input:checked
) {
    border-color:
        var(--lfd-book-brand);

    background:
        linear-gradient(
            135deg,
            var(--lfd-book-brand-050),
            #ffffff
        );

    box-shadow:
        0 0 0 3px
        rgba(0, 174, 157, 0.07);
}


.booking-package-card:has(
    input:checked
)::after {
    content: "✓";

    position: absolute;

    top: 16px;
    right: 15px;

    display: flex;

    width: 26px;
    height: 26px;

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

    border-radius: 50%;

    background: var(--lfd-book-brand);

    color: #ffffff;

    font-size: 0.65rem;
    font-weight: 900;
}


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

.booking-room-card {
    overflow: hidden;

    border:
        1px solid
        var(--lfd-book-line);

    border-radius: 18px;

    background: #ffffff;
}


.booking-room-main {
    padding: 19px;
}


.booking-room-header {
    display: flex;

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

    gap: 16px;
}


.booking-room-price {
    color: var(--lfd-book-ink);

    white-space: nowrap;
}


.booking-room-footer {
    padding:
        13px
        19px;

    border-top:
        1px solid
        var(--lfd-book-line);

    background:
        var(--lfd-book-soft);
}


.booking-room-card.is-selected {
    border-color:
        var(--lfd-book-brand);

    box-shadow:
        0 0 0 3px
        rgba(0, 174, 157, 0.07);
}


/* =========================================================
   STEP MESSAGE
   ========================================================= */

.lfd-booking-step-message {
    display: none;

    margin-bottom: 13px;

    padding:
        11px
        13px;

    border:
        1px solid
        #efd0d2;

    border-radius: 11px;

    background:
        var(--lfd-book-danger-bg);

    color:
        var(--lfd-book-danger);

    font-size: 0.72rem;
    font-weight: 650;
}


.lfd-booking-step-message.is-visible {
    display: block;
}


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

.lfd-booking-navigation {
    display: flex;

    align-items: center;

    gap: 12px;

    margin-top: 18px;

    padding: 0;

    border: 0;

    background: transparent;
}


.lfd-booking-nav-spacer {
    flex: 1;
}


.lfd-booking-prev,
.lfd-booking-next {
    display: inline-flex;

    min-height: 48px;

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

    gap: 8px;

    padding:
        11px
        19px;

    border-radius: 12px;

    font-family: "Nunito", sans-serif;

    font-size: 0.78rem;
    font-weight: 730;
}


.lfd-booking-prev {
    border:
        1px solid
        var(--lfd-book-line-strong);

    background: #ffffff;

    color: var(--lfd-book-ink);
}


.lfd-booking-next {
    border:
        1px solid
        var(--lfd-book-brand);

    background:
        var(--lfd-book-brand);

    color: #ffffff;

    box-shadow:
        0 9px 20px
        rgba(0, 174, 157, 0.15);
}


.lfd-booking-next:hover {
    background:
        var(--lfd-book-brand-dark);

    border-color:
        var(--lfd-book-brand-dark);
}


/* =========================================================
   BOOKING SUMMARY — CLEAN PREMIUM VERSION
   ========================================================= */


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

.booking-summary-sticky {
    position: sticky;
    top: 92px;

    width: 100%;
}


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

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

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden;

    border:
        1px solid
        #e2e9e7 !important;

    border-radius:
        22px !important;

    background:
        #ffffff !important;

    box-shadow:
        0 18px 44px
        rgba(
            23,
            63,
            57,
            0.07
        ) !important;
}


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

.booking-summary-hero {
    position: relative;

    width: 100%;
    min-height: 164px;

    background-color: #e7eceb;
    background-position: center;
    background-size: cover;

    overflow: hidden;
}


.booking-summary-hero-overlay {
    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(14, 35, 32, 0.04) 0%,
            rgba(14, 35, 32, 0.15) 38%,
            rgba(12, 32, 29, 0.86) 100%
        );
}


.booking-summary-hero-content {
    position: relative;
    z-index: 2;

    display: flex;

    min-height: 205px;

    flex-direction: column;
    justify-content: space-between;

    padding:
        14px
        16px
        16px;
}


/* =========================================================
   HERO TOP
   ========================================================= */

.booking-summary-hero-top {
    display: flex;

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

    gap: 16px;
}


.booking-summary-hero-label {
    display: inline-flex;

    min-height: 24px;

    align-items: center;

    padding:
        4px
        9px;

    border:
        1px solid
        rgba(255,255,255,.3);

    border-radius: 999px;

    background:
        rgba(24, 45, 41, 0.42);

    color: #ffffff;

    font-family:
        "Manrope",
        sans-serif;

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

    letter-spacing: .06em;
    text-transform: uppercase;

    backdrop-filter: blur(8px);
}


.booking-summary-hero-logo {
    display: flex;

    width: 38px;
    height: 38px;

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

    border-radius: 11px;

    background: rgba(255,255,255,.96);

    box-shadow:
        0 5px 14px
        rgba(0,0,0,.08);
}


.booking-summary-hero-logo img {
    width: 27px;
    height: 27px;

    object-fit: contain;
}


/* =========================================================
   HERO TEXT
   ========================================================= */

.booking-summary-hero-meta {
    display: flex;

    flex-wrap: wrap;

    align-items: center;

    gap: 5px;

    margin-bottom: 5px;

    color:
        rgba(255,255,255,.82);

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

    letter-spacing: .045em;

    text-transform: uppercase;
}


.booking-summary-hero-title {
    max-width: 95%;

    margin: 0;

    color: #ffffff;

    font-family:
        "Manrope",
        sans-serif;

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

    line-height: 1.25;

    letter-spacing: -.025em;
}


.booking-summary-hero-schedule {
    display: flex;

    align-items: center;

    gap: 6px;

    margin-top: 7px;

    color:
        rgba(255,255,255,.88);

    font-size: 12px;
}


.booking-summary-hero-schedule i {
    font-size: 11px;
}


/* =========================================================
   BODY
   ========================================================= */

.lfd-summary-body {
    width: 100%;

    padding:
        21px
        21px
        19px;
}


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

.lfd-summary-title-row {
    margin-bottom: 18px;
}


.lfd-summary-eyebrow {
    display: block;

    margin-bottom: 3px;

    color: #849590;

    font-family:
        "Manrope",
        sans-serif;

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

    letter-spacing: .09em;

    text-transform: uppercase;
}


.lfd-summary-title-row h3 {
    margin: 0;

    color: var(--lfd-book-ink);

    font-family:
        "Manrope",
        sans-serif;

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

    line-height: 1.3;
}


/* =========================================================
   SCHEDULE
   No boxes / no background
   ========================================================= */

.lfd-summary-schedule {
    display: grid;

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

    gap: 24px;
}


.lfd-summary-schedule-item {
    min-width: 0;
}


.lfd-summary-schedule-item span {
    display: block;

    margin-bottom: 4px;

    color: #82928e;

    font-size: 11px;
    line-height: 1.3;
}


.lfd-summary-schedule-item strong {
    display: block;

    color: var(--lfd-book-ink);

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

    line-height: 1.4;

    overflow-wrap: anywhere;
}


.lfd-summary-schedule-item
.lfd-summary-success {
    color:
        var(--lfd-book-brand-dark) !important;
}


/* =========================================================
   SECTION DIVIDER
   Only one divider between logical sections
   ========================================================= */

.lfd-summary-rule {
    width: 100%;
    height: 1px;

    margin:
        18px
        0;

    background:
        #e7edeb;
}


/* =========================================================
   DETAIL GROUP
   ========================================================= */

.lfd-summary-group {
    display: flex;

    flex-direction: column;

    gap: 13px;
}


/* =========================================================
   ROWS
   No horizontal lines on every row
   ========================================================= */

.lfd-summary-row {
    display: flex;

    width: 100%;

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

    gap: 20px;

    min-height: 0;

    padding: 0;

    border: 0;
}


.lfd-summary-row span {
    flex: 0 0 auto;

    color: #7c8e89;

    font-size: 12px;
    line-height: 1.4;
}


.lfd-summary-row strong {
    min-width: 0;

    max-width: 65%;

    color: #253d39;

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

    line-height: 1.4;

    text-align: right;

    overflow-wrap: anywhere;
}


/* =========================================================
   DYNAMIC PAYMENT BREAKDOWN
   ========================================================= */

#advance-breakdown,
#full-breakdown {
    display: flex;
    flex-direction: column;

    gap: 13px;
}


#advance-breakdown[style*="display: none"],
#full-breakdown[style*="display: none"] {
    display: none !important;
}


/* =========================================================
   TOTAL
   ========================================================= */

.booking-summary-total {
    display: flex;

    width: 100%;

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

    gap: 18px;

    margin-top: 20px;

    padding:
        18px
        0
        0;

    border-top:
        1px solid
        #dfe7e5;

    border-bottom: 0;
}


.booking-summary-total small {
    color: #738783;

    font-family:
        "Manrope",
        sans-serif;

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

    letter-spacing: .07em;

    text-transform: uppercase;
}


.booking-summary-total h3 {
    margin: 0;

    color:
        #182e2a;

    font-family:
        "Manrope",
        sans-serif;

    font-size: 25px;
    font-weight: 780;

    line-height: 1;

    letter-spacing: -.045em;

    white-space: nowrap;
}


/* =========================================================
   CHECKOUT
   ========================================================= */

.booking-submit-card {
    margin: 0 !important;

    padding:
        18px
        0
        0 !important;

    border: 0 !important;

    background:
        transparent !important;

    box-shadow:
        none !important;
}


#booking-form:not(
    [data-current-step="2"]
)
.booking-submit-card {
    display: none;
}


.booking-submit-button {
    display: inline-flex;

    width: 100%;
    min-height: 50px;

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

    gap: 8px;

    padding:
        12px
        18px;

    border:
        1px solid
        var(--lfd-book-brand);

    border-radius: 12px;

    background:
        var(--lfd-book-brand);

    color: #ffffff;

    font-family:
        "Manrope",
        sans-serif;

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

    cursor: pointer;

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


.booking-submit-button:hover {
    border-color:
        var(--lfd-book-brand-dark);

    background:
        var(--lfd-book-brand-dark);

    box-shadow:
        0 8px 20px
        rgba(0,174,157,.16);

    transform:
        translateY(-1px);
}


.booking-submit-button:disabled {
    opacity: .55;

    cursor: not-allowed;

    box-shadow: none;
    transform: none;
}


/* =========================================================
   HELP
   ========================================================= */

.booking-help-button {
    display: flex;

    width: 100%;

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

    gap: 6px;

    margin-top: 10px;

    color: #81918d;

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

    text-decoration: none;
}


.booking-help-button:hover {
    color:
        var(--lfd-book-ink);
}


.booking-submit-message {
    margin:
        7px
        0
        0;

    color:
        var(--lfd-book-danger);

    font-size: 11px;

    line-height: 1.4;

    text-align: center;
}


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

@media (max-width: 1199.98px) {

    .lfd-summary-schedule {
        gap: 16px;
    }


    .booking-summary-hero-title {
        font-size: 16px;
    }

}


/* =========================================================
   BELOW DESKTOP
   ========================================================= */

@media (max-width: 991.98px) {

    .booking-summary-sticky {
        position: static;
        top: auto;
    }


    .booking-summary-card {
        max-width: 620px;

        margin-right: auto !important;
        margin-left: auto !important;
    }

}


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

@media (max-width: 575.98px) {

    .booking-summary-card {
        border-radius:
            18px !important;
    }


    .booking-summary-hero {
        min-height: 155px;
    }


    .booking-summary-hero-content {
        min-height: 155px;

        padding:
            13px
            14px
            14px;
    }


    .booking-summary-hero-title {
        font-size: 15px;
    }


    .lfd-summary-body {
        padding:
            19px
            17px
            17px;
    }


    .lfd-summary-schedule {
        gap: 14px;
    }


    .lfd-summary-schedule-item strong {
        font-size: 12px;
    }


    .lfd-summary-row span {
        font-size: 11.5px;
    }


    .lfd-summary-row strong {
        font-size: 12px;
    }


    .booking-summary-total h3 {
        font-size: 23px;
    }

}

/*-- ENDS --*/


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

@media (max-width: 1199.98px) {

    .lfd-summary-primary {
        grid-template-columns:
            1fr;
    }


    .booking-summary-hero {
        min-height:
            165px;
    }


    .booking-summary-hero-content {
        min-height:
            165px;
    }

}


/* =========================================================
   MOBILE / TABLET STACKED
   ========================================================= */

@media (max-width: 991.98px) {

    .booking-summary-sticky {
        position:
            static;

        top:
            auto;
    }


    .booking-summary-card {
        max-width:
            620px;

        margin-right:
            auto !important;

        margin-left:
            auto !important;
    }


    .lfd-summary-primary {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

}


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

@media (max-width: 575.98px) {

    .booking-summary-card {
        border-radius:
            18px !important;
    }


    .booking-summary-hero {
        min-height:
            158px;
    }


    .booking-summary-hero-content {
        min-height:
            158px;

        padding:
            13px
            14px
            14px;
    }


    .booking-summary-hero-title {
        font-size:
            0.94rem;
    }


    .lfd-summary-body {
        padding:
            17px
            15px
            15px;
    }


    .lfd-summary-primary {
        grid-template-columns:
            1fr;
    }


    .lfd-summary-row strong {
        max-width:
            62%;
    }


    .booking-summary-total h3 {
        font-size:
            1.32rem;
    }

}

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

@media (max-width: 1199.98px) {

    .lfd-session-has-calendar
    .lfd-booking-schedule-card {
        grid-template-columns:
            minmax(310px, 0.95fr)
            minmax(250px, 1.05fr);

        column-gap: 22px;
    }

}


/* =========================================================
   UNDER LG
   ========================================================= */

@media (max-width: 991.98px) {

    .booking-page {
        padding:
            38px
            0
            68px;
    }


    .booking-summary-sticky {
        position: static;

        margin-top: 12px;
    }


    .lfd-booking-stepper {
        padding: 0;
    }


    .lfd-booking-step-copy small {
        display: none;
    }

}


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

@media (max-width: 767.98px) {

    .booking-page {
        padding:
            24px
            0
            56px;
    }


    .booking-page > .container {
        padding-right: 14px;
        padding-left: 14px;
    }


    .lfd-booking-head {
        margin-bottom: 25px;
    }


    .lfd-booking-head h1 {
        font-size: 1.9rem;
    }


    .lfd-booking-head p {
        font-size: 0.84rem;
    }


    /* Stepper */

    .lfd-booking-stepper {
        margin-bottom: 26px;
    }


    .lfd-booking-stepper::before {
        left: 10%;
        right: 10%;

        top: 18px;
    }


    .lfd-booking-step-tab {
        padding: 0 3px;
    }


    .lfd-booking-step-number {
        flex-basis: 36px;

        width: 36px;
        height: 36px;
    }


    .lfd-booking-step-copy {
        display: none;
    }


    /* Surface */

    .booking-engine
    > .lfd-booking-step {
        padding:
            22px
            17px
            24px;

        border-radius: 21px;
    }


    /* Schedule */

    .lfd-session-has-calendar
    .lfd-booking-schedule-card {
        display: block;
    }


    .lfd-booking-date-panel {
        margin-bottom: 25px;
    }


    /* Calendar */

    .lifed-flatpickr-calendar.flatpickr-calendar {
        padding:
            15px
            12px
            13px;
    }


    .lifed-flatpickr-calendar
    .flatpickr-current-month {
        left: 44px;
        right: 44px;
    }


    .lifed-flatpickr-calendar
    .flatpickr-day {
        height: 39px;

        line-height: 37px;

        font-size: 0.69rem;
    }


    /* Journey */

    #weekly-journey-sessions {
        grid-template-columns: 1fr;
    }


    /* Navigation */

    .lfd-booking-navigation {
        position: sticky;

        bottom: 8px;

        z-index: 40;

        margin-top: 12px;

        padding: 9px;

        border:
            1px solid
            var(--lfd-book-line);

        border-radius: 15px;

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

        box-shadow:
            0 12px 32px
            rgba(24, 65, 58, 0.1);

        backdrop-filter: blur(10px);
    }


    /* Summary */

    .booking-summary-card {
        border-radius:
            21px !important;
    }

}

/* =========================================================
   TWO STEP BOOKING FLOW
   ========================================================= */

.lfd-booking-stepper-two {
    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    max-width: 720px;

    margin-right: auto;
    margin-left: auto;
}


.lfd-booking-stepper-two::before {
    left: 25%;
    right: 25%;
}


/* Multiple sections belong to Step 2 */

.booking-engine
> .lfd-booking-step[data-booking-step="2"]
+ .lfd-booking-step[data-booking-step="2"] {
    margin-top: 18px;
}


/*
 * Step 2 cards should visually belong
 * to one continuous booking journey.
 */

.booking-engine
> .lfd-booking-step[data-booking-step="2"] {
    padding: 22px 25px;

    border:
        1px solid
        var(--lfd-book-line);

    border-radius:
        22px;

    background:
        var(--lfd-book-white);

    box-shadow:
        0 14px 38px
        rgba(
            25,
            67,
            59,
            0.055
        );
}


/* Mobile */

@media (max-width: 767.98px) {

    .lfd-booking-stepper-two {
        max-width: 360px;
    }


    .lfd-booking-stepper-two::before {
        left: 25%;
        right: 25%;
    }


    .booking-engine
    > .lfd-booking-step[data-booking-step="2"] {
        padding:
            20px
            17px;

        border-radius: 18px;
    }

}

/* =========================================================
   BOOKING PROGRESS NAV
   Hidden for current customer flow.
   Markup is retained for future use.
   ========================================================= */

.lfd-booking-stepper {
    display: none !important;
}

/* =========================================================
   BOOKING HEADER
   Compact premium checkout header
   ========================================================= */

.lfd-booking-checkout-head {
    display: flex;

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

    gap: 36px;

    margin-bottom: 28px;

    padding:
        4px
        2px
        23px;

    border-bottom:
        1px solid
        var(--lfd-book-line);
}


/* =========================================================
   LEFT
   ========================================================= */

.lfd-booking-checkout-main {
    min-width: 0;
}


.lfd-booking-checkout-kicker {
    margin-bottom: 7px;

    color:
        var(--lfd-book-brand-dark);

    font-family:
        "Nunito",
        sans-serif;

    font-size: 0.62rem;

    font-weight: 800;

    letter-spacing: 0.14em;

    text-transform: uppercase;
}


.lfd-booking-checkout-title {
    margin: 0;

    color:
        var(--lfd-book-ink);

    font-family:
        "Nunito",
        sans-serif;

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

    font-weight: 690;

    line-height: 1.08;

    letter-spacing: -0.042em;
}


.lfd-booking-checkout-copy {
    margin:
        10px
        0
        0;

    color:
        var(--lfd-book-text);

    font-size: 0.82rem;

    line-height: 1.6;
}


.lfd-booking-checkout-copy strong {
    color:
        var(--lfd-book-ink);

    font-weight: 720;
}


.lfd-booking-checkout-separator {
    display: inline-block;

    margin:
        0
        5px;

    color:
        #a5b4b0;
}


/* =========================================================
   RIGHT ASSURANCE
   ========================================================= */

.lfd-booking-checkout-assurance {
    display: flex;

    flex: 0 0 auto;

    align-items: center;

    gap: 18px;

    padding-bottom: 2px;
}


.lfd-booking-checkout-assurance
span {
    display: inline-flex;

    align-items: center;

    gap: 6px;

    color:
        #728782;

    font-size: 0.65rem;

    font-weight: 650;

    white-space: nowrap;
}


.lfd-booking-checkout-assurance
i {
    color:
        var(--lfd-book-brand-dark);

    font-size: 0.72rem;
}


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

@media (max-width: 991.98px) {

    .lfd-booking-checkout-head {
        align-items: flex-start;

        gap: 24px;
    }


    .lfd-booking-checkout-assurance {
        padding-top: 24px;
    }

}


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

@media (max-width: 767.98px) {

    .lfd-booking-checkout-head {
        display: block;

        margin-bottom: 22px;

        padding-bottom: 18px;
    }


    .lfd-booking-checkout-title {
        font-size: 1.75rem;
    }


    .lfd-booking-checkout-copy {
        margin-top: 8px;

        font-size: 0.78rem;
    }


    .lfd-booking-checkout-assurance {
        gap: 14px;

        margin-top: 13px;

        padding: 0;
    }


    .lfd-booking-checkout-assurance
    span {
        font-size: 0.61rem;
    }

}

/* =========================================================
   LIFED PREMIUM BOOKING CALENDAR
   ========================================================= */

.lifed-flatpickr-calendar.flatpickr-calendar,
.lifed-flatpickr-calendar.flatpickr-calendar.inline {
    position: relative;

    width: 100% !important;
    max-width: 100% !important;

    padding:
        20px
        20px
        18px !important;

    border:
        1px solid
        #dce8e5 !important;

    border-radius:
        20px !important;

    background:
        #ffffff !important;

    box-shadow:
        0 14px 34px
        rgba(
            24,
            67,
            59,
            0.045
        ) !important;

    overflow: hidden;
}


.lifed-flatpickr-calendar::before,
.lifed-flatpickr-calendar::after {
    display: none !important;
}


/* =========================================================
   NAVIGATION ROW
   <   OCTOBER   2026   >
   ========================================================= */

.lifed-flatpickr-calendar
.flatpickr-months {
    position: relative !important;

    display: grid !important;

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

    align-items: center !important;

    gap: 12px;

    width: 100%;

    min-height: 42px;

    margin:
        0
        0
        20px !important;
}


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

.lifed-flatpickr-calendar
.flatpickr-prev-month,

.lifed-flatpickr-calendar
.flatpickr-next-month {
    position: static !important;

    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;

    display: inline-flex !important;

    width: 38px !important;
    height: 38px !important;

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

    padding: 0 !important;

    border:
        1px solid
        #d8e5e2 !important;

    border-radius:
        12px !important;

    background:
        #ffffff !important;

    color:
        #5f7772 !important;

    box-shadow:
        none !important;

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


.lifed-flatpickr-calendar
.flatpickr-prev-month {
    grid-column: 1;
    grid-row: 1;
}


.lifed-flatpickr-calendar
.flatpickr-next-month {
    grid-column: 3;
    grid-row: 1;
}


.lifed-flatpickr-calendar
.flatpickr-prev-month:hover,

.lifed-flatpickr-calendar
.flatpickr-next-month:hover {
    border-color:
        #b8ddd8 !important;

    background:
        #f1faf8 !important;

    color:
        var(--lfd-book-brand-dark) !important;

    transform:
        translateY(-1px);
}


.lifed-flatpickr-calendar
.flatpickr-prev-month
svg,

.lifed-flatpickr-calendar
.flatpickr-next-month
svg {
    width: 11px !important;
    height: 11px !important;

    fill:
        currentColor !important;

    stroke-width: 1.5;
}


/* =========================================================
   MONTH / YEAR AREA
   ========================================================= */

.lifed-flatpickr-calendar
.flatpickr-month {
    position: static !important;

    grid-column: 2;
    grid-row: 1;

    width: 100% !important;

    height: 42px !important;

    overflow: visible !important;
}


.lifed-flatpickr-calendar
.flatpickr-current-month {
    position: static !important;

    display: flex !important;

    width: 100% !important;

    height: 42px !important;

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

    gap: 10px;

    padding: 0 !important;

    font-size: inherit !important;
}


/* =========================================================
   HIDE NATIVE FLATPICKR YEAR INPUT
   ========================================================= */

.lifed-flatpickr-calendar
.lfd-flatpickr-native-year {
    display: none !important;
}


/* =========================================================
   MONTH DROPDOWN
   ========================================================= */

.lifed-flatpickr-calendar
.flatpickr-monthDropdown-months {
    width: 128px;
    height: 38px;

    margin: 0 !important;

    padding:
        0
        38px
        0
        15px !important;

    border:
        1px solid
        #d8e5e2 !important;

    border-radius:
        12px !important;

    background-color:
        #ffffff !important;

    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23566f69' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;

    background-repeat:
        no-repeat !important;

    background-position:
        right 14px center !important;

    background-size:
        10px 7px !important;

    color:
        var(--lfd-book-ink) !important;

    font-family:
        "Nunito",
        sans-serif !important;

    font-size:
        0.78rem !important;

    font-weight:
        700 !important;

    line-height:
        40px !important;

    appearance:
        none !important;

    -webkit-appearance:
        none !important;

    cursor: pointer;
}


/*
 * Important:
 * gives visual breathing room between:
 *
 * October                 ▼
 */

.lifed-flatpickr-calendar
.flatpickr-monthDropdown-months:hover {
    border-color:
        #b9dcd7 !important;

    background-color:
        #fcfefd !important;
}


.lifed-flatpickr-calendar
.flatpickr-monthDropdown-months:focus {
    border-color:
        var(--lfd-book-brand) !important;

    outline: none;

    box-shadow:
        0 0 0 3px
        rgba(
            0,
            174,
            157,
            0.07
        );
}


/* =========================================================
   YEAR DROPDOWN
   ========================================================= */

.lifed-flatpickr-calendar
.lfd-flatpickr-year-select {
    width: 88px;
    height: 38px;

    margin: 0;

    padding:
        0
        36px
        0
        14px;

    border:
        1px solid
        #d8e5e2;

    border-radius:
        12px;

    background-color:
        #ffffff;

    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23566f69' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

    background-repeat:
        no-repeat;

    background-position:
        right 13px center;

    background-size:
        10px 7px;

    color:
        var(--lfd-book-ink);

    font-family:
        "Nunito",
        sans-serif;

    font-size:
        0.78rem;

    font-weight: 700;

    appearance: none;
    -webkit-appearance: none;

    cursor: pointer;

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


.lifed-flatpickr-calendar
.lfd-flatpickr-year-select:hover {
    border-color:
        #b9dcd7;

    background-color:
        #fcfefd;
}


.lifed-flatpickr-calendar
.lfd-flatpickr-year-select:focus {
    border-color:
        var(--lfd-book-brand);

    outline: none;

    box-shadow:
        0 0 0 3px
        rgba(
            0,
            174,
            157,
            0.07
        );
}


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

.lifed-flatpickr-calendar
.flatpickr-weekdays {
    width: 100% !important;

    height: 30px !important;

    margin:
        0
        0
        7px !important;
}


.lifed-flatpickr-calendar
.flatpickr-weekdaycontainer {
    display: flex !important;

    width: 100% !important;

    min-width: 100% !important;
    max-width: 100% !important;

    align-items: center;

    padding: 0 !important;
}


.lifed-flatpickr-calendar
.flatpickr-weekday {
    display: flex !important;

    flex:
        0
        0
        14.285714% !important;

    width:
        14.285714% !important;

    max-width:
        14.285714% !important;

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

    padding: 0 !important;

    color:
        #879a95 !important;

    font-family:
        "Nunito",
        sans-serif !important;

    font-size:
        0.58rem !important;

    font-weight:
        800 !important;

    line-height:
        30px !important;

    letter-spacing:
        0.045em;

    text-align: center;

    text-transform:
        uppercase;
}


/* =========================================================
   DATE GRID
   ========================================================= */

.lifed-flatpickr-calendar
.flatpickr-days {
    width: 100% !important;
}


.lifed-flatpickr-calendar
.flatpickr-rContainer {
    width: 100% !important;
}


.lifed-flatpickr-calendar
.flatpickr-days {
    width: 100% !important;

    min-height: 0 !important;
}


.lifed-flatpickr-calendar
.dayContainer {
    display: flex !important;

    width: 100% !important;

    min-width: 100% !important;
    max-width: 100% !important;

    min-height: 0 !important;

    flex-wrap: wrap !important;

    align-content: flex-start !important;
    justify-content: flex-start !important;

    padding: 0 !important;
}


/* =========================================================
   DATE CELL
   ========================================================= */

.lifed-flatpickr-calendar
.flatpickr-day {
    position: relative;

    display: inline-flex !important;

    flex:
        0
        0
        14.285714% !important;

    width:
        14.285714% !important;

    max-width:
        14.285714% !important;

    height: 42px !important;

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

    margin: 1px 0 !important;

    padding: 0 !important;

    border:
        1px solid
        transparent !important;

    border-radius:
        40px !important;

    background:
        transparent !important;

    color:
        #536d67 !important;

    font-family:
        "Nunito",
        sans-serif !important;

    font-size:
        0.72rem !important;

    font-weight:
        650 !important;

    line-height:
        40px !important;

    cursor: pointer;

    box-shadow: none;

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


/* =========================================================
   AVAILABLE DATE
   ========================================================= */

.lifed-flatpickr-calendar
.flatpickr-day:not(.flatpickr-disabled):not(.prevMonthDay):not(.nextMonthDay)::after {
    content: "";

    position: absolute;

    bottom: 4px;
    left: 50%;

    width: 5px;
    height: 5px;

    border-radius: 50%;

    background:
        var(--lfd-book-brand);

    opacity: 0.58;

    transform:
        translateX(-50%);
}


/* =========================================================
   AVAILABLE HOVER
   ========================================================= */

.lifed-flatpickr-calendar
.flatpickr-day:not(.flatpickr-disabled):not(.selected):hover {
    border-color:
        #c5e4df !important;

    background:
        #f1faf8 !important;

    color:
        var(--lfd-book-brand-dark) !important;
}


/* =========================================================
   TODAY
   ========================================================= */

.lifed-flatpickr-calendar
.flatpickr-day.today:not(.selected) {
    border-color:
        #9fd8d1 !important;

    background:
        #ffffff !important;

    color:
        var(--lfd-book-brand-dark) !important;

    box-shadow:
        none !important;
}


/* =========================================================
   SELECTED DATE
   ========================================================= */

.lifed-flatpickr-calendar
.flatpickr-day.selected,

.lifed-flatpickr-calendar
.flatpickr-day.selected:hover,

.lifed-flatpickr-calendar
.flatpickr-day.startRange,

.lifed-flatpickr-calendar
.flatpickr-day.endRange {
    border-color:
        var(--lfd-book-brand) !important;

    background:
        var(--lfd-book-brand) !important;

    color:
        #ffffff !important;

    font-weight:
        800 !important;

    box-shadow:
        0 6px 14px
        rgba(
            0,
            174,
            157,
            0.18
        ) !important;
}


.lifed-flatpickr-calendar
.flatpickr-day.selected::after {
    background:
        #ffffff;

    opacity: 0.9;
}


/* =========================================================
   UNAVAILABLE
   ========================================================= */

.lifed-flatpickr-calendar
.flatpickr-day.flatpickr-disabled,

.lifed-flatpickr-calendar
.flatpickr-day.flatpickr-disabled:hover {
    border-color:
        transparent !important;

    background:
        transparent !important;

    color:
        #d2dcd9 !important;

    opacity: 1;

    cursor:
        not-allowed !important;

    box-shadow:
        none !important;
}


.lifed-flatpickr-calendar
.flatpickr-day.flatpickr-disabled::after {
    display: none;
}


/* =========================================================
   PREVIOUS / NEXT MONTH DATES
   ========================================================= */

.lifed-flatpickr-calendar
.flatpickr-day.prevMonthDay,

.lifed-flatpickr-calendar
.flatpickr-day.nextMonthDay {
    color:
        #d8e0de !important;

    opacity: 0.7;
}


.lifed-flatpickr-calendar
.flatpickr-day.prevMonthDay::after,

.lifed-flatpickr-calendar
.flatpickr-day.nextMonthDay::after {
    display: none;
}   

/* =========================================================
   KEYBOARD FOCUS
   ========================================================= */

.lifed-flatpickr-calendar
.flatpickr-day:focus-visible {
    outline:
        3px solid
        rgba(
            0,
            174,
            157,
            0.13
        );

    outline-offset:
        1px;
}


/* =========================================================
   CALENDAR AVAILABILITY LOADING
   ========================================================= */

.lifed-flatpickr-calendar.is-loading-availability {
    pointer-events: none;
}


.lifed-flatpickr-calendar.is-loading-availability::after {
    content:
        "Checking available dates…";

    position: absolute;

    inset: 0;

    display: flex;

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

    border-radius:
        20px;

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

    color:
        var(--lfd-book-text);

    font-family:
        "Nunito",
        sans-serif;

    font-size:
        0.7rem;

    font-weight:
        700;

    backdrop-filter:
        blur(3px);

    z-index: 100;
}

/* =========================================================
   PRIMARY CONTACT
   ========================================================= */

.lfd-booking-contact-head {
    display: flex;

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

    gap: 20px;

    margin:
        22px
        0
        16px;
}


.lfd-booking-contact-head
.booking-section-title {
    margin: 0;

    color: var(--lfd-book-ink);

    font-family:
        "Nunito",
        sans-serif;

    font-size: 0.88rem;

    font-weight: 730;
}


.lfd-booking-contact-grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(0, 1.25fr)
        minmax(155px, 0.8fr)
        minmax(0, 1fr);

    gap: 14px;

    align-items: end;
}


.lfd-booking-contact-field {
    min-width: 0;
}


.lfd-booking-contact-field
.form-label {
    display: block;

    margin-bottom: 7px;
}


.lfd-booking-contact-field
.form-control,

.lfd-booking-contact-field
.form-select {
    width: 100%;

    min-height: 48px;
}


/* Tablet */

@media (max-width: 991.98px) {

    .lfd-booking-contact-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

}


/* Mobile */

@media (max-width: 575.98px) {

    .lfd-booking-contact-grid {
        grid-template-columns:
            1fr;

        gap: 12px;
    }


    .lfd-booking-contact-head {
        margin-top: 18px;
    }

}

/* =========================================================
   GUEST SELECTION
   ========================================================= */

.lfd-booking-guest-controls {
    display: grid;

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

    gap: 16px;

    margin-bottom: 16px;
}


.lfd-booking-guest-control {
    display: flex;

    min-width: 0;

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

    gap: 18px;

    padding:
        14px
        16px;

    border:
        1px solid
        var(--lfd-book-line);

    border-radius: 14px;

    background: #fff;
}


.lfd-booking-guest-control-copy {
    min-width: 0;
}


.lfd-booking-guest-control-copy
.form-label {
    display: block;

    margin:
        0
        0
        3px;

    color:
        var(--lfd-book-ink);

    font-family:
        "Nunito",
        sans-serif;

    font-size: 0.76rem;

    font-weight: 720;
}


.lfd-booking-guest-control-copy
span {
    display: block;

    color:
        var(--lfd-book-muted);

    font-size: 0.62rem;

    line-height: 1.4;
}


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

.booking-guest-counter {
    display: inline-grid;

    flex: 0 0 auto;

    grid-template-columns:
        34px
        42px
        34px;

    align-items: center;

    overflow: hidden;

    border:
        1px solid
        var(--lfd-book-line-strong);

    border-radius: 10px;

    background:
        #ffffff;
}


.guest-counter-btn {
    display: flex;

    width: 34px;
    height: 34px;

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

    padding: 0;

    border: 0;

    background:
        transparent;

    color:
        var(--lfd-book-ink);

    font-size: 0.82rem;

    font-weight: 700;

    line-height: 1;

    cursor: pointer;
}


.guest-counter-btn:hover:not(:disabled) {
    background:
        var(--lfd-book-brand-050);

    color:
        var(--lfd-book-brand-dark);
}


.guest-counter-btn:disabled {
    color:
        #cbd5d2;

    cursor:
        not-allowed;
}


.booking-guest-counter
.form-control {
    width: 42px;

    min-height: 34px;
    height: 34px;

    margin: 0;

    padding: 0;

    border: 0;

    border-right:
        1px solid
        var(--lfd-book-line);

    border-left:
        1px solid
        var(--lfd-book-line);

    border-radius: 0;

    background:
        #ffffff;

    color:
        var(--lfd-book-ink);

    font-family:
        "Nunito",
        sans-serif;

    font-size: 0.72rem;

    font-weight: 800;

    text-align: center;

    box-shadow: none;
}


/* Hide number-input arrows */

.booking-guest-counter
input[type="number"]::-webkit-inner-spin-button,

.booking-guest-counter
input[type="number"]::-webkit-outer-spin-button {
    margin: 0;

    -webkit-appearance: none;
}


.booking-guest-counter
input[type="number"] {
    appearance: textfield;
    -moz-appearance: textfield;
}


/* =========================================================
   GUEST SUMMARY PILLS
   ========================================================= */

.lfd-booking-guest-pills {
    display: flex;

    flex-wrap: wrap;

    gap: 8px;

    margin:
        0
        0
        18px;
}


.lfd-booking-guest-pill {
    display: inline-flex;

    min-height: 30px;

    align-items: center;

    gap: 8px;

    padding:
        5px
        10px
        5px
        12px;

    border:
        1px solid
        var(--lfd-book-line);

    border-radius:
        999px;

    background:
        #ffffff;
}


.lfd-booking-guest-pill
span {
    color:
        var(--lfd-book-muted);

    font-size: 0.62rem;

    font-weight: 650;
}


.lfd-booking-guest-pill
strong {
    display: inline-flex;

    min-width: 20px;
    height: 20px;

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

    padding:
        0
        5px;

    border-radius:
        999px;

    background:
        var(--lfd-book-brand-100);

    color:
        var(--lfd-book-brand-dark);

    font-family:
        "Nunito",
        sans-serif;

    font-size: 0.62rem;

    font-weight: 800;
}


.lfd-booking-guest-pill.is-total {
    border-color:
        #c5e5e0;

    background:
        var(--lfd-book-brand-050);
}


.lfd-booking-guest-pill.is-total
span {
    color:
        var(--lfd-book-brand-deep);

    font-weight: 700;
}


.lfd-booking-guest-pill.is-total
strong {
    background:
        var(--lfd-book-brand);

    color:
        #ffffff;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 767.98px) {

    .lfd-booking-guest-controls {
        grid-template-columns:
            1fr;
    }

}


@media (max-width: 575.98px) {

    .lfd-booking-guest-control {
        padding:
            12px
            13px;
    }


    .lfd-booking-guest-pills {
        gap: 6px;
    }

}

/* =========================================================
   GUEST HEADER SUMMARY
   ========================================================= */

.lfd-booking-guest-header {
    display: flex;

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

    gap: 24px;
}


.lfd-booking-guest-header
.booking-card-title {
    flex: 0 0 auto;

    margin: 0;
}


/* =========================================================
   HEADER GUEST COUNTS
   ========================================================= */

.lfd-booking-guest-header-summary {
    display: flex;

    flex-wrap: wrap;

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

    gap: 6px;
}


.lfd-booking-guest-header-pill {
    display: inline-flex;

    min-height: 29px;

    align-items: center;

    gap: 7px;

    padding:
        4px
        9px;

    border:
        1px solid
        var(--lfd-book-line-strong);

    border-radius: 999px;

    background:
        transparent;

    color:
        var(--lfd-book-text);
}


.lfd-booking-guest-header-pill span {
    color:
        var(--lfd-book-muted);

    font-size: 0.61rem;

    font-weight: 650;

    line-height: 1;

    white-space: nowrap;
}


.lfd-booking-guest-header-pill strong {
    display: inline-flex;

    min-width: 18px;

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

    color:
        var(--lfd-book-ink);

    font-family:
        "Nunito",
        sans-serif;

    font-size: 0.65rem;

    font-weight: 800;

    line-height: 1;
}


/* Slight emphasis only through border/text */

.lfd-booking-guest-header-pill.is-total {
    border-color:
        #a9d9d3;
}


.lfd-booking-guest-header-pill.is-total span,
.lfd-booking-guest-header-pill.is-total strong {
    color:
        var(--lfd-book-brand-dark);
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 767.98px) {

    .lfd-booking-guest-header {
        align-items: flex-start;

        gap: 14px;
    }


    .lfd-booking-guest-header-summary {
        max-width: 52%;
    }

}


@media (max-width: 575.98px) {

    .lfd-booking-guest-header {
        display: block;

        margin-bottom: 20px;
    }


    .lfd-booking-guest-header-summary {
        max-width: none;

        justify-content: flex-start;

        margin-top: 12px;
    }

}

/* =========================================================
   ADDITIONAL ADULTS
   Compact multi-column guest names
   ========================================================= */

#additional-adults-section {
    margin-top: 20px;
}


#additional-adults-section > hr {
    margin:
        0
        0
        16px;
}


#additional-adults-section
.booking-section-title {
    margin:
        0
        0
        12px;

    color:
        var(--lfd-book-ink);

    font-family:
        "Nunito",
        sans-serif;

    font-size: 0.82rem;

    font-weight: 730;
}


/* Four adults per row */

#additional-adults {
    display: grid;

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

    gap:
        12px;

    width: 100%;
}


/*
 * Existing JS generates the individual
 * adult fields inside this container.
 */

#additional-adults > * {
    min-width: 0;

    margin: 0 !important;
}


#additional-adults
.booking-guest-item {
    margin: 0 !important;
}


#additional-adults
.form-label {
    display: block;

    margin-bottom: 6px;

    color:
        var(--lfd-book-ink);

    font-size: 0.67rem;

    font-weight: 680;

    white-space: nowrap;
}


#additional-adults
.form-control {
    width: 100%;

    min-width: 0;

    min-height: 44px;

    height: 44px;

    padding:
        9px
        11px;

    border-radius: 10px;

    font-size: 0.73rem;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1199.98px) {

    #additional-adults {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

}


@media (max-width: 575.98px) {

    #additional-adults {
        grid-template-columns:
            1fr;

        gap: 10px;
    }

}

/* =========================================================
   PACKAGE SECTION
   ========================================================= */

.lfd-booking-package-section {
    margin-top: 8px !important;
}


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

.lfd-booking-package-heading {
    display: flex;

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

    gap: 20px;
}


.lfd-booking-package-heading
.booking-card-title {
    margin: 0;
    margin-bottom: 10px;
}


.lfd-booking-package-heading
p {


    color:
        var(--lfd-book-muted);

    font-size: 13px;;

    line-height: 1.5;
}


.lfd-booking-package-divider {
    margin:
        22px
        0
        18px !important;
}


/* =========================================================
   PACKAGE GRID
   ========================================================= */

.lfd-booking-package-grid {
    display: grid;

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

    gap: 14px;

    width: 100%;
}


/* =========================================================
   PACKAGE CARD
   ========================================================= */

.lfd-booking-package-card {
    position: relative;

    display: flex;

    width: 100%;

    min-width: 0;

    min-height: 190px;

    margin: 0 !important;

    padding: 0;

    overflow: hidden;

    border:
        1px solid
        var(--lfd-book-line-strong) !important;

    border-radius:
        16px !important;

    background:
        #ffffff !important;

    box-shadow:
        none !important;

    cursor: pointer;

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


.lfd-booking-package-card:hover {
    border-color:
        #a9d8d2 !important;

    background:
        #ffffff !important;

    box-shadow:
        0 8px 24px
        rgba(
            23,
            63,
            57,
            0.045
        ) !important;

    transform:
        translateY(-1px);
}


/* =========================================================
   RADIO
   ========================================================= */

.lfd-booking-package-card
> input[type="radio"] {
    position: absolute;

    top: 20px;
    left: 18px;

    width: 17px;
    height: 17px;

    margin: 0;

    accent-color:
        var(--lfd-book-brand);

    cursor: pointer;

    z-index: 2;
}


/* =========================================================
   CARD BODY
   ========================================================= */

.lfd-booking-package-card-body {
    display: flex;

    width: 100%;

    min-width: 0;

    flex-direction: column;

    padding:
        18px
        18px
        15px
        48px;
}


/* =========================================================
   PACKAGE TOP
   ========================================================= */

.lfd-booking-package-top {
    display: flex;

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

    gap: 16px;

    padding-bottom: 14px;

    border-bottom:
        1px solid
        var(--lfd-book-line);
}


.lfd-booking-package-name {
    min-width: 0;
}


.lfd-booking-package-name
strong {
    display: block;

    color:
        var(--lfd-book-ink);

    font-family:
        "Nunito",
        sans-serif;

    font-size: 0.8rem;

    font-weight: 740;

    line-height: 1.35;
}


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

.lfd-booking-package-price {
    display: flex;

    flex: 0 0 auto;

    align-items: baseline;

    gap: 3px;

    text-align: right;

    white-space: nowrap;
}


.lfd-booking-package-price
strong {
    color:
        var(--lfd-book-ink);

    font-family:
        "Nunito",
        sans-serif;

    font-size: 0.82rem;

    font-weight: 780;

    letter-spacing: -0.015em;
}


.lfd-booking-package-price
span {
    color:
        var(--lfd-book-muted);

    font-size: 0.56rem;

    font-weight: 600;
}


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

.lfd-booking-package-description {
    flex: 1;
    margin: 13px 0 14px;
    color: var(--lfd-book-text);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.4;
}


/* =========================================================
   SELECT LABEL
   ========================================================= */

.lfd-booking-package-select-label {
    display: flex;

    min-height: 20px;

    align-items: center;

    margin-top: auto;

    padding-top: 11px;

    border-top:
        1px solid
        var(--lfd-book-line);
}


.lfd-booking-package-select-default,
.lfd-booking-package-select-active {
    font-size: 0.61rem;

    font-weight: 700;

    line-height: 1;
}


.lfd-booking-package-select-default {
    color:
        var(--lfd-book-muted);
}


.lfd-booking-package-select-active {
    display: none;

    align-items: center;

    gap: 5px;

    color:
        var(--lfd-book-brand-dark);
}


.lfd-booking-package-select-active
i {
    font-size: 0.72rem;
}


/* =========================================================
   PACKAGE — SELECTED STATE
   ========================================================= */

.lfd-booking-package-card {
    position: relative;
}


/*
 * The optional "Selected" text is currently
 * commented out in Blade, but these rules are
 * safe to keep for future use.
 */

.lfd-booking-package-card:has(
    > input[type="radio"]:checked
)
.lfd-booking-package-select-default {
    display: none;
}


.lfd-booking-package-card:has(
    > input[type="radio"]:checked
)
.lfd-booking-package-select-active {
    display: inline-flex;
}


/* =========================================================
   RESERVE SPACE FOR CHECKMARK
   ========================================================= */

/*
 * When selected, reserve dedicated space on the
 * far right of the heading row.
 *
 * This prevents the price and checkmark from
 * occupying the same area.
 */

.lfd-booking-package-card:has(
    > input[type="radio"]:checked
)
.lfd-booking-package-top {
    padding-right: 38px;
}


/*
 * Remove previous price margin hack.
 */

.lfd-booking-package-card:has(
    > input[type="radio"]:checked
)
.lfd-booking-package-price {
    margin-right: 0;
}


/* =========================================================
   SELECTED CHECK
   ========================================================= */

.lfd-booking-package-card:has(
    > input[type="radio"]:checked
)::after {
    content: "✓";

    position: absolute;

    top: 17px;
    right: 16px;

    display: inline-flex;

    width: 24px;
    height: 24px;

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

    border-radius: 50%;

    background:
        var(--lfd-book-brand);

    color: #ffffff;

    font-family:
        "Manrope",
        sans-serif;

    font-size: 0.62rem;
    font-weight: 900;

    line-height: 1;

    pointer-events: none;

    z-index: 4;
}


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

.lfd-booking-package-price {
    display: flex;

    flex: 0 0 auto;

    align-items: baseline;

    gap: 3px;

    min-width: 0;

    color:
        var(--lfd-book-ink);

    white-space: nowrap;
}


.lfd-booking-package-price
strong {
    color:
        var(--lfd-book-ink);

    font-family:
        "Manrope",
        sans-serif;

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

    line-height: 1.2;
}


.lfd-booking-package-price
span {
    color:
        var(--lfd-book-muted);

    font-size: 0.56rem;
    font-weight: 600;

    white-space: nowrap;
}


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

@media (max-width: 767.98px) {

    .lfd-booking-package-card:has(
        > input[type="radio"]:checked
    )
    .lfd-booking-package-top {
        padding-right: 34px;
    }


    .lfd-booking-package-card:has(
        > input[type="radio"]:checked
    )::after {
        top: 15px;
        right: 13px;

        width: 22px;
        height: 22px;

        font-size: 0.58rem;
    }

}

/* =========================================================
   EMPTY STATE
   ========================================================= */

.lfd-booking-package-empty {
    grid-column: 1 / -1;

    display: flex;

    align-items: center;

    gap: 8px;

    padding:
        16px
        0;

    color:
        var(--lfd-book-muted);

    font-size: 0.7rem;
}


.lfd-booking-package-empty
i {
    color:
        var(--lfd-book-brand-dark);
}


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

@media (max-width: 991.98px) {

    .lfd-booking-package-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

        gap: 12px;
    }


    .lfd-booking-package-card {
        min-height: 175px;
    }


    .lfd-booking-package-card-body {
        padding:
            16px
            15px
            14px
            45px;
    }


    .lfd-booking-package-top {
        gap: 10px;
    }


    .lfd-booking-package-price {
        display: block;
    }


    .lfd-booking-package-price
    span {
        display: block;

        margin-top: 2px;
    }

}


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

@media (max-width: 767.98px) {

    .lfd-booking-package-grid {
        grid-template-columns:
            1fr;

        gap: 10px;
    }


    .lfd-booking-package-card {
        min-height: 0;
    }


    .lfd-booking-package-card-body {
        padding:
            16px
            15px
            14px
            44px;
    }


    .lfd-booking-package-card
    > input[type="radio"] {
        top: 18px;
        left: 16px;
    }


    .lfd-booking-package-top {
        padding-bottom: 12px;
    }


    .lfd-booking-package-description {
        margin:
            11px
            0
            12px;
    }

}

/* =========================================================
   PAYMENT SECTION
   ========================================================= */

.lfd-booking-payment-section {
    margin-top: 8px !important;
}


/* =========================================================
   HEADING
   ========================================================= */

.lfd-booking-payment-heading {
    display: flex;

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

    gap: 20px;
}


.lfd-booking-payment-heading
.booking-card-title {
    margin: 0;
    margin-bottom: 10px;
}


.lfd-booking-payment-heading
p {
    color:
        var(--lfd-book-muted);

    font-size: 13px;

    line-height: 1.5;
}


.lfd-booking-payment-divider {
    margin:
        22px
        0
        18px !important;
}


/* =========================================================
   TWO COLUMN PAYMENT GRID
   ========================================================= */

.lfd-booking-payment-grid {
    display: grid;

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

    gap: 14px;

    width: 100%;
}


/* =========================================================
   PAYMENT CARD
   ========================================================= */

.lfd-booking-payment-card {
    position: relative;

    display: flex;

    width: 100%;
    min-width: 0;

    min-height: 73px;

    margin: 0 !important;

    padding: 0;

    overflow: hidden;

    border:
        1px solid
        var(--lfd-book-line-strong) !important;

    border-radius:
        16px !important;

    background:
        #ffffff !important;

    box-shadow:
        none !important;

    cursor: pointer;

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


.lfd-booking-payment-card:hover {
    border-color:
        #a9d8d2 !important;

    background:
        #ffffff !important;

    box-shadow:
        0 8px 22px
        rgba(
            23,
            63,
            57,
            0.04
        ) !important;

    transform:
        translateY(-1px);
}


/* =========================================================
   RADIO
   ========================================================= */

.lfd-booking-payment-card
> input[type="radio"] {
    position: absolute;

    top: 21px;
    left: 18px;

    width: 17px;
    height: 17px;

    margin: 0;

    accent-color:
        var(--lfd-book-brand);

    cursor: pointer;

    z-index: 3;
}


/* =========================================================
   BODY
   ========================================================= */

.lfd-booking-payment-card-body {
    display: flex;

    width: 100%;
    min-width: 0;

    flex-direction: column;

    padding:
        18px
        18px
        15px
        49px !important;
}


/* =========================================================
   TOP
   ========================================================= */

.lfd-booking-payment-card-top {
    display: flex;

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

    gap: 16px;
}


.lfd-booking-payment-title {
    min-width: 0;
}


.lfd-booking-payment-title
strong {
    display: block;

    color:
        var(--lfd-book-ink);

    font-family:
        "Manrope",
        sans-serif;

    font-size: 0.8rem;

    font-weight: 740;

    line-height: 1.35;
}


.lfd-booking-payment-title
span {
    display: block;

    margin-top: 3px;

    color:
        var(--lfd-book-muted);

    font-size: 0.61rem;

    font-weight: 600;
}


/* =========================================================
   CHECK
   ========================================================= */

.lfd-booking-payment-check {
    display: flex;

    flex: 0 0 22px;

    width: 22px;
    height: 22px;

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

    color:
        transparent;

    font-size: 0.82rem;

    transition:
        color 150ms ease;
}


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

.lfd-booking-payment-description {
    flex: 1;

    margin:
        12px
        0
        13px !important;

    color:
        var(--lfd-book-text);

    font-size: 0.66rem;

    line-height: 1.55;
}


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

.lfd-booking-payment-footer {
    padding-top: 10px;

    border-top:
        1px solid
        var(--lfd-book-line);
}


.lfd-booking-payment-footer
span {
    color:
        var(--lfd-book-muted);

    font-size: 0.61rem;

    font-weight: 650;
}


/* =========================================================
   SELECTED PAYMENT
   No background fill
   ========================================================= */

.lfd-booking-payment-card:has(
    > input[type="radio"]:checked
) {
    border-color:
        var(--lfd-book-brand) !important;

    background:
        #ffffff !important;

    box-shadow:
        0 0 0 2px
        rgba(
            0,
            174,
            157,
            0.07
        ) !important;

    transform: none;
}


.lfd-booking-payment-card:has(
    > input[type="radio"]:checked
)
.lfd-booking-payment-check {
    color:
        var(--lfd-book-brand-dark);
}


.lfd-booking-payment-card:has(
    > input[type="radio"]:checked
)
.lfd-booking-payment-footer
span {
    color:
        var(--lfd-book-brand-dark);
}


/*
 * Override generic package-card checkmark.
 * We already have our own payment check.
 */

.lfd-booking-payment-card:has(
    > input[type="radio"]:checked
)::after {
    display: none !important;
}


/* =========================================================
   TABLET
   Keep both choices side by side
   ========================================================= */

@media (max-width: 991.98px) {

    .lfd-booking-payment-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

        gap: 12px;
    }


    .lfd-booking-payment-card {
        min-height: 138px;
    }


    .lfd-booking-payment-card-body {
        padding:
            16px
            15px
            14px
            45px !important;
    }

}


/* =========================================================
   MOBILE
   One payment option per row
   ========================================================= */

@media (max-width: 767.98px) {

    .lfd-booking-payment-grid {
        grid-template-columns:
            1fr;

        gap: 10px;
    }


    .lfd-booking-payment-card {
        min-height: 0;
    }


    .lfd-booking-payment-card-body {
        padding:
            16px
            15px
            14px
            44px !important;
    }


    .lfd-booking-payment-card
    > input[type="radio"] {
        top: 18px;
        left: 16px;
    }


    .lfd-booking-payment-description {
        margin:
            10px
            0
            11px !important;
    }

}

/* =========================================================
   PAYMENT CARD — FINAL SELECTED CHECK OVERRIDE
   KEEP AT END OF booking-premium.css
   ========================================================= */

#booking-form
.lfd-booking-payment-card {
    position: relative !important;
    overflow: hidden;
}


/*
 * Leave space for the checkmark.
 */

#booking-form
.lfd-booking-payment-card
.lfd-booking-payment-card-body {
    padding-right: 58px !important;
}


/*
 * Selected card.
 */

#booking-form
.lfd-booking-payment-card:has(
    > input[type="radio"]:checked
) {
    border-color:
        var(--lfd-book-brand) !important;

    box-shadow:
        0 0 0 1px
        rgba(0, 174, 157, 0.06) !important;
}


/*
 * Selected checkmark.
 */

#booking-form
.lfd-booking-payment-card:has(
    > input[type="radio"]:checked
)::after {
    content: "✓" !important;

    position: absolute !important;

    top: 50% !important;
    right: 16px !important;
    left: auto !important;
    bottom: auto !important;

    display: flex !important;

    width: 27px !important;
    height: 27px !important;

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

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 50% !important;

    background:
        var(--lfd-book-brand) !important;

    color: #ffffff !important;

    font-family:
        Arial,
        sans-serif !important;

    font-size: 13px !important;
    font-weight: 700 !important;

    line-height: 27px !important;

    opacity: 1 !important;
    visibility: visible !important;

    transform:
        translateY(-50%) !important;

    pointer-events: none !important;

    z-index: 20 !important;
}


/*
 * Ensure unselected payment cards
 * never display the pseudo check.
 */

#booking-form
.lfd-booking-payment-card:not(
    :has(> input[type="radio"]:checked)
)::after {
    content: none !important;
    display: none !important;
}


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

@media (max-width: 767.98px) {

    #booking-form
    .lfd-booking-payment-card
    .lfd-booking-payment-card-body {
        padding-right: 52px !important;
    }


    #booking-form
    .lfd-booking-payment-card:has(
        > input[type="radio"]:checked
    )::after {
        right: 13px !important;

        width: 24px !important;
        height: 24px !important;

        font-size: 12px !important;
        line-height: 24px !important;
    }

}

/* =========================================================
   BOOKING MODE INFORMATION
   Airbnb-style compact informational note
   ========================================================= */

#booking-form
.lfd-booking-mode-note {
    display: flex;

    align-items: flex-start;

    gap: 10px;

    width: 100%;

    margin:
        14px
        0
        22px;

    padding:
        12px
        0;

    border-top:
        1px solid
        var(--lfd-book-line);

    border-bottom:
        1px solid
        var(--lfd-book-line);

    color:
        var(--lfd-book-text);
}


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

#booking-form
.lfd-booking-mode-note-icon {
    display: flex;

    flex:
        0
        0
        26px;

    width: 26px;
    height: 26px;

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

    margin-top: 1px;

    border:
        1px solid
        #c9dfdb;

    border-radius: 50%;

    color:
        var(--lfd-book-brand-dark);

    background:
        transparent;
}


#booking-form
.lfd-booking-mode-note-icon
i {
    font-size: 12px;

    line-height: 1;
}


/* =========================================================
   COPY
   ========================================================= */

#booking-form
.lfd-booking-mode-note-copy {
    min-width: 0;

    padding-top: 1px;
}


#booking-form
.lfd-booking-mode-note-copy
strong {
    display: block;

    margin:
        0
        0
        2px;

    color:
        var(--lfd-book-ink);

    font-family:
        "Manrope",
        sans-serif;

    font-size:
        0.72rem;

    font-weight:
        720;

    line-height:
        1.4;
}


#booking-form
.lfd-booking-mode-note-copy
span {
    display: block;

    color:
        var(--lfd-book-muted);

    font-size:
        0.67rem;

    font-weight:
        500;

    line-height:
        1.5;
}


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

@media (max-width: 767.98px) {

    #booking-form
    .lfd-booking-mode-note {
        gap: 9px;

        margin:
            12px
            0
            19px;

        padding:
            11px
            0;
    }


    #booking-form
    .lfd-booking-mode-note-icon {
        flex-basis: 24px;

        width: 24px;
        height: 24px;
    }


    #booking-form
    .lfd-booking-mode-note-copy
    strong {
        font-size: 0.7rem;
    }


    #booking-form
    .lfd-booking-mode-note-copy
    span {
        font-size: 0.65rem;
    }

}

.lfd-booking-mode-message {
    display: flex;
    align-items: flex-start;
    gap: 7px;

    margin-top: 12px;

    color: var(--lfd-book-muted);

    font-size: 0.67rem;
    line-height: 1.5;
}

.lfd-booking-mode-message i {
    flex: 0 0 auto;

    margin-top: 2px;

    color: var(--lfd-book-brand-dark);

    font-size: 0.72rem;
}

.lfd-booking-mode-message span {
    min-width: 0;
}

/* =========================================================
   FIXED SESSION SCHEDULE
   ========================================================= */

.lfd-session-fixed-schedule
.lfd-booking-schedule-card {
    display: grid;

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

    gap: 30px 34px;

    align-items: start;
}


.lfd-session-fixed-schedule
.lfd-booking-fixed-panel {
    grid-column: 1;
}


.lfd-session-fixed-schedule
.lfd-booking-slot-panel {
    grid-column: 2;
}


.lfd-session-fixed-schedule
#session-booking-message,

.lfd-session-fixed-schedule
#weekly-journey-preview {
    grid-column: 1 / -1;
}


/* Fixed date information */

.lfd-booking-fixed-panel {
    min-width: 0;

    padding: 22px;

    border:
        1px solid
        var(--lfd-book-line);

    border-radius: 18px;

    background: #ffffff;
}


.lfd-booking-fixed-eyebrow {
    margin-bottom: 16px;

    color:
        var(--lfd-book-muted);

    font-family:
        "Manrope",
        sans-serif;

    font-size: 0.62rem;

    font-weight: 800;

    letter-spacing: 0.08em;

    text-transform: uppercase;
}


.lfd-booking-fixed-dates {
    display: flex;

    align-items: center;

    gap: 18px;
}


.lfd-booking-fixed-date {
    min-width: 0;
}


.lfd-booking-fixed-date span {
    display: block;

    margin-bottom: 5px;

    color:
        var(--lfd-book-muted);

    font-size: 0.65rem;
}


.lfd-booking-fixed-date strong {
    display: block;

    color:
        var(--lfd-book-ink);

    font-family:
        "Manrope",
        sans-serif;

    font-size: 0.92rem;

    font-weight: 740;
}


.lfd-booking-fixed-date small {
    display: block;

    margin-top: 3px;

    color:
        var(--lfd-book-text);

    font-size: 0.68rem;
}


.lfd-booking-fixed-separator {
    display: inline-flex;

    flex: 0 0 30px;

    width: 30px;
    height: 30px;

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

    color:
        var(--lfd-book-muted);

    font-size: 0.72rem;
}


.lfd-booking-fixed-note {
    display: flex;

    align-items: flex-start;

    gap: 8px;

    margin-top: 18px;

    padding-top: 14px;

    border-top:
        1px solid
        var(--lfd-book-line);

    color:
        var(--lfd-book-muted);

    font-size: 0.67rem;

    line-height: 1.55;
}


.lfd-booking-fixed-note i {
    flex: 0 0 auto;

    margin-top: 1px;

    color:
        var(--lfd-book-brand-dark);
}


@media (max-width: 767.98px) {

    .lfd-session-fixed-schedule
    .lfd-booking-schedule-card {
        display: block;
    }


    .lfd-booking-fixed-panel {
        margin-bottom: 24px;

        padding: 18px;
    }


    .lfd-booking-fixed-dates {
        gap: 12px;
    }

}

/* =========================================================
   FLEXI SESSION BUILDER
   ========================================================= */

#flexi-session-builder {
    grid-column: 1 / -1;

    width: 100%;

    margin-top: 4px !important;

    padding:
        24px
        0
        0 !important;

    border: 0 !important;

    border-top:
        1px solid
        var(--lfd-book-line) !important;

    border-radius: 0 !important;

    background:
        transparent !important;

    box-shadow:
        none !important;
}


.lfd-flexi-session-head {
    display: flex;

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

    gap: 18px;

    margin-bottom: 15px;
}


.lfd-flexi-session-head
.booking-subtitle {
    margin: 0;

    color:
        var(--lfd-book-ink);

    font-family:
        "Manrope",
        sans-serif;

    font-size: 0.84rem;

    font-weight: 730;
}


.lfd-flexi-session-head p {
    max-width: 520px;

    margin:
        4px
        0
        0;

    color:
        var(--lfd-book-muted);

    font-size: 0.68rem;

    line-height: 1.55;
}


.lfd-flexi-selection-count {
    display: inline-flex;

    flex: 0 0 auto;

    min-height: 27px;

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

    padding:
        4px
        10px;

    border:
        1px solid
        #cce7e3;

    border-radius:
        999px;

    color:
        var(--lfd-book-brand-dark);

    font-family:
        "Manrope",
        sans-serif;

    font-size: 0.63rem;

    font-weight: 780;

    white-space: nowrap;
}


#flexi-selected-sessions {
    display: grid;

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

    gap: 9px;
}


.lfd-flexi-session-card {
    position: relative;
}


.lfd-flexi-session-actions {
    display: flex;

    flex: 0 0 auto;

    align-items: center;

    gap: 8px;
}


.lfd-flexi-session-remove {
    display: inline-flex;

    flex: 0 0 25px;

    width: 25px;
    height: 25px;

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

    margin: 0;
    padding: 0;

    border:
        1px solid
        var(--lfd-book-line);

    border-radius: 50%;

    background:
        #ffffff;

    color:
        var(--lfd-book-muted);

    font-size: 0.82rem;

    cursor: pointer;

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


.lfd-flexi-session-remove:hover {
    border-color:
        #e3c9ca;

    background:
        #fffafa;

    color:
        var(--lfd-book-danger);
}


.lfd-flexi-session-remove span {
    display: none;
}


.lfd-flexi-empty-state {
    grid-column: 1 / -1;

    display: flex;

    align-items: center;

    gap: 8px;

    padding:
        12px
        0;

    color:
        var(--lfd-book-muted);

    font-size: 0.68rem;
}


.lfd-flexi-empty-state i {
    color:
        var(--lfd-book-brand-dark);

    font-size: 0.78rem;
}


@media (max-width: 767.98px) {

    #flexi-selected-sessions {
        grid-template-columns:
            1fr;
    }


    .lfd-flexi-session-head {
        align-items: center;
    }

}

/* =========================================================
   FLEXI - ALREADY SELECTED DATES
   ========================================================= */

.lifed-calendar-field
.flatpickr-day.lfd-flexi-date-selected {
    border-color: #d3dcda !important;

    background: #e9edec !important;

    color: #43534f !important;

    font-weight: 750 !important;
}


.lifed-calendar-field
.flatpickr-day.lfd-flexi-date-selected:hover {
    border-color: #c6d0cd !important;

    background: #dfe5e3 !important;

    color: #30423e !important;
}


.lifed-calendar-field
.flatpickr-day.lfd-flexi-date-selected:not(.selected) {
    border-color: #d3dcda !important;
    background: #e9edec !important;
    color: #43534f !important;
    font-weight: 750 !important;
}


.lifed-calendar-field
.flatpickr-day.lfd-flexi-date-selected:not(.selected):hover {
    border-color: #c6d0cd !important;
    background: #dfe5e3 !important;
    color: #30423e !important;
}


.lifed-calendar-field
.flatpickr-day.lfd-flexi-date-selected:not(.selected)::after {
    background: #8c9995 !important;
}


/* =========================================================
   HIDE ADJACENT MONTH DAYS
   ========================================================= */

/*
 * Flatpickr renders dates from the previous/next month
 * to complete each calendar row.
 *
 * Booking availability is month-specific, so hide those
 * filler dates to avoid confusing them with bookable dates.
 */
.lifed-flatpickr-calendar
.flatpickr-day.prevMonthDay,

.lifed-flatpickr-calendar
.flatpickr-day.nextMonthDay {
    visibility: hidden !important;
    pointer-events: none !important;
}

.ts-dropdown
{
    min-width: 230px !important;
}

/* =========================================================
   FULL STACK - PROGRAM SCHEDULE
   ========================================================= */

.lfd-fullstack-schedule-card {
    width: 100%;
    min-width: 0;
}


.lfd-fullstack-has-calendar {
    display: grid;

    grid-template-columns:
        minmax(340px, 0.98fr)
        minmax(260px, 0.72fr);

    gap: 30px 34px;

    align-items: start;
}


/* ---------------------------------------------------------
   SECTION HEAD
   --------------------------------------------------------- */

.lfd-fullstack-section-head {
    margin-bottom: 20px;
}


.lfd-fullstack-eyebrow {
    display: block;

    margin-bottom: 5px;

    color:
        var(--lfd-book-muted);

    font-family:
        "Manrope",
        sans-serif;

    font-size: 0.62rem;

    font-weight: 800;

    letter-spacing: 0.08em;

    text-transform: uppercase;
}


.lfd-fullstack-section-head h3 {
    margin: 0;

    color:
        var(--lfd-book-ink);

    font-family:
        "Manrope",
        sans-serif;

    font-size: 1rem;

    font-weight: 760;

    line-height: 1.35;
}


.lfd-fullstack-section-head p {
    max-width: 520px;


    color:
        var(--lfd-book-text);

    font-size: 0.72rem;

    line-height: 1.55;
}


/* ---------------------------------------------------------
   DATE / CALENDAR PANEL
   --------------------------------------------------------- */

.lfd-fullstack-date-panel {
    min-width: 0;
}


.lfd-fullstack-date-panel
.booking-form-group {
    margin: 0;
}


.lfd-fullstack-date-panel
.booking-field-label {
    display: block;

    margin-bottom: 9px;

    color:
        var(--lfd-book-ink);

    font-size: 0.72rem;

    font-weight: 720;
}


/* ---------------------------------------------------------
   PROGRAM DATE SUMMARY
   --------------------------------------------------------- */

.lfd-fullstack-stay-panel {
    min-width: 0;

    padding: 22px;

    border:
        1px solid
        var(--lfd-book-line);

    border-radius: 18px;

    background: #ffffff;
}


.lfd-fullstack-duration {
    display: flex;

    align-items: baseline;

    gap: 6px;

    margin-top: 8px;
}


.lfd-fullstack-duration strong {
    color:
        var(--lfd-book-ink);

    font-family:
        "Manrope",
        sans-serif;

    font-size: 1.8rem;

    font-weight: 780;

    line-height: 1;
}


.lfd-fullstack-duration span {
    color:
        var(--lfd-book-text);

    font-size: 0.78rem;

    font-weight: 650;
}


.lfd-fullstack-date-summary {
    display: flex;

    flex-direction: column;

    gap: 15px;

    margin-top: 22px;

    padding-top: 18px;

    border-top:
        1px solid
        var(--lfd-book-line);
}


.lfd-fullstack-date-summary-row {
    display: flex;

    align-items: center;

    gap: 11px;
    margin-top: 9px;
}


.lfd-fullstack-date-icon {
    display: inline-flex;

    flex: 0 0 32px;

    width: 32px;
    height: 32px;

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

    border:
        1px solid
        var(--lfd-book-line);

    border-radius: 9px;

    color:
        var(--lfd-book-brand-dark);

    font-size: 0.72rem;
}


.lfd-fullstack-date-summary-row span {
    display: block;

    color:
        var(--lfd-book-muted);

    font-size: 0.62rem;
}


.lfd-fullstack-date-summary-row strong {
    display: block;

    color:
        var(--lfd-book-ink);

    font-size: 0.76rem;

    font-weight: 720;
}


/* ---------------------------------------------------------
   SEASON WINDOW
   --------------------------------------------------------- */

.lfd-fullstack-season-window {
    margin-top: 8px;
}


.lfd-fullstack-season-window > span {
    display: block;

    margin-bottom: 4px;

    color:
        var(--lfd-book-muted);

    font-size: 0.62rem;
}


.lfd-fullstack-season-window strong {
    display: block;

    color:
        var(--lfd-book-ink);

    font-size: 0.76rem;

    font-weight: 720;

    line-height: 1.45;
}


/* ---------------------------------------------------------
   INFO
   --------------------------------------------------------- */

.lfd-fullstack-inline-info {
    display: flex;

    align-items: flex-start;

    gap: 7px;

    margin-top: 18px;

    padding-top: 15px;

    border-top:
        1px solid
        var(--lfd-book-line);

    color:
        var(--lfd-book-muted);

    font-size: 0.65rem;

    line-height: 1.5;
}


.lfd-fullstack-inline-info i {
    flex: 0 0 auto;

    margin-top: 1px;

    color:
        var(--lfd-book-brand-dark);
}


/* =========================================================
   FULL STACK - FIXED DATES
   ========================================================= */

.lfd-fullstack-fixed-panel {
    width: 100%;

    max-width: 650px;

    padding: 24px;

    border:
        1px solid
        var(--lfd-book-line);

    border-radius: 18px;

    background: #ffffff;
}


.lfd-fullstack-fixed-dates {
    display: flex;

    align-items: center;

    gap: 22px;

    margin-top: 22px;
}


.lfd-fullstack-fixed-date {
    min-width: 0;
}


.lfd-fullstack-fixed-date > span {
    display: block;

    margin-bottom: 4px;

    color:
        var(--lfd-book-muted);

    font-size: 0.62rem;
}


.lfd-fullstack-fixed-date strong {
    display: block;

    color:
        var(--lfd-book-ink);

    font-family:
        "Manrope",
        sans-serif;

    font-size: 0.9rem;

    font-weight: 750;
}


.lfd-fullstack-fixed-date small {
    display: block;

    margin-top: 3px;

    color:
        var(--lfd-book-text);

    font-size: 0.67rem;
}


.lfd-fullstack-fixed-arrow {
    display: inline-flex;

    flex: 0 0 30px;

    width: 30px;
    height: 30px;

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

    color:
        var(--lfd-book-muted);

    font-size: 0.72rem;
}


.lfd-fullstack-fixed-meta {
    display: flex;

    align-items: center;

    gap: 7px;

    margin-top: 20px;

    padding-top: 16px;

    border-top:
        1px solid
        var(--lfd-book-line);

    color:
        var(--lfd-book-text);

    font-size: 0.68rem;
}


.lfd-fullstack-fixed-meta i {
    color:
        var(--lfd-book-brand-dark);
}


/* =========================================================
   FULL STACK - RESPONSIVE
   ========================================================= */

@media (max-width: 991.98px) {

    .lfd-fullstack-has-calendar {
        grid-template-columns: 1fr;
    }


    .lfd-fullstack-stay-panel {
        max-width: 620px;
    }

}


@media (max-width: 575.98px) {

    .lfd-fullstack-stay-panel,
    .lfd-fullstack-fixed-panel {
        padding: 18px;

        border-radius: 16px;
    }


    .lfd-fullstack-fixed-dates {
        gap: 12px;
    }


    .lfd-fullstack-duration strong {
        font-size: 1.55rem;
    }

}

/* =========================================================
   HIDE RAW DATE INPUT FOR INLINE CALENDARS
   ========================================================= */

.lfd-fullstack-date-panel
input.flatpickr-input {
    display: none !important;
}

/* =========================================================
   FULL STACK - ACCOMMODATION
   ========================================================= */

.lfd-accommodation-section {
    min-width: 0;
}


/* ---------------------------------------------------------
   HEADING
   --------------------------------------------------------- */

.lfd-accommodation-heading {
    display: flex;

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

    gap: 20px;

    margin-bottom: 22px;
}


.lfd-accommodation-heading
.booking-card-title {
    margin: 0;

    color:
        var(--lfd-book-ink);

    font-family:
        "Manrope",
        sans-serif;

    font-size: 1rem;

    font-weight: 760;

    line-height: 1.3;
}


.lfd-accommodation-heading p {
    max-width: 620px;

    margin:
        6px
        0
        0;

    color:
        var(--lfd-book-text);

    font-size: 0.72rem;

    line-height: 1.55;
}


/* ---------------------------------------------------------
   ROOM GRID
   --------------------------------------------------------- */

.lfd-accommodation-grid {
    display: grid;

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

    gap: 14px;
}


/* ---------------------------------------------------------
   ROOM CARD
   --------------------------------------------------------- */

.lfd-accommodation-card {
    position: relative;

    min-width: 0;

    margin: 0 !important;

    overflow: hidden;

    border:
        1px solid
        var(--lfd-book-line) !important;

    border-radius: 16px !important;

    background:
        #ffffff !important;

    box-shadow:
        none !important;

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


.lfd-accommodation-card:hover {
    border-color:
        var(--lfd-book-line-strong) !important;
}


/*
 * This class is already controlled by
 * updateAccommodationSelection().
 */
.lfd-accommodation-card.is-selected {
    border-color:
        var(--lfd-book-brand) !important;

    box-shadow:
        0 0 0 1px
        rgba(0, 174, 157, 0.08) !important;
}


/* selected tick */

.lfd-accommodation-card.is-selected::after {
    content: "✓";

    position: absolute;

    top: 14px;
    right: 14px;

    display: flex;

    width: 23px;
    height: 23px;

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

    border-radius: 50%;

    background:
        var(--lfd-book-brand);

    color:
        #ffffff;

    font-size: 0.62rem;

    font-weight: 900;

    z-index: 2;
}


.lfd-accommodation-card-main {
    padding: 19px;
}


/* ---------------------------------------------------------
   ROOM HEADER
   --------------------------------------------------------- */

.lfd-accommodation-card-head {
    display: flex;

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

    gap: 18px;

    margin: 0;

    padding: 0;

    border: 0;
}


.lfd-accommodation-card-title {
    min-width: 0;

    padding-right: 18px;
}


.lfd-accommodation-room-type {
    display: block;

    margin-bottom: 3px;

    color:
        var(--lfd-book-muted);

    font-size: 0.58rem;

    font-weight: 800;

    letter-spacing: 0.08em;

    text-transform: uppercase;
}


.lfd-accommodation-card-title h5 {
    margin: 0;

    color:
        var(--lfd-book-ink);

    font-family:
        "Manrope",
        sans-serif;

    font-size: 0.84rem;

    font-weight: 740;

    line-height: 1.35;
}


/* ---------------------------------------------------------
   PRICE
   --------------------------------------------------------- */

.lfd-accommodation-price {
    flex: 0 0 auto;

    padding-right: 27px;

    text-align: right;
}


.lfd-accommodation-price strong {
    display: block;

    color:
        var(--lfd-book-ink);

    font-family:
        "Manrope",
        sans-serif;

    font-size: 0.88rem;

    font-weight: 760;

    line-height: 1.25;

    white-space: nowrap;
}


.lfd-accommodation-price span {
    display: block;

    margin-top: 2px;

    color:
        var(--lfd-book-muted);

    font-size: 0.59rem;

    font-weight: 550;
}


/* ---------------------------------------------------------
   ROOM META
   --------------------------------------------------------- */

.lfd-accommodation-meta {
    display: flex;

    flex-wrap: wrap;

    align-items: center;

    gap:
        7px
        15px;

    margin-top: 14px;

    padding-top: 13px;

    border-top:
        1px solid
        var(--lfd-book-line);
}


.lfd-accommodation-meta-item {
    display: inline-flex;

    align-items: center;

    gap: 5px;

    color:
        var(--lfd-book-text);

    font-size: 0.64rem;

    line-height: 1.35;
}


.lfd-accommodation-meta-item i {
    color:
        var(--lfd-book-brand-dark);

    font-size: 0.68rem;
}


.lfd-accommodation-meta-item.is-muted i {
    color:
        var(--lfd-book-muted);
}


/* ---------------------------------------------------------
   CHILD POLICY
   --------------------------------------------------------- */

.lfd-accommodation-child-policy {
    display: flex;

    align-items: flex-start;

    gap: 6px;

    margin-top: 12px;

    padding: 0;

    border: 0;

    background:
        transparent;

    color:
        var(--lfd-book-muted);

    font-size: 0.62rem;

    line-height: 1.5;
}


.lfd-accommodation-child-policy i {
    flex: 0 0 auto;

    margin-top: 1px;

    color:
        var(--lfd-book-muted);
}


/* ---------------------------------------------------------
   ROOM QUANTITY
   --------------------------------------------------------- */

.lfd-accommodation-selection {
    display: flex;

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

    gap: 16px;

    margin-top: 17px;

    padding-top: 15px;

    border-top:
        1px solid
        var(--lfd-book-line);
}


.lfd-accommodation-selection-label {
    display: block;

    color:
        var(--lfd-book-ink);

    font-size: 0.66rem;

    font-weight: 700;
}


.lfd-accommodation-selection-message {
    margin-top: 2px;

    color:
        var(--lfd-book-muted);

    font-size: 0.59rem;

    line-height: 1.35;
}


/* reuse existing counter mechanics */

.lfd-accommodation-counter {
    flex: 0 0 auto;
}


/* keep room quantity compact */

.lfd-accommodation-counter
.room-quantity {
    width: 36px !important;

    min-width: 36px !important;

    height: 32px !important;

    padding: 0 !important;

    border: 0 !important;

    background:
        transparent !important;

    color:
        var(--lfd-book-ink);

    font-family:
        "Manrope",
        sans-serif;

    font-size: 0.74rem;

    font-weight: 750;

    box-shadow:
        none !important;
}


.lfd-accommodation-counter
.guest-counter-btn {
    width: 32px;

    height: 32px;

    min-width: 32px;
}


/* ---------------------------------------------------------
   SOLD OUT
   --------------------------------------------------------- */

/*
 * refreshFullStackRoomAvailability()
 * already toggles this class.
 */

.lfd-accommodation-card.is-sold-out {
    opacity: 0.6;
}


.lfd-accommodation-card.is-sold-out
.lfd-accommodation-card-main {
    background:
        #fafbfb;
}


.lfd-accommodation-card.is-sold-out::after {
    display: none;
}


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

.lfd-accommodation-summary {
    margin-top: 22px;

    padding-top: 20px;

    border-top:
        1px solid
        var(--lfd-book-line);
}


.lfd-accommodation-summary-head {
    display: flex;

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

    gap: 20px;

    margin-bottom: 16px;
}


.lfd-accommodation-summary-eyebrow {
    display: block;

    margin-bottom: 3px;

    color:
        var(--lfd-book-muted);

    font-size: 0.58rem;

    font-weight: 800;

    letter-spacing: 0.08em;

    text-transform: uppercase;
}


.lfd-accommodation-summary-head > div:first-child > strong {
    display: block;

    color:
        var(--lfd-book-ink);

    font-size: 0.76rem;

    font-weight: 720;
}


.lfd-accommodation-summary-total {
    text-align: right;
}


.lfd-accommodation-summary-total span {
    display: block;

    margin-bottom: 2px;

    color:
        var(--lfd-book-muted);

    font-size: 0.6rem;
}


.lfd-accommodation-summary-total strong {
    display: block;

    color:
        var(--lfd-book-ink);

    font-family:
        "Manrope",
        sans-serif;

    font-size: 1rem;

    font-weight: 780;
}


/* summary metrics */

.lfd-accommodation-summary-grid {
    display: grid;

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

    gap: 0;

    border:
        1px solid
        var(--lfd-book-line);

    border-radius: 12px;

    overflow: hidden;
}


.lfd-accommodation-summary-item {
    min-width: 0;

    padding:
        11px
        12px;

    background:
        #ffffff;
}


.lfd-accommodation-summary-item
+ .lfd-accommodation-summary-item {
    border-left:
        1px solid
        var(--lfd-book-line);
}


.lfd-accommodation-summary-item span {
    display: block;

    margin-bottom: 3px;

    color:
        var(--lfd-book-muted);

    font-size: 0.57rem;

    line-height: 1.3;
}


.lfd-accommodation-summary-item strong {
    display: block;

    color:
        var(--lfd-book-ink);

    font-size: 0.72rem;

    font-weight: 740;
}


/* ---------------------------------------------------------
   STATUS
   --------------------------------------------------------- */

.lfd-accommodation-status {
    margin:
        11px
        0
        0 !important;

    font-size: 0.64rem;

    line-height: 1.45;
}


/* ---------------------------------------------------------
   EMPTY
   --------------------------------------------------------- */

.lfd-accommodation-empty {
    display: flex;

    align-items: center;

    gap: 7px;

    color:
        var(--lfd-book-muted);

    font-size: 0.7rem;
}


.lfd-accommodation-empty i {
    color:
        var(--lfd-book-brand-dark);
}


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

@media (max-width: 1199.98px) {

    .lfd-accommodation-summary-grid {
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );
    }


    .lfd-accommodation-summary-item
    + .lfd-accommodation-summary-item {
        border-left:
            0;
    }

}


@media (max-width: 767.98px) {

    .lfd-accommodation-grid {
        grid-template-columns:
            1fr;
    }


    .lfd-accommodation-summary-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }


    .lfd-accommodation-card-main {
        padding: 17px;
    }

}


@media (max-width: 575.98px) {

    .lfd-accommodation-heading {
        margin-bottom: 18px;
    }


    .lfd-accommodation-selection {
        align-items: flex-end;
    }


    .lfd-accommodation-summary-head {
        align-items: flex-start;
    }


    .lfd-accommodation-summary-grid {
        grid-template-columns:
            1fr 1fr;
    }


    .lfd-accommodation-price {
        padding-right: 24px;
    }

}

.lfd-booking-step-accommodation
{
    margin-top: 8px !important;
}

/* =========================================================
   FULL STACK PROGRAM DATE RANGE
   ========================================================= */


/*
 * Middle dates included automatically in the program.
 */
.lifed-flatpickr-calendar
.flatpickr-day.lfd-fullstack-range-middle {
    border-color:
        transparent !important;

    border-radius:
        0 !important;

    background:
        #e7f5f2 !important;

    color:
        var(--lfd-book-ink) !important;

    font-weight:
        700 !important;
}


/*
 * Start and end cells retain their normal calendar width.
 * The actual teal circle is drawn with ::before.
 */
.lifed-flatpickr-calendar
.flatpickr-day.lfd-fullstack-range-start,

.lifed-flatpickr-calendar
.flatpickr-day.lfd-fullstack-range-end {
    position: relative !important;

    border-color:
        transparent !important;

    border-radius:
        0 !important;

    color:
        #ffffff !important;

    font-weight:
        800 !important;

    isolation:
        isolate;

    z-index: 2;
}


/*
 * Start date:
 * pale range continues from the centre toward the right.
 */
.lifed-flatpickr-calendar
.flatpickr-day.lfd-fullstack-range-start {
    background:
        linear-gradient(
            to right,
            transparent 0%,
            transparent 50%,
            #e7f5f2 50%,
            #e7f5f2 100%
        ) !important;
}


/*
 * End date:
 * pale range comes from the left and stops at the centre.
 */
.lifed-flatpickr-calendar
.flatpickr-day.lfd-fullstack-range-end {
    background:
        linear-gradient(
            to right,
            #e7f5f2 0%,
            #e7f5f2 50%,
            transparent 50%,
            transparent 100%
        ) !important;
}


/*
 * True circular start/end marker.
 */
.lifed-flatpickr-calendar
.flatpickr-day.lfd-fullstack-range-start::before,

.lifed-flatpickr-calendar
.flatpickr-day.lfd-fullstack-range-end::before {
    content: "";

    position: absolute;

    top: 50%;
    left: 50%;

    width: 36px;
    height: 36px;

    border-radius:
        50%;

    background:
        var(--lfd-book-brand);

    transform:
        translate(
            -50%,
            -50%
        );

    z-index:
        -1;
}


/*
 * Flatpickr's normal selected state must not
 * paint the entire wide day cell teal.
 */
.lifed-flatpickr-calendar
.flatpickr-day.lfd-fullstack-range-start.selected,

.lifed-flatpickr-calendar
.flatpickr-day.lfd-fullstack-range-start.selected:hover {
    border-color:
        transparent !important;

    border-radius:
        0 !important;

    background:
        linear-gradient(
            to right,
            transparent 0%,
            transparent 50%,
            #e7f5f2 50%,
            #e7f5f2 100%
        ) !important;

    color:
        #ffffff !important;

    box-shadow:
        none !important;
}


.lifed-flatpickr-calendar
.flatpickr-day.lfd-fullstack-range-end.selected,

.lifed-flatpickr-calendar
.flatpickr-day.lfd-fullstack-range-end.selected:hover {
    border-color:
        transparent !important;

    border-radius:
        0 !important;

    background:
        linear-gradient(
            to right,
            #e7f5f2 0%,
            #e7f5f2 50%,
            transparent 50%,
            transparent 100%
        ) !important;

    color:
        #ffffff !important;

    box-shadow:
        none !important;
}


/*
 * Remove availability dots from every day
 * contained inside the chosen program range.
 */
.lifed-flatpickr-calendar
.flatpickr-day.lfd-fullstack-range-start::after,

.lifed-flatpickr-calendar
.flatpickr-day.lfd-fullstack-range-middle::after,

.lifed-flatpickr-calendar
.flatpickr-day.lfd-fullstack-range-end::after {
    display:
        none !important;
}


/*
 * Range hover should preserve the selected appearance.
 */
.lifed-flatpickr-calendar
.flatpickr-day.lfd-fullstack-range-start:hover,

.lifed-flatpickr-calendar
.flatpickr-day.lfd-fullstack-range-end:hover {
    border-color:
        transparent !important;

    background:
        transparent !important;

    color:
        #ffffff !important;
}

/* =========================================================
   CALENDAR DATE HOVER — TRUE CIRCLE
   ========================================================= */

/*
 * Normal available dates:
 * render the hover state as a 36px circle rather than
 * filling the entire 14.28% calendar cell.
 */
.lifed-flatpickr-calendar
.flatpickr-day:not(.flatpickr-disabled)
:not(.selected)
:not(.prevMonthDay)
:not(.nextMonthDay)
:not(.lfd-flexi-date-selected)
:not(.lfd-fullstack-range-start)
:not(.lfd-fullstack-range-middle)
:not(.lfd-fullstack-range-end):hover {
    border-color: transparent !important;

    border-radius: 0 !important;

    background:
        radial-gradient(
            circle at center,
            #f1faf8 0,
            #f1faf8 17px,
            #c5e4df 17px,
            #c5e4df 18px,
            transparent 18.5px
        ) !important;

    color:
        var(--lfd-book-brand-dark) !important;

    box-shadow:
        none !important;
}


/* =========================================================
   FULL STACK FIXED PROGRAM AVAILABILITY
   ========================================================= */

.lfd-fullstack-program-availability {
    display: flex;
    align-items: center;
    gap: 12px;

    margin-top: 18px;
    padding-top: 18px;

    border-top:
        1px solid
        var(--lfd-book-line);
}


.lfd-fullstack-program-availability-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    flex:
        0
        0
        36px;

    width: 36px;
    height: 36px;

    border:
        1px solid
        var(--lfd-book-line);

    border-radius: 10px;

    background:
        var(--lfd-book-white);

    color:
        var(--lfd-book-brand);

    font-size: 0.92rem;
}


.lfd-fullstack-program-availability-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;

    min-width: 0;
}


.lfd-fullstack-program-availability-copy > span {
    color:
        var(--lfd-book-muted);

    font-size: 0.72rem;
    font-weight: 700;

    letter-spacing: 0.02em;
}


.lfd-fullstack-program-availability-copy > strong {
    color:
        var(--lfd-book-ink);

    font-size: 0.9rem;
    font-weight: 800;
}


.lfd-fullstack-program-availability.is-available
#fullstack-program-availability-value {
    color:
        var(--lfd-book-brand-dark);
}


.lfd-fullstack-program-availability.is-sold-out
.lfd-fullstack-program-availability-icon {
    border-color:
        #f0d5d7;

    background:
        #fff7f7;

    color:
        var(--lfd-book-danger);
}


.lfd-fullstack-program-availability.is-sold-out
.lfd-fullstack-program-availability-copy > strong {
    color:
        var(--lfd-book-danger);
}


.lfd-fullstack-program-availability.is-error
.lfd-fullstack-program-availability-copy > strong {
    color:
        var(--lfd-book-danger);
}

.lfd-fullstack-program-availability-copy
#fullstack-accommodation-availability-value {
    display: block;

    margin-top: 3px;

    color:
        var(--lfd-book-danger);

    font-size: 0.72rem;

    font-weight: 700;
}


.lfd-fullstack-program-availability-copy
#fullstack-accommodation-availability-value.d-none {
    display: none !important;
}

/* =========================================================
   BOOKING CANCELLED PAGE
   ========================================================= */

.lfd-booking-cancelled-page {
    display: flex;
    align-items: center;
    justify-content: center;

    min-height: calc(100vh - 180px);

    padding: 70px 20px;

    background:
        var(--lfd-book-page);
}


.lfd-booking-cancelled-card {
    width: 100%;
    max-width: 560px;

    padding: 44px;

    border:
        1px solid
        var(--lfd-book-line);

    border-radius: 24px;

    background:
        var(--lfd-book-white);

    text-align: center;

    box-shadow:
        0 18px 48px rgba(32, 58, 53, 0.08);
}


.lfd-booking-cancelled-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 52px;
    height: 52px;

    margin-bottom: 22px;

    border-radius: 50%;

    background:
        var(--lfd-book-danger-bg);

    color:
        var(--lfd-book-danger);

    font-size: 1.1rem;
}


.lfd-booking-cancelled-eyebrow {
    display: block;

    margin-bottom: 8px;

    color:
        var(--lfd-book-muted);

    font-size: 0.72rem;
    font-weight: 800;

    letter-spacing: 0.08em;

    text-transform: uppercase;
}


.lfd-booking-cancelled-card h1 {
    margin: 0 0 14px;

    color:
        var(--lfd-book-ink);

    font-size: clamp(
        1.65rem,
        4vw,
        2.2rem
    );

    font-weight: 800;

    line-height: 1.15;
}


.lfd-booking-cancelled-card > p {
    max-width: 440px;

    margin:
        0
        auto
        26px;

    color:
        var(--lfd-book-text);

    font-size: 0.92rem;

    line-height: 1.65;
}


.lfd-booking-cancelled-reference {
    display: flex;
    justify-content: space-between;
    gap: 20px;

    margin-bottom: 28px;
    padding: 14px 16px;

    border:
        1px solid
        var(--lfd-book-line);

    border-radius: 12px;

    background:
        var(--lfd-book-soft);

    text-align: left;
}


.lfd-booking-cancelled-reference span {
    color:
        var(--lfd-book-muted);

    font-size: 0.78rem;
}


.lfd-booking-cancelled-reference strong {
    color:
        var(--lfd-book-ink);

    font-size: 0.82rem;
}


.lfd-booking-cancelled-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;

    flex-wrap: wrap;
}


.lfd-booking-cancelled-primary,
.lfd-booking-cancelled-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    min-height: 44px;

    padding: 0 18px;

    border-radius: 10px;

    font-size: 0.82rem;
    font-weight: 800;

    text-decoration: none;
}


.lfd-booking-cancelled-primary {
    border:
        1px solid
        var(--lfd-book-brand);

    background:
        var(--lfd-book-brand);

    color:
        #ffffff;
}


.lfd-booking-cancelled-secondary {
    border:
        1px solid
        var(--lfd-book-line-strong);

    background:
        var(--lfd-book-white);

    color:
        var(--lfd-book-ink);
}


@media (
    max-width: 575.98px
) {

    .lfd-booking-cancelled-card {
        padding:
            34px
            22px;
    }

}

/* =========================================================
   FULL STACK UNAVAILABLE DATES
   Show them, but keep them disabled
   ========================================================= */

.lfd-fullstack-availability-calendar
.flatpickr-day.flatpickr-disabled:not(.prevMonthDay):not(.nextMonthDay) {
    visibility: visible !important;

    color: #b8c2bf !important;
    background: transparent !important;
    border-color: transparent !important;

    opacity: 1 !important;

    cursor: not-allowed !important;
    pointer-events: none !important;

    box-shadow: none !important;
}


/*
 * Today can also be unavailable.
 * It should look disabled, not active.
 */
.lfd-fullstack-availability-calendar
.flatpickr-day.today.flatpickr-disabled:not(.prevMonthDay):not(.nextMonthDay) {
    color: #b8c2bf !important;
    background: transparent !important;
    border-color: transparent !important;

    box-shadow: none !important;
}


/*
 * Keep adjacent-month dates hidden.
 */
.lfd-fullstack-availability-calendar
.flatpickr-day.prevMonthDay,
.lfd-fullstack-availability-calendar
.flatpickr-day.nextMonthDay {
    visibility: hidden !important;
    pointer-events: none !important;
}

/* =========================================================
   SESSION BASED SOLD-OUT / UNAVAILABLE DATES
   ========================================================= */

.lfd-session-availability-calendar
.flatpickr-day.flatpickr-disabled {
    visibility: hidden !important;
    pointer-events: none !important;
}


/*
 * Flatpickr gives "today" its own visual styling.
 * If today has no available slots, hide it exactly
 * like every other unavailable date.
 */
.lfd-session-availability-calendar
.flatpickr-day.today.flatpickr-disabled {
    visibility: hidden !important;
    pointer-events: none !important;

    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
}

/* =========================================================
   FULL STACK SELECTED JOURNEY
   Range styling must remain visible even when the middle
   dates are not valid independent start dates.
   ========================================================= */

.lfd-fullstack-availability-calendar
.flatpickr-day.lfd-fullstack-range-middle {
    visibility: visible !important;

    color: var(--lfd-book-ink) !important;

    background: #eef3f2 !important;

    opacity: 1 !important;
}


/* Start + end remain the teal circular anchors. */
.lfd-fullstack-availability-calendar
.flatpickr-day.lfd-fullstack-range-start,
.lfd-fullstack-availability-calendar
.flatpickr-day.lfd-fullstack-range-end {
    visibility: visible !important;

    color: #ffffff !important;

    opacity: 1 !important;

    background: radial-gradient(
        circle at center,
        var(--lfd-book-brand) 0,
        var(--lfd-book-brand) 18px,
        transparent 19px
    ) !important;

    border-color: transparent !important;
}