:root {
    --tsb-bg: #fbfaf7;
    --tsb-surface: #ffffff;
    --tsb-border: #e4ded4;
    --tsb-text: #242424;
    --tsb-muted: #6d6a64;
    --tsb-green: #123f31;
    --tsb-green-soft: #e8f1ec;
    --tsb-gold: #a5793c;
}

.tsb-suite,
.tsb-search {
    color: var(--tsb-text);
    font-family: inherit;
}

.tsb-suite {
    align-items: start;
    display: grid;
    gap: 28px;
    grid-template-columns: minmax(0, 1.35fr) minmax(340px, 0.65fr);
    margin: 32px auto;
    max-width: 1380px;
}

.tsb-suite__gallery,
.tsb-suite__panel {
    min-width: 0;
}

.tsb-suite__main-image {
    aspect-ratio: 16 / 10;
    background: #ddd6ca;
    border-radius: 8px;
    overflow: hidden;
}

.tsb-suite__main-image img,
.tsb-result__image img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.tsb-suite__placeholder,
.tsb-result__placeholder {
    align-items: center;
    background: #ded6ca;
    color: var(--tsb-muted);
    display: flex;
    height: 100%;
    justify-content: center;
}

.tsb-suite__thumbs {
    display: grid;
    gap: 12px;
    grid-auto-flow: column;
    grid-auto-columns: minmax(110px, 1fr);
    margin-top: 14px;
    overflow-x: auto;
    padding-bottom: 4px;
}

.tsb-suite__thumbs button {
    aspect-ratio: 4 / 3;
    background: transparent;
    border: 2px solid transparent;
    border-radius: 6px;
    cursor: pointer;
    overflow: hidden;
    padding: 0;
}

.tsb-suite__thumbs button.is-active {
    border-color: var(--tsb-green);
}

.tsb-suite__thumbs img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.tsb-suite__panel {
    background: var(--tsb-surface);
    border: 1px solid var(--tsb-border);
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(36, 36, 36, 0.08);
    padding: 28px;
    position: sticky;
    top: 24px;
}

.tsb-suite__panel h2 {
    font-size: clamp(30px, 4vw, 52px);
    line-height: 1;
    margin: 0 0 10px;
}

.tsb-suite__intro {
    border-bottom: 1px solid var(--tsb-border);
    color: var(--tsb-muted);
    margin: 0 0 22px;
    padding-bottom: 18px;
}

.tsb-booking-step {
    display: grid;
    gap: 14px;
    grid-template-columns: 34px minmax(0, 1fr);
    margin: 0 0 22px;
}

.tsb-step-number {
    align-items: center;
    background: var(--tsb-green);
    border-radius: 999px;
    color: #fff;
    display: flex;
    font-weight: 700;
    height: 34px;
    justify-content: center;
    width: 34px;
}

.tsb-booking-step label,
.tsb-step-title {
    display: block;
    font-weight: 700;
    margin: 5px 0 10px;
}

.tsb-booking-step input[type="date"],
.tsb-search input,
.tsb-search select {
    background: #fff;
    border: 1px solid var(--tsb-border);
    border-radius: 6px;
    color: var(--tsb-text);
    min-height: 44px;
    padding: 10px 12px;
    width: 100%;
}

.tsb-slots {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tsb-slot {
    background: #fff;
    border: 1px solid var(--tsb-border);
    border-radius: 6px;
    color: var(--tsb-text);
    cursor: pointer;
    min-height: 96px;
    padding: 14px 10px;
    text-align: center;
}

.tsb-slot strong,
.tsb-slot span,
.tsb-slot small {
    display: block;
}

.tsb-slot strong {
    font-size: 15px;
    margin-bottom: 6px;
}

.tsb-slot span {
    color: var(--tsb-gold);
    font-weight: 700;
}

.tsb-slot small {
    color: var(--tsb-muted);
    margin-top: 8px;
}

.tsb-slot.is-selected {
    background: var(--tsb-green);
    border-color: var(--tsb-green);
    color: #fff;
}

.tsb-slot.is-selected span,
.tsb-slot.is-selected small {
    color: #fff;
}

.tsb-slot:disabled {
    background: #f1eee9;
    color: #9b948a;
    cursor: not-allowed;
}

.tsb-total,
.tsb-summary__total {
    align-items: baseline;
    border-top: 1px solid var(--tsb-border);
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin-top: 20px;
    padding-top: 18px;
}

.tsb-total span,
.tsb-summary__total span {
    margin-right: auto;
}

.tsb-total strong,
.tsb-summary__total strong {
    color: var(--tsb-gold);
    font-size: 34px;
}

.tsb-total small,
.tsb-summary__total small {
    color: var(--tsb-muted);
}

.tsb-primary,
.tsb-secondary,
.tsb-search button,
.tsb-result__cta a {
    align-items: center;
    border: 0;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 48px;
    padding: 12px 18px;
    text-decoration: none;
}

.tsb-primary,
.tsb-search button,
.tsb-result__cta a {
    background: var(--tsb-green);
    color: #fff;
    width: 100%;
}

.tsb-primary:disabled {
    cursor: not-allowed;
    opacity: 0.45;
}

.tsb-secondary {
    background: var(--tsb-green-soft);
    color: var(--tsb-green);
}

.tsb-secure,
.tsb-muted {
    color: var(--tsb-muted);
    font-size: 14px;
}

.tsb-secure {
    margin: 12px 0 0;
    text-align: center;
}

.tsb-modal[hidden] {
    display: none;
}

.tsb-modal {
    align-items: center;
    bottom: 0;
    display: flex;
    justify-content: center;
    left: 0;
    padding: 20px;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 99999;
}

.tsb-modal__backdrop {
    background: rgba(14, 17, 16, 0.58);
    bottom: 0;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
}

.tsb-modal__dialog {
    background: var(--tsb-surface);
    border-radius: 8px;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.22);
    max-height: min(760px, calc(100vh - 40px));
    max-width: 1040px;
    overflow: auto;
    position: relative;
    width: 100%;
}

.tsb-modal__close {
    align-items: center;
    background: #fff;
    border: 1px solid var(--tsb-border);
    border-radius: 999px;
    cursor: pointer;
    display: flex;
    font-size: 24px;
    height: 38px;
    justify-content: center;
    line-height: 1;
    padding: 0;
    position: absolute;
    right: 16px;
    top: 16px;
    width: 38px;
}

.tsb-modal__content {
    display: grid;
    gap: 26px;
    grid-template-columns: minmax(0, 1fr) 340px;
    padding: 34px;
}

.tsb-kicker {
    color: var(--tsb-green);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0;
    margin: 0 0 6px;
    text-transform: uppercase;
}

.tsb-modal h3 {
    font-size: 34px;
    margin: 0 0 18px;
}

.tsb-option-list {
    display: grid;
    gap: 12px;
}

.tsb-option {
    align-items: center;
    border: 1px solid var(--tsb-border);
    border-radius: 6px;
    cursor: pointer;
    display: grid;
    gap: 14px;
    grid-template-columns: auto 64px minmax(0, 1fr) auto;
    padding: 14px;
}

.tsb-option:hover {
    border-color: var(--tsb-green);
}

.tsb-option strong,
.tsb-option small {
    display: block;
}

.tsb-option img,
.tsb-option__image {
    aspect-ratio: 1;
    background: var(--tsb-green-soft);
    border-radius: 6px;
    display: block;
    height: 64px;
    object-fit: cover;
    width: 64px;
}

.tsb-option small {
    color: var(--tsb-muted);
    margin-top: 2px;
}

.tsb-option em {
    color: var(--tsb-gold);
    font-style: normal;
    font-weight: 700;
}

.tsb-summary {
    background: var(--tsb-bg);
    border: 1px solid var(--tsb-border);
    border-radius: 8px;
    padding: 20px;
}

.tsb-summary h4 {
    margin: 0 0 18px;
}

.tsb-summary dl {
    display: grid;
    gap: 8px;
    grid-template-columns: 90px 1fr;
    margin: 0;
}

.tsb-summary dt {
    color: var(--tsb-muted);
}

.tsb-summary dd {
    margin: 0;
    text-align: right;
}

.tsb-modal__actions {
    display: grid;
    gap: 10px;
    margin-top: 18px;
}

.tsb-message {
    color: #9c3b2e;
    font-size: 14px;
    margin-top: 12px;
}

.tsb-modal-open {
    overflow: hidden;
}

.tsb-search {
    background: var(--tsb-bg);
    border: 1px solid var(--tsb-border);
    border-radius: 8px;
    margin: 28px auto;
    max-width: 1180px;
    padding: 18px;
}

.tsb-search__form {
    align-items: end;
    display: grid;
    gap: 14px;
    grid-template-columns: 1fr 220px 180px;
}

.tsb-search label span {
    display: block;
    font-weight: 700;
    margin-bottom: 6px;
}

.tsb-search__results {
    display: grid;
    gap: 14px;
    margin-top: 18px;
}

.tsb-result {
    align-items: stretch;
    background: #fff;
    border: 1px solid var(--tsb-border);
    border-radius: 8px;
    display: grid;
    gap: 16px;
    grid-template-columns: 220px minmax(0, 1fr) 170px;
    overflow: hidden;
    padding: 12px;
}

.tsb-result__image {
    aspect-ratio: 4 / 3;
    border-radius: 6px;
    overflow: hidden;
}

.tsb-result h3 {
    margin: 0 0 8px;
}

.tsb-result h3 a {
    color: var(--tsb-text);
    text-decoration: none;
}

.tsb-result p {
    color: var(--tsb-muted);
    margin: 0 0 12px;
}

.tsb-result__slots {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tsb-result__slots span {
    background: var(--tsb-green-soft);
    border-radius: 999px;
    color: var(--tsb-green);
    font-size: 13px;
    padding: 6px 10px;
}

.tsb-result__cta {
    align-items: end;
    display: grid;
    gap: 8px;
    justify-items: end;
}

.tsb-result__cta small {
    color: var(--tsb-muted);
}

.tsb-result__cta strong {
    color: var(--tsb-gold);
    font-size: 24px;
}

@media (max-width: 980px) {
    .tsb-suite,
    .tsb-modal__content,
    .tsb-search__form,
    .tsb-result {
        grid-template-columns: 1fr;
    }

    .tsb-suite__panel {
        position: static;
    }

    .tsb-result__cta {
        justify-items: stretch;
    }
}

@media (max-width: 640px) {
    .tsb-suite {
        gap: 18px;
        margin: 20px auto;
    }

    .tsb-suite__panel,
    .tsb-modal__content {
        padding: 20px;
    }

    .tsb-slots {
        grid-template-columns: 1fr;
    }

    .tsb-total strong,
    .tsb-summary__total strong {
        font-size: 26px;
    }
}

/* Calendrier inline réservation suite */
.tsb-inline-calendar {
    background: #fff;
    border: 1px solid var(--tsb-border);
    border-radius: 8px;
    overflow: hidden;
    padding: 14px 16px 16px;
}

.tsb-inline-calendar__nav {
    align-items: center;
    display: grid;
    gap: 10px;
    grid-template-columns: 36px 1fr 36px;
    margin-bottom: 12px;
}

.tsb-inline-calendar__nav strong {
    color: var(--tsb-text);
    font-size: 15px;
    font-weight: 700;
    text-align: center;
}

.tsb-inline-calendar__nav button {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 999px;
    color: var(--tsb-text);
    cursor: pointer;
    display: flex;
    font-size: 28px;
    height: 36px;
    justify-content: center;
    line-height: 1;
    padding: 0;
    width: 36px;
}

.tsb-inline-calendar__nav button:hover {
    background: var(--tsb-green-soft);
    color: var(--tsb-green);
}

.tsb-inline-calendar__weekdays,
.tsb-inline-calendar__days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
}

.tsb-inline-calendar__weekdays span {
    color: var(--tsb-muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    padding: 8px 2px;
    text-align: center;
}

.tsb-inline-calendar__day {
    align-items: center;
    aspect-ratio: 1;
    background: transparent;
    border: 0;
    border-radius: 999px;
    color: var(--tsb-text);
    cursor: pointer;
    display: flex;
    font-size: 14px;
    justify-content: center;
    margin: 2px auto;
    max-height: 40px;
    max-width: 40px;
    min-height: 34px;
    min-width: 34px;
    padding: 0;
    width: calc(100% - 4px);
}

.tsb-inline-calendar__day:hover:not(:disabled) {
    background: var(--tsb-green-soft);
    color: var(--tsb-green);
}

.tsb-inline-calendar__day.is-selected {
    background: var(--tsb-green);
    color: #fff;
    font-weight: 700;
}

.tsb-inline-calendar__day.is-muted {
    color: #c4beb4;
}

.tsb-inline-calendar__day.is-disabled {
    color: #d5d0c7;
    cursor: not-allowed;
    opacity: .55;
}

@media (max-width: 640px) {
    .tsb-inline-calendar {
        padding: 12px;
    }

    .tsb-inline-calendar__day {
        font-size: 13px;
        min-height: 30px;
        min-width: 30px;
    }
}

/* Ajustement UX : le calendrier et les créneaux doivent démarrer sous le numéro d'étape, pas décalés sous le libellé. */
.tsb-booking-step > div {
    display: contents;
}

.tsb-booking-step label,
.tsb-booking-step .tsb-step-title {
    align-self: center;
    grid-column: 2;
    margin: 0;
}

.tsb-booking-step .tsb-inline-calendar,
.tsb-booking-step .tsb-slots,
.tsb-booking-step .tsb-muted {
    grid-column: 1 / -1;
    margin-top: 6px;
}

/* Pages suites : masquer le haut de page imposé par certains thèmes (XStore, etc.) quand le plugin gère l’affichage. */
body.single-tsb_suite.tsb-hide-theme-template .page-heading,
body.single-tsb_suite.tsb-hide-theme-template .page-title,
body.single-tsb_suite.tsb-hide-theme-template .page-title-section,
body.single-tsb_suite.tsb-hide-theme-template .content-page-heading,
body.single-tsb_suite.tsb-hide-theme-template .etheme-page-heading,
body.single-tsb_suite.tsb-hide-theme-template .et_breadcrumbs,
body.single-tsb_suite.tsb-hide-theme-template .single-post-large,
body.single-tsb_suite.tsb-hide-theme-template .post-heading,
body.single-tsb_suite.tsb-hide-theme-template .article-heading,
body.single-tsb_suite.tsb-hide-theme-template .entry-header,
body.single-tsb_suite.tsb-hide-theme-template .post-meta,
body.single-tsb_suite.tsb-hide-theme-template .meta-post {
    display: none !important;
}

.tsb-suite-slider {
    margin: 0 auto 32px;
    max-width: 100%;
}

/* XStore : supprimer le wrapper hero single post qui laisse un grand blanc au-dessus du slider/module. */
body.single-tsb_suite.tsb-hide-theme-template .single-post-large-wrapper,
body.single-tsb_suite.tsb-hide-theme-template .single-post-large-wrapper * {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.single-tsb_suite.tsb-hide-theme-template .content-page,
body.single-tsb_suite.tsb-hide-theme-template .page-content,
body.single-tsb_suite.tsb-hide-theme-template .site-content,
body.single-tsb_suite.tsb-hide-theme-template .main-content,
body.single-tsb_suite.tsb-hide-theme-template .container.content-page,
body.single-tsb_suite.tsb-hide-theme-template .page-wrapper {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

body.single-tsb_suite.tsb-hide-theme-template .tsb-suite-slider {
    margin-top: 0 !important;
}

/* Ajustement ratio page suite : 60% galerie / 40% réservation. */
.tsb-suite {
    grid-template-columns: minmax(0, 3fr) minmax(380px, 2fr) !important;
}

/* Contraste créneau sélectionné : tous les textes restent lisibles sur fond vert. */
.tsb-slot.is-selected,
.tsb-slot.is-selected strong,
.tsb-slot.is-selected span,
.tsb-slot.is-selected small,
.tsb-slot.is-selected em,
.tsb-slot.is-selected * {
    color: #fff !important;
}

.tsb-slot.is-selected {
    background: var(--tsb-green) !important;
    border-color: var(--tsb-green) !important;
    box-shadow: 0 8px 18px rgba(18, 63, 49, .18);
}

/* Ajustement demandé : équilibre 50/50 et photo principale plus haute. */
.tsb-suite {
    grid-template-columns: minmax(0, 1fr) minmax(420px, 1fr) !important;
}

.tsb-suite__main-image {
    aspect-ratio: 5 / 4 !important;
}

@media (max-width: 980px) {
    .tsb-suite {
        grid-template-columns: 1fr !important;
    }
}

/* Ajustement final demandé : retour 60/40 + photo principale nettement plus haute. */
.tsb-suite {
    grid-template-columns: minmax(0, 3fr) minmax(390px, 2fr) !important;
}

.tsb-suite__main-image {
    aspect-ratio: auto !important;
    height: clamp(480px, 42vw, 620px) !important;
}

@media (max-width: 980px) {
    .tsb-suite {
        grid-template-columns: 1fr !important;
    }

    .tsb-suite__main-image {
        height: clamp(340px, 72vw, 520px) !important;
    }
}

/* Calendrier frontend : signaler visuellement les dates bloquées/indisponibles. */
.tsb-inline-calendar__day.is-blocked {
    background: #ffe5e5;
    color: #a32020;
    font-weight: 700;
    position: relative;
}

.tsb-inline-calendar__day.is-blocked::after {
    background: currentColor;
    border-radius: 999px;
    bottom: 4px;
    content: "";
    height: 3px;
    left: 50%;
    opacity: .75;
    position: absolute;
    transform: translateX(-50%);
    width: 14px;
}

.tsb-inline-calendar__day.is-blocked:hover:not(:disabled) {
    background: #ffd2d2;
    color: #8f1616;
}

.tsb-inline-calendar__day.is-selected.is-blocked {
    background: #b42318;
    color: #fff;
}

.tsb-inline-calendar__day.is-unavailable:not(.is-selected):not(.is-blocked) {
    background: #ffe5e5;
    color: #a32020;
    cursor: not-allowed;
    font-weight: 700;
}

.tsb-inline-calendar__day.is-unavailable:not(.is-selected):not(.is-blocked):hover {
    background: #ffd2d2;
    color: #8f1616;
}

/* Vidéo suite : hero desktop + intégration mobile dans la galerie. */
.tsb-suite-video-hero {
    height: clamp(460px, 52vw, 760px);
    margin: 0 0 36px;
    margin-left: calc(50% - 50vw);
    overflow: hidden;
    width: 100vw;
}

.tsb-suite-video-hero video {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.tsb-suite__main-video {
    background: #000;
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.tsb-suite__main-video[hidden] {
    display: none !important;
}

.tsb-video-mobile-only {
    display: none !important;
}

.tsb-suite__video-thumb {
    align-items: center;
    background: var(--tsb-green) !important;
    color: #fff;
    display: flex;
    flex-direction: column;
    gap: 6px;
    justify-content: center;
}

.tsb-suite__video-thumb span {
    align-items: center;
    background: rgba(255,255,255,.16);
    border-radius: 999px;
    display: flex;
    font-size: 20px;
    height: 44px;
    justify-content: center;
    width: 44px;
}

.tsb-suite__video-thumb em {
    color: #fff;
    font-size: 13px;
    font-style: normal;
    font-weight: 700;
}

@media (max-width: 980px) {
    .tsb-suite-video-hero {
        display: none !important;
    }

    .tsb-video-mobile-only {
        display: flex !important;
    }
}

/* Support YouTube/Vimeo-like embeds pour le hero et la galerie mobile. */
.tsb-suite-video-hero iframe,
.tsb-suite__main-iframe {
    border: 0;
    display: block;
    height: 100%;
    width: 100%;
}

.tsb-suite__main-iframe[hidden] {
    display: none !important;
}

/* Hero vidéo desktop : hauteur maîtrisée, vidéo centrée et sans interaction. */
.tsb-suite-video-hero {
    align-items: center !important;
    background: #000 !important;
    display: flex !important;
    height: min(590px, 56.25vw) !important;
    justify-content: center !important;
    margin-top: 0 !important;
    max-height: 590px !important;
}

.tsb-suite-video-hero iframe,
.tsb-suite-video-hero video {
    aspect-ratio: 16 / 9 !important;
    background: #000 !important;
    display: block !important;
    height: 100% !important;
    max-height: 590px !important;
    max-width: 1049px !important;
    object-fit: contain !important;
    width: min(100vw, 1049px) !important;
}

@media (max-width: 980px) {
    .tsb-suite-video-hero {
        display: none !important;
    }
}

/* Hero vidéo desktop décoratif : pas de titre, pas de pause/clic en version PC. */
.tsb-suite-video-hero iframe,
.tsb-suite-video-hero video {
    pointer-events: none !important;
}

@media (max-width: 980px) {
    .tsb-suite-video-hero iframe,
    .tsb-suite-video-hero video {
        pointer-events: auto !important;
    }
}

/* Correction hero vidéo : plein écran en largeur, sans interface YouTube visible. */
.tsb-suite-video-hero {
    background: #000 !important;
    display: block !important;
    height: min(590px, 56.25vw) !important;
    margin: 0 0 36px !important;
    margin-left: calc(50% - 50vw) !important;
    max-height: 590px !important;
    overflow: hidden !important;
    position: relative !important;
    width: 100vw !important;
}

.tsb-suite-video-hero iframe,
.tsb-suite-video-hero video {
    aspect-ratio: 16 / 9 !important;
    background: #000 !important;
    border: 0 !important;
    display: block !important;
    height: 56.25vw !important;
    left: 50% !important;
    max-height: none !important;
    max-width: none !important;
    min-height: 100% !important;
    object-fit: cover !important;
    pointer-events: none !important;
    position: absolute !important;
    top: 50% !important;
    transform: translate(-50%, -50%) scale(1.22) !important;
    width: 100vw !important;
}

.tsb-suite-video-hero::after {
    content: "";
    inset: 0;
    pointer-events: auto;
    position: absolute;
    z-index: 2;
}

@media (max-width: 980px) {
    .tsb-suite-video-hero {
        display: none !important;
    }
}

/* Correction galerie mobile : iframe vidéo visible quand on clique sur le bouton Vidéo. */
.tsb-suite__main-iframe:not([hidden]),
.tsb-suite__main-video:not([hidden]) {
    display: block !important;
    height: 100% !important;
    width: 100% !important;
}

/* Cache de départ : masque les pictos/titres YouTube injectés au lancement du hero. */
@keyframes tsbHeroVideoMaskOut {
    0%, 80% {
        opacity: 1;
        visibility: visible;
    }
    100% {
        opacity: 0;
        visibility: hidden;
    }
}

.tsb-suite-video-hero__mask {
    background-color: #000;
    background-position: center;
    background-size: cover;
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 4;
    animation: tsbHeroVideoMaskOut 1.55s ease forwards;
}

/* Sécurité mobile : le bouton vidéo reste vraiment cliquable et affiche le player dans la galerie. */
.tsb-suite__main-image img[hidden] {
    display: none !important;
}

.tsb-video-mobile-only {
    cursor: pointer !important;
    position: relative;
    z-index: 2;
}

@media (max-width: 980px) {
    .tsb-suite__main-iframe:not([hidden]),
    .tsb-suite__main-video:not([hidden]) {
        display: block !important;
        min-height: 280px;
    }
}

/* Galerie mobile : vidéo YouTube sans interface, recadrée pour remplir tout le bloc image. */
.tsb-suite__main-image {
    position: relative !important;
}

.tsb-suite__main-iframe:not([hidden]) {
    aspect-ratio: 16 / 9 !important;
    background: #000 !important;
    border: 0 !important;
    display: block !important;
    height: 100% !important;
    left: 50% !important;
    max-height: none !important;
    max-width: none !important;
    min-width: 100% !important;
    pointer-events: none !important;
    position: absolute !important;
    top: 50% !important;
    transform: translate(-50%, -50%) scale(1.22) !important;
    width: auto !important;
    z-index: 2;
}

.tsb-suite__main-video-mask {
    background-color: #000;
    background-position: center;
    background-size: cover;
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 4;
}

.tsb-suite__main-video-mask[hidden] {
    display: none !important;
}

.tsb-suite__main-video-mask.is-running {
    animation: tsbHeroVideoMaskOut 1.55s ease forwards;
    display: block !important;
}

/* Vidéo en dernier dans le carousel + bouton vidéo plus premium. */
.tsb-suite__video-thumb {
    background: linear-gradient(135deg, #123f31 0%, #1f5c47 52%, #a5793c 100%) !important;
    border-color: rgba(255,255,255,.25) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 10px 24px rgba(18,63,49,.18);
    min-width: 128px;
}

.tsb-suite__video-thumb span {
    background: rgba(255,255,255,.18) !important;
    border: 1px solid rgba(255,255,255,.35);
    box-shadow: 0 8px 18px rgba(0,0,0,.18);
    font-size: 0 !important;
    position: relative;
}

.tsb-suite__video-thumb span::before {
    border-bottom: 10px solid transparent;
    border-left: 15px solid #fff;
    border-top: 10px solid transparent;
    content: "";
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-38%, -50%);
}

.tsb-suite__video-thumb em {
    letter-spacing: .04em;
    text-transform: uppercase;
}

/* Lightbox galerie photos. */
body.tsb-lightbox-open {
    overflow: hidden;
}

.tsb-gallery-lightbox[hidden] {
    display: none !important;
}

.tsb-gallery-lightbox {
    align-items: center;
    background: rgba(0,0,0,.86);
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 28px;
    position: fixed;
    z-index: 999999;
}

.tsb-gallery-lightbox__backdrop {
    inset: 0;
    position: absolute;
}

.tsb-gallery-lightbox__inner {
    align-items: center;
    display: flex;
    height: min(86vh, 820px);
    justify-content: center;
    max-width: 1180px;
    position: relative;
    width: min(92vw, 1180px);
    z-index: 1;
}

.tsb-gallery-lightbox__inner img {
    border-radius: 12px;
    box-shadow: 0 24px 80px rgba(0,0,0,.45);
    display: block;
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
}

.tsb-gallery-lightbox__close,
.tsb-gallery-lightbox__nav {
    align-items: center;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 999px;
    color: #fff;
    cursor: pointer;
    display: flex;
    font-size: 34px;
    height: 54px;
    justify-content: center;
    line-height: 1;
    position: absolute;
    transition: background .2s ease, transform .2s ease;
    width: 54px;
    z-index: 2;
}

.tsb-gallery-lightbox__close:hover,
.tsb-gallery-lightbox__nav:hover {
    background: rgba(255,255,255,.22);
    transform: scale(1.04);
}

.tsb-gallery-lightbox__close {
    font-size: 32px;
    right: 0;
    top: -68px;
}

.tsb-gallery-lightbox__nav--prev {
    left: -72px;
}

.tsb-gallery-lightbox__nav--next {
    right: -72px;
}

.tsb-gallery-lightbox__count {
    bottom: -42px;
    color: rgba(255,255,255,.86);
    font-size: 14px;
    font-weight: 700;
    left: 50%;
    position: absolute;
    transform: translateX(-50%);
}

@media (max-width: 760px) {
    .tsb-gallery-lightbox {
        padding: 18px;
    }

    .tsb-gallery-lightbox__inner {
        width: 100%;
    }

    .tsb-gallery-lightbox__close {
        right: 6px;
        top: -62px;
    }

    .tsb-gallery-lightbox__nav {
        bottom: -66px;
        top: auto;
    }

    .tsb-gallery-lightbox__nav--prev {
        left: calc(50% - 72px);
    }

    .tsb-gallery-lightbox__nav--next {
        right: calc(50% - 72px);
    }
}

/* Correctifs lightbox mobile + support vidéo dans la lightbox. */
.tsb-gallery-lightbox__media {
    align-items: center;
    display: flex;
    height: 100%;
    justify-content: center;
    overflow: hidden;
    position: relative;
    width: 100%;
}

.tsb-gallery-lightbox__media iframe,
.tsb-gallery-lightbox__media video {
    background: #000;
    border: 0;
    display: block;
    height: 100%;
    max-height: 100%;
    max-width: none;
    object-fit: cover;
    pointer-events: none;
    width: 100%;
}

.tsb-gallery-lightbox__media iframe[hidden],
.tsb-gallery-lightbox__media video[hidden],
.tsb-gallery-lightbox__media img[hidden],
.tsb-gallery-lightbox__video-mask[hidden] {
    display: none !important;
}

.tsb-gallery-lightbox__video-mask {
    background-color: #000;
    background-position: center;
    background-size: cover;
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 4;
}

.tsb-gallery-lightbox__video-mask.is-running {
    animation: tsbHeroVideoMaskOut 1.35s ease forwards;
    display: block !important;
}

@media (max-width: 760px) {
    .tsb-gallery-lightbox__inner {
        height: calc(100vh - 170px);
        max-height: calc(100vh - 170px);
    }

    .tsb-gallery-lightbox__nav {
        bottom: -74px !important;
        left: 50% !important;
        right: auto !important;
        top: auto !important;
    }

    .tsb-gallery-lightbox__nav--prev {
        transform: translateX(-68px) !important;
    }

    .tsb-gallery-lightbox__nav--next {
        transform: translateX(14px) !important;
    }

    .tsb-gallery-lightbox__nav--prev:hover {
        transform: translateX(-68px) scale(1.04) !important;
    }

    .tsb-gallery-lightbox__nav--next:hover {
        transform: translateX(14px) scale(1.04) !important;
    }

    .tsb-gallery-lightbox__count {
        bottom: -112px !important;
    }
}

/* Correctif mobile lightbox : contrôles toujours visibles dans l'écran. */
@media (max-width: 760px) {
    .tsb-gallery-lightbox {
        align-items: center !important;
        padding: 64px 12px 72px !important;
    }

    .tsb-gallery-lightbox__inner {
        height: 100% !important;
        max-height: none !important;
        width: 100% !important;
    }

    .tsb-gallery-lightbox__close {
        background: rgba(0,0,0,.62) !important;
        border: 1px solid rgba(255,255,255,.35) !important;
        box-shadow: 0 10px 28px rgba(0,0,0,.28) !important;
        height: 50px !important;
        position: fixed !important;
        right: max(14px, env(safe-area-inset-right)) !important;
        top: max(14px, env(safe-area-inset-top)) !important;
        transform: none !important;
        width: 50px !important;
        z-index: 1000002 !important;
    }

    .tsb-gallery-lightbox__nav {
        background: rgba(0,0,0,.58) !important;
        border: 1px solid rgba(255,255,255,.32) !important;
        bottom: auto !important;
        box-shadow: 0 10px 28px rgba(0,0,0,.22) !important;
        height: 46px !important;
        position: fixed !important;
        top: 50% !important;
        width: 46px !important;
        z-index: 1000002 !important;
    }

    .tsb-gallery-lightbox__nav--prev {
        left: max(10px, env(safe-area-inset-left)) !important;
        right: auto !important;
        transform: translateY(-50%) !important;
    }

    .tsb-gallery-lightbox__nav--next {
        left: auto !important;
        right: max(10px, env(safe-area-inset-right)) !important;
        transform: translateY(-50%) !important;
    }

    .tsb-gallery-lightbox__nav--prev:hover {
        transform: translateY(-50%) scale(1.04) !important;
    }

    .tsb-gallery-lightbox__nav--next:hover {
        transform: translateY(-50%) scale(1.04) !important;
    }

    .tsb-gallery-lightbox__count {
        background: rgba(0,0,0,.55) !important;
        border-radius: 999px !important;
        bottom: max(18px, env(safe-area-inset-bottom)) !important;
        color: #fff !important;
        left: 50% !important;
        padding: 6px 12px !important;
        position: fixed !important;
        transform: translateX(-50%) !important;
        z-index: 1000002 !important;
    }

    .tsb-gallery-lightbox__media,
    .tsb-gallery-lightbox__inner img {
        border-radius: 12px !important;
    }
}

/* Recherche accueil : sélection de créneau + réservation directe. */
.tsb-search-slot {
    background: #fff !important;
    border: 1px solid var(--tsb-border) !important;
    border-radius: 10px !important;
    color: var(--tsb-text) !important;
    cursor: pointer;
    display: grid !important;
    gap: 3px;
    min-width: 132px;
    padding: 12px 14px !important;
    text-align: left;
}

.tsb-search-slot strong {
    font-size: 14px;
}

.tsb-search-slot span {
    background: transparent !important;
    color: var(--tsb-gold) !important;
    font-size: 16px !important;
    font-weight: 800;
    padding: 0 !important;
}

.tsb-search-slot small {
    color: var(--tsb-muted);
    font-size: 12px;
}

.tsb-search-slot.is-selected {
    background: var(--tsb-green) !important;
    border-color: var(--tsb-green) !important;
    color: #fff !important;
}

.tsb-search-slot.is-selected span,
.tsb-search-slot.is-selected small,
.tsb-search-slot.is-selected strong {
    color: #fff !important;
}

.tsb-result__cta button[data-tsb-search-reserve] {
    background: var(--tsb-green);
    border: 0;
    border-radius: 999px;
    color: #fff;
    cursor: pointer;
    font-weight: 800;
    padding: 11px 18px;
}

.tsb-result__cta button[data-tsb-search-reserve]:disabled {
    cursor: not-allowed;
    opacity: .45;
}

.tsb-search-modal[hidden] {
    display: none !important;
}

.tsb-search-modal {
    align-items: center;
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 24px;
    position: fixed;
    z-index: 999998;
}

.tsb-search-modal__backdrop {
    background: rgba(0,0,0,.58);
    inset: 0;
    position: absolute;
}

.tsb-search-modal__dialog {
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 30px 90px rgba(0,0,0,.28);
    max-height: min(820px, 92vh);
    max-width: 760px;
    overflow: auto;
    padding: 28px;
    position: relative;
    width: min(100%, 760px);
    z-index: 1;
}

.tsb-search-modal__close {
    align-items: center;
    background: #f3f0eb;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    display: flex;
    font-size: 26px;
    height: 40px;
    justify-content: center;
    position: absolute;
    right: 18px;
    top: 18px;
    width: 40px;
}

.tsb-search-modal h3 {
    margin: 0 52px 16px 0;
}

.tsb-search-modal__summary {
    background: var(--tsb-green-soft);
    border-radius: 14px;
    display: grid;
    gap: 5px;
    margin-bottom: 18px;
    padding: 14px 16px;
}

.tsb-search-modal__summary span {
    color: var(--tsb-muted);
    font-size: 13px;
}

.tsb-search-modal__options {
    display: grid;
    gap: 10px;
}

.tsb-search-option {
    align-items: center;
    border: 1px solid var(--tsb-border);
    border-radius: 14px;
    cursor: pointer;
    display: grid;
    gap: 12px;
    grid-template-columns: auto 56px minmax(0, 1fr) auto;
    padding: 12px;
}

.tsb-search-option > img {
    border-radius: 10px;
    height: 56px;
    object-fit: cover;
    width: 56px;
}

.tsb-search-option span {
    display: grid;
    gap: 3px;
}

.tsb-search-option small {
    color: var(--tsb-muted);
}

.tsb-search-option em {
    color: var(--tsb-gold);
    font-style: normal;
    font-weight: 800;
}

.tsb-search-modal__total {
    align-items: center;
    border-top: 1px solid var(--tsb-border);
    display: flex;
    justify-content: space-between;
    margin-top: 18px;
    padding-top: 18px;
}

.tsb-search-modal__total strong {
    color: var(--tsb-gold);
    font-size: 28px;
}

.tsb-search-modal__message {
    color: #b42318;
    margin: 12px 0 0;
}

.tsb-search-modal__confirm {
    background: var(--tsb-green);
    border: 0;
    border-radius: 999px;
    color: #fff;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    margin-top: 16px;
    padding: 14px 22px;
    width: 100%;
}

@media (max-width: 760px) {
    .tsb-result__cta {
        align-items: stretch;
        justify-items: stretch;
    }

    .tsb-result__cta button[data-tsb-search-reserve],
    .tsb-result__cta a {
        text-align: center;
        width: 100%;
    }

    .tsb-search-option {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .tsb-search-option > img {
        display: none;
    }

    .tsb-search-option em {
        grid-column: 2;
    }
}

/* Ajustement design du module d'accueil : cohérent avec la fiche suite. */
.tsb-search {
    background: rgba(255,255,255,.96) !important;
    border: 1px solid rgba(228,222,212,.9) !important;
    border-radius: 20px !important;
    box-shadow: 0 22px 60px rgba(36,36,36,.14) !important;
    padding: 22px !important;
}

.tsb-search__form {
    align-items: end !important;
    gap: 14px !important;
    grid-template-columns: minmax(260px, 1fr) 240px 190px !important;
}

.tsb-search__form button[type="submit"] {
    border-radius: 8px !important;
    min-height: 48px !important;
    text-transform: uppercase;
}

.tsb-result {
    border-radius: 16px !important;
    box-shadow: 0 12px 34px rgba(36,36,36,.08) !important;
    gap: 18px !important;
    grid-template-columns: 230px minmax(0, 1fr) 185px !important;
    padding: 14px !important;
}

.tsb-result__image {
    border-radius: 12px !important;
}

.tsb-result h3 {
    color: var(--tsb-green);
    font-size: clamp(24px, 3vw, 34px);
    line-height: 1;
    margin-bottom: 12px !important;
}

.tsb-result__slots {
    display: grid !important;
    gap: 10px !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.tsb-search .tsb-search-slot {
    align-content: center;
    border-radius: 12px !important;
    justify-items: center;
    min-height: 96px;
    min-width: 0 !important;
    text-align: center !important;
    width: auto !important;
}

.tsb-search .tsb-search-slot strong {
    line-height: 1.15;
}

.tsb-result__cta {
    align-content: center !important;
    border-left: 1px solid var(--tsb-border);
    padding-left: 18px;
}

.tsb-result__cta strong[data-tsb-search-card-total] {
    white-space: nowrap;
}

.tsb-result__cta button[data-tsb-search-reserve] {
    border-radius: 999px !important;
    min-height: 52px;
    width: 100%;
}

.tsb-result__cta a {
    border-radius: 8px !important;
}

@media (max-width: 980px) {
    .tsb-search__form,
    .tsb-result {
        grid-template-columns: 1fr !important;
    }

    .tsb-result__slots {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .tsb-result__cta {
        border-left: 0;
        border-top: 1px solid var(--tsb-border);
        padding-left: 0;
        padding-top: 16px;
    }
}

@media (max-width: 640px) {
    .tsb-result__slots {
        grid-template-columns: 1fr !important;
    }
}

/* Le modal options du shortcode recherche réutilise exactement le style fiche suite. */
.tsb-search-booking-modal .tsb-option-list .tsb-muted {
    margin: 0;
}

.tsb-search-booking-modal .tsb-summary__total {
    margin-top: 18px;
}

/* Lien "Voir la suite" plus discret dans le module d'accueil. */
.tsb-result__cta .tsb-result__suite-link {
    background: transparent !important;
    border: 0 !important;
    color: var(--tsb-muted) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    justify-self: center !important;
    min-height: auto !important;
    padding: 3px 0 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
    width: auto !important;
}

.tsb-result__cta .tsb-result__suite-link:hover {
    color: var(--tsb-green) !important;
}

/* Calendrier premium du shortcode [tsb_search]. */
.tsb-search-date-wrap {
    position: relative;
}

.tsb-search-date-field {
    position: relative;
}

.tsb-search-date-field input[type="text"] {
    cursor: pointer;
    padding-right: 52px !important;
}

.tsb-search .tsb-search-date-toggle {
    align-items: center !important;
    background: transparent !important;
    border: 0 !important;
    color: var(--tsb-muted) !important;
    display: flex !important;
    height: 42px !important;
    justify-content: center !important;
    min-height: 0 !important;
    padding: 0 !important;
    position: absolute !important;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    width: 42px !important;
}

.tsb-search-calendar[hidden] {
    display: none !important;
}

.tsb-search-calendar {
    background: #fff;
    border: 1px solid var(--tsb-border);
    border-radius: 18px;
    box-shadow: 0 24px 70px rgba(36,36,36,.22);
    left: 0;
    margin-top: 12px;
    padding: 20px;
    position: absolute;
    top: 100%;
    width: min(520px, calc(100vw - 42px));
    z-index: 9999;
}

.tsb-search-calendar__nav {
    align-items: center;
    display: grid;
    gap: 12px;
    grid-template-columns: 44px 1fr 44px;
    margin-bottom: 16px;
}

.tsb-search .tsb-search-calendar__nav button {
    background: #fff !important;
    border: 1px solid var(--tsb-border) !important;
    border-radius: 999px !important;
    color: var(--tsb-green) !important;
    font-size: 26px !important;
    height: 44px !important;
    min-height: 0 !important;
    padding: 0 !important;
    width: 44px !important;
}

.tsb-search-calendar__nav strong {
    color: var(--tsb-green);
    font-size: 16px;
    text-align: center;
}

.tsb-search-calendar__weekdays,
.tsb-search-calendar__days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.tsb-search-calendar__weekdays {
    color: var(--tsb-muted);
    font-size: 11px;
    font-weight: 800;
    gap: 6px;
    letter-spacing: .04em;
    margin-bottom: 8px;
    text-align: center;
}

.tsb-search-calendar__days {
    gap: 7px;
}

.tsb-search .tsb-search-calendar__day {
    align-items: center !important;
    background: #fff !important;
    border: 1px solid transparent !important;
    border-radius: 12px !important;
    color: var(--tsb-text) !important;
    cursor: pointer;
    display: flex !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    height: 48px !important;
    justify-content: center !important;
    min-height: 0 !important;
    padding: 0 !important;
    position: relative;
    width: 100% !important;
}

.tsb-search .tsb-search-calendar__day:hover:not(:disabled) {
    background: var(--tsb-green-soft) !important;
    border-color: rgba(18,63,49,.22) !important;
    color: var(--tsb-green) !important;
}

.tsb-search .tsb-search-calendar__day.is-selected {
    background: var(--tsb-green) !important;
    border-color: var(--tsb-green) !important;
    color: #fff !important;
}

.tsb-search .tsb-search-calendar__day.is-blocked:not(.is-selected) {
    background: #ffe5e5 !important;
    border-color: #ffc8c8 !important;
    color: #a32020 !important;
}

.tsb-search .tsb-search-calendar__day.is-blocked:not(.is-selected)::after {
    background: currentColor;
    border-radius: 999px;
    bottom: 6px;
    content: "";
    height: 3px;
    left: 50%;
    opacity: .72;
    position: absolute;
    transform: translateX(-50%);
    width: 14px;
}

.tsb-search .tsb-search-calendar__day.is-muted {
    color: #b8b3aa !important;
}

.tsb-search .tsb-search-calendar__day.is-disabled {
    cursor: not-allowed;
    opacity: .36;
}

.tsb-search-calendar__hint {
    color: var(--tsb-muted);
    font-size: 12px;
    margin: 14px 0 0;
    text-align: center;
}

@media (max-width: 760px) {
    .tsb-search-calendar {
        left: 50%;
        padding: 16px;
        transform: translateX(-50%);
        width: calc(100vw - 28px);
    }

    .tsb-search .tsb-search-calendar__day {
        height: 42px !important;
    }
}

/* Résultats du shortcode [tsb_search] dans un panneau dédié. */
.tsb-search-results-modal .tsb-modal__dialog {
    max-height: min(860px, 92vh) !important;
    max-width: 1180px !important;
    overflow: auto !important;
    width: min(1180px, calc(100vw - 44px)) !important;
}

.tsb-search-results-modal__content {
    padding: 30px !important;
}

.tsb-search-results-modal__content h3 {
    color: var(--tsb-green);
    font-size: clamp(30px, 4vw, 48px);
    line-height: 1;
    margin: 0 50px 8px 0;
}

.tsb-search-results-modal__subtitle {
    color: var(--tsb-muted);
    font-size: 15px;
    margin: 0 0 22px;
}

.tsb-search-results-modal__results {
    display: grid;
    gap: 16px;
}

.tsb-search-results-modal .tsb-result {
    grid-template-columns: 230px minmax(0, 1fr) 185px !important;
}

.tsb-search-results-modal .tsb-result__slots {
    display: grid !important;
    gap: 10px !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.tsb-search-results-modal .tsb-search-slot {
    align-content: center;
    justify-items: center;
    min-height: 96px;
    min-width: 0 !important;
    text-align: center !important;
    width: auto !important;
}

.tsb-search-results-modal .tsb-result__cta {
    align-content: center !important;
    border-left: 1px solid var(--tsb-border);
    padding-left: 18px;
}

.tsb-search-results-modal .tsb-result__cta button[data-tsb-search-reserve] {
    min-height: 52px;
    width: 100%;
}

@media (max-width: 980px) {
    .tsb-search-results-modal .tsb-result {
        grid-template-columns: 1fr !important;
    }

    .tsb-search-results-modal .tsb-result__cta {
        border-left: 0;
        border-top: 1px solid var(--tsb-border);
        padding-left: 0;
        padding-top: 16px;
    }
}

@media (max-width: 640px) {
    .tsb-search-results-modal .tsb-modal__dialog {
        border-radius: 18px !important;
        max-height: calc(100vh - 28px) !important;
        width: calc(100vw - 22px) !important;
    }

    .tsb-search-results-modal__content {
        padding: 22px 12px 14px !important;
    }

    .tsb-search-results-modal__content h3 {
        font-size: 30px;
        margin-right: 42px;
    }

    .tsb-search-results-modal .tsb-result {
        border-radius: 16px !important;
        gap: 12px !important;
        padding: 10px !important;
    }

    .tsb-search-results-modal .tsb-result h3 {
        font-size: 22px !important;
        margin-bottom: 10px !important;
    }

    .tsb-search-results-modal .tsb-result__image {
        aspect-ratio: 16 / 10;
    }

    .tsb-search-results-modal .tsb-result__slots,
    .tsb-search .tsb-result__slots {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 7px !important;
    }

    .tsb-search-results-modal .tsb-search-slot,
    .tsb-search .tsb-search-slot {
        border-radius: 10px !important;
        min-height: 80px !important;
        padding: 8px 4px !important;
    }

    .tsb-search-results-modal .tsb-search-slot strong,
    .tsb-search .tsb-search-slot strong {
        font-size: 11px !important;
        line-height: 1.15 !important;
    }

    .tsb-search-results-modal .tsb-search-slot span,
    .tsb-search .tsb-search-slot span {
        font-size: 13px !important;
    }

    .tsb-search-results-modal .tsb-search-slot small,
    .tsb-search .tsb-search-slot small {
        font-size: 10px !important;
    }

    .tsb-search-results-modal .tsb-result__cta {
        gap: 6px !important;
        padding-top: 10px !important;
    }
}

/* Résultats recherche : infos rapides de la suite. */
.tsb-result__quick {
    color: var(--tsb-muted) !important;
    font-size: 14px;
    line-height: 1.45;
    margin: 0 0 10px !important;
}

.tsb-result__features {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0 0 12px;
}

.tsb-result__features span {
    align-items: center;
    background: var(--tsb-green-soft) !important;
    border: 1px solid rgba(18,63,49,.10);
    border-radius: 999px;
    color: var(--tsb-green) !important;
    display: inline-flex;
    font-size: 12px !important;
    font-weight: 800;
    gap: 5px;
    padding: 6px 9px !important;
}

.tsb-result__features em {
    align-items: center;
    background: #fff;
    border-radius: 999px;
    display: inline-flex;
    font-style: normal;
    height: 18px;
    justify-content: center;
    line-height: 1;
    width: 18px;
}

/* Page suite : garder les créneaux côte à côte aussi en mobile. */
@media (max-width: 640px) {
    .tsb-suite .tsb-slots {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 7px !important;
    }

    .tsb-suite .tsb-slot {
        border-radius: 10px !important;
        min-height: 80px !important;
        padding: 8px 4px !important;
    }

    .tsb-suite .tsb-slot strong {
        font-size: 11px !important;
        line-height: 1.15 !important;
        margin-bottom: 4px !important;
    }

    .tsb-suite .tsb-slot span {
        font-size: 13px !important;
    }

    .tsb-suite .tsb-slot small {
        font-size: 10px !important;
        margin-top: 4px !important;
    }

    .tsb-result__features {
        gap: 5px;
        margin-bottom: 10px;
    }

    .tsb-result__features span {
        font-size: 11px !important;
        padding: 5px 7px !important;
    }
}

/* Page / shortcode Last Minute. */
.tsb-last-minute {
    background: #fff;
    border: 1px solid var(--tsb-border);
    border-radius: 22px;
    box-shadow: 0 22px 70px rgba(36,36,36,.10);
    margin: 34px auto;
    max-width: 1180px;
    padding: clamp(18px, 3vw, 34px);
}

.tsb-last-minute__header {
    margin-bottom: 24px;
    text-align: center;
}

.tsb-last-minute__header h2 {
    color: var(--tsb-green);
    font-size: clamp(34px, 5vw, 58px);
    line-height: 1;
    margin: 4px 0 10px;
}

.tsb-last-minute__header > p:not(.tsb-kicker) {
    color: var(--tsb-muted);
    margin: 0 auto;
    max-width: 720px;
}

.tsb-last-minute__days {
    display: grid;
    gap: 22px;
}

.tsb-last-minute-day {
    background: #fbfaf8;
    border: 1px solid var(--tsb-border);
    border-radius: 18px;
    padding: 16px;
}

.tsb-last-minute-day__head {
    align-items: center;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    margin-bottom: 14px;
}

.tsb-last-minute-day__head h3 {
    color: var(--tsb-green);
    font-size: 25px;
    line-height: 1;
    margin: 0 0 4px;
}

.tsb-last-minute-day__head p {
    color: var(--tsb-muted);
    margin: 0;
}

.tsb-last-minute-day__head > span {
    background: var(--tsb-gold);
    border-radius: 999px;
    color: #fff;
    font-size: 18px;
    font-weight: 900;
    padding: 8px 13px;
}

.tsb-last-minute-day__grid {
    display: grid;
    gap: 14px;
}

.tsb-last-minute-card {
    align-items: stretch;
    background: #fff;
    border: 1px solid var(--tsb-border);
    border-radius: 16px;
    display: grid;
    gap: 16px;
    grid-template-columns: 220px minmax(0, 1fr) 185px;
    overflow: hidden;
    padding: 12px;
}

.tsb-last-minute-card__image {
    aspect-ratio: 4 / 3;
    border-radius: 12px;
    display: block;
    overflow: hidden;
    position: relative;
    text-decoration: none;
}

.tsb-last-minute-card__image img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.tsb-last-minute-card__image span {
    align-items: center;
    background: var(--tsb-green-soft);
    color: var(--tsb-green);
    display: flex;
    height: 100%;
    justify-content: center;
    width: 100%;
}

.tsb-last-minute-card__image b {
    background: var(--tsb-gold);
    border-radius: 999px;
    color: #fff;
    font-size: 13px;
    padding: 6px 9px;
    position: absolute;
    right: 8px;
    top: 8px;
}

.tsb-last-minute-card__body h3 {
    color: var(--tsb-green);
    font-size: clamp(24px, 3vw, 34px);
    line-height: 1;
    margin: 0 0 10px;
}

.tsb-last-minute-card__body h3 a {
    color: inherit;
    text-decoration: none;
}

.tsb-last-minute-card__slots {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tsb-last-minute-slot {
    align-content: center;
    background: #fff;
    border: 1px solid var(--tsb-border);
    border-radius: 12px;
    color: var(--tsb-text);
    cursor: pointer;
    display: grid;
    gap: 4px;
    justify-items: center;
    min-height: 104px;
    padding: 10px 8px;
    text-align: center;
}

.tsb-last-minute-slot strong,
.tsb-last-minute-slot span,
.tsb-last-minute-slot small {
    display: block;
}

.tsb-last-minute-slot strong {
    font-size: 13px;
    line-height: 1.15;
}

.tsb-last-minute-slot del {
    color: var(--tsb-muted);
    display: inline-block;
    font-size: 12px;
    margin-right: 5px;
    opacity: .75;
}

.tsb-last-minute-slot b {
    color: var(--tsb-gold);
    font-size: 16px;
}

.tsb-last-minute-slot small {
    color: var(--tsb-muted);
    font-size: 11px;
}

.tsb-last-minute-slot.is-selected {
    background: var(--tsb-green);
    border-color: var(--tsb-green);
    color: #fff;
}

.tsb-last-minute-slot.is-selected b,
.tsb-last-minute-slot.is-selected del,
.tsb-last-minute-slot.is-selected small,
.tsb-last-minute-slot.is-selected strong {
    color: #fff !important;
}

.tsb-last-minute-card__cta {
    align-content: center;
    border-left: 1px solid var(--tsb-border);
    display: grid;
    gap: 8px;
    justify-items: center;
    padding-left: 16px;
}

.tsb-last-minute-card__cta small {
    color: var(--tsb-muted);
}

.tsb-last-minute-card__cta strong {
    color: var(--tsb-gold);
    font-size: 24px;
    white-space: nowrap;
}

.tsb-last-minute-card__cta button {
    background: var(--tsb-green);
    border: 0;
    border-radius: 999px;
    color: #fff;
    cursor: pointer;
    font-weight: 800;
    min-height: 52px;
    padding: 11px 18px;
    width: 100%;
}

.tsb-last-minute-card__cta button:disabled {
    cursor: not-allowed;
    opacity: .45;
}

.tsb-last-minute-card__cta a {
    color: var(--tsb-muted);
    font-size: 13px;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.tsb-last-minute-empty {
    background: #fff;
    border: 1px dashed var(--tsb-border);
    border-radius: 14px;
    color: var(--tsb-muted);
    margin: 0;
    padding: 18px;
    text-align: center;
}

@media (max-width: 980px) {
    .tsb-last-minute-card {
        grid-template-columns: 1fr;
    }

    .tsb-last-minute-card__cta {
        border-left: 0;
        border-top: 1px solid var(--tsb-border);
        padding-left: 0;
        padding-top: 14px;
    }
}

@media (max-width: 640px) {
    .tsb-last-minute {
        border-radius: 18px;
        margin: 22px auto;
        padding: 12px;
    }

    .tsb-last-minute-day {
        padding: 11px;
    }

    .tsb-last-minute-card {
        gap: 11px;
        padding: 10px;
    }

    .tsb-last-minute-card__slots {
        gap: 7px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .tsb-last-minute-slot {
        min-height: 86px;
        padding: 8px 4px;
    }

    .tsb-last-minute-slot strong {
        font-size: 11px;
    }

    .tsb-last-minute-slot del {
        display: none;
    }

    .tsb-last-minute-slot b {
        font-size: 13px;
    }

    .tsb-last-minute-slot small {
        font-size: 10px;
    }
}

/* Sélecteur nombre de personnes pour les réservations journée. */
.tsb-people-field {
    background: var(--tsb-green-soft);
    border: 1px solid rgba(18,63,49,.12);
    border-radius: 14px;
    display: grid;
    gap: 8px;
    margin: 0 0 16px;
    padding: 14px;
}

.tsb-people-field[hidden] {
    display: none !important;
}

.tsb-people-field label {
    align-items: center;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) 180px;
}

.tsb-people-field span {
    color: var(--tsb-green);
    font-weight: 800;
}

.tsb-people-field select {
    background: #fff;
    border: 1px solid var(--tsb-border);
    border-radius: 10px;
    min-height: 42px;
    padding: 8px 10px;
    width: 100%;
}

.tsb-people-field small {
    color: var(--tsb-muted);
}

@media (max-width: 640px) {
    .tsb-people-field label {
        grid-template-columns: 1fr;
    }
}

/* UX améliorée : choix du nombre de personnes en boutons. */
.tsb-people-field {
    background: #fff !important;
    border: 1px solid var(--tsb-border) !important;
    border-radius: 16px !important;
    box-shadow: 0 10px 26px rgba(18,63,49,.06) !important;
    gap: 12px !important;
    padding: 16px !important;
}

.tsb-people-field label {
    display: block !important;
}

.tsb-people-field label span {
    display: block;
    font-size: 15px;
    margin-bottom: 10px;
}

.tsb-people-field select {
    display: none !important;
}

.tsb-people-choices {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tsb-people-choices button {
    align-items: center;
    background: #f7f4ee;
    border: 1px solid var(--tsb-border);
    border-radius: 999px;
    color: var(--tsb-green);
    cursor: pointer;
    display: inline-flex;
    font-size: 15px;
    font-weight: 900;
    height: 42px;
    justify-content: center;
    min-width: 42px;
    padding: 0 14px;
}

.tsb-people-choices button.is-active {
    background: var(--tsb-green);
    border-color: var(--tsb-green);
    color: #fff;
}

.tsb-people-field small {
    background: var(--tsb-green-soft);
    border-radius: 999px;
    color: var(--tsb-muted) !important;
    display: inline-flex;
    font-size: 12px;
    line-height: 1.2;
    padding: 7px 10px;
    width: fit-content;
}

/* Affichage prix barré / remise last minute sur les créneaux. */
.tsb-slot span del,
.tsb-search-slot span del,
.tsb-last-minute-slot del {
    color: var(--tsb-muted) !important;
    display: inline-block;
    font-size: 12px;
    margin-right: 5px;
    opacity: .75;
}

.tsb-slot span b,
.tsb-search-slot span b,
.tsb-last-minute-slot b {
    color: var(--tsb-gold) !important;
    font-size: inherit;
}

.tsb-slot span i,
.tsb-search-slot span i {
    background: var(--tsb-gold);
    border-radius: 999px;
    color: #fff !important;
    display: inline-block;
    font-size: 10px;
    font-style: normal;
    font-weight: 900;
    margin-left: 5px;
    padding: 2px 5px;
    vertical-align: middle;
}

.tsb-slot.is-selected span del,
.tsb-slot.is-selected span b,
.tsb-slot.is-selected span i,
.tsb-search-slot.is-selected span del,
.tsb-search-slot.is-selected span b,
.tsb-search-slot.is-selected span i {
    color: #fff !important;
}

.tsb-slot.is-selected span i,
.tsb-search-slot.is-selected span i {
    background: rgba(255,255,255,.18);
}

/* Galerie suite : le bouton vidéo garde exactement la même hauteur que les miniatures photo. */
.tsb-suite__thumbs .tsb-suite__video-thumb {
    aspect-ratio: 4 / 3 !important;
    min-height: 0 !important;
    min-width: 110px !important;
    width: auto !important;
}

@media (max-width: 640px) {
    .tsb-suite__thumbs {
        grid-auto-columns: minmax(92px, 1fr) !important;
    }

    .tsb-suite__thumbs button,
    .tsb-suite__thumbs .tsb-suite__video-thumb {
        aspect-ratio: 4 / 3 !important;
        height: auto !important;
        min-height: 0 !important;
        min-width: 92px !important;
    }

    .tsb-suite__video-thumb span {
        height: 38px !important;
        width: 38px !important;
    }

    .tsb-suite__video-thumb em {
        font-size: 12px !important;
    }
}

/* Page suite : les créneaux remplissent toujours toute la largeur disponible.
   Avec 3 créneaux : 3 colonnes. Avec 2 : 2 colonnes larges. Avec 1 : pleine largeur. */
.tsb-suite .tsb-slots {
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)) !important;
}

@media (max-width: 640px) {
    .tsb-suite .tsb-slots {
        grid-template-columns: repeat(auto-fit, minmax(86px, 1fr)) !important;
    }
}

/* Correction mobile/desktop : largeur exacte selon le nombre de créneaux réellement affichés. */
.tsb-suite .tsb-slots.tsb-slots--count-1 {
    grid-template-columns: 1fr !important;
}

.tsb-suite .tsb-slots.tsb-slots--count-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.tsb-suite .tsb-slots.tsb-slots--count-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.tsb-suite .tsb-slots.tsb-slots--count-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

@media (max-width: 640px) {
    .tsb-suite .tsb-slots.tsb-slots--count-1 {
        grid-template-columns: 1fr !important;
    }

    .tsb-suite .tsb-slots.tsb-slots--count-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .tsb-suite .tsb-slots.tsb-slots--count-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .tsb-suite .tsb-slots.tsb-slots--count-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* Recherche + Last Minute : les créneaux remplissent aussi toute la largeur disponible. */
.tsb-result__slots.tsb-slots--count-1,
.tsb-last-minute-card__slots.tsb-slots--count-1 {
    grid-template-columns: 1fr !important;
}

.tsb-result__slots.tsb-slots--count-2,
.tsb-last-minute-card__slots.tsb-slots--count-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.tsb-result__slots.tsb-slots--count-3,
.tsb-last-minute-card__slots.tsb-slots--count-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.tsb-result__slots.tsb-slots--count-4,
.tsb-last-minute-card__slots.tsb-slots--count-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

@media (max-width: 640px) {
    .tsb-result__slots.tsb-slots--count-1,
    .tsb-last-minute-card__slots.tsb-slots--count-1 {
        grid-template-columns: 1fr !important;
    }

    .tsb-result__slots.tsb-slots--count-2,
    .tsb-last-minute-card__slots.tsb-slots--count-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .tsb-result__slots.tsb-slots--count-3,
    .tsb-last-minute-card__slots.tsb-slots--count-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .tsb-result__slots.tsb-slots--count-4,
    .tsb-last-minute-card__slots.tsb-slots--count-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* Recherche : les dates passées restent uniquement grisées, même si le mois est complet. */
.tsb-search .tsb-search-calendar__day.is-disabled {
    background: #f6f3ef !important;
    border-color: transparent !important;
    color: #b8b3aa !important;
}

.tsb-search .tsb-search-calendar__day.is-disabled::after {
    display: none !important;
}

/* Grands écrans : éviter que les titres/badges des cartes empiètent sur les images. */
.tsb-search-results-modal .tsb-result,
.tsb-search .tsb-result {
    column-gap: 26px !important;
}

.tsb-last-minute-card {
    column-gap: 26px !important;
}

.tsb-result__image,
.tsb-last-minute-card__image {
    max-width: 100% !important;
    min-width: 0 !important;
    position: relative;
    z-index: 0;
}

.tsb-result__body,
.tsb-last-minute-card__body {
    min-width: 0 !important;
    overflow: hidden;
    padding-left: 4px;
    position: relative;
    z-index: 1;
}

.tsb-search-results-modal .tsb-result h3,
.tsb-search .tsb-result h3,
.tsb-last-minute-card__body h3 {
    font-size: clamp(24px, 2.2vw, 32px) !important;
    overflow-wrap: anywhere;
}

@media (max-width: 980px) {
    .tsb-result__body,
    .tsb-last-minute-card__body {
        padding-left: 0;
    }
}

/* Widget de recherche premium v0.6.27 : rendu compact inspiré maquette validée. */
.tsb-search.tsb-search--premium {
    --tsb-widget-gold: #b9853c;
    --tsb-widget-gold-soft: #f5efe4;
    --tsb-widget-ivory: rgba(255, 252, 247, .985);
    background: var(--tsb-widget-ivory) !important;
    border: 1px solid rgba(196, 156, 103, .28) !important;
    border-radius: 16px !important;
    box-shadow: 0 10px 28px rgba(17, 17, 17, .07) !important;
    max-width: 1320px !important;
    overflow: visible !important;
    padding: 28px 34px 24px !important;
    position: relative !important;
}

.tsb-search.tsb-search--premium::before {
    align-items: center;
    background: #fffaf1;
    border: 1px solid rgba(196, 156, 103, .3);
    border-radius: 999px;
    box-shadow: 0 10px 26px rgba(17, 17, 17, .10);
    color: var(--tsb-widget-gold);
    content: "▣";
    display: flex;
    font-size: 15px;
    height: 52px;
    justify-content: center;
    left: 50%;
    position: absolute;
    top: -26px;
    transform: translateX(-50%);
    width: 52px;
    z-index: 2;
}

.tsb-search.tsb-search--premium .tsb-search__header {
    align-items: flex-start;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) minmax(270px, 330px);
    margin-bottom: 24px;
}

.tsb-search.tsb-search--premium .tsb-search__kicker {
    color: var(--tsb-widget-gold);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    margin: 0 0 10px;
    text-transform: uppercase;
}

.tsb-search.tsb-search--premium .tsb-search__header h2 {
    color: var(--tsb-green);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(28px, 3vw, 42px);
    font-weight: 400;
    line-height: 1.06;
    margin: 0;
}

.tsb-search.tsb-search--premium .tsb-search__last-minute {
    align-items: center;
    background: linear-gradient(135deg, #fffaf2, #f6ecdb);
    border: 1px solid rgba(196, 156, 103, .28);
    border-radius: 10px;
    color: #806235;
    display: grid;
    gap: 2px 10px;
    grid-template-columns: 26px 1fr;
    justify-self: end;
    max-width: 330px;
    padding: 14px 18px;
}

.tsb-search.tsb-search--premium .tsb-search__last-minute span {
    align-items: center;
    color: var(--tsb-widget-gold);
    display: flex;
    font-size: 18px;
    grid-row: span 2;
    justify-content: center;
    margin: 0;
}

.tsb-search.tsb-search--premium .tsb-search__last-minute strong {
    color: #8d642f;
    font-size: 12px;
    letter-spacing: .12em;
    line-height: 1.2;
    text-transform: uppercase;
}

.tsb-search.tsb-search--premium .tsb-search__last-minute small {
    color: #6f665a;
    font-size: 12px;
    line-height: 1.35;
}

.tsb-search.tsb-search--premium .tsb-search__form {
    align-items: end !important;
    display: grid !important;
    gap: 18px !important;
    grid-template-columns: minmax(220px, 1.25fr) minmax(210px, .95fr) minmax(170px, .75fr) minmax(210px, .95fr) minmax(210px, .98fr) !important;
    margin: 0 !important;
}

.tsb-search.tsb-search--premium .tsb-search-field {
    display: block;
    margin: 0 !important;
    min-width: 0;
    position: relative;
}

.tsb-search.tsb-search--premium .tsb-search-field__label {
    color: #2e2d2a !important;
    display: block !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .01em;
    line-height: 1.2;
    margin: 0 0 8px !important;
}

.tsb-search.tsb-search--premium .tsb-search-field__label small {
    color: var(--tsb-muted);
    font-size: 11px;
    font-weight: 600;
}

.tsb-search.tsb-search--premium .tsb-search-field__control {
    align-items: center;
    background: #fff !important;
    border: 1px solid rgba(196, 156, 103, .24) !important;
    border-radius: 8px !important;
    box-shadow: 0 8px 20px rgba(36, 36, 36, .035) !important;
    display: flex !important;
    min-height: 58px !important;
    position: relative;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.tsb-search.tsb-search--premium .tsb-search-field__control:focus-within,
.tsb-search.tsb-search--premium .tsb-search-field__control:hover {
    border-color: rgba(185, 133, 60, .46) !important;
    box-shadow: 0 12px 28px rgba(36, 36, 36, .06) !important;
}

.tsb-search.tsb-search--premium .tsb-search-field__icon {
    align-items: center;
    background: #fbf7ef;
    border-radius: 999px;
    color: var(--tsb-widget-gold);
    display: flex;
    flex: 0 0 34px;
    height: 34px;
    justify-content: center;
    margin-left: 14px;
    width: 34px;
}

.tsb-search.tsb-search--premium input[type="text"],
.tsb-search.tsb-search--premium select {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: #302d28 !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    height: 56px !important;
    line-height: 1.2 !important;
    min-height: 0 !important;
    outline: none !important;
    padding: 0 42px 0 12px !important;
    width: 100% !important;
}

.tsb-search.tsb-search--premium select {
    appearance: none;
    background-image: linear-gradient(45deg, transparent 50%, #a78145 50%), linear-gradient(135deg, #a78145 50%, transparent 50%) !important;
    background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50% !important;
    background-size: 5px 5px, 5px 5px !important;
    background-repeat: no-repeat !important;
}

.tsb-search.tsb-search--premium .tsb-search-date-field input[type="text"] {
    padding-right: 42px !important;
}

.tsb-search.tsb-search--premium .tsb-search-date-toggle {
    color: var(--tsb-widget-gold) !important;
    font-size: 18px !important;
    right: 8px !important;
    width: 34px !important;
}

.tsb-search.tsb-search--premium .tsb-search__submit {
    align-items: center !important;
    background: linear-gradient(135deg, #064b3b, #0e5a47) !important;
    border: 0 !important;
    border-radius: 8px !important;
    box-shadow: 0 14px 28px rgba(6, 75, 59, .22) !important;
    color: #fff !important;
    display: flex !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    gap: 12px !important;
    height: 58px !important;
    justify-content: center !important;
    letter-spacing: .04em;
    line-height: 1.1 !important;
    min-height: 58px !important;
    padding: 0 22px !important;
    text-transform: uppercase !important;
    white-space: nowrap;
}

.tsb-search.tsb-search--premium .tsb-search__submit:hover {
    background: linear-gradient(135deg, #043d31, #0b4b3d) !important;
    transform: translateY(-1px);
}

.tsb-search.tsb-search--premium .tsb-search__submit i {
    color: #dcb66f;
    font-size: 24px;
    font-style: normal;
    font-weight: 400;
    line-height: 1;
}

.tsb-search.tsb-search--premium .tsb-search__trust {
    border-top: 1px solid rgba(196, 156, 103, .20);
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 26px;
    padding-top: 22px;
}

.tsb-search.tsb-search--premium .tsb-search__trust span {
    align-items: center;
    display: grid;
    gap: 2px 12px;
    grid-template-columns: 38px minmax(0, 1fr);
    min-width: 0;
}

.tsb-search.tsb-search--premium .tsb-search__trust em {
    align-items: center;
    background: #fbf7ef;
    border-radius: 999px;
    color: var(--tsb-widget-gold);
    display: flex;
    font-style: normal;
    grid-row: span 2;
    height: 38px;
    justify-content: center;
    width: 38px;
}

.tsb-search.tsb-search--premium .tsb-search__trust strong {
    color: #2d2b28;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tsb-search.tsb-search--premium .tsb-search__trust small {
    color: var(--tsb-muted);
    font-size: 12px;
    line-height: 1.25;
}

.tsb-search.tsb-search--premium .tsb-search__results {
    margin: 12px 0 0 !important;
}

.tsb-search.tsb-search--premium .tsb-search__results .tsb-muted {
    margin: 0;
    padding-top: 2px;
}

@media (max-width: 1180px) {
    .tsb-search.tsb-search--premium .tsb-search__form {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .tsb-search.tsb-search--premium .tsb-search__submit {
        grid-column: span 2;
    }
}

@media (max-width: 920px) {
    .tsb-search.tsb-search--premium {
        border-radius: 16px !important;
        padding: 24px 18px 20px !important;
    }

    .tsb-search.tsb-search--premium::before {
        height: 44px;
        top: -22px;
        width: 44px;
    }

    .tsb-search.tsb-search--premium .tsb-search__header {
        grid-template-columns: 1fr;
    }

    .tsb-search.tsb-search--premium .tsb-search__last-minute {
        justify-self: stretch;
        max-width: none;
    }

    .tsb-search.tsb-search--premium .tsb-search__trust {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .tsb-search.tsb-search--premium {
        margin-left: 14px !important;
        margin-right: 14px !important;
        padding: 22px 14px 18px !important;
    }

    .tsb-search.tsb-search--premium .tsb-search__header h2 {
        font-size: 26px;
    }

    .tsb-search.tsb-search--premium .tsb-search__form {
        grid-template-columns: 1fr !important;
    }

    .tsb-search.tsb-search--premium .tsb-search__submit {
        grid-column: auto;
        width: 100% !important;
    }

    .tsb-search.tsb-search--premium .tsb-search__trust {
        display: none !important;
    }
}


/* v0.6.28 - Ajustements widget accueil : pas de message inutile, CTA mieux dimensionné, Last Minute cliquable. */
.tsb-search.tsb-search--premium .tsb-search__last-minute {
    text-decoration: none !important;
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.tsb-search.tsb-search--premium .tsb-search__last-minute:hover {
    border-color: rgba(185, 133, 60, .46) !important;
    box-shadow: 0 12px 28px rgba(36, 36, 36, .06);
    transform: translateY(-1px);
}

.tsb-search.tsb-search--premium .tsb-search__form {
    gap: 12px !important;
    grid-template-columns: minmax(190px, 1.1fr) minmax(160px, .82fr) minmax(150px, .72fr) minmax(175px, .9fr) minmax(225px, .95fr) !important;
}

.tsb-search.tsb-search--premium .tsb-search__submit {
    min-width: 225px !important;
    padding-left: 16px !important;
    padding-right: 14px !important;
}

.tsb-search.tsb-search--premium .tsb-search__submit span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tsb-search.tsb-search--premium .tsb-search__results:empty {
    display: none !important;
}

@media (max-width: 1280px) {
    .tsb-search.tsb-search--premium .tsb-search__form {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }

    .tsb-search.tsb-search--premium .tsb-search__submit {
        grid-column: 1 / -1;
        justify-self: end;
        width: min(100%, 320px) !important;
    }
}

@media (max-width: 760px) {
    .tsb-search.tsb-search--premium .tsb-search__submit {
        justify-self: stretch;
        width: 100% !important;
    }
}


/* v0.6.29 - Mobile accueil : retour à une vraie mise en colonne, champs lisibles un par ligne. */
@media (max-width: 760px) {
    .tsb-search.tsb-search--premium .tsb-search__form {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .tsb-search.tsb-search--premium .tsb-search-field,
    .tsb-search.tsb-search--premium .tsb-search__submit {
        grid-column: auto !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    .tsb-search.tsb-search--premium .tsb-search-field__control {
        min-height: 56px !important;
    }

    .tsb-search.tsb-search--premium input[type="text"],
    .tsb-search.tsb-search--premium select {
        height: 54px !important;
        font-size: 15px !important;
    }

    .tsb-search.tsb-search--premium .tsb-search__submit {
        height: 58px !important;
        justify-self: stretch !important;
    }
}

.tsb-search-field--locked .tsb-search-field__control {
    opacity: .72;
}

.tsb-search-field--locked select {
    cursor: not-allowed;
}


/* 0.6.92 - Last Minute : les images remplissent entièrement leur cadre. */
.tsb-last-minute-card__image {
    background: #f8f4ed !important;
    height: 100% !important;
    min-height: 150px !important;
}

.tsb-last-minute-card__image img {
    background: #f8f4ed !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    width: 100% !important;
}

@media (min-width: 981px) {
    .tsb-last-minute-card__image {
        aspect-ratio: 16 / 11 !important;
        align-self: stretch !important;
    }
}

@media (max-width: 980px) {
    .tsb-last-minute-card__image {
        aspect-ratio: 16 / 10 !important;
        min-height: 180px !important;
    }
}

/* Navigation subtile sur l'image principale de la suite. */
.tsb-suite-gallery-arrow {
    align-items: center;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    background: rgba(255, 255, 255, .82);
    border: 1px solid rgba(255, 255, 255, .65);
    border-radius: 999px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, .16);
    color: var(--tsb-green);
    cursor: pointer;
    display: flex;
    font-size: 34px;
    height: 48px;
    justify-content: center;
    line-height: 1;
    opacity: .78;
    padding: 0 0 4px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    transition: opacity .2s ease, transform .2s ease, background .2s ease, box-shadow .2s ease;
    width: 48px;
    z-index: 6;
}

.tsb-suite-gallery-arrow--prev {
    left: 18px;
}

.tsb-suite-gallery-arrow--next {
    right: 18px;
}

.tsb-suite__main-image:hover .tsb-suite-gallery-arrow,
.tsb-suite-gallery-arrow:focus-visible {
    opacity: 1;
}

.tsb-suite-gallery-arrow:hover,
.tsb-suite-gallery-arrow:focus-visible {
    background: #fff;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .22);
    outline: none;
    transform: translateY(-50%) scale(1.04);
}

.tsb-suite-gallery-arrow[hidden] {
    display: none !important;
}

@media (max-width: 980px) {
    .tsb-suite-gallery-arrow {
        height: 42px;
        width: 42px;
        font-size: 30px;
        opacity: .92;
    }

    .tsb-suite-gallery-arrow--prev {
        left: 10px;
    }

    .tsb-suite-gallery-arrow--next {
        right: 10px;
    }
}


/* 0.6.40 - Galerie/date : pas de doublon vidéo si elle est déjà en hero, et suppression du petit soulignement des dates indisponibles. */
.tsb-inline-calendar__day.is-blocked::after,
.tsb-search .tsb-search-calendar__day.is-blocked:not(.is-selected)::after {
    content: none !important;
    display: none !important;
}

/* 0.6.41 - Dates complètes : visibles mais non cliquables. */
.tsb-inline-calendar__day.is-blocked,
.tsb-search .tsb-search-calendar__day.is-blocked:not(.is-selected) {
    cursor: not-allowed !important;
}


/* 0.6.42 - Mobile : les images de galerie changent l'image principale sans ouvrir la lightbox. */
@media (max-width: 767px) {
    .tsb-suite__main img[data-tsb-main-image],
    .tsb-suite__thumbs [data-image] {
        cursor: default !important;
    }
}


/* 0.6.43 - Mobile : respiration haute du panneau de résultats recherche. */
@media (max-width: 640px) {
    .tsb-search-results-modal {
        align-items: flex-start !important;
        padding: max(28px, env(safe-area-inset-top)) 10px 18px !important;
    }

    .tsb-search-results-modal .tsb-modal__dialog {
        margin: 18px auto 0 !important;
        max-height: calc(100dvh - 54px) !important;
        overflow: auto !important;
        position: relative !important;
    }

    .tsb-search-results-modal__content {
        padding-top: 46px !important;
    }

    .tsb-search-results-modal .tsb-modal__close {
        right: 14px !important;
        top: 14px !important;
        z-index: 20 !important;
    }

    .tsb-search-results-modal__content > .tsb-kicker:first-child,
    .tsb-search-results-modal__content > h3:first-child {
        margin-top: 0 !important;
    }
}

/* v0.6.45 - Last Minute : phrase courte sur une ligne. */
.tsb-search.tsb-search--premium .tsb-search__last-minute small {
    white-space: nowrap;
}

@media (max-width: 420px) {
    .tsb-search.tsb-search--premium .tsb-search__last-minute small {
        white-space: normal;
    }
}


/* v0.6.47 - Widget mobile : réassurances masquées et icône Expérience privatisée ajustée. */
@media (max-width: 640px) {
    .tsb-search.tsb-search--premium .tsb-search__trust {
        display: none !important;
    }
}

/* v0.6.50 - Compatibilité thème : suppression de l’espace bas imposé par .main-header. */
.main-header {
    margin-bottom: 0 !important;
}


/* v0.6.60 - Correction z-index du calendrier du widget de recherche.
   Le widget reste sous les menus sticky du thème. Seul le calendrier en portail passe au-dessus du contenu. */
.tsb-search,
.tsb-search.tsb-search--premium {
    position: relative !important;
    z-index: 1 !important;
    overflow: visible !important;
    isolation: isolate;
}

.tsb-search.tsb-search--premium .tsb-search__header,
.tsb-search.tsb-search--premium .tsb-search__form,
.tsb-search.tsb-search--premium .tsb-search__trust,
.tsb-search.tsb-search--premium .tsb-search__results {
    position: relative;
}

.tsb-search.tsb-search--premium .tsb-search__header {
    z-index: 5;
}

.tsb-search.tsb-search--premium .tsb-search__form {
    z-index: 60;
}

.tsb-search.tsb-search--premium .tsb-search__trust,
.tsb-search.tsb-search--premium .tsb-search__results {
    z-index: 1;
}

.tsb-search-date-wrap,
.tsb-search.tsb-search--premium .tsb-search-date-wrap {
    position: relative !important;
    z-index: 99995 !important;
    overflow: visible !important;
}

.tsb-search-calendar,
.tsb-search.tsb-search--premium .tsb-search-calendar {
    z-index: 2147483000 !important;
    isolation: isolate;
}

.tsb-search-calendar *,
.tsb-search.tsb-search--premium .tsb-search-calendar * {
    position: relative;
    z-index: 1;
}


/* v0.6.61 - Calendrier recherche en portail body : évite le clipping par les sections du thème. */
body > .tsb-search-calendar--portal,
body > .tsb-search-calendar.tsb-search-calendar--portal {
    box-sizing: border-box !important;
    left: auto;
    margin: 0 !important;
    max-height: calc(100vh - 28px) !important;
    overflow-y: auto !important;
    position: fixed !important;
    top: auto;
    transform: none !important;
    z-index: 2147483647 !important;
}

@media (max-width: 760px) {
    body > .tsb-search-calendar--portal,
    body > .tsb-search-calendar.tsb-search-calendar--portal {
        left: auto;
        transform: none !important;
        width: calc(100vw - 28px) !important;
    }
}


/* v0.6.62 - Le calendrier déplacé dans le body conserve exactement le style premium du widget. */
body > .tsb-search-calendar--portal .tsb-search-calendar__nav button,
body > .tsb-search-calendar.tsb-search-calendar--portal .tsb-search-calendar__nav button {
    align-items: center !important;
    background: #fff !important;
    border: 1px solid var(--tsb-border) !important;
    border-radius: 999px !important;
    color: var(--tsb-green) !important;
    cursor: pointer !important;
    display: flex !important;
    font-size: 26px !important;
    font-weight: 700 !important;
    height: 44px !important;
    justify-content: center !important;
    line-height: 1 !important;
    min-height: 0 !important;
    padding: 0 !important;
    width: 44px !important;
}

body > .tsb-search-calendar--portal .tsb-search-calendar__nav button:hover,
body > .tsb-search-calendar.tsb-search-calendar--portal .tsb-search-calendar__nav button:hover {
    background: var(--tsb-green-soft) !important;
    border-color: rgba(18,63,49,.22) !important;
}

body > .tsb-search-calendar--portal .tsb-search-calendar__day,
body > .tsb-search-calendar.tsb-search-calendar--portal .tsb-search-calendar__day {
    align-items: center !important;
    appearance: none !important;
    background: #fff !important;
    border: 1px solid transparent !important;
    border-radius: 12px !important;
    box-shadow: none !important;
    color: var(--tsb-text) !important;
    cursor: pointer;
    display: flex !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    height: 48px !important;
    justify-content: center !important;
    line-height: 1 !important;
    min-height: 0 !important;
    padding: 0 !important;
    position: relative;
    text-align: center !important;
    width: 100% !important;
}

body > .tsb-search-calendar--portal .tsb-search-calendar__day:hover:not(:disabled),
body > .tsb-search-calendar.tsb-search-calendar--portal .tsb-search-calendar__day:hover:not(:disabled) {
    background: var(--tsb-green-soft) !important;
    border-color: rgba(18,63,49,.22) !important;
    color: var(--tsb-green) !important;
}

body > .tsb-search-calendar--portal .tsb-search-calendar__day.is-selected,
body > .tsb-search-calendar.tsb-search-calendar--portal .tsb-search-calendar__day.is-selected {
    background: var(--tsb-green) !important;
    border-color: var(--tsb-green) !important;
    color: #fff !important;
}

body > .tsb-search-calendar--portal .tsb-search-calendar__day.is-blocked:not(.is-selected),
body > .tsb-search-calendar.tsb-search-calendar--portal .tsb-search-calendar__day.is-blocked:not(.is-selected) {
    background: #ffe5e5 !important;
    border-color: #ffc8c8 !important;
    color: #a32020 !important;
}

body > .tsb-search-calendar--portal .tsb-search-calendar__day.is-blocked:not(.is-selected)::after,
body > .tsb-search-calendar.tsb-search-calendar--portal .tsb-search-calendar__day.is-blocked:not(.is-selected)::after {
    background: currentColor;
    border-radius: 999px;
    bottom: 6px;
    content: "";
    height: 3px;
    left: 50%;
    opacity: .72;
    position: absolute;
    transform: translateX(-50%);
    width: 14px;
}

body > .tsb-search-calendar--portal .tsb-search-calendar__day.is-muted,
body > .tsb-search-calendar.tsb-search-calendar--portal .tsb-search-calendar__day.is-muted {
    color: #b8b3aa !important;
}

body > .tsb-search-calendar--portal .tsb-search-calendar__day.is-disabled,
body > .tsb-search-calendar.tsb-search-calendar--portal .tsb-search-calendar__day.is-disabled {
    background: #f6f3ef !important;
    border-color: transparent !important;
    color: #b8b3aa !important;
    cursor: not-allowed;
    opacity: .36;
}

body > .tsb-search-calendar--portal .tsb-search-calendar__day.is-disabled::after,
body > .tsb-search-calendar.tsb-search-calendar--portal .tsb-search-calendar__day.is-disabled::after {
    display: none !important;
}

@media (max-width: 760px) {
    body > .tsb-search-calendar--portal .tsb-search-calendar__day,
    body > .tsb-search-calendar.tsb-search-calendar--portal .tsb-search-calendar__day {
        height: 42px !important;
    }
}


/* v0.6.64 - Widget recherche : ombre beaucoup plus légère sur le bloc principal. */
.tsb-search.tsb-search--premium {
    box-shadow: 0 10px 28px rgba(17, 17, 17, .07) !important;
}



/* v0.6.65 - Le widget ne doit jamais recouvrir le menu sticky du thème. */
.tsb-search,
.tsb-search.tsb-search--premium {
    z-index: 1 !important;
}
.site-header,
.main-header,
.header-wrapper,
.sticky-header,
.fixed-header,
.header-main,
.navbar,
.navbar-wrapper,
.masthead,
#header,
#masthead {
    z-index: 1000 !important;
}


/* v0.6.66 - Centrage visuel de la croix de fermeture dans les modales. */
.tsb-modal__close {
    text-indent: 1px;
}


/* v0.6.68 - Pages suites : placer le contenu éditorial sous le module + masquer le footer article du thème. */
.tsb-suite-content {
    max-width: 1380px;
    margin: 24px auto 44px;
    width: 100%;
}

@media (max-width: 1440px) {
    .tsb-suite-content {
        padding-left: 15px;
        padding-right: 15px;
    }
}

body.single-tsb_suite.tsb-hide-theme-template .single-post-navigation,
body.single-tsb_suite.tsb-hide-theme-template .post-navigation,
body.single-tsb_suite.tsb-hide-theme-template .navigation.post-navigation,
body.single-tsb_suite.tsb-hide-theme-template .posts-navigation,
body.single-tsb_suite.tsb-hide-theme-template .post-navigation-wrapper,
body.single-tsb_suite.tsb-hide-theme-template .single-navigation,
body.single-tsb_suite.tsb-hide-theme-template .post-nav,
body.single-tsb_suite.tsb-hide-theme-template .post-next-prev,
body.single-tsb_suite.tsb-hide-theme-template .prev-next-posts,
body.single-tsb_suite.tsb-hide-theme-template .previous-next,
body.single-tsb_suite.tsb-hide-theme-template .posts-nav-btn,
body.single-tsb_suite.tsb-hide-theme-template .etheme-post-navigation,
body.single-tsb_suite.tsb-hide-theme-template .post-share,
body.single-tsb_suite.tsb-hide-theme-template .share-post,
body.single-tsb_suite.tsb-hide-theme-template .share-buttons,
body.single-tsb_suite.tsb-hide-theme-template .social-share,
body.single-tsb_suite.tsb-hide-theme-template .socials-share,
body.single-tsb_suite.tsb-hide-theme-template .article-share,
body.single-tsb_suite.tsb-hide-theme-template .entry-share,
body.single-tsb_suite.tsb-hide-theme-template .et_social_inline,
body.single-tsb_suite.tsb-hide-theme-template .single-post-footer,
body.single-tsb_suite.tsb-hide-theme-template article .entry-footer,
body.single-tsb_suite.tsb-hide-theme-template article .post-footer {
    display: none !important;
}


/* v0.6.69 - Maillage interne : autres suites sous le contenu éditorial. */
.tsb-related-suites {
    background: linear-gradient(180deg, rgba(250, 247, 241, 0.72) 0%, rgba(255, 255, 255, 0) 100%);
    border-radius: 28px;
    max-width: 1380px;
    margin: 58px auto 78px;
    padding: 54px 34px 6px;
    position: relative;
    width: 100%;
}

.tsb-related-suites::before {
    background: linear-gradient(90deg, rgba(213, 199, 177, 0), rgba(179, 148, 97, 0.54), rgba(213, 199, 177, 0));
    content: "";
    height: 1px;
    left: 50%;
    position: absolute;
    top: 0;
    transform: translateX(-50%);
    width: min(260px, 46vw);
}

.tsb-related-suites__head {
    margin: 0 auto 28px;
    max-width: 760px;
    text-align: center;
}

.tsb-related-suites__head .tsb-kicker {
    color: var(--tsb-gold);
    font-size: 14px;
    letter-spacing: .12em;
    margin-bottom: 12px;
}

.tsb-related-suites__head h2 {
    color: var(--tsb-green);
    font-family: inherit;
    font-size: clamp(36px, 3.5vw, 56px);
    font-weight: 500;
    line-height: 1.02;
    margin: 0;
}

.tsb-related-suites__grid {
    display: grid;
    gap: 22px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tsb-related-suite-card {
    background: var(--tsb-surface);
    border: 1px solid var(--tsb-border);
    border-radius: 18px;
    box-shadow: 0 18px 45px rgba(22, 30, 28, 0.06);
    overflow: hidden;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.tsb-related-suite-card:hover {
    border-color: rgba(165, 121, 60, 0.36);
    box-shadow: 0 22px 55px rgba(22, 30, 28, 0.10);
    transform: translateY(-2px);
}

.tsb-related-suite-card__image {
    aspect-ratio: 16 / 10;
    background: #eee7dc;
    display: block;
    overflow: hidden;
    text-decoration: none;
}

.tsb-related-suite-card__image img {
    display: block;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
    width: 100%;
}

.tsb-related-suite-card:hover .tsb-related-suite-card__image img {
    transform: scale(1.035);
}

.tsb-related-suite-card__image span {
    align-items: center;
    color: var(--tsb-muted);
    display: flex;
    height: 100%;
    justify-content: center;
}

.tsb-related-suite-card__body {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 20px;
}

.tsb-related-suite-card__body h3 {
    font-size: clamp(22px, 1.8vw, 30px);
    font-weight: 500;
    line-height: 1.05;
    margin: 0;
}

.tsb-related-suite-card__body h3 a {
    color: var(--tsb-green);
    text-decoration: none;
}

.tsb-related-suite-card__amenities {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    min-height: 28px;
}

.tsb-related-suite-card__amenities span {
    align-items: center;
    background: #edf6f1;
    border: 1px solid #d4e7dd;
    border-radius: 999px;
    color: var(--tsb-green);
    display: inline-flex;
    font-size: 12px;
    font-weight: 700;
    gap: 5px;
    line-height: 1;
    padding: 7px 9px;
}

.tsb-related-suite-card__amenities em {
    font-style: normal;
}

.tsb-related-suite-card__bottom {
    align-items: center;
    border-top: 1px solid var(--tsb-border);
    display: flex;
    gap: 14px;
    justify-content: space-between;
    margin-top: 2px;
    padding-top: 16px;
}

.tsb-related-suite-card__bottom p {
    margin: 0;
}

.tsb-related-suite-card__bottom small {
    color: var(--tsb-muted);
    display: block;
    font-size: 11px;
    margin-bottom: 2px;
    text-transform: uppercase;
}

.tsb-related-suite-card__bottom strong {
    color: var(--tsb-gold);
    font-size: 20px;
}

.tsb-related-suite-card__cta {
    align-items: center;
    background: var(--tsb-green);
    border-radius: 999px;
    color: #fff !important;
    display: inline-flex;
    font-size: 13px;
    font-weight: 800;
    justify-content: center;
    min-height: 42px;
    padding: 0 18px;
    text-decoration: none !important;
    white-space: nowrap;
}

.tsb-related-suite-card__cta:hover {
    color: #fff !important;
    opacity: .92;
}

@media (max-width: 1440px) {
    .tsb-related-suites {
        padding-left: 24px;
        padding-right: 24px;
    }
}

@media (max-width: 980px) {
    .tsb-related-suites {
        border-radius: 22px;
        margin-top: 42px;
        padding-top: 44px;
    }

    .tsb-related-suites__grid {
        grid-template-columns: 1fr;
    }

    .tsb-related-suite-card {
        display: grid;
        grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    }

    .tsb-related-suite-card__image {
        aspect-ratio: auto;
        height: 100%;
    }
}

@media (max-width: 640px) {
    .tsb-related-suites {
        margin-bottom: 46px;
        padding: 38px 15px 0;
    }

    .tsb-related-suites__head h2 {
        font-size: clamp(32px, 10vw, 42px);
    }

    .tsb-related-suite-card {
        display: block;
    }

    .tsb-related-suite-card__image {
        aspect-ratio: 16 / 10;
    }

    .tsb-related-suite-card__bottom {
        align-items: stretch;
        flex-direction: column;
    }

    .tsb-related-suite-card__cta {
        width: 100%;
    }
}


/* v0.6.71 - Autres suites : fond pleine largeur et créneaux page suite en 2x2 pour 4 créneaux. */
.tsb-related-suites {
    background: #fbf8f2 !important;
    border-radius: 0 !important;
    box-shadow: 0 0 0 100vmax #fbf8f2 !important;
    clip-path: inset(0 -100vmax) !important;
    max-width: 1240px !important;
    padding-bottom: 64px !important;
}

.tsb-related-suites__grid {
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 1120px !important;
}

.tsb-suite .tsb-slots.tsb-slots--count-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

@media (max-width: 640px) {
    .tsb-related-suites {
        box-shadow: 0 0 0 100vmax #fbf8f2 !important;
        padding-bottom: 46px !important;
    }
}


/* v0.6.72 - Page suite : la section "Nos autres suites" colle au footer. */
body.single-tsb_suite.tsb-hide-theme-template .tsb-related-suites {
    margin-bottom: 0 !important;
}

body.single-tsb_suite.tsb-hide-theme-template .site-content,
body.single-tsb_suite.tsb-hide-theme-template #content,
body.single-tsb_suite.tsb-hide-theme-template .content-page,
body.single-tsb_suite.tsb-hide-theme-template .page-content,
body.single-tsb_suite.tsb-hide-theme-template .single-page-content,
body.single-tsb_suite.tsb-hide-theme-template .main-content,
body.single-tsb_suite.tsb-hide-theme-template .site-main {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

/* v0.6.73 - Page suite : supprimer le blanc résiduel entre "Nos autres suites" et le footer. */
body.single-tsb_suite.tsb-hide-theme-template .liner-continer,
body.single-tsb_suite.tsb-hide-theme-template .single-post-social,
body.single-tsb_suite.tsb-hide-theme-template .single-post-navigation,
body.single-tsb_suite.tsb-hide-theme-template #comments,
body.single-tsb_suite.tsb-hide-theme-template .comments-area {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.single-tsb_suite.tsb-hide-theme-template .main-page-wrapper,
body.single-tsb_suite.tsb-hide-theme-template .main-page-wrapper > .container,
body.single-tsb_suite.tsb-hide-theme-template .main-page-wrapper > .container > .row,
body.single-tsb_suite.tsb-hide-theme-template .site-content,
body.single-tsb_suite.tsb-hide-theme-template article.tsb_suite,
body.single-tsb_suite.tsb-hide-theme-template article.tsb_suite > .entry-content {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

body.single-tsb_suite.tsb-hide-theme-template .tsb-related-suites {
    margin-bottom: 0 !important;
}

body.single-tsb_suite.tsb-hide-theme-template .footer-container {
    margin-top: 0 !important;
}


/* v0.6.74 - Cartouche premium sur le hero vidéo pour masquer les contrôles natifs au chargement. */
.tsb-suite-video-hero__label {
    align-items: center;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    background: rgba(255, 252, 246, 0.92);
    border: 1px solid rgba(175, 141, 69, 0.38);
    border-radius: 22px;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.18);
    display: flex;
    flex-direction: column;
    gap: 8px;
    left: 50%;
    min-width: min(420px, calc(100vw - 44px));
    padding: 24px 34px 26px;
    pointer-events: none;
    position: absolute;
    text-align: center;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 6;
}

.tsb-suite-video-hero__eyebrow {
    color: #af8d45;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .18em;
    line-height: 1.1;
    text-transform: uppercase;
}

.tsb-suite-video-hero__title {
    color: #153f37;
    display: block;
    font-family: Lora, Georgia, serif;
    font-size: clamp(28px, 3.2vw, 48px);
    font-weight: 500;
    letter-spacing: .015em;
    line-height: 1.04;
}

@media (max-width: 980px) {
    .tsb-suite-video-hero__label {
        display: none !important;
    }
}

/* v0.6.75 - Mobile : autres suites en vrai carrousel, 1 carte visible à la fois. */
@media (max-width: 640px) {
    .tsb-related-suites {
        overflow: hidden !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .tsb-related-suites__head {
        padding-left: 22px !important;
        padding-right: 22px !important;
    }

    .tsb-related-suites__grid {
        display: grid !important;
        gap: 16px !important;
        grid-auto-columns: min(82vw, 330px) !important;
        grid-auto-flow: column !important;
        grid-template-columns: none !important;
        margin: 0 !important;
        max-width: none !important;
        overflow-x: auto !important;
        padding: 0 22px 18px !important;
        scroll-padding-left: 22px !important;
        scroll-snap-type: x mandatory !important;
        scrollbar-width: none !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .tsb-related-suites__grid::-webkit-scrollbar {
        display: none !important;
    }

    .tsb-related-suite-card {
        display: flex !important;
        flex-direction: column !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: hidden !important;
        scroll-snap-align: center !important;
        width: auto !important;
    }

    .tsb-related-suite-card__image {
        aspect-ratio: 16 / 10 !important;
        flex: 0 0 auto !important;
        height: auto !important;
        min-height: 0 !important;
        width: 100% !important;
    }

    .tsb-related-suite-card__image img {
        display: block !important;
        height: 100% !important;
        max-height: none !important;
        object-fit: cover !important;
        width: 100% !important;
    }

    .tsb-related-suite-card__body {
        display: flex !important;
        flex: 1 1 auto !important;
        flex-direction: column !important;
        padding: 18px !important;
    }

    .tsb-related-suite-card__bottom {
        align-items: center !important;
        flex-direction: row !important;
        gap: 12px !important;
        justify-content: space-between !important;
    }

    .tsb-related-suite-card__cta {
        min-height: 40px !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
        width: auto !important;
    }
}


/* v0.6.76 - Mobile : autres suites, une seule carte visible avec flèches. */
.tsb-related-suites__carousel {
    position: relative;
}

.tsb-related-suites__arrow {
    align-items: center;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(18, 63, 49, 0.12);
    border-radius: 999px;
    box-shadow: 0 12px 28px rgba(22, 30, 28, 0.14);
    color: var(--tsb-green);
    cursor: pointer;
    display: none;
    font-size: 30px;
    font-weight: 400;
    height: 44px;
    justify-content: center;
    line-height: 1;
    padding: 0 0 3px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
    width: 44px;
    z-index: 4;
}

.tsb-related-suites__arrow:hover {
    background: #fff;
    box-shadow: 0 16px 34px rgba(22, 30, 28, 0.18);
    transform: translateY(-50%) scale(1.04);
}

.tsb-related-suites__arrow--prev {
    left: 8px;
}

.tsb-related-suites__arrow--next {
    right: 8px;
}

@media (max-width: 640px) {
    .tsb-related-suites__carousel {
        margin: 0 auto !important;
        max-width: 380px !important;
        width: 100% !important;
    }

    .tsb-related-suites__grid {
        grid-auto-columns: calc(100% - 44px) !important;
        padding-left: 22px !important;
        padding-right: 22px !important;
        scroll-snap-type: x mandatory !important;
    }

    .tsb-related-suite-card {
        scroll-snap-align: center !important;
    }

    .tsb-related-suites__arrow {
        display: flex !important;
    }

    .tsb-related-suites__arrow--prev {
        left: 2px;
    }

    .tsb-related-suites__arrow--next {
        right: 2px;
    }
}


/* v0.6.77 - Mobile : aide discrète pour comprendre qu'il y a d'autres suites dans les résultats. */
.tsb-search-results-modal__scroll-hint {
    display: none;
}

@media (max-width: 640px) {
    .tsb-search-results-modal__scroll-hint:not([hidden]) {
        align-items: center;
        background: rgba(232, 241, 236, 0.9);
        border: 1px solid rgba(18, 63, 49, 0.10);
        border-radius: 999px;
        color: var(--tsb-green);
        display: inline-flex;
        font-size: 12px;
        font-weight: 800;
        gap: 6px;
        margin: 0 0 14px;
        padding: 8px 12px;
    }

    .tsb-search-results-modal__scroll-hint:not([hidden])::after {
        content: "↓";
        font-size: 14px;
        line-height: 1;
        transform: translateY(-1px);
    }

    .tsb-search-results-modal .tsb-modal__dialog::after {
        background: linear-gradient(to top, rgba(255,255,255,0.96), rgba(255,255,255,0));
        bottom: 0;
        content: "";
        height: 34px;
        left: 0;
        pointer-events: none;
        position: sticky;
        right: 0;
        z-index: 5;
        display: block;
        margin-top: -34px;
    }
}

.tsb-night-extensions {
    background: #fbf8f4;
    border: 1px solid var(--tsb-border);
    border-radius: 8px;
    margin: 0 0 16px;
    padding: 14px;
}

.tsb-night-extensions__title {
    color: var(--tsb-green);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
    margin: 0 0 10px;
    text-transform: uppercase;
}

.tsb-night-extension-list {
    display: grid;
    gap: 10px;
}

.tsb-night-extension {
    align-items: center;
    background: #fff;
    border: 1px solid #d8c7a4;
    border-radius: 8px;
    cursor: pointer;
    display: grid;
    gap: 10px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    padding: 12px;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.tsb-night-extension:hover {
    border-color: var(--tsb-gold);
    box-shadow: 0 8px 18px rgba(36, 36, 36, 0.07);
}

.tsb-night-extension input {
    margin: 0;
}

.tsb-night-extension strong,
.tsb-night-extension small {
    display: block;
}

.tsb-night-extension strong {
    color: var(--tsb-text);
    font-size: 14px;
    margin-bottom: 3px;
}

.tsb-night-extension small {
    color: var(--tsb-muted);
    font-size: 12px;
    line-height: 1.35;
}

.tsb-night-extension em {
    color: var(--tsb-gold);
    font-style: normal;
    font-weight: 800;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .tsb-night-extension {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .tsb-night-extension em {
        grid-column: 2;
    }
}

/* v0.6.96 - Produits WooCommerce intégrés dans le module Last Minute. */
.tsb-last-minute-card--product .tsb-last-minute-card__body h3 {
    font-size: clamp(18px, 1.7vw, 24px);
    line-height: 1.25;
    margin-bottom: 8px;
}

.tsb-last-minute-card--product .tsb-result__features {
    margin-bottom: 12px;
}

/* v0.6.97 - Les produits Last Minute gardent le même fond clair que les créneaux des suites. */
.tsb-last-minute-slot--product {
    background: #fff;
    border-color: var(--tsb-border);
    color: var(--tsb-text);
    cursor: pointer;
    text-decoration: none;
}

.tsb-last-minute-slot--product:hover,
.tsb-last-minute-slot--product:focus {
    background: #fff;
    border-color: var(--tsb-border);
    color: var(--tsb-text);
    text-decoration: none;
}

.tsb-last-minute-slot--product b {
    color: var(--tsb-gold) !important;
}

.tsb-last-minute-slot--product del,
.tsb-last-minute-slot--product small,
.tsb-last-minute-slot--product strong {
    color: inherit;
}

.tsb-last-minute-slot--product small {
    color: var(--tsb-muted);
}

.tsb-last-minute-card__cta a.tsb-last-minute-product-button {
    align-items: center;
    background: var(--tsb-green);
    border: 0;
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-size: 12px;
    font-weight: 800;
    justify-content: center;
    line-height: 1.2;
    min-height: 52px;
    padding: 11px 18px;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    width: 100%;
}

.tsb-last-minute-card__cta a.tsb-last-minute-product-button:hover,
.tsb-last-minute-card__cta a.tsb-last-minute-product-button:focus {
    color: #fff;
    opacity: .92;
    text-decoration: none;
}

/* Salon by Wendy — identité et adaptation du moteur historique */
.tsb-suite,
.tsb-search,
.tsb-modal,
.tsb-last-minute,
.tsb-related-suites {
    --tsb-wendy-primary: var(--wendy-primary, #6f5a51);
    --tsb-wendy-accent: var(--wendy-accent, #d5b690);
    --tsb-wendy-bg: var(--wendy-background, #fbf6ed);
    font-family: inherit;
}
.tsb-suite button,
.tsb-suite input,
.tsb-suite select,
.tsb-search button,
.tsb-search input,
.tsb-search select,
.tsb-modal button,
.tsb-modal input,
.tsb-modal select { font-family: inherit; }
.tsb-primary,
.tsb-search__submit,
.tsb-search [data-tsb-search-reserve],
.tsb-result__cta button,
.tsb-last-minute-card__footer button { background: var(--tsb-wendy-primary) !important; border-color: var(--tsb-wendy-primary) !important; }
.tsb-primary:hover,
.tsb-search__submit:hover,
.tsb-result__cta button:hover { filter: brightness(.92); }
.tsb-step-number,
.tsb-kicker,
.tsb-total strong,
.tsb-summary__total strong,
.tsb-slot.is-selected,
.tsb-people-choices button.is-active { color: var(--tsb-wendy-primary); }
.tsb-slot.is-selected,
.tsb-people-choices button.is-active { border-color: var(--tsb-wendy-primary); }
.tsb-suite__panel,
.tsb-search--wendy,
.tsb-inclusions { background: var(--tsb-wendy-bg); }
.tsb-option__confirmation { color: var(--tsb-wendy-accent) !important; font-weight: 700; margin-top: 4px; }
.tsb-inclusions { border: 1px solid color-mix(in srgb, var(--tsb-wendy-primary) 18%, transparent); border-radius: 12px; margin-top: 14px; padding: 0 14px; }
.tsb-inclusions summary { color: var(--tsb-wendy-primary); cursor: pointer; font-weight: 700; padding: 13px 0; }
.tsb-inclusions ul { margin: 0 0 14px; padding-left: 20px; }
.tsb-inclusions li { margin: 5px 0; }
.tsb-search__form--wendy { grid-template-columns: minmax(240px, 1.55fr) minmax(190px, .8fr) auto; }
@media (max-width: 900px) { .tsb-search__form--wendy { grid-template-columns: 1fr; } }

.tsb-request-options-note{
    margin:14px 0 0;
    padding:12px 14px;
    border:1px solid color-mix(in srgb, var(--tsb-wendy-accent, #b66a2f) 32%, transparent);
    border-radius:10px;
    background:color-mix(in srgb, var(--tsb-wendy-bg, #fbf6ed) 82%, #fff);
    font-size:13px;
    line-height:1.55;
}

.tsb-slot__time{
    display:block;
    margin-top:3px;
    color:inherit;
    font-size:12px;
    font-style:normal;
    font-weight:500;
    opacity:.78;
}

/* ======================================================================
 * Salon by Wendy v1.3 — refonte premium de la fiche et du tunnel public
 * Conserve le moteur historique (calendrier, options, WooCommerce) tout en
 * laissant les polices globales Elementor/Purina piloter la typographie.
 * ====================================================================== */
.tsb-suite {
    --tsb-premium-green: var(--wendy-primary, #6f5a51);
    --tsb-premium-green-2: #173d2c;
    --tsb-premium-copper: var(--wendy-accent, #a8612d);
    --tsb-premium-cream: var(--wendy-background, #fbf6ed);
    --tsb-premium-paper: #fffdf9;
    --tsb-premium-line: color-mix(in srgb, var(--tsb-premium-green) 13%, #ded4c7);
    --tsb-premium-muted: #736c63;
    --tsb-premium-shadow: 0 24px 70px rgba(28, 37, 31, .11);
    align-items: start !important;
    display: grid !important;
    gap: clamp(28px, 3vw, 46px) !important;
    grid-template-columns: minmax(0, 1.06fr) minmax(520px, .94fr) !important;
    margin: clamp(28px, 4vw, 64px) auto !important;
    max-width: 1320px !important;
    padding: 0 !important;
    width: 100%;
}

body.single-tsb_suite .tsb-suite {
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    max-width: none !important;
    padding-left: clamp(18px, 4vw, 64px) !important;
    padding-right: clamp(18px, 4vw, 64px) !important;
    position: relative;
    width: 100vw !important;
}

.tsb-suite__gallery {
    min-width: 0;
    position: sticky;
    top: 28px;
}

.tsb-suite__main-image {
    aspect-ratio: auto !important;
    background: #d9d1c5 !important;
    border-radius: 28px !important;
    box-shadow: 0 26px 70px rgba(26, 36, 29, .12);
    height: clamp(570px, 48vw, 760px) !important;
    isolation: isolate;
    overflow: hidden;
    position: relative;
}

.tsb-suite__main-image::after {
    background: linear-gradient(180deg, transparent 68%, rgba(11, 28, 19, .15));
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 1;
}

.tsb-suite__main-image img,
.tsb-suite__main-video,
.tsb-suite__main-iframe {
    height: 100% !important;
    object-fit: cover !important;
    width: 100% !important;
}

.tsb-suite__thumbs {
    gap: 10px !important;
    grid-auto-columns: minmax(92px, 118px) !important;
    justify-content: start;
    margin-top: 14px !important;
    padding: 2px 2px 6px !important;
}

.tsb-suite__thumbs button {
    aspect-ratio: 1.3 / 1 !important;
    border: 2px solid transparent !important;
    border-radius: 14px !important;
    box-shadow: none !important;
    opacity: .72;
    transition: border-color .2s ease, opacity .2s ease, transform .2s ease;
}

.tsb-suite__thumbs button:hover,
.tsb-suite__thumbs button.is-active {
    border-color: var(--tsb-premium-copper) !important;
    opacity: 1;
    transform: translateY(-2px);
}

.tsb-suite-gallery-arrow {
    background: rgba(255,255,255,.92) !important;
    border: 0 !important;
    box-shadow: 0 10px 30px rgba(18, 29, 22, .16) !important;
    color: var(--tsb-premium-green) !important;
    height: 48px !important;
    width: 48px !important;
    z-index: 3 !important;
}

.tsb-suite__panel {
    background:
        radial-gradient(circle at 100% 0, rgba(181, 111, 55, .07), transparent 34%),
        var(--tsb-premium-cream) !important;
    border: 1px solid var(--tsb-premium-line) !important;
    border-radius: 30px !important;
    box-shadow: var(--tsb-premium-shadow) !important;
    min-width: 0;
    padding: clamp(28px, 3.2vw, 44px) !important;
    position: relative !important;
    top: auto !important;
}

.tsb-suite__panel-head {
    border-bottom: 1px solid var(--tsb-premium-line);
    margin-bottom: 28px;
    padding-bottom: 26px;
}

.tsb-suite__eyebrow {
    color: var(--tsb-premium-copper);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
    margin: 0 0 10px;
    text-transform: uppercase;
}

.tsb-suite__panel h2 {
    color: var(--tsb-premium-green) !important;
    font-family: var(--e-global-typography-primary-font-family, "Cormorant Garamond", Georgia, serif) !important;
    font-size: clamp(42px, 4.3vw, 64px) !important;
    font-weight: 500 !important;
    letter-spacing: -.035em;
    line-height: .98 !important;
    margin: 0 0 16px !important;
    text-wrap: balance;
}

.tsb-suite__intro {
    border: 0 !important;
    color: var(--tsb-premium-muted) !important;
    font-size: 16px;
    line-height: 1.65;
    margin: 0 !important;
    max-width: 52ch;
    padding: 0 !important;
}

.tsb-suite__highlights {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 18px;
}

.tsb-suite__highlights span {
    align-items: center;
    background: rgba(255,255,255,.72);
    border: 1px solid var(--tsb-premium-line);
    border-radius: 999px;
    color: var(--tsb-premium-green);
    display: inline-flex;
    font-size: 12px;
    font-weight: 750;
    gap: 7px;
    line-height: 1.25;
    padding: 8px 12px;
}

.tsb-suite__highlights span::before {
    background: var(--tsb-premium-copper);
    border-radius: 50%;
    content: "";
    height: 6px;
    width: 6px;
}

.tsb-suite .tsb-booking-step {
    display: grid !important;
    gap: 14px !important;
    grid-template-columns: 42px minmax(0, 1fr) !important;
    margin: 0 0 28px !important;
}

.tsb-suite .tsb-booking-step > div {
    display: block !important;
    min-width: 0;
}

.tsb-suite .tsb-step-number {
    align-items: center;
    background: var(--tsb-premium-green) !important;
    border: 1px solid var(--tsb-premium-green) !important;
    box-shadow: 0 7px 18px rgba(15, 43, 29, .18);
    color: #fff !important;
    display: inline-flex;
    font-size: 13px;
    height: 36px !important;
    justify-content: center;
    margin-top: 0;
    width: 36px !important;
}

.tsb-suite .tsb-booking-step label,
.tsb-suite .tsb-booking-step .tsb-step-title {
    color: var(--tsb-premium-green) !important;
    font-size: 15px;
    font-weight: 800 !important;
    grid-column: auto !important;
    letter-spacing: .01em;
    margin: 7px 0 13px !important;
}

.tsb-suite .tsb-booking-step .tsb-inline-calendar,
.tsb-suite .tsb-booking-step .tsb-slots,
.tsb-suite .tsb-booking-step .tsb-muted {
    grid-column: auto !important;
    margin-top: 0 !important;
}

.tsb-suite .tsb-inline-calendar {
    background: rgba(255,255,255,.78) !important;
    border: 1px solid var(--tsb-premium-line) !important;
    border-radius: 20px !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
    overflow: hidden;
    padding: 17px 18px 19px !important;
}

.tsb-suite .tsb-inline-calendar__nav {
    grid-template-columns: 40px 1fr 40px !important;
    margin-bottom: 10px !important;
}

.tsb-suite .tsb-inline-calendar__nav strong {
    color: var(--tsb-premium-green) !important;
    font-family: inherit;
    font-size: 14px !important;
    font-weight: 800 !important;
    text-transform: capitalize;
}

.tsb-suite .tsb-inline-calendar__nav button {
    background: #fff !important;
    border: 1px solid var(--tsb-premium-line) !important;
    color: var(--tsb-premium-green) !important;
    font-size: 22px !important;
    height: 38px !important;
    transition: background .2s ease, color .2s ease, transform .2s ease;
    width: 38px !important;
}

.tsb-suite .tsb-inline-calendar__nav button:hover {
    background: var(--tsb-premium-green) !important;
    color: #fff !important;
    transform: translateY(-1px);
}

.tsb-suite .tsb-inline-calendar__weekdays span {
    color: #8a837a !important;
    font-size: 10px !important;
    letter-spacing: .09em !important;
    padding: 8px 2px !important;
}

.tsb-suite .tsb-inline-calendar__day {
    aspect-ratio: 1 !important;
    background: transparent !important;
    border: 1px solid transparent !important;
    border-radius: 12px !important;
    color: #302f2c !important;
    font-size: 13px !important;
    font-weight: 650;
    margin: 2px auto !important;
    max-height: 42px !important;
    max-width: 42px !important;
    min-height: 37px !important;
    min-width: 37px !important;
    transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.tsb-suite .tsb-inline-calendar__day:hover:not(:disabled):not(.is-selected) {
    background: #fff !important;
    border-color: color-mix(in srgb, var(--tsb-premium-green) 25%, transparent) !important;
    color: var(--tsb-premium-green) !important;
    transform: translateY(-1px);
}

.tsb-suite .tsb-inline-calendar__day.is-selected,
.tsb-suite .tsb-inline-calendar__day.is-selected.is-blocked {
    background: var(--tsb-premium-green) !important;
    border-color: var(--tsb-premium-green) !important;
    box-shadow: 0 7px 16px rgba(15,43,29,.2);
    color: #fff !important;
}

.tsb-suite .tsb-inline-calendar__day.is-muted {
    color: #c6c0b7 !important;
}

.tsb-suite .tsb-inline-calendar__day.is-blocked,
.tsb-suite .tsb-inline-calendar__day.is-unavailable:not(.is-selected):not(.is-blocked),
.tsb-suite .tsb-inline-calendar__day.is-disabled {
    background: rgba(92, 83, 72, .055) !important;
    border-color: transparent !important;
    color: #b8b0a7 !important;
    cursor: not-allowed !important;
    font-weight: 550 !important;
    opacity: .76 !important;
    text-decoration: none !important;
}

.tsb-suite .tsb-inline-calendar__day.is-blocked::after {
    display: none !important;
}

.tsb-suite .tsb-slots,
.tsb-suite .tsb-slots.tsb-slots--count-1,
.tsb-suite .tsb-slots.tsb-slots--count-2,
.tsb-suite .tsb-slots.tsb-slots--count-3,
.tsb-suite .tsb-slots.tsb-slots--count-4 {
    display: grid !important;
    gap: 11px !important;
    grid-template-columns: 1fr !important;
}

.tsb-suite .tsb-slot {
    align-items: center !important;
    background: rgba(255,255,255,.78) !important;
    border: 1px solid var(--tsb-premium-line) !important;
    border-radius: 17px !important;
    box-shadow: none !important;
    color: var(--tsb-premium-green) !important;
    display: grid !important;
    gap: 8px 12px !important;
    grid-template-columns: minmax(0, 1fr) auto auto 25px !important;
    min-height: 92px !important;
    overflow: hidden;
    padding: 15px 16px !important;
    position: relative;
    text-align: left !important;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease, background .2s ease;
    width: 100%;
}

.tsb-suite .tsb-slot:hover:not(:disabled) {
    background: #fff !important;
    border-color: color-mix(in srgb, var(--tsb-premium-green) 40%, transparent) !important;
    box-shadow: 0 12px 28px rgba(30, 39, 33, .08) !important;
    transform: translateY(-2px);
}

.tsb-suite .tsb-slot__content {
    color: inherit !important;
    display: block !important;
    min-width: 0;
}

.tsb-suite .tsb-slot__content strong {
    color: inherit !important;
    display: block !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    margin: 0 0 4px !important;
    overflow-wrap: anywhere;
}

.tsb-suite .tsb-slot__time {
    color: var(--tsb-premium-copper) !important;
    display: block !important;
    font-size: 12px !important;
    font-style: normal !important;
    font-weight: 750 !important;
    margin: 0 0 4px !important;
    opacity: 1 !important;
}

.tsb-suite .tsb-slot__people {
    color: var(--tsb-premium-muted) !important;
    display: block !important;
    font-size: 11px !important;
    line-height: 1.35;
    margin: 0 !important;
}

.tsb-suite .tsb-slot__price {
    color: var(--tsb-premium-green) !important;
    display: block !important;
    font-family: var(--e-global-typography-primary-font-family, "Cormorant Garamond", Georgia, serif);
    font-size: 25px !important;
    font-weight: 650 !important;
    line-height: 1 !important;
    white-space: nowrap;
}

.tsb-suite .tsb-slot__price del {
    color: #9c958d !important;
    display: block;
    font-family: inherit;
    font-size: 11px;
    font-weight: 600;
    margin-bottom: 2px;
}

.tsb-suite .tsb-slot__price b {
    color: inherit !important;
    font-size: inherit !important;
}

.tsb-suite .tsb-slot__status {
    background: #edf4ef;
    border-radius: 999px;
    color: var(--tsb-premium-green) !important;
    display: inline-flex !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    justify-self: end;
    letter-spacing: .04em;
    margin: 0 !important;
    padding: 6px 9px;
    text-transform: uppercase;
    white-space: nowrap;
}

.tsb-suite .tsb-slot__check {
    align-items: center;
    background: var(--tsb-premium-green);
    border-radius: 50%;
    color: #fff !important;
    display: flex !important;
    font-size: 12px;
    height: 23px;
    justify-content: center;
    opacity: 0;
    transform: scale(.6);
    transition: opacity .18s ease, transform .18s ease;
    width: 23px;
}

.tsb-suite .tsb-slot.is-selected {
    background: var(--tsb-premium-green) !important;
    border-color: var(--tsb-premium-green) !important;
    box-shadow: 0 15px 34px rgba(15,43,29,.2) !important;
    color: #fff !important;
    transform: translateY(-1px);
}

.tsb-suite .tsb-slot.is-selected .tsb-slot__time,
.tsb-suite .tsb-slot.is-selected .tsb-slot__people,
.tsb-suite .tsb-slot.is-selected .tsb-slot__price,
.tsb-suite .tsb-slot.is-selected .tsb-slot__price *,
.tsb-suite .tsb-slot.is-selected .tsb-slot__content,
.tsb-suite .tsb-slot.is-selected .tsb-slot__content * {
    color: #fff !important;
}

.tsb-suite .tsb-slot.is-selected .tsb-slot__status {
    background: rgba(255,255,255,.16) !important;
    color: #fff !important;
}

.tsb-suite .tsb-slot.is-selected .tsb-slot__check {
    background: #fff !important;
    color: var(--tsb-premium-green) !important;
    opacity: 1;
    transform: scale(1);
}

.tsb-suite .tsb-slot:disabled {
    background: rgba(91, 83, 72, .055) !important;
    border-color: transparent !important;
    color: #a8a198 !important;
    cursor: not-allowed !important;
    opacity: .72 !important;
}

.tsb-suite .tsb-slot:disabled .tsb-slot__price,
.tsb-suite .tsb-slot:disabled .tsb-slot__time,
.tsb-suite .tsb-slot:disabled .tsb-slot__people {
    color: #a8a198 !important;
}

.tsb-suite .tsb-slot:disabled .tsb-slot__status {
    background: rgba(115,108,99,.09) !important;
    color: #8f887f !important;
}

.tsb-selection-hint {
    background: rgba(255,255,255,.58);
    border: 1px dashed color-mix(in srgb, var(--tsb-premium-green) 22%, transparent);
    border-radius: 15px;
    color: var(--tsb-premium-muted);
    font-size: 13px;
    line-height: 1.5;
    margin: 2px 0 0;
    padding: 13px 15px;
    text-align: center;
}

.tsb-suite.tsb-has-selection .tsb-selection-hint {
    display: none;
}

.tsb-suite:not(.tsb-has-selection) > .tsb-suite__panel .tsb-total,
.tsb-suite:not(.tsb-has-selection) > .tsb-suite__panel > [data-tsb-open-options],
.tsb-suite:not(.tsb-has-selection) > .tsb-suite__panel > .tsb-secure {
    display: none !important;
}

.tsb-suite .tsb-total {
    align-items: end !important;
    border-top: 1px solid var(--tsb-premium-line) !important;
    display: grid !important;
    gap: 2px 9px !important;
    grid-template-columns: 1fr auto auto !important;
    justify-content: stretch !important;
    margin: 27px 0 14px !important;
    padding-top: 22px !important;
}

.tsb-suite .tsb-total span {
    color: var(--tsb-premium-green);
    font-size: 13px;
    font-weight: 800;
    margin: 0 !important;
}

.tsb-suite .tsb-total strong {
    color: var(--tsb-premium-green) !important;
    font-family: var(--e-global-typography-primary-font-family, "Cormorant Garamond", Georgia, serif);
    font-size: 40px !important;
    font-weight: 600;
    line-height: .9;
}

.tsb-suite .tsb-total small {
    color: var(--tsb-premium-muted) !important;
    font-size: 10px;
    padding-bottom: 3px;
}

.tsb-suite > .tsb-suite__panel > .tsb-primary {
    background: var(--tsb-premium-green) !important;
    border: 1px solid var(--tsb-premium-green) !important;
    border-radius: 999px !important;
    box-shadow: 0 14px 30px rgba(15,43,29,.18);
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    letter-spacing: .045em;
    min-height: 56px !important;
    padding: 14px 22px !important;
    text-transform: uppercase;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.tsb-suite > .tsb-suite__panel > .tsb-primary:hover:not(:disabled) {
    background: var(--tsb-premium-green-2) !important;
    box-shadow: 0 18px 36px rgba(15,43,29,.24);
    filter: none !important;
    transform: translateY(-2px);
}

.tsb-suite .tsb-secure {
    color: var(--tsb-premium-muted) !important;
    font-size: 11px !important;
    margin: 11px 0 0 !important;
}

.tsb-suite .tsb-secure::before {
    color: var(--tsb-premium-green);
    content: "✓";
    font-weight: 900;
    margin-right: 6px;
}

.tsb-suite .tsb-inclusions {
    background: rgba(255,255,255,.56) !important;
    border: 1px solid var(--tsb-premium-line) !important;
    border-radius: 16px !important;
    margin-top: 18px !important;
    padding: 0 16px !important;
}

.tsb-suite .tsb-inclusions summary {
    color: var(--tsb-premium-green) !important;
    font-size: 13px;
    font-weight: 800 !important;
    list-style: none;
    padding: 15px 0 !important;
}

.tsb-suite .tsb-inclusions summary::-webkit-details-marker { display: none; }
.tsb-suite .tsb-inclusions summary::after {
    content: "+";
    float: right;
    font-size: 18px;
    font-weight: 500;
}
.tsb-suite .tsb-inclusions[open] summary::after { content: "−"; }
.tsb-suite .tsb-inclusions li {
    color: var(--tsb-premium-muted);
    font-size: 12px;
    line-height: 1.45;
    margin: 7px 0 !important;
}

.tsb-slots-empty {
    background: rgba(255,255,255,.58);
    border: 1px solid var(--tsb-premium-line);
    border-radius: 15px;
    margin: 0 !important;
    padding: 17px;
    text-align: center;
}

/* Fenêtre des petits plus */
.tsb-suite .tsb-modal__backdrop {
    backdrop-filter: blur(7px);
    background: rgba(8, 20, 13, .66) !important;
}

.tsb-suite .tsb-modal__dialog {
    background: var(--tsb-premium-paper) !important;
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 28px !important;
    box-shadow: 0 34px 100px rgba(0,0,0,.28) !important;
    max-height: min(820px, calc(100vh - 36px)) !important;
    max-width: 1160px !important;
}

.tsb-suite .tsb-modal__close {
    background: #fff !important;
    border: 1px solid var(--tsb-premium-line) !important;
    color: var(--tsb-premium-green) !important;
    height: 42px !important;
    right: 18px !important;
    top: 18px !important;
    width: 42px !important;
    z-index: 4;
}

.tsb-suite .tsb-modal__content {
    gap: 34px !important;
    grid-template-columns: minmax(0, 1fr) 360px !important;
    padding: clamp(28px, 4vw, 52px) !important;
}

.tsb-suite .tsb-modal .tsb-kicker {
    color: var(--tsb-premium-copper) !important;
    letter-spacing: .13em !important;
}

.tsb-suite .tsb-modal h3 {
    color: var(--tsb-premium-green) !important;
    font-family: var(--e-global-typography-primary-font-family, "Cormorant Garamond", Georgia, serif) !important;
    font-size: clamp(38px, 4vw, 54px) !important;
    font-weight: 500 !important;
    letter-spacing: -.025em;
    line-height: 1 !important;
    margin: 0 0 24px !important;
}

.tsb-suite .tsb-option-list {
    display: grid !important;
    gap: 12px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tsb-suite .tsb-option {
    align-items: center !important;
    background: #fff;
    border: 1px solid var(--tsb-premium-line) !important;
    border-radius: 17px !important;
    gap: 11px !important;
    grid-template-columns: auto 48px minmax(0,1fr) auto !important;
    min-height: 88px;
    padding: 13px !important;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.tsb-suite .tsb-option:hover {
    border-color: color-mix(in srgb, var(--tsb-premium-green) 42%, transparent) !important;
    box-shadow: 0 10px 24px rgba(30,39,33,.07);
    transform: translateY(-1px);
}

.tsb-suite .tsb-option:has(input:checked) {
    background: color-mix(in srgb, var(--tsb-premium-green) 5%, #fff);
    border-color: var(--tsb-premium-green) !important;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--tsb-premium-green) 10%, transparent);
}

.tsb-suite .tsb-option input {
    accent-color: var(--tsb-premium-green);
    height: 17px;
    width: 17px;
}

.tsb-suite .tsb-option img,
.tsb-suite .tsb-option__image {
    background: var(--tsb-premium-cream) !important;
    border-radius: 13px !important;
    height: 48px !important;
    position: relative;
    width: 48px !important;
}

.tsb-suite .tsb-option__image::after {
    align-items: center;
    color: var(--tsb-premium-copper);
    content: "+";
    display: flex;
    font-size: 22px;
    font-weight: 400;
    inset: 0;
    justify-content: center;
    position: absolute;
}

.tsb-suite .tsb-option strong {
    color: var(--tsb-premium-green);
    font-size: 13px;
    line-height: 1.3;
}

.tsb-suite .tsb-option small {
    font-size: 10.5px;
    line-height: 1.35;
}

.tsb-suite .tsb-option em {
    color: var(--tsb-premium-copper) !important;
    font-size: 13px;
    white-space: nowrap;
}

.tsb-suite .tsb-summary {
    align-self: start;
    background: var(--tsb-premium-cream) !important;
    border: 1px solid var(--tsb-premium-line) !important;
    border-radius: 22px !important;
    padding: 24px !important;
    position: sticky;
    top: 20px;
}

.tsb-suite .tsb-summary h4 {
    color: var(--tsb-premium-green);
    font-family: var(--e-global-typography-primary-font-family, "Cormorant Garamond", Georgia, serif);
    font-size: 27px;
    font-weight: 600;
}

.tsb-suite .tsb-summary dl {
    gap: 10px !important;
    grid-template-columns: 95px 1fr !important;
}

.tsb-suite .tsb-summary dt {
    color: var(--tsb-premium-muted) !important;
    font-size: 12px;
}

.tsb-suite .tsb-summary dd {
    color: var(--tsb-premium-green);
    font-size: 12px;
    font-weight: 700;
}

.tsb-suite .tsb-summary__total {
    border-color: var(--tsb-premium-line) !important;
}

.tsb-suite .tsb-summary__total strong {
    color: var(--tsb-premium-green) !important;
    font-family: var(--e-global-typography-primary-font-family, "Cormorant Garamond", Georgia, serif);
}

.tsb-suite .tsb-modal__actions .tsb-primary,
.tsb-suite .tsb-modal__actions .tsb-secondary {
    border-radius: 999px !important;
    min-height: 50px !important;
}

.tsb-suite .tsb-modal__actions .tsb-primary {
    background: var(--tsb-premium-green) !important;
}

.tsb-suite .tsb-modal__actions .tsb-secondary {
    background: #fff !important;
    border: 1px solid var(--tsb-premium-line) !important;
    color: var(--tsb-premium-green) !important;
}

.tsb-suite .tsb-request-options-note {
    background: var(--tsb-premium-cream) !important;
    border-color: var(--tsb-premium-line) !important;
    color: var(--tsb-premium-muted);
}

/* Tablettes : galerie au-dessus, moteur large et lisible. */
@media (max-width: 1120px) {
    .tsb-suite {
        grid-template-columns: 1fr !important;
        max-width: 900px !important;
    }

    body.single-tsb_suite .tsb-suite {
        max-width: none !important;
    }

    .tsb-suite__gallery {
        position: relative;
        top: auto;
    }

    .tsb-suite__main-image {
        height: clamp(440px, 70vw, 650px) !important;
    }

    .tsb-suite__panel {
        padding: clamp(28px, 5vw, 48px) !important;
    }
}

@media (max-width: 820px) {
    .tsb-suite .tsb-modal__content {
        grid-template-columns: 1fr !important;
    }

    .tsb-suite .tsb-summary {
        position: static;
    }
}

@media (max-width: 640px) {
    .tsb-suite {
        gap: 18px !important;
        margin: 18px auto 36px !important;
    }

    body.single-tsb_suite .tsb-suite {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .tsb-suite__main-image {
        border-radius: 20px !important;
        height: min(72vh, 480px) !important;
    }

    .tsb-suite__thumbs {
        grid-auto-columns: 80px !important;
    }

    .tsb-suite__panel {
        border-radius: 22px !important;
        padding: 23px 18px 24px !important;
    }

    .tsb-suite__panel h2 {
        font-size: 43px !important;
    }

    .tsb-suite__highlights {
        display: grid;
        grid-template-columns: 1fr;
    }

    .tsb-suite .tsb-booking-step {
        gap: 9px !important;
        grid-template-columns: 34px minmax(0,1fr) !important;
        margin-bottom: 24px !important;
    }

    .tsb-suite .tsb-step-number {
        height: 31px !important;
        width: 31px !important;
    }

    .tsb-suite .tsb-inline-calendar {
        border-radius: 17px !important;
        padding: 13px 10px 14px !important;
    }

    .tsb-suite .tsb-inline-calendar__day {
        border-radius: 10px !important;
        font-size: 12px !important;
        min-height: 33px !important;
        min-width: 33px !important;
    }

    .tsb-suite .tsb-slot {
        gap: 8px 9px !important;
        grid-template-columns: minmax(0, 1fr) auto 22px !important;
        padding: 14px !important;
    }

    .tsb-suite .tsb-slot__status {
        display: none !important;
    }

    .tsb-suite .tsb-slot__price {
        font-size: 23px !important;
    }

    .tsb-suite .tsb-slot__people {
        font-size: 10px !important;
    }

    .tsb-suite .tsb-modal {
        align-items: flex-end !important;
        padding: 8px !important;
    }

    .tsb-suite .tsb-modal__dialog {
        border-radius: 24px 24px 18px 18px !important;
        max-height: calc(100dvh - 16px) !important;
    }

    .tsb-suite .tsb-modal__content {
        padding: 50px 18px 22px !important;
    }

    .tsb-suite .tsb-option-list {
        grid-template-columns: 1fr !important;
    }

    .tsb-suite .tsb-option {
        grid-template-columns: auto 44px minmax(0,1fr) auto !important;
    }
}

/* =========================================================
 * Salon by Wendy 1.4 — module de réservation progressif
 * ======================================================= */
:root {
    --wendy-primary: #6f5a51;
    --wendy-primary-2: #59463f;
    --wendy-accent: #d5b690;
    --wendy-ivory: #fffdfb;
    --wendy-cream: #f7efe5;
    --wendy-line: #e2d3c4;
    --wendy-muted: #7b6b63;
    --wendy-ink: #382e29;
    --wendy-radius: 22px;
    --wendy-shadow: 0 18px 55px rgba(47, 35, 20, .09);
}

.wendy-booking,
.wendy-home-booking,
.wendy-benefits {
    box-sizing: border-box;
    color: var(--wendy-ink);
    font-family: inherit;
}

.wendy-booking *,
.wendy-home-booking *,
.wendy-benefits * { box-sizing: border-box; }

.wendy-booking button,
.wendy-home-booking button { font: inherit; }

.wendy-booking {
    align-items: start;
    background: rgba(255, 253, 249, .98);
    border: 1px solid var(--wendy-line);
    border-radius: 28px;
    box-shadow: var(--wendy-shadow);
    display: grid;
    gap: 28px;
    grid-template-columns: minmax(0, 1fr) minmax(330px, 410px);
    margin: 44px auto 18px;
    max-width: 1320px;
    padding: 34px;
    scroll-margin-top: 100px;
}

.wendy-booking__main { min-width: 0; }

.wendy-booking__steps {
    border-bottom: 1px solid var(--wendy-line);
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-bottom: 28px;
}

.wendy-booking__steps > span {
    align-items: center;
    color: #8b857d;
    display: flex;
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif);
    font-size: 15px;
    gap: 10px;
    justify-content: center;
    min-height: 65px;
    padding: 0 10px 12px;
    position: relative;
    text-align: center;
}

.wendy-booking__steps > span i {
    align-items: center;
    background: #eee9e0;
    border-radius: 50%;
    display: inline-flex;
    font-style: normal;
    height: 36px;
    justify-content: center;
    width: 36px;
}

.wendy-booking__steps > span.is-active { color: var(--wendy-primary); }
.wendy-booking__steps > span.is-active i { background: var(--wendy-primary); color: #fff; }
.wendy-booking__steps > span.is-active::after {
    background: var(--wendy-accent);
    bottom: -1px;
    content: "";
    height: 2px;
    left: 0;
    position: absolute;
    right: 0;
}

.wendy-booking__section {
    border: 1px solid var(--wendy-line);
    border-radius: 16px;
    margin-top: 12px;
    overflow: hidden;
    transition: border-color .2s ease, opacity .2s ease, background .2s ease;
}

.wendy-booking__section:first-of-type { border: 0; margin-top: 0; overflow: visible; }

.wendy-booking__section > header {
    align-items: center;
    display: flex;
    gap: 16px;
    padding: 18px 20px;
}

.wendy-booking__section:first-of-type > header { padding: 0 0 18px; }

.wendy-booking__section > header > span {
    align-items: center;
    border: 1px solid var(--wendy-line);
    border-radius: 50%;
    color: var(--wendy-muted);
    display: none;
    flex: 0 0 34px;
    height: 34px;
    justify-content: center;
}

.wendy-booking__section > header > div { flex: 1; min-width: 0; }
.wendy-booking__section h2,
.wendy-home-booking h2,
.wendy-booking__summary h2 {
    color: var(--wendy-primary);
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif);
    font-weight: 500;
}

.wendy-booking__section h2 { font-size: clamp(24px, 2.2vw, 34px); line-height: 1.2; margin: 0; }
.wendy-booking__section > header p { color: var(--wendy-muted); margin: 6px 0 0; }
.wendy-booking__section > header > button {
    background: transparent;
    border: 0;
    color: var(--wendy-primary);
    cursor: pointer;
    font-size: 24px;
    height: 38px;
    width: 38px;
}

.wendy-booking__section.is-locked {
    background: #fbf9f5;
    opacity: .64;
}
.wendy-booking__section.is-locked > header > button { cursor: default; }
.wendy-booking__section.is-locked .wendy-booking__section-body { display: none; }
.wendy-booking__section:not(.is-open):not(.is-locked) .wendy-booking__section-body { display: none; }
.wendy-booking__section.is-open { border-color: #dfd2c0; }
.wendy-booking__section.is-open > header > button { transform: rotate(180deg); }
.wendy-booking__section-body { border-top: 1px solid var(--wendy-line); padding: 20px; }

.wendy-date-layout {
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(360px, 1.25fr) minmax(230px, .75fr);
}

.wendy-calendar-card {
    background: var(--wendy-ivory);
    border: 1px solid var(--wendy-line);
    border-radius: 15px;
    padding: 18px;
}

.wendy-calendar__nav {
    align-items: center;
    display: grid;
    grid-template-columns: 42px 1fr 42px;
    margin-bottom: 16px;
}
.wendy-calendar__nav strong {
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif);
    font-size: 20px;
    font-weight: 500;
    text-align: center;
    text-transform: uppercase;
}
.wendy-calendar__nav button {
    align-items: center;
    background: transparent;
    border: 1px solid #d9cfbf;
    border-radius: 50%;
    color: var(--wendy-primary);
    cursor: pointer;
    display: flex;
    font-size: 24px;
    height: 38px;
    justify-content: center;
    width: 38px;
}
.wendy-calendar__weekdays,
.wendy-calendar__days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}
.wendy-calendar__weekdays span {
    color: #77716a;
    font-size: 11px;
    font-weight: 700;
    padding: 4px;
    text-align: center;
}
.wendy-calendar__days button {
    aspect-ratio: 1;
    background: transparent;
    border: 0;
    border-radius: 50%;
    color: var(--wendy-ink);
    cursor: pointer;
    font-size: 14px;
    margin: 2px auto;
    max-height: 42px;
    max-width: 42px;
    padding: 0;
    position: relative;
    width: 100%;
}
.wendy-calendar__days button::after {
    background: var(--wendy-primary);
    border-radius: 50%;
    bottom: 2px;
    content: "";
    height: 4px;
    left: 50%;
    position: absolute;
    transform: translateX(-50%);
    width: 4px;
}
.wendy-calendar__days button.is-selected {
    background: var(--wendy-primary);
    box-shadow: 0 5px 16px rgba(15, 50, 31, .24);
    color: #fff;
}
.wendy-calendar__days button.is-selected::after { background: #d9ad68; }
.wendy-calendar__days button.is-muted { color: #bbb4aa; }
.wendy-calendar__days button.is-muted::after { opacity: .35; }
.wendy-calendar__days button.is-unavailable,
.wendy-calendar__days button:disabled { color: #c7c2bb; cursor: not-allowed; }
.wendy-calendar__days button.is-unavailable::after,
.wendy-calendar__days button:disabled::after { background: #d7d3cd; }
.wendy-calendar__legend { color: var(--wendy-muted); display: flex; font-size: 12px; gap: 22px; margin-top: 12px; }
.wendy-calendar__legend span { align-items: center; display: flex; gap: 7px; }
.wendy-calendar__legend i { background: var(--wendy-primary); border-radius: 50%; height: 9px; width: 9px; }
.wendy-calendar__legend span:last-child i { background: #d7d3cd; }

.wendy-shortcuts,
.wendy-home-booking__shortcuts { display: flex; flex-direction: column; gap: 11px; }
.wendy-shortcuts h3,
.wendy-home-booking__shortcuts h3 {
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif);
    font-size: 17px;
    font-weight: 500;
    margin: 4px 0 3px;
}
.wendy-shortcuts button,
.wendy-home-booking__shortcuts button {
    align-items: center;
    background: #fff;
    border: 1px solid #dfd4c4;
    border-radius: 12px;
    color: var(--wendy-ink);
    cursor: pointer;
    display: grid;
    gap: 1px 11px;
    grid-template-columns: 34px 1fr;
    min-height: 70px;
    padding: 12px 16px;
    text-align: left;
}
.wendy-shortcuts button:hover,
.wendy-home-booking__shortcuts button:hover { border-color: var(--wendy-primary); }
.wendy-shortcuts button > span,
.wendy-home-booking__shortcuts button > span { color: var(--wendy-primary); font-size: 22px; grid-row: 1 / span 2; }
.wendy-shortcuts button strong,
.wendy-home-booking__shortcuts button strong { font-weight: 600; }
.wendy-shortcuts button small,
.wendy-home-booking__shortcuts button small { color: var(--wendy-muted); }

.wendy-slots-grid {
    display: grid;
    gap: 13px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.wendy-slot-card {
    background: #fff;
    border: 1px solid #e1d7c9;
    border-radius: 14px;
    color: var(--wendy-ink);
    cursor: pointer;
    min-height: 205px;
    padding: 22px 16px 18px;
    position: relative;
    text-align: center;
    transition: .2s ease;
}
.wendy-slot-card:hover { border-color: #b69a74; transform: translateY(-2px); }
.wendy-slot-card.is-selected { border: 2px solid var(--wendy-primary); box-shadow: 0 8px 25px rgba(111,90,81,.12); }
.wendy-slot-card__icon { color: var(--wendy-accent); display: block; font-size: 30px; margin-bottom: 10px; }
.wendy-slot-card strong { display: block; font-family: var(--e-global-typography-primary-font-family, Georgia, serif); font-size: 18px; font-weight: 500; line-height: 1.25; }
.wendy-slot-card em { color: var(--wendy-muted); display: block; font-style: normal; margin-top: 8px; }
.wendy-slot-card b { display: block; font-family: var(--e-global-typography-primary-font-family, Georgia, serif); font-size: 27px; font-weight: 500; margin-top: 13px; }
.wendy-slot-card small { color: var(--wendy-muted); display: block; line-height: 1.35; margin-top: 8px; }
.wendy-slot-card__check { align-items: center; background: var(--wendy-primary); border-radius: 50%; color: #fff; display: none; height: 25px; justify-content: center; position: absolute; right: 12px; top: 12px; width: 25px; }
.wendy-slot-card.is-selected .wendy-slot-card__check { display: flex; }

.wendy-people-choices { display: flex; flex-wrap: wrap; gap: 12px; }
.wendy-people-choices button {
    background: #fff;
    border: 1px solid #dfd5c7;
    border-radius: 12px;
    color: var(--wendy-ink);
    cursor: pointer;
    min-width: 110px;
    padding: 15px 18px;
}
.wendy-people-choices button.is-selected { background: var(--wendy-primary); border-color: var(--wendy-primary); color: #fff; }
.wendy-people-note { color: var(--wendy-muted); display: block; margin-top: 12px; }

.wendy-options { display: grid; gap: 11px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wendy-option {
    align-items: center;
    background: #fff;
    border: 1px solid #e2d8cb;
    border-radius: 12px;
    cursor: pointer;
    display: grid;
    gap: 12px;
    grid-template-columns: 24px 1fr auto;
    min-height: 80px;
    padding: 13px 15px;
}
.wendy-option[hidden] { display: none !important; }
.wendy-option input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.wendy-option__check { border: 1px solid #bcae9b; border-radius: 5px; height: 20px; position: relative; width: 20px; }
.wendy-option input:checked + .wendy-option__check { background: var(--wendy-primary); border-color: var(--wendy-primary); }
.wendy-option input:checked + .wendy-option__check::after { color: #fff; content: "✓"; font-size: 13px; left: 4px; position: absolute; top: 0; }
.wendy-option strong { display: block; font-weight: 600; }
.wendy-option small { color: var(--wendy-muted); display: block; line-height: 1.35; margin-top: 2px; }
.wendy-option .wendy-option__confirm { color: var(--wendy-accent); }
.wendy-option em { color: var(--wendy-accent); font-style: normal; font-weight: 700; white-space: nowrap; }
.wendy-included-note { background: var(--wendy-cream); border-radius: 10px; color: #73583d; margin: 14px 0 0; padding: 12px 15px; text-align: center; }

.wendy-booking__summary {
    background: #fffdfa;
    border: 1px solid var(--wendy-line);
    border-radius: 20px;
    box-shadow: 0 14px 36px rgba(48, 37, 25, .11);
    overflow: hidden;
    position: sticky;
    top: 28px;
}
.wendy-booking__summary > header { background: linear-gradient(135deg, var(--wendy-primary), var(--wendy-primary-2)); color: #fff; padding: 25px 25px 22px; text-align: center; }
.wendy-booking__summary > header span { color: #d4aa65; display: block; font-size: 24px; }
.wendy-booking__summary > header h2 { color: #fff; font-size: 25px; letter-spacing: .03em; margin: 6px 0 0; text-transform: uppercase; }
.wendy-summary-row { align-items: start; border-bottom: 1px solid var(--wendy-line); display: grid; gap: 12px; grid-template-columns: 24px 1fr auto; margin: 0 24px; padding: 20px 0; }
.wendy-summary-row > span { color: var(--wendy-accent); font-size: 21px; }
.wendy-summary-row small { color: var(--wendy-muted); display: block; font-size: 11px; font-weight: 700; margin-bottom: 5px; text-transform: uppercase; }
.wendy-summary-row strong { display: block; font-family: var(--e-global-typography-primary-font-family, Georgia, serif); font-size: 16px; font-weight: 500; line-height: 1.4; }
.wendy-summary-row button { background: transparent; border: 0; color: var(--wendy-primary); cursor: pointer; font-size: 13px; text-decoration: underline; }
.wendy-summary-total { align-items: baseline; display: flex; justify-content: space-between; padding: 22px 24px 16px; }
.wendy-summary-total span { font-family: var(--e-global-typography-primary-font-family, Georgia, serif); font-size: 17px; text-transform: uppercase; }
.wendy-summary-total strong { color: var(--wendy-primary); font-family: var(--e-global-typography-primary-font-family, Georgia, serif); font-size: 35px; font-weight: 500; }
.wendy-primary {
    align-items: center;
    background: linear-gradient(135deg, var(--wendy-primary), var(--wendy-primary-2));
    border: 0;
    border-radius: 11px;
    color: #fff;
    cursor: pointer;
    display: flex;
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif);
    font-size: 17px;
    gap: 12px;
    justify-content: center;
    min-height: 57px;
    padding: 13px 18px;
}
.wendy-primary span { font-size: 21px; }
.wendy-primary:disabled { cursor: not-allowed; opacity: .45; }
.wendy-booking__summary > .wendy-primary { margin: 0 24px; width: calc(100% - 48px); }
.wendy-secure { color: var(--wendy-muted); display: block; padding: 13px 20px 18px; text-align: center; }
.wendy-message { color: #a12c2c; font-size: 13px; padding: 0 24px 12px; text-align: center; }
.wendy-booking__summary footer { background: var(--wendy-cream); display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 4px; }
.wendy-booking__summary footer span { color: #4e4a43; font-size: 11px; line-height: 1.35; padding: 18px 8px; text-align: center; }
.wendy-booking__summary footer span + span { border-left: 1px solid #e4dacd; }
.wendy-booking__summary footer i { color: var(--wendy-accent); display: block; font-size: 22px; font-style: normal; margin-bottom: 6px; }

.wendy-benefits {
    display: grid;
    gap: 0;
    grid-template-columns: repeat(4, 1fr);
    margin: 0 auto 42px;
    max-width: 1260px;
    padding: 16px 12px;
}
.wendy-benefits > span { display: grid; gap: 2px 13px; grid-template-columns: 40px 1fr; padding: 10px 24px; }
.wendy-benefits > span + span { border-left: 1px solid var(--wendy-line); }
.wendy-benefits i { color: var(--wendy-accent); font-size: 28px; font-style: normal; grid-row: 1 / span 2; }
.wendy-benefits strong { font-family: var(--e-global-typography-primary-font-family, Georgia, serif); font-size: 16px; font-weight: 500; }
.wendy-benefits small { color: var(--wendy-muted); }
.wendy-empty { color: var(--wendy-muted); margin: 0; }

/* Widget calendrier pour la page d'accueil */
.wendy-home-booking {
    background: #fffdfa;
    border: 1px solid var(--wendy-line);
    border-radius: 24px;
    box-shadow: var(--wendy-shadow);
    margin: 30px auto;
    max-width: 1260px;
    padding: 28px 30px 30px;
}
.wendy-home-booking__head { align-items: center; display: flex; gap: 15px; margin-bottom: 22px; }
.wendy-step-badge { align-items: center; background: var(--wendy-primary); border-radius: 50%; color: #fff; display: flex; flex: 0 0 42px; font-family: Georgia, serif; font-size: 20px; height: 42px; justify-content: center; }
.wendy-home-booking h2 { font-size: 31px; font-weight: 500; margin: 0; }
.wendy-home-booking__head p { color: var(--wendy-muted); margin: 4px 0 0; }
.wendy-home-booking__grid { display: grid; gap: 26px; grid-template-columns: minmax(360px, 1.2fr) minmax(230px, .65fr) minmax(290px, .75fr); }
.wendy-home-booking__summary { background: var(--wendy-cream); border-radius: 15px; display: flex; flex-direction: column; padding: 24px; }
.wendy-summary-label { color: var(--wendy-muted); font-size: 12px; font-weight: 700; text-transform: uppercase; }
.wendy-home-booking__summary > strong { font-family: var(--e-global-typography-primary-font-family, Georgia, serif); font-size: 25px; font-weight: 500; line-height: 1.3; margin-top: 8px; }
.wendy-home-booking__summary > p { color: var(--wendy-muted); line-height: 1.5; margin: 14px 0 20px; }
.wendy-home-booking__summary .wendy-primary { margin-top: auto; width: 100%; }

@media (max-width: 1050px) {
    .wendy-booking { grid-template-columns: minmax(0, 1fr); }
    .wendy-booking__summary { position: static; }
    .wendy-home-booking__grid { grid-template-columns: 1fr 1fr; }
    .wendy-home-booking__summary { grid-column: 1 / -1; }
    .wendy-slots-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .wendy-booking { border-radius: 18px; gap: 20px; margin: 20px 10px; padding: 17px; }
    .wendy-booking__steps { grid-template-columns: repeat(4, minmax(0, 1fr)); overflow-x: auto; }
    .wendy-booking__steps > span { flex-direction: column; font-size: 11px; gap: 6px; min-width: 90px; padding: 0 4px 10px; }
    .wendy-booking__steps > span i { height: 29px; width: 29px; }
    .wendy-date-layout,
    .wendy-home-booking__grid { grid-template-columns: 1fr; }
    .wendy-calendar-card { padding: 12px; }
    .wendy-calendar__days button { font-size: 13px; max-height: 38px; max-width: 38px; }
    .wendy-slots-grid,
    .wendy-options { grid-template-columns: 1fr; }
    .wendy-slot-card { min-height: 0; padding: 17px 55px 17px 18px; text-align: left; }
    .wendy-slot-card__icon { display: inline-block; margin: 0 9px 0 0; }
    .wendy-slot-card strong { display: inline; }
    .wendy-booking__summary footer { display: none; }
    .wendy-benefits { grid-template-columns: 1fr 1fr; padding: 8px 16px; }
    .wendy-benefits > span + span { border-left: 0; }
    .wendy-home-booking { border-radius: 17px; margin: 20px 10px; padding: 20px 16px; }
    .wendy-home-booking h2 { font-size: 26px; }
}

@media (max-width: 480px) {
    .wendy-booking__section > header { gap: 10px; padding: 14px; }
    .wendy-booking__section:first-of-type > header { padding: 0 0 14px; }
    .wendy-booking__section h2 { font-size: 24px; }
    .wendy-booking__section-body { padding: 14px; }
    .wendy-people-choices button { flex: 1; min-width: 80px; }
    .wendy-benefits { grid-template-columns: 1fr; }
    .wendy-benefits > span { padding: 9px 4px; }
    .wendy-home-booking__head { align-items: flex-start; }
}

/* Le shortcode reste réellement large même dans un conteneur de thème étroit. */
.wendy-booking {
    left: 50%;
    position: relative;
    transform: translateX(-50%);
    width: min(1320px, calc(100vw - 32px));
}
.wendy-home-booking {
    left: 50%;
    position: relative;
    transform: translateX(-50%);
    width: min(1260px, calc(100vw - 32px));
}
.wendy-benefits {
    left: 50%;
    position: relative;
    transform: translateX(-50%);
    width: min(1260px, calc(100vw - 32px));
}

/* =========================================================
 * Salon by Wendy 1.4.1 — recherche compacte de la page d’accueil
 * Le calendrier reste fermé et s’ouvre à la demande.
 * ======================================================= */
.wendy-home-booking--compact {
    background: rgba(255, 253, 249, .99);
    max-width: 1120px;
    overflow: visible;
    padding: 25px 28px 22px;
    position: relative;
    width: min(1120px, calc(100vw - 32px));
}

.wendy-home-booking--compact .wendy-home-booking__intro {
    align-items: flex-end;
    border-bottom: 1px solid var(--wendy-line);
    display: flex;
    gap: 28px;
    justify-content: space-between;
    margin-bottom: 20px;
    padding-bottom: 18px;
}

.wendy-home-booking--compact .wendy-home-booking__eyebrow {
    color: var(--wendy-accent);
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .13em;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.wendy-home-booking--compact h2 {
    color: var(--wendy-primary);
    font-size: clamp(25px, 2.2vw, 33px);
    line-height: 1.15;
    margin: 0;
}

.wendy-home-booking--compact .wendy-home-booking__intro > div > p {
    color: var(--wendy-muted);
    line-height: 1.45;
    margin: 6px 0 0;
}

.wendy-home-booking--compact .wendy-home-booking__handoff {
    color: #6e685f;
    font-size: 12px;
    line-height: 1.45;
    margin: 0;
    max-width: 315px;
    padding-left: 24px;
    position: relative;
}

.wendy-home-booking--compact .wendy-home-booking__handoff::before {
    color: var(--wendy-accent);
    content: "✓";
    font-size: 15px;
    left: 0;
    position: absolute;
    top: -1px;
}

.wendy-home-booking--compact .wendy-home-booking__searchbar {
    align-items: stretch;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(0, 1fr) minmax(285px, auto);
}

.wendy-home-date-picker {
    min-width: 0;
    position: relative;
}

.wendy-home-date-trigger {
    align-items: center;
    background: #fff;
    border: 1px solid #ddd2c3;
    border-radius: 14px;
    color: var(--wendy-ink);
    cursor: pointer;
    display: grid;
    gap: 13px;
    grid-template-columns: 46px minmax(0, 1fr) 24px;
    min-height: 72px;
    padding: 10px 16px 10px 12px;
    text-align: left;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
    width: 100%;
}

.wendy-home-date-trigger:hover,
.wendy-home-booking--compact.is-calendar-open .wendy-home-date-trigger {
    border-color: rgba(15, 50, 31, .65);
    box-shadow: 0 8px 24px rgba(32, 38, 29, .07);
}

.wendy-home-date-trigger__icon {
    align-items: center;
    background: var(--wendy-cream);
    border-radius: 11px;
    color: var(--wendy-primary);
    display: flex;
    height: 46px;
    justify-content: center;
    width: 46px;
}

.wendy-home-date-trigger svg {
    fill: none;
    height: 22px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
    width: 22px;
}

.wendy-home-date-trigger__text {
    min-width: 0;
}

.wendy-home-date-trigger__text small {
    color: var(--wendy-muted);
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .07em;
    margin-bottom: 3px;
    text-transform: uppercase;
}

.wendy-home-date-trigger__text strong {
    color: var(--wendy-primary);
    display: block;
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif);
    font-size: 19px;
    font-weight: 500;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wendy-home-date-trigger__chevron {
    color: var(--wendy-primary);
    display: flex;
    transition: transform .2s ease;
}

.wendy-home-booking--compact.is-calendar-open .wendy-home-date-trigger__chevron {
    transform: rotate(180deg);
}

.wendy-home-booking--compact .wendy-home-booking__submit {
    border-radius: 14px;
    min-height: 72px;
    min-width: 285px;
    padding-left: 24px;
    padding-right: 24px;
}

.wendy-home-booking--compact .wendy-home-calendar-popover {
    background: #fffdfa;
    border: 1px solid var(--wendy-line);
    border-radius: 18px;
    box-shadow: 0 24px 70px rgba(28, 34, 27, .2);
    left: 0;
    padding: 15px;
    position: absolute;
    top: calc(100% + 10px);
    width: min(430px, calc(100vw - 40px));
    z-index: 100;
}

.wendy-home-booking--compact .wendy-home-calendar-popover[hidden] {
    display: none !important;
}

.wendy-home-calendar-popover__head {
    align-items: center;
    border-bottom: 1px solid var(--wendy-line);
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    padding: 2px 3px 12px;
}

.wendy-home-calendar-popover__head small {
    color: var(--wendy-accent);
    display: block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.wendy-home-calendar-popover__head strong {
    color: var(--wendy-primary);
    display: block;
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif);
    font-size: 19px;
    font-weight: 500;
    margin-top: 2px;
}

.wendy-home-calendar-popover__head > button {
    align-items: center;
    background: var(--wendy-cream);
    border: 0;
    border-radius: 50%;
    color: var(--wendy-primary);
    cursor: pointer;
    display: flex;
    font-size: 23px;
    height: 36px;
    justify-content: center;
    line-height: 1;
    width: 36px;
}

.wendy-home-booking--compact .wendy-calendar-card--popover {
    border: 0;
    padding: 0 3px 2px;
}

.wendy-home-booking--compact .wendy-calendar-card--popover .wendy-calendar__days button {
    max-height: 39px;
    max-width: 39px;
}

.wendy-home-booking--compact .wendy-home-booking__quick {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.wendy-home-booking--compact .wendy-home-booking__quick-label {
    color: var(--wendy-muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .07em;
    margin-right: 2px;
    text-transform: uppercase;
}

.wendy-home-booking--compact .wendy-home-booking__quick button {
    align-items: center;
    background: #fff;
    border: 1px solid #e2d8ca;
    border-radius: 999px;
    color: #4e4a43;
    cursor: pointer;
    display: inline-flex;
    gap: 6px;
    min-height: 36px;
    padding: 7px 13px;
    transition: background .2s ease, border-color .2s ease, color .2s ease;
}

.wendy-home-booking--compact .wendy-home-booking__quick button:hover,
.wendy-home-booking--compact .wendy-home-booking__quick button.is-active {
    background: var(--wendy-cream);
    border-color: #bca888;
    color: var(--wendy-primary);
}

.wendy-home-booking--compact .wendy-home-booking__quick button span {
    font-size: 12px;
    font-weight: 600;
}

.wendy-home-booking--compact .wendy-home-booking__quick button small {
    color: var(--wendy-muted);
    font-size: 11px;
}

.wendy-home-booking--compact .wendy-home-booking__open-calendar {
    color: var(--wendy-primary) !important;
    margin-left: auto;
}

@media (max-width: 760px) {
    .wendy-home-booking--compact {
        margin: 16px 12px;
        padding: 21px 17px 18px;
        width: calc(100vw - 24px);
    }

    .wendy-home-booking--compact .wendy-home-booking__intro {
        align-items: flex-start;
        display: block;
        margin-bottom: 16px;
        padding-bottom: 15px;
    }

    .wendy-home-booking--compact .wendy-home-booking__handoff {
        margin-top: 10px;
        max-width: none;
    }

    .wendy-home-booking--compact .wendy-home-booking__searchbar {
        grid-template-columns: 1fr;
    }

    .wendy-home-booking--compact .wendy-home-booking__submit {
        min-height: 58px;
        min-width: 0;
        width: 100%;
    }

    .wendy-home-date-trigger {
        min-height: 66px;
    }

    .wendy-home-booking--compact .wendy-home-booking__quick-label {
        flex-basis: 100%;
    }

    .wendy-home-booking--compact .wendy-home-booking__open-calendar {
        margin-left: 0;
    }

    .wendy-home-booking--compact.is-calendar-open::before {
        background: rgba(12, 27, 18, .42);
        content: "";
        inset: 0;
        position: fixed;
        z-index: 99998;
    }

    .wendy-home-booking--compact .wendy-home-calendar-popover {
        left: 50%;
        max-height: calc(100dvh - 28px);
        overflow: auto;
        position: fixed;
        top: 50%;
        transform: translate(-50%, -50%);
        width: calc(100vw - 28px);
        z-index: 99999;
    }
}

@media (max-width: 480px) {
    .wendy-home-booking--compact h2 {
        font-size: 25px;
    }

    .wendy-home-date-trigger__text strong {
        font-size: 16px;
    }

    .wendy-home-date-trigger {
        grid-template-columns: 42px minmax(0, 1fr) 20px;
        padding-left: 9px;
        padding-right: 12px;
    }

    .wendy-home-date-trigger__icon {
        height: 42px;
        width: 42px;
    }

    .wendy-home-booking--compact .wendy-home-booking__quick button {
        flex: 1 1 calc(50% - 5px);
        justify-content: center;
        padding-left: 9px;
        padding-right: 9px;
    }

    .wendy-home-booking--compact .wendy-home-booking__quick button:first-of-type,
    .wendy-home-booking--compact .wendy-home-booking__open-calendar {
        flex-basis: 100%;
    }

    .wendy-home-booking--compact .wendy-home-booking__quick button small {
        display: none;
    }
}

/* =========================================================
 * Salon by Wendy 1.5.0 — moteur d'accueil compact et isolé
 * Date → type facultatif → disponibilités
 * ======================================================= */
.wendy-home-search,
.wendy-home-search * {
    box-sizing: border-box;
}

.wendy-home-search {
    --whs-primary: var(--wendy-primary, #0b3828);
    --whs-accent: var(--wendy-accent, #b57942);
    --whs-ink: #1e2923;
    --whs-muted: #746f67;
    --whs-bg: #fffdf9;
    --whs-soft: #f4eee5;
    --whs-line: #e5dacb;
    background: var(--whs-bg);
    border: 1px solid var(--whs-line);
    border-radius: 20px;
    box-shadow: 0 18px 48px rgba(31, 37, 31, .08);
    color: var(--whs-ink);
    font-family: inherit;
    left: 50%;
    margin: 28px 0;
    max-width: 1240px;
    overflow: visible;
    padding: 28px 32px 22px;
    position: relative;
    transform: translateX(-50%);
    width: min(1240px, calc(100vw - 40px));
    z-index: 20;
}

.wendy-home-search button,
.wendy-home-search select {
    -webkit-appearance: none;
    appearance: none;
    font: inherit;
}

.wendy-home-search button:focus,
.wendy-home-search select:focus {
    outline: 2px solid rgba(181, 121, 66, .34) !important;
    outline-offset: 2px;
}

.wendy-home-search__heading {
    margin-bottom: 20px;
}

.wendy-home-search__heading > span {
    color: var(--whs-accent);
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .14em;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.wendy-home-search__heading h2 {
    color: var(--whs-primary) !important;
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif);
    font-size: clamp(27px, 2.1vw, 34px);
    font-weight: 500;
    letter-spacing: -.025em;
    line-height: 1.12;
    margin: 0 !important;
}

.wendy-home-search__heading p {
    color: var(--whs-muted);
    font-size: 14px;
    line-height: 1.45;
    margin: 6px 0 0 !important;
}

.wendy-home-search__controls {
    align-items: stretch;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(320px, 1.25fr) minmax(270px, .9fr) minmax(250px, .72fr);
}

.wendy-home-search__date-wrap {
    min-width: 0;
    position: relative;
}

.wendy-home-search__field,
.wendy-home-search__select-wrap {
    align-items: center;
    background: #fff !important;
    border: 1px solid var(--whs-line) !important;
    border-radius: 14px !important;
    color: var(--whs-ink) !important;
    display: grid;
    gap: 12px;
    grid-template-columns: 44px minmax(0, 1fr) 20px;
    height: 68px;
    min-height: 68px;
    padding: 8px 15px 8px 10px !important;
    text-align: left;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
    width: 100%;
}

.wendy-home-search__field {
    cursor: pointer;
}

.wendy-home-search__field:hover,
.wendy-home-search.is-calendar-open .wendy-home-search__field,
.wendy-home-search__select-wrap:focus-within {
    border-color: rgba(11, 56, 40, .62) !important;
    box-shadow: 0 8px 22px rgba(30, 41, 35, .07) !important;
}

.wendy-home-search__field-icon {
    align-items: center;
    background: var(--whs-soft);
    border-radius: 10px;
    color: var(--whs-primary);
    display: flex;
    height: 44px;
    justify-content: center;
    width: 44px;
}

.wendy-home-search svg {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.wendy-home-search__field-icon svg {
    height: 21px;
    width: 21px;
}

.wendy-home-search__field-copy {
    min-width: 0;
}

.wendy-home-search__field-copy small,
.wendy-home-search__experience-label small {
    color: var(--whs-muted);
    display: block;
    font-size: 10px;
    font-style: normal;
    font-weight: 700;
    letter-spacing: .085em;
    line-height: 1.2;
    margin: 0 0 4px;
    text-transform: uppercase;
}

.wendy-home-search__field-copy strong {
    color: var(--whs-primary);
    display: block;
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif);
    font-size: 18px;
    font-weight: 500;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wendy-home-search__field-chevron {
    color: var(--whs-primary);
    display: flex;
    justify-content: flex-end;
    transition: transform .2s ease;
}

.wendy-home-search__field-chevron svg {
    height: 18px;
    width: 18px;
}

.wendy-home-search.is-calendar-open .wendy-home-search__date .wendy-home-search__field-chevron {
    transform: rotate(180deg);
}

.wendy-home-search__experience {
    display: block;
    margin: 0;
    min-width: 0;
    position: relative;
}

.wendy-home-search__experience-label {
    background: var(--whs-bg);
    left: 64px;
    padding: 0 5px;
    pointer-events: none;
    position: absolute;
    top: 9px;
    z-index: 2;
}

.wendy-home-search__experience-label small {
    display: inline;
    margin: 0;
}

.wendy-home-search__experience-label em {
    color: #9b948a;
    font-size: 10px;
    font-style: normal;
    margin-left: 5px;
}

.wendy-home-search__select-wrap {
    position: relative;
}

.wendy-home-search__select-wrap select {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: var(--whs-primary) !important;
    cursor: pointer;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    height: 100%;
    line-height: 1.2;
    min-width: 0;
    outline: 0 !important;
    padding: 17px 0 0 !important;
    width: 100%;
}

.wendy-home-search__select-wrap select option {
    color: #202820;
}

.wendy-home-search__submit {
    align-items: center;
    background: var(--whs-primary) !important;
    border: 1px solid var(--whs-primary) !important;
    border-radius: 14px !important;
    box-shadow: none !important;
    color: #fff !important;
    cursor: pointer;
    display: flex;
    font-size: 15px;
    font-weight: 700;
    gap: 14px;
    height: 68px;
    justify-content: center;
    line-height: 1.2;
    min-height: 68px;
    padding: 0 23px !important;
    text-decoration: none !important;
    transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
    width: 100%;
}

.wendy-home-search__submit svg {
    height: 19px;
    width: 19px;
}

.wendy-home-search__submit:not(:disabled):hover {
    box-shadow: 0 11px 25px rgba(11, 56, 40, .19) !important;
    transform: translateY(-1px);
}

.wendy-home-search__submit:disabled {
    background: #d9d5cd !important;
    border-color: #d9d5cd !important;
    color: #837e76 !important;
    cursor: not-allowed;
    opacity: 1;
}

.wendy-home-search__quick {
    align-items: center;
    color: var(--whs-muted);
    display: flex;
    flex-wrap: wrap;
    font-size: 12px;
    gap: 7px;
    margin-top: 13px;
    min-height: 24px;
}

.wendy-home-search__quick > span {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.wendy-home-search__quick > i {
    color: #c6b9a8;
    font-style: normal;
}

.wendy-home-search__quick button {
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: var(--whs-primary) !important;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
    margin: 0 !important;
    min-height: 0 !important;
    padding: 1px 0 !important;
    text-decoration: none !important;
}

.wendy-home-search__quick button:hover,
.wendy-home-search__quick button.is-active {
    border-bottom-color: var(--whs-accent) !important;
    color: var(--whs-accent) !important;
}

.wendy-home-search__quick button small {
    color: #8a837a;
    font-size: 10px;
    font-weight: 400;
    margin-left: 5px;
}

.wendy-home-search__calendar {
    background: #fffdfa;
    border: 1px solid var(--whs-line);
    border-radius: 18px;
    box-shadow: 0 26px 70px rgba(28, 34, 27, .22);
    left: 0;
    padding: 15px;
    position: absolute;
    top: calc(100% + 10px);
    width: min(410px, calc(100vw - 36px));
    z-index: 9999;
}

.wendy-home-search__calendar[hidden] {
    display: none !important;
}

.wendy-home-search__calendar-head {
    align-items: center;
    border-bottom: 1px solid var(--whs-line);
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    padding: 1px 2px 12px;
}

.wendy-home-search__calendar-head small {
    color: var(--whs-accent);
    display: block;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.wendy-home-search__calendar-head strong {
    color: var(--whs-primary);
    display: block;
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif);
    font-size: 18px;
    font-weight: 500;
    margin-top: 2px;
}

.wendy-home-search__calendar-head > button {
    align-items: center;
    background: var(--whs-soft) !important;
    border: 0 !important;
    border-radius: 50% !important;
    box-shadow: none !important;
    color: var(--whs-primary) !important;
    cursor: pointer;
    display: flex;
    font-size: 23px;
    height: 36px;
    justify-content: center;
    line-height: 1;
    min-height: 36px !important;
    padding: 0 0 3px !important;
    width: 36px;
}

.wendy-home-search .wendy-calendar-card--home-popover {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0 3px 2px;
}

.wendy-home-search .wendy-calendar__nav button,
.wendy-home-search .wendy-calendar__days button {
    color: var(--whs-ink) !important;
}

.wendy-home-search .wendy-calendar__days button.is-selected {
    background: var(--whs-primary) !important;
    color: #fff !important;
}

.wendy-home-search .wendy-calendar__days button:not(.is-unavailable):not(.is-selected)::after {
    background: var(--whs-primary);
}

.wendy-home-search .wendy-calendar__days button.is-unavailable {
    color: #c7c1b8 !important;
}

@media (max-width: 980px) {
    .wendy-home-search {
        max-width: 820px;
    }

    .wendy-home-search__controls {
        grid-template-columns: 1fr 1fr;
    }

    .wendy-home-search__submit {
        grid-column: 1 / -1;
        height: 60px;
        min-height: 60px;
    }
}

@media (max-width: 640px) {
    .wendy-home-search {
        border-radius: 17px;
        margin: 18px 0;
        padding: 22px 17px 18px;
        width: calc(100vw - 24px);
    }

    .wendy-home-search__heading {
        margin-bottom: 16px;
    }

    .wendy-home-search__heading h2 {
        font-size: 27px;
    }

    .wendy-home-search__controls {
        grid-template-columns: 1fr;
    }

    .wendy-home-search__field,
    .wendy-home-search__select-wrap,
    .wendy-home-search__submit {
        height: 62px;
        min-height: 62px;
    }

    .wendy-home-search__submit {
        grid-column: auto;
    }

    .wendy-home-search__quick {
        gap: 6px;
    }

    .wendy-home-search__quick > span {
        flex-basis: 100%;
    }

    .wendy-home-search.is-calendar-open::before {
        background: rgba(11, 30, 22, .5);
        content: "";
        inset: 0;
        position: fixed;
        z-index: 9998;
    }

    .wendy-home-search__calendar {
        bottom: auto;
        left: 12px;
        max-height: calc(100vh - 32px);
        overflow-y: auto;
        position: fixed;
        right: 12px;
        top: 50%;
        transform: translateY(-50%);
        width: auto;
        z-index: 9999;
    }
}

/* =========================================================
 * Salon by Wendy 1.6 — recherche d'accueil sobre + calendrier complet
 * ======================================================= */
.wendy-home-launcher,
.wendy-home-launcher * {
    box-sizing: border-box;
}

.wendy-home-launcher {
    --whl-green: var(--wendy-primary, #0f321f);
    --whl-green-2: var(--wendy-primary-2, #59463f);
    --whl-copper: var(--wendy-accent, #a86a2b);
    --whl-ink: var(--wendy-ink, #14251b);
    --whl-muted: var(--wendy-muted, #777168);
    --whl-line: var(--wendy-line, #e8dfd2);
    --whl-cream: var(--wendy-cream, #faf5ec);
    background: rgba(255, 253, 249, .99);
    border: 1px solid var(--whl-line);
    border-radius: 24px;
    box-shadow: 0 18px 50px rgba(47, 35, 20, .09);
    color: var(--whl-ink);
    font-family: inherit;
    margin: 24px auto;
    max-width: 1260px;
    overflow: visible;
    position: relative;
    width: 100%;
}

.wendy-home-launcher button {
    -webkit-appearance: none !important;
    appearance: none !important;
    box-shadow: none !important;
    font: inherit !important;
    text-decoration: none !important;
}

.wendy-home-launcher svg {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.wendy-home-launcher__top {
    align-items: center;
    border-bottom: 1px solid var(--whl-line);
    display: flex;
    gap: 24px;
    justify-content: space-between;
    padding: 20px 26px 17px;
}

.wendy-home-launcher__title {
    align-items: center;
    display: flex;
    gap: 14px;
    min-width: 0;
}

.wendy-home-launcher__step {
    align-items: center;
    background: linear-gradient(145deg, var(--whl-green), #082a1a);
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 42px;
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif);
    font-size: 20px;
    height: 42px;
    justify-content: center;
}

.wendy-home-launcher__title h2 {
    color: var(--whl-green) !important;
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif) !important;
    font-size: clamp(25px, 2vw, 33px) !important;
    font-weight: 500 !important;
    line-height: 1.1 !important;
    margin: 0 !important;
}

.wendy-home-launcher__title p {
    color: var(--whl-muted) !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    margin: 4px 0 0 !important;
}

.wendy-home-launcher__handoff {
    align-items: center;
    background: #f7f4ec;
    border: 1px solid #e8e0d4;
    border-radius: 13px;
    color: #57564e;
    display: flex;
    flex: 0 1 330px;
    font-size: 11px;
    gap: 9px;
    line-height: 1.35;
    padding: 10px 13px;
}

.wendy-home-launcher__handoff > span {
    align-items: center;
    border: 1px solid #b8aa76;
    border-radius: 50%;
    color: var(--whl-copper);
    display: inline-flex;
    flex: 0 0 23px;
    height: 23px;
    justify-content: center;
}

.wendy-home-launcher__handoff p {
    margin: 0 !important;
}

.wendy-home-launcher__main {
    align-items: stretch;
    display: grid;
    grid-template-columns: minmax(190px, .62fr) minmax(520px, 1.95fr) minmax(235px, .72fr);
    min-height: 144px;
    padding: 0 26px;
}

.wendy-home-launcher__next {
    align-items: center;
    border-right: 1px solid var(--whl-line);
    display: flex;
    gap: 12px;
    min-width: 0;
    padding: 22px 20px 22px 4px;
}

.wendy-home-launcher__next-icon {
    align-items: center;
    background: #f0f1e8;
    border-radius: 50%;
    color: var(--whl-green);
    display: inline-flex;
    flex: 0 0 48px;
    height: 48px;
    justify-content: center;
}

.wendy-home-launcher__next-icon svg {
    height: 23px;
    width: 23px;
}

.wendy-home-launcher__next span:last-child {
    min-width: 0;
}

.wendy-home-launcher__next small {
    color: var(--whl-muted);
    display: block;
    font-size: 11px;
    line-height: 1.25;
    margin-bottom: 4px;
}

.wendy-home-launcher__next strong {
    color: var(--whl-green);
    display: block;
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif);
    font-size: 17px;
    font-weight: 600;
    line-height: 1.25;
}

.wendy-home-launcher__date-area {
    border-right: 1px solid var(--whl-line);
    min-width: 0;
    padding: 17px 18px 11px;
    position: relative;
}

.wendy-home-launcher__dates {
    align-items: center;
    display: grid;
    gap: 7px;
    grid-template-columns: 30px minmax(0, 1fr) 30px;
    min-width: 0;
}

.wendy-home-launcher__strip-nav {
    align-items: center;
    background: transparent !important;
    border: 1px solid transparent !important;
    border-radius: 50% !important;
    color: var(--whl-green) !important;
    cursor: pointer;
    display: inline-flex;
    font-size: 26px !important;
    height: 32px;
    justify-content: center;
    min-width: 32px !important;
    padding: 0 0 3px !important;
    transition: background .2s ease, border-color .2s ease, opacity .2s ease;
}

.wendy-home-launcher__strip-nav:hover {
    background: var(--whl-cream) !important;
    border-color: var(--whl-line) !important;
}

.wendy-home-launcher__strip-nav:disabled {
    cursor: default;
    opacity: .2;
}

.wendy-home-launcher__date-strip {
    display: grid;
    gap: 7px;
    grid-template-columns: repeat(7, minmax(50px, 1fr));
    min-width: 0;
}

.wendy-home-launcher__date-strip > button {
    align-items: center;
    background: #fffdf9 !important;
    border: 1px solid var(--whl-line) !important;
    border-radius: 12px !important;
    color: var(--whl-ink) !important;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    height: 84px;
    justify-content: center;
    min-width: 0 !important;
    padding: 7px 3px !important;
    position: relative;
    transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.wendy-home-launcher__date-strip > button:hover:not(:disabled) {
    border-color: #b9a98e !important;
    transform: translateY(-1px);
}

.wendy-home-launcher__date-strip > button small {
    color: #7c776f;
    font-size: 9px;
    font-weight: 700;
    line-height: 1;
}

.wendy-home-launcher__date-strip > button strong {
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif);
    font-size: 24px;
    font-weight: 500;
    line-height: 1;
    margin: 4px 0 3px;
}

.wendy-home-launcher__date-strip > button span {
    color: #7c776f;
    font-size: 9px;
    line-height: 1;
}

.wendy-home-launcher__date-strip > button.is-available::after {
    background: var(--whl-green);
    border: 2px solid #fffdf9;
    border-radius: 50%;
    bottom: -8px;
    content: '';
    height: 7px;
    left: 50%;
    position: absolute;
    transform: translateX(-50%);
    width: 7px;
}

.wendy-home-launcher__date-strip > button.is-selected {
    background: linear-gradient(145deg, var(--whl-green), #082b1a) !important;
    border-color: var(--whl-green) !important;
    color: #fff !important;
    box-shadow: 0 8px 18px rgba(15, 50, 31, .16) !important;
}

.wendy-home-launcher__date-strip > button.is-selected small,
.wendy-home-launcher__date-strip > button.is-selected span {
    color: rgba(255, 255, 255, .84);
}

.wendy-home-launcher__date-strip > button.is-selected::after {
    background: #d5a958;
    border-color: #fff;
}

.wendy-home-launcher__date-strip > button.is-unavailable {
    background: #fbfaf7 !important;
    color: #bbb5ac !important;
    cursor: not-allowed;
    opacity: .52;
}

.wendy-home-launcher__date-strip > button.is-unavailable::after {
    display: none;
}

.wendy-home-launcher__calendar-anchor {
    display: flex;
    justify-content: center;
    margin-top: 13px;
    position: relative;
}

.wendy-home-launcher__calendar-toggle {
    align-items: center;
    background: #fffdf9 !important;
    border: 1px solid #bc955c !important;
    border-radius: 11px !important;
    color: var(--whl-green) !important;
    cursor: pointer;
    display: inline-flex;
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif) !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    gap: 9px;
    justify-content: center;
    min-height: 38px;
    min-width: 270px !important;
    padding: 8px 16px !important;
    transition: background .18s ease, color .18s ease, border-color .18s ease;
}

.wendy-home-launcher__calendar-toggle:hover,
.wendy-home-launcher.is-calendar-open .wendy-home-launcher__calendar-toggle {
    background: var(--whl-green) !important;
    border-color: var(--whl-green) !important;
    color: #fff !important;
}

.wendy-home-launcher__calendar-toggle svg {
    height: 17px;
    width: 17px;
}

.wendy-home-launcher__calendar-chevron {
    font-family: Arial, sans-serif;
    font-size: 17px;
    line-height: 1;
    margin-left: 4px;
    transition: transform .2s ease;
}

.wendy-home-launcher.is-calendar-open .wendy-home-launcher__calendar-chevron {
    transform: rotate(180deg);
}

.wendy-home-launcher__cta {
    align-items: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 18px 6px 16px 22px;
    text-align: center;
}

.wendy-home-launcher__cta-icon {
    align-items: center;
    border: 1px solid #c79c5d;
    border-radius: 50%;
    color: var(--whl-copper);
    display: inline-flex;
    height: 42px;
    justify-content: center;
    margin-bottom: 8px;
    width: 42px;
}

.wendy-home-launcher__cta-icon svg {
    height: 25px;
    width: 25px;
}

.wendy-home-launcher__cta > strong {
    color: var(--whl-green);
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif);
    font-size: 17px;
    font-weight: 500;
    margin-bottom: 11px;
}

.wendy-home-launcher__submit {
    align-items: center;
    background: linear-gradient(135deg, var(--whl-green), var(--whl-green-2)) !important;
    border: 1px solid var(--whl-green) !important;
    border-radius: 999px !important;
    color: #fff !important;
    cursor: pointer;
    display: flex;
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif) !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    justify-content: center;
    min-height: 46px;
    padding: 8px 11px 8px 18px !important;
    width: 100%;
}

.wendy-home-launcher__submit:hover:not(:disabled) {
    filter: brightness(1.07);
    transform: translateY(-1px);
}

.wendy-home-launcher__submit:disabled {
    cursor: not-allowed;
    opacity: .45;
}

.wendy-home-launcher__submit-arrow {
    align-items: center;
    background: rgba(255, 255, 255, .96);
    border-radius: 50%;
    color: var(--whl-green);
    display: inline-flex;
    font-family: Arial, sans-serif;
    font-size: 17px;
    height: 29px;
    justify-content: center;
    margin-left: auto;
    width: 29px;
}

.wendy-home-launcher__benefits {
    align-items: center;
    border-top: 1px solid var(--whl-line);
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, 1fr);
    min-height: 62px;
    padding: 11px 26px;
}

.wendy-home-launcher__benefits > span {
    align-items: center;
    display: flex;
    gap: 10px;
    justify-content: center;
    min-width: 0;
}

.wendy-home-launcher__benefits > span + span {
    border-left: 1px solid var(--whl-line);
}

.wendy-home-launcher__benefits svg {
    background: #f1f1e8;
    border-radius: 50%;
    color: var(--whl-green);
    flex: 0 0 38px;
    height: 38px;
    padding: 9px;
    width: 38px;
}

.wendy-home-launcher__benefits span span {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.wendy-home-launcher__benefits strong {
    color: var(--whl-ink);
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif);
    font-size: 13px;
    font-weight: 500;
    line-height: 1.2;
}

.wendy-home-launcher__benefits small {
    color: var(--whl-muted);
    font-size: 10px;
    line-height: 1.25;
    margin-top: 2px;
}

.wendy-home-launcher__calendar[hidden] {
    display: none !important;
}

.wendy-home-launcher__calendar {
    left: 50%;
    position: absolute;
    top: calc(100% + 10px);
    transform: translateX(-50%);
    z-index: 99999;
}

.wendy-home-launcher__calendar::before {
    background: #fffdf9;
    border-left: 1px solid var(--whl-line);
    border-top: 1px solid var(--whl-line);
    content: '';
    height: 13px;
    left: 50%;
    position: absolute;
    top: -7px;
    transform: translateX(-50%) rotate(45deg);
    width: 13px;
    z-index: 2;
}

.wendy-home-launcher__calendar-backdrop {
    display: none !important;
}

.wendy-home-launcher__calendar-dialog {
    background: #fffdf9;
    border: 1px solid var(--whl-line);
    border-radius: 16px;
    box-shadow: 0 22px 55px rgba(11, 29, 19, .22);
    padding: 13px 15px 12px;
    position: relative;
    width: 390px;
}

.wendy-home-launcher__calendar-close {
    display: none !important;
}

.wendy-home-launcher .wendy-calendar-card--home-full {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0;
}

.wendy-home-launcher .wendy-calendar__nav {
    grid-template-columns: 34px 1fr 34px;
    margin-bottom: 10px;
}

.wendy-home-launcher .wendy-calendar__nav strong {
    font-size: 18px;
    text-transform: none;
}

.wendy-home-launcher .wendy-calendar__nav button {
    border: 0;
    font-size: 23px;
    height: 32px;
    width: 32px;
}

.wendy-home-launcher .wendy-calendar__weekdays span {
    font-size: 9px;
    padding: 2px;
}

.wendy-home-launcher .wendy-calendar__days button {
    font-size: 12px;
    max-height: 34px;
    max-width: 34px;
    min-height: 34px;
}

.wendy-home-launcher .wendy-calendar__days button.is-selected {
    background: var(--whl-green) !important;
    color: #fff !important;
}

.wendy-home-launcher .wendy-calendar__legend {
    border-top: 1px solid var(--whl-line);
    font-size: 10px;
    justify-content: center;
    margin-top: 8px;
    padding-top: 9px;
}

html.wendy-calendar-modal-open {
    overflow: hidden;
}

@media (max-width: 1100px) {
    .wendy-home-launcher__main {
        grid-template-columns: minmax(170px, .58fr) minmax(440px, 1.7fr) minmax(215px, .68fr);
        padding: 0 20px;
    }
    .wendy-home-launcher__date-area {
        padding-left: 12px;
        padding-right: 12px;
    }
    .wendy-home-launcher__date-strip {
        gap: 5px;
    }
    .wendy-home-launcher__date-strip > button {
        height: 80px;
    }
}

@media (max-width: 900px) {
    .wendy-home-launcher__top {
        padding: 18px 20px 15px;
    }
    .wendy-home-launcher__handoff {
        display: none;
    }
    .wendy-home-launcher__main {
        grid-template-columns: 1fr;
        padding: 0 20px;
    }
    .wendy-home-launcher__next {
        border-bottom: 1px solid var(--whl-line);
        border-right: 0;
        padding: 15px 0 13px;
    }
    .wendy-home-launcher__date-area {
        border-bottom: 1px solid var(--whl-line);
        border-right: 0;
        padding: 15px 0 13px;
    }
    .wendy-home-launcher__cta {
        flex-direction: row;
        gap: 13px;
        justify-content: flex-start;
        padding: 14px 0 16px;
    }
    .wendy-home-launcher__cta-icon {
        flex: 0 0 38px;
        height: 38px;
        margin: 0;
        width: 38px;
    }
    .wendy-home-launcher__cta > strong {
        margin: 0 auto 0 0;
    }
    .wendy-home-launcher__submit {
        width: min(310px, 48%);
    }
}

@media (max-width: 620px) {
    .wendy-home-launcher {
        border-radius: 18px;
        margin: 16px auto;
    }
    .wendy-home-launcher__top {
        padding: 16px 15px 14px;
    }
    .wendy-home-launcher__step {
        flex-basis: 36px;
        font-size: 17px;
        height: 36px;
    }
    .wendy-home-launcher__title {
        gap: 10px;
    }
    .wendy-home-launcher__title h2 {
        font-size: 24px !important;
    }
    .wendy-home-launcher__title p {
        font-size: 12px !important;
    }
    .wendy-home-launcher__main {
        padding: 0 15px;
    }
    .wendy-home-launcher__dates {
        gap: 4px;
        grid-template-columns: 25px minmax(0, 1fr) 25px;
    }
    .wendy-home-launcher__date-strip {
        display: flex;
        gap: 7px;
        overflow: hidden;
    }
    .wendy-home-launcher__date-strip > button {
        flex: 0 0 calc((100% - 14px) / 3);
        height: 78px;
    }
    .wendy-home-launcher__date-strip > button:nth-child(n+4) {
        display: none;
    }
    .wendy-home-launcher__calendar-toggle {
        min-width: 0 !important;
        width: 100%;
    }
    .wendy-home-launcher__cta {
        align-items: center;
        display: grid;
        grid-template-columns: 38px 1fr;
    }
    .wendy-home-launcher__cta > strong {
        margin: 0;
        text-align: left;
    }
    .wendy-home-launcher__submit {
        grid-column: 1 / -1;
        margin-top: 2px;
        width: 100%;
    }
    .wendy-home-launcher__benefits {
        gap: 8px;
        grid-template-columns: 1fr;
        padding: 10px 15px;
    }
    .wendy-home-launcher__benefits > span {
        justify-content: flex-start;
    }
    .wendy-home-launcher__benefits > span + span {
        border-left: 0;
    }
    .wendy-home-launcher__benefits small {
        display: none;
    }
    .wendy-home-launcher__calendar {
        inset: 0;
        position: fixed;
        transform: none;
        z-index: 999999;
    }
    .wendy-home-launcher__calendar::before {
        display: none;
    }
    .wendy-home-launcher__calendar-backdrop {
        background: rgba(12, 25, 17, .5) !important;
        border: 0 !important;
        border-radius: 0 !important;
        cursor: default;
        display: block !important;
        height: 100%;
        inset: 0;
        padding: 0 !important;
        position: absolute;
        width: 100%;
    }
    .wendy-home-launcher__calendar-dialog {
        border-radius: 20px 20px 0 0;
        bottom: 0;
        left: 0;
        max-height: 88vh;
        overflow: auto;
        padding: 20px 16px calc(20px + env(safe-area-inset-bottom));
        position: absolute;
        width: 100%;
    }
    .wendy-home-launcher__calendar-close {
        align-items: center;
        background: var(--whl-cream) !important;
        border: 0 !important;
        border-radius: 50% !important;
        color: var(--whl-ink) !important;
        display: inline-flex !important;
        font-size: 22px !important;
        height: 34px;
        justify-content: center;
        min-width: 34px !important;
        padding: 0 0 3px !important;
        position: absolute;
        right: 12px;
        top: 10px;
        width: 34px;
        z-index: 3;
    }
    .wendy-home-launcher .wendy-calendar__nav {
        padding-right: 34px;
    }
}


/* v1.8.0 — refined Wendy booking UI */
.wendy-booking {
    grid-template-columns: minmax(0, 1fr) minmax(320px, 360px);
    gap: 26px;
    padding: 30px;
}
.wendy-booking__steps {
    margin-bottom: 24px;
}
.wendy-booking__steps > span {
    font-size: 14px;
    min-height: 58px;
    padding-bottom: 14px;
}
.wendy-booking__steps > span i {
    background: #f3eee6;
    border: 1px solid #e5dbce;
    color: #8d867c;
}
.wendy-booking__section {
    border-radius: 20px;
    margin-top: 14px;
}
.wendy-booking__section > header {
    padding: 20px 22px;
}
.wendy-booking__section h2 {
    font-size: clamp(22px, 1.9vw, 28px);
}
.wendy-booking__section > header p {
    font-size: 14px;
}
.wendy-booking__section-body {
    padding: 22px;
}
.wendy-date-layout {
    gap: 18px;
    grid-template-columns: minmax(360px, 1.2fr) minmax(210px, .8fr);
}
.wendy-shortcuts button,
.wendy-home-booking__shortcuts button {
    min-height: 66px;
}
.wendy-shortcuts button strong,
.wendy-home-booking__shortcuts button strong {
    font-size: 16px;
}
.wendy-slots-grid {
    gap: 16px;
}
.wendy-slot-card {
    border: 1px solid #e3d9cb;
    border-radius: 18px;
    min-height: 212px;
    padding: 26px 20px 20px;
    text-align: center;
    box-shadow: none;
}
.wendy-slot-card,
.wendy-slot-card * {
    text-decoration: none !important;
}
.wendy-slot-card:hover {
    border-color: #c5b092;
    box-shadow: 0 10px 28px rgba(44, 35, 22, .06);
    transform: translateY(-2px);
}
.wendy-slot-card.is-selected {
    background: #fff;
    border: 2px solid var(--wendy-primary);
    box-shadow: 0 12px 30px rgba(15, 50, 31, .10);
}
.wendy-slot-card__icon {
    color: var(--wendy-accent);
    font-size: 34px;
    line-height: 1;
    margin-bottom: 14px;
}
.wendy-slot-card strong {
    color: var(--wendy-primary);
    font-size: 19px;
    font-weight: 600;
    line-height: 1.2;
}
.wendy-slot-card em {
    color: #6f6a63;
    font-size: 14px;
    margin-top: 10px;
}
.wendy-slot-card b {
    color: var(--wendy-ink);
    font-size: 24px;
    font-weight: 600;
    margin-top: 14px;
}
.wendy-slot-card small {
    color: #736d64;
    font-size: 13px;
    line-height: 1.45;
    margin-top: 10px;
}
.wendy-slot-card__check {
    background: var(--wendy-primary);
    box-shadow: 0 4px 12px rgba(15, 50, 31, .22);
    height: 28px;
    right: 12px;
    top: 12px;
    width: 28px;
}
.wendy-people-choices {
    gap: 14px;
}
.wendy-people-choices button {
    border-radius: 14px;
    min-width: 132px;
    padding: 16px 18px;
}
.wendy-option {
    border-radius: 14px;
    min-height: 86px;
    padding: 14px 16px;
}
.wendy-booking__summary {
    border-radius: 22px;
    top: 20px;
}
.wendy-booking__summary > header {
    padding: 22px 24px 20px;
}
.wendy-booking__summary > header h2 {
    font-size: 22px;
}
.wendy-summary-row {
    gap: 14px;
    grid-template-columns: 28px 1fr auto;
    margin: 0 22px;
    padding: 18px 0;
}
.wendy-summary-row > span {
    align-items: center;
    color: var(--wendy-accent);
    display: inline-flex;
    font-size: 20px;
    justify-content: center;
}
.wendy-summary-row small {
    font-size: 10px;
    letter-spacing: .08em;
}
.wendy-summary-row strong {
    color: var(--wendy-ink);
    font-size: 15px;
    font-weight: 600;
}
.wendy-summary-row button {
    align-self: start;
    font-size: 12px;
    margin-top: 2px;
}
.wendy-summary-total {
    padding: 22px 22px 14px;
}
.wendy-summary-total span {
    font-size: 15px;
    letter-spacing: .04em;
}
.wendy-summary-total strong {
    font-size: 32px;
}
.wendy-booking__summary > .wendy-primary {
    border-radius: 12px;
    margin: 0 22px;
    min-height: 54px;
    width: calc(100% - 44px);
}
.wendy-secure {
    font-size: 13px;
    padding: 12px 18px 16px;
}
.wendy-message {
    padding: 0 22px 12px;
}
.wendy-booking__summary footer {
    margin-top: 2px;
}
.wendy-booking__summary footer span {
    font-size: 10.5px;
    padding: 16px 7px;
}
.wendy-booking__summary footer i {
    font-size: 20px;
}
.wendy-booking .wendy-primary:disabled {
    background: #cfc9c1;
    color: #fff;
    opacity: 1;
}
/* theme-proofing */
.wendy-booking button,
.wendy-booking [type="button"],
.wendy-booking .wendy-primary,
.wendy-booking .wendy-slot-card,
.wendy-booking .wendy-people-choices button {
    color: inherit;
}
.wendy-booking .wendy-primary,
.wendy-booking .wendy-primary:visited,
.wendy-booking .wendy-primary:hover,
.wendy-booking .wendy-primary:focus {
    color: #fff !important;
}
.wendy-booking .wendy-slot-card,
.wendy-booking .wendy-slot-card:hover,
.wendy-booking .wendy-slot-card:focus,
.wendy-booking .wendy-slot-card:visited {
    color: var(--wendy-ink) !important;
}
.wendy-booking .wendy-slot-card strong,
.wendy-booking .wendy-slot-card b,
.wendy-booking .wendy-slot-card em,
.wendy-booking .wendy-slot-card small {
    color: inherit;
}
.wendy-booking .wendy-slot-card strong { color: var(--wendy-primary) !important; }
.wendy-booking .wendy-slot-card b { color: var(--wendy-ink) !important; }
.wendy-booking .wendy-slot-card em,
.wendy-booking .wendy-slot-card small { color: #6f6a63 !important; }
.wendy-booking .wendy-summary-row strong,
.wendy-booking .wendy-summary-total strong,
.wendy-booking .wendy-summary-total span,
.wendy-booking .wendy-booking__summary h2,
.wendy-booking .wendy-booking__section h2 {
    text-decoration: none !important;
}
@media (max-width: 1050px) {
    .wendy-booking { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .wendy-booking { padding: 18px; }
    .wendy-booking__section > header { padding: 16px; }
    .wendy-booking__section-body { padding: 16px; }
    .wendy-slot-card {
        border-radius: 16px;
        min-height: 0;
        padding: 18px 56px 18px 18px;
        text-align: left;
    }
    .wendy-slot-card__icon { display: inline-block; margin: 0 10px 0 0; }
    .wendy-slot-card strong { display: inline; }
}


/* v1.8.1 hotfix — force theme-safe booking styles */
.wendy-booking button,
.wendy-booking input,
.wendy-booking select,
.wendy-booking textarea {
    appearance: none !important;
    -webkit-appearance: none !important;
    box-shadow: none !important;
}
.wendy-booking .wendy-slot-card,
.wendy-booking button.wendy-slot-card,
.wendy-booking button.wendy-slot-card:hover,
.wendy-booking button.wendy-slot-card:focus,
.wendy-booking button.wendy-slot-card:active,
.wendy-booking button.wendy-slot-card:visited {
    background: #fff !important;
    border: 1px solid #e3d9cb !important;
    border-radius: 18px !important;
    color: var(--wendy-ink) !important;
    outline: none !important;
    text-decoration: none !important;
}
.wendy-booking .wendy-slot-card.is-selected,
.wendy-booking button.wendy-slot-card.is-selected,
.wendy-booking button.wendy-slot-card.is-selected:hover,
.wendy-booking button.wendy-slot-card.is-selected:focus,
.wendy-booking button.wendy-slot-card.is-selected:active {
    background: #fff !important;
    border: 2px solid var(--wendy-primary) !important;
    box-shadow: 0 12px 30px rgba(111,90,81,.12) !important;
    color: var(--wendy-ink) !important;
}
.wendy-booking button.wendy-slot-card:hover {
    border-color: #c5b092 !important;
}
.wendy-booking button.wendy-slot-card:focus-visible {
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(111,90,81,.16), 0 12px 30px rgba(111,90,81,.10) !important;
}
.wendy-booking .wendy-slot-card__icon,
.wendy-booking .wendy-slot-card strong,
.wendy-booking .wendy-slot-card em,
.wendy-booking .wendy-slot-card b,
.wendy-booking .wendy-slot-card small {
    text-decoration: none !important;
}
.wendy-booking .wendy-slot-card strong { color: var(--wendy-primary) !important; }
.wendy-booking .wendy-slot-card em,
.wendy-booking .wendy-slot-card small { color: #6f6a63 !important; }
.wendy-booking .wendy-slot-card b { color: var(--wendy-ink) !important; }
.wendy-booking .wendy-slot-card__check {
    background: var(--wendy-primary) !important;
    color: #fff !important;
}
.wendy-booking .wendy-booking__section > header > button,
.wendy-booking button[data-wendy-toggle-section],
.wendy-booking button[data-wendy-prev],
.wendy-booking button[data-wendy-next] {
    align-items: center !important;
    background: #f7f1e8 !important;
    border: 1px solid #e1d5c6 !important;
    border-radius: 10px !important;
    color: var(--wendy-primary) !important;
    display: inline-flex !important;
    height: 38px !important;
    justify-content: center !important;
    width: 38px !important;
    padding: 0 !important;
    min-height: 38px !important;
    outline: none !important;
}
.wendy-booking .wendy-booking__section > header > button:hover,
.wendy-booking button[data-wendy-toggle-section]:hover,
.wendy-booking button[data-wendy-prev]:hover,
.wendy-booking button[data-wendy-next]:hover {
    background: #f2eadf !important;
    border-color: #cdbba4 !important;
}
.wendy-booking .wendy-booking__section > header > button:focus-visible,
.wendy-booking button[data-wendy-toggle-section]:focus-visible,
.wendy-booking button[data-wendy-prev]:focus-visible,
.wendy-booking button[data-wendy-next]:focus-visible {
    box-shadow: 0 0 0 3px rgba(111,90,81,.14) !important;
}
.wendy-booking .wendy-summary-row,
.wendy-booking .wendy-summary-total,
.wendy-booking .wendy-booking__summary footer span {
    background: transparent !important;
}
.wendy-booking .wendy-primary,
.wendy-booking button.wendy-primary,
.wendy-booking button.wendy-primary:hover,
.wendy-booking button.wendy-primary:focus,
.wendy-booking button.wendy-primary:active,
.wendy-booking button.wendy-primary:visited {
    background: linear-gradient(135deg, var(--wendy-primary), var(--wendy-primary-2)) !important;
    border: 0 !important;
    color: #fff !important;
    text-decoration: none !important;
}
.wendy-booking button.wendy-primary:disabled {
    background: #cfc9c1 !important;
    color: #fff !important;
}
.wendy-booking .wendy-people-choices button,
.wendy-booking .wendy-people-choices button:hover,
.wendy-booking .wendy-people-choices button:focus,
.wendy-booking .wendy-people-choices button:active {
    background: #fff !important;
    border: 1px solid #dfd5c7 !important;
    color: var(--wendy-ink) !important;
    outline: none !important;
}
.wendy-booking .wendy-people-choices button.is-selected,
.wendy-booking .wendy-people-choices button.is-selected:hover,
.wendy-booking .wendy-people-choices button.is-selected:focus,
.wendy-booking .wendy-people-choices button.is-selected:active {
    background: var(--wendy-primary) !important;
    border-color: var(--wendy-primary) !important;
    color: #fff !important;
}


/* v1.8.2 — definitive wrapping/alignment fix for formula cards */
.wendy-booking .wendy-slots-grid {
    align-items: stretch !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    min-width: 0 !important;
}
.wendy-booking .wendy-slot-card,
.wendy-booking button.wendy-slot-card {
    align-items: center !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    padding: 24px 14px 18px !important;
    width: 100% !important;
}
.wendy-booking .wendy-slot-card__title,
.wendy-booking .wendy-slot-card strong.wendy-slot-card__title {
    align-items: center !important;
    display: flex !important;
    flex-direction: column !important;
    font-size: 17px !important;
    font-weight: 600 !important;
    justify-content: center !important;
    line-height: 1.22 !important;
    margin: 0 !important;
    max-width: 100% !important;
    min-height: 44px !important;
    min-width: 0 !important;
    overflow: visible !important;
    padding: 0 2px !important;
    text-align: center !important;
    text-overflow: clip !important;
    white-space: normal !important;
    width: 100% !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
    hyphens: auto !important;
}
.wendy-booking .wendy-slot-card__title > span {
    display: block !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}
.wendy-booking .wendy-slot-card em {
    min-height: 21px !important;
    white-space: normal !important;
}
.wendy-booking .wendy-slot-card b {
    line-height: 1.15 !important;
}
.wendy-booking .wendy-slot-card small {
    margin-top: auto !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}
.wendy-booking .wendy-slot-card__check {
    flex: 0 0 auto !important;
    z-index: 2 !important;
}
.wendy-booking .wendy-summary-row {
    min-width: 0 !important;
}
.wendy-booking .wendy-summary-row > div {
    min-width: 0 !important;
}
.wendy-booking .wendy-summary-row strong,
.wendy-booking [data-wendy-summary-slot] {
    display: block !important;
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
}
@media (max-width: 1180px) and (min-width: 761px) {
    .wendy-booking .wendy-slot-card__title,
    .wendy-booking .wendy-slot-card strong.wendy-slot-card__title {
        font-size: 15.5px !important;
    }
    .wendy-booking .wendy-slot-card {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
}
@media (max-width: 760px) {
    .wendy-booking .wendy-slots-grid {
        grid-template-columns: 1fr !important;
    }
    .wendy-booking .wendy-slot-card,
    .wendy-booking button.wendy-slot-card {
        align-items: flex-start !important;
        padding: 18px 54px 18px 18px !important;
        text-align: left !important;
    }
    .wendy-booking .wendy-slot-card__title,
    .wendy-booking .wendy-slot-card strong.wendy-slot-card__title {
        align-items: flex-start !important;
        min-height: 0 !important;
        text-align: left !important;
    }
}


/* v1.8.4 — calendrier pleine largeur et progression personnes → options */
.wendy-booking .wendy-date-layout {
    display: block !important;
    grid-template-columns: none !important;
}
.wendy-booking .wendy-calendar-card {
    width: 100% !important;
    max-width: none !important;
    padding: 22px 26px !important;
}
.wendy-booking .wendy-calendar__nav {
    margin: 0 auto 18px !important;
    max-width: 720px;
}
.wendy-booking .wendy-calendar__weekdays,
.wendy-booking .wendy-calendar__days {
    margin-left: auto;
    margin-right: auto;
    max-width: 760px;
    width: 100%;
}
.wendy-booking .wendy-calendar__days button {
    max-height: 48px;
    max-width: 48px;
}
.wendy-booking .wendy-calendar__legend {
    justify-content: center;
    margin-top: 16px;
}
.wendy-booking .wendy-shortcuts {
    display: none !important;
}
.wendy-booking [data-wendy-section="3"].is-open,
.wendy-booking [data-wendy-section="4"].is-open {
    border-color: #d9c9b5;
    box-shadow: 0 8px 24px rgba(47,35,20,.045);
}
@media (max-width: 760px) {
    .wendy-booking .wendy-calendar-card {
        padding: 14px 10px !important;
    }
    .wendy-booking .wendy-calendar__days button {
        max-height: 40px;
        max-width: 40px;
    }
}


/* v1.8.6 icon fix using WordPress Dashicons */
.wendy-booking__summary > header .dashicons,
.wendy-summary-row > .dashicons,
.wendy-booking__summary footer .dashicons,
.wendy-benefits .dashicons,
.wendy-secure .dashicons {
    font-family: dashicons !important;
    speak: never;
    font-style: normal !important;
    font-weight: 400 !important;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
}
.wendy-booking__summary > header .dashicons {
    color: #d4aa65;
    display: block;
    font-size: 24px;
    height: 24px;
    width: 24px;
    margin: 0 auto 6px;
}
.wendy-summary-row > .dashicons {
    align-items: center;
    color: var(--wendy-accent);
    display: inline-flex !important;
    font-size: 18px;
    justify-content: center;
    height: 20px;
    width: 20px;
    margin-top: 2px;
}
.wendy-booking__summary footer .dashicons {
    color: var(--wendy-accent);
    display: block !important;
    font-size: 22px;
    height: 22px;
    width: 22px;
    margin: 0 auto 6px;
}
.wendy-benefits .dashicons {
    color: var(--wendy-accent);
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    height: 28px;
    width: 28px;
    grid-row: 1 / span 2;
    margin-top: 2px;
}
.wendy-secure .dashicons {
    color: var(--wendy-muted);
    font-size: 14px;
    height: 14px;
    width: 14px;
    vertical-align: text-bottom;
    margin-right: 4px;
}


/* v1.8.7 mobile sequential UX */
@media (max-width: 767px) {
    .wendy-booking {
        gap: 16px !important;
    }
    .wendy-booking__steps {
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 8px !important;
        margin-bottom: 14px !important;
    }
    .wendy-booking__steps span {
        min-width: 28px;
        width: 28px;
        height: 28px;
        font-size: 13px;
    }
    .wendy-booking__steps small,
    .wendy-booking__steps strong,
    .wendy-booking__steps em,
    .wendy-booking__steps b,
    .wendy-booking__steps div {
        font-size: 12px !important;
        line-height: 1.2 !important;
    }
    .wendy-booking__section {
        scroll-margin-top: 78px;
    }
    .wendy-booking__section > header {
        padding: 14px !important;
    }
    .wendy-booking__section h2 {
        font-size: 18px !important;
        line-height: 1.25 !important;
    }
    .wendy-booking__section > header p {
        font-size: 13px !important;
        line-height: 1.35 !important;
    }
    .wendy-booking__section-body {
        padding: 14px !important;
    }
    .wendy-calendar {
        padding: 12px !important;
    }
    .wendy-calendar__weekdays,
    .wendy-calendar__grid {
        gap: 6px !important;
    }
    .wendy-booking__summary {
        margin-top: 0 !important;
    }
}


/* v1.8.8 — compact mobile progression + fixed checkout bar */
@media (max-width: 767px) {
    .wendy-booking {
        margin-bottom: 104px !important;
        padding-bottom: 18px !important;
    }

    /* Compact four-dot progress indicator with a single current label. */
    .wendy-booking__steps {
        align-items: center !important;
        border-bottom: 1px solid var(--wendy-line) !important;
        display: flex !important;
        gap: 18px !important;
        justify-content: center !important;
        margin: 0 0 16px !important;
        overflow: visible !important;
        padding: 0 0 30px !important;
        position: relative !important;
    }
    .wendy-booking__steps::before {
        background: #e7ded2;
        content: "";
        height: 1px;
        left: calc(50% - 76px);
        position: absolute;
        top: 15px;
        width: 152px;
        z-index: 0;
    }
    .wendy-booking__steps::after {
        bottom: 7px;
        color: var(--wendy-primary);
        content: "Choisissez une date";
        font-family: inherit;
        font-size: 12px;
        font-weight: 700;
        left: 0;
        letter-spacing: .01em;
        position: absolute;
        right: 0;
        text-align: center;
    }
    .wendy-booking[data-mobile-step="2"] .wendy-booking__steps::after { content: "Choisissez une formule"; }
    .wendy-booking[data-mobile-step="3"] .wendy-booking__steps::after { content: "Nombre de personnes"; }
    .wendy-booking[data-mobile-step="4"] .wendy-booking__steps::after { content: "Personnalisez votre réservation"; }
    .wendy-booking__steps > span {
        color: transparent !important;
        display: block !important;
        flex: 0 0 30px !important;
        font-size: 0 !important;
        gap: 0 !important;
        justify-content: center !important;
        min-height: 30px !important;
        min-width: 30px !important;
        padding: 0 !important;
        position: relative !important;
        width: 30px !important;
        z-index: 1;
    }
    .wendy-booking__steps > span::after { display: none !important; }
    .wendy-booking__steps > span i {
        background: #f5f0e8 !important;
        border: 1px solid #e1d7ca !important;
        color: #8a8277 !important;
        display: inline-flex !important;
        font-size: 12px !important;
        height: 30px !important;
        line-height: 30px !important;
        margin: 0 !important;
        min-height: 30px !important;
        width: 30px !important;
    }
    .wendy-booking__steps > span.is-active i {
        background: var(--wendy-primary) !important;
        border-color: var(--wendy-primary) !important;
        box-shadow: 0 4px 12px rgba(15, 50, 31, .18);
        color: #fff !important;
    }

    /* Calendar made denser without sacrificing tap targets. */
    .wendy-booking .wendy-calendar-card {
        border-radius: 14px !important;
        padding: 10px 8px !important;
    }
    .wendy-booking .wendy-calendar__nav {
        grid-template-columns: 34px 1fr 34px !important;
        margin-bottom: 8px !important;
    }
    .wendy-booking .wendy-calendar__nav strong {
        font-size: 16px !important;
    }
    .wendy-booking .wendy-calendar__nav button {
        border-radius: 9px !important;
        font-size: 20px !important;
        height: 34px !important;
        min-height: 34px !important;
        width: 34px !important;
    }
    .wendy-booking .wendy-calendar__weekdays span {
        font-size: 9px !important;
        padding: 2px 0 4px !important;
    }
    .wendy-booking .wendy-calendar__days button {
        font-size: 12px !important;
        margin: 0 auto !important;
        max-height: 34px !important;
        max-width: 34px !important;
        min-height: 34px !important;
        min-width: 34px !important;
    }
    .wendy-booking .wendy-calendar__days button::after {
        bottom: 1px !important;
        height: 3px !important;
        width: 3px !important;
    }
    .wendy-booking .wendy-calendar__legend {
        font-size: 10px !important;
        gap: 14px !important;
        justify-content: center !important;
        margin-top: 8px !important;
    }
    .wendy-booking .wendy-calendar__legend i {
        height: 7px !important;
        width: 7px !important;
    }

    /* The full summary becomes a light fixed checkout bar. */
    .wendy-booking__summary {
        align-items: center !important;
        background: rgba(255, 253, 249, .98) !important;
        border: 1px solid #dfd4c6 !important;
        border-bottom: 0 !important;
        border-radius: 18px 18px 0 0 !important;
        bottom: 0 !important;
        box-shadow: 0 -12px 32px rgba(36, 28, 18, .14) !important;
        display: grid !important;
        gap: 10px !important;
        grid-template-columns: minmax(82px, .65fr) minmax(190px, 1.35fr) !important;
        left: 0 !important;
        margin: 0 !important;
        max-width: none !important;
        overflow: visible !important;
        padding: 10px max(12px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)) !important;
        position: fixed !important;
        right: 0 !important;
        top: auto !important;
        width: 100% !important;
        z-index: 9998 !important;
    }
    .wendy-booking__summary > header,
    .wendy-booking__summary .wendy-summary-row,
    .wendy-booking__summary .wendy-secure,
    .wendy-booking__summary footer {
        display: none !important;
    }
    .wendy-booking__summary .wendy-summary-total {
        align-items: flex-start !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 0 !important;
        justify-content: center !important;
        min-width: 0 !important;
        padding: 0 !important;
    }
    .wendy-booking__summary .wendy-summary-total span {
        color: #70695f !important;
        font-family: inherit !important;
        font-size: 10px !important;
        font-weight: 700 !important;
        letter-spacing: .08em !important;
        line-height: 1.2 !important;
    }
    .wendy-booking__summary .wendy-summary-total strong {
        color: var(--wendy-primary) !important;
        font-size: 25px !important;
        line-height: 1.1 !important;
        white-space: nowrap !important;
    }
    .wendy-booking__summary > .wendy-primary {
        border-radius: 11px !important;
        font-size: 14px !important;
        line-height: 1.2 !important;
        margin: 0 !important;
        min-height: 50px !important;
        padding: 10px 12px !important;
        width: 100% !important;
    }
    .wendy-booking__summary > .wendy-primary span {
        font-size: 17px !important;
    }
    .wendy-booking__summary .wendy-message {
        background: #fff0ee !important;
        border: 1px solid #e8b9b1 !important;
        border-radius: 9px !important;
        color: #8b2e25 !important;
        display: none;
        font-size: 12px !important;
        grid-column: 1 / -1 !important;
        margin: 0 !important;
        order: -1;
        padding: 8px 10px !important;
        text-align: left !important;
    }
    .wendy-booking__summary .wendy-message:not(:empty) { display: block !important; }

    /* These desktop reassurance blocks duplicate the mobile checkout bar. */
    .wendy-benefits { display: none !important; }
}


/* v1.8.9 — initial-date handoff and mobile checkout breathing room */
@media (max-width: 767px) {
    .wendy-booking [data-wendy-section="4"].is-open .wendy-booking__section-body {
        padding-bottom: calc(104px + env(safe-area-inset-bottom)) !important;
    }
    .wendy-booking [data-wendy-section="4"].is-open .wendy-included-note {
        margin-bottom: 14px !important;
    }
    .wendy-booking__summary {
        row-gap: 8px !important;
    }
}


/* v1.9.1 — hero d’accueil configurable, sans modifier le module de recherche */
.wendy-home-experience {
    position: relative;
}
.wendy-home-hero,
.wendy-home-hero * {
    box-sizing: border-box;
}
.wendy-home-hero {
    background: #2a211d;
    color: #fff;
    left: 50%;
    min-height: 570px;
    overflow: hidden;
    position: relative;
    transform: translateX(-50%);
    width: 100vw;
    z-index: 1;
}
.wendy-home-hero__media,
.wendy-home-hero__overlay {
    inset: 0;
    position: absolute;
}
.wendy-home-hero__image,
.wendy-home-hero__video {
    height: 100%;
    inset: 0;
    object-fit: cover;
    object-position: center;
    position: absolute;
    width: 100%;
}
.wendy-home-hero__video {
    display: none;
}
.wendy-home-hero__overlay {
    background: linear-gradient(90deg, rgba(25, 18, 15, .82) 0%, rgba(36, 27, 23, .53) 36%, rgba(24, 18, 15, .13) 72%, rgba(18, 13, 11, .2) 100%), linear-gradient(0deg, rgba(18, 13, 11, .35), transparent 42%);
    z-index: 1;
}
.wendy-home-hero__inner {
    align-items: center;
    display: flex;
    margin: 0 auto;
    min-height: 570px;
    padding: 72px 34px 118px;
    position: relative;
    width: min(1260px, 100%);
    z-index: 2;
}
.wendy-home-hero__content {
    max-width: 570px;
}
.wendy-home-hero__eyebrow {
    color: var(--wendy-accent, #d5b690);
    display: block;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .055em;
    margin-bottom: 20px;
    text-transform: uppercase;
}
.wendy-home-hero h1 {
    color: #fff !important;
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif) !important;
    font-size: clamp(48px, 5vw, 76px) !important;
    font-weight: 400 !important;
    letter-spacing: -.025em !important;
    line-height: 1.03 !important;
    margin: 0 !important;
    max-width: 620px;
    text-shadow: 0 3px 22px rgba(0, 0, 0, .22);
}
.wendy-home-hero__ornament {
    align-items: center;
    color: var(--wendy-accent, #d5b690);
    display: flex;
    gap: 14px;
    margin: 25px 0 23px;
    width: min(370px, 80%);
}
.wendy-home-hero__ornament i {
    background: currentColor;
    height: 1px;
    opacity: .8;
    width: 100%;
}
.wendy-home-hero__ornament b {
    font-family: Georgia, serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 1;
}
.wendy-home-hero__content p {
    color: rgba(255,255,255,.91) !important;
    font-size: 16px !important;
    line-height: 1.55 !important;
    margin: 0 !important;
    max-width: 520px;
}
.wendy-home-experience > .wendy-home-launcher {
    margin-top: -72px;
    position: relative;
    z-index: 3;
}
@media (max-width: 900px) {
    .wendy-home-hero,
    .wendy-home-hero__inner {
        min-height: 520px;
    }
    .wendy-home-hero__inner {
        padding: 58px 24px 90px;
    }
    .wendy-home-hero h1 {
        font-size: clamp(42px, 8vw, 62px) !important;
    }
    .wendy-home-experience > .wendy-home-launcher {
        margin-top: -46px;
    }
}
@media (max-width: 620px) {
    .wendy-home-hero {
        min-height: min(780px, 82svh);
    }
    .wendy-home-hero__inner {
        align-items: flex-end;
        min-height: min(780px, 82svh);
        padding: 80px 22px 74px;
    }
    .wendy-home-hero.has-mobile-video .wendy-home-hero__image {
        display: none;
    }
    .wendy-home-hero.has-mobile-video .wendy-home-hero__video {
        display: block;
    }
    .wendy-home-hero__overlay {
        background: linear-gradient(0deg, rgba(28, 20, 17, .88) 0%, rgba(34, 25, 21, .48) 45%, rgba(24, 17, 14, .17) 75%, rgba(18, 13, 11, .28) 100%);
    }
    .wendy-home-hero__content {
        max-width: 100%;
    }
    .wendy-home-hero__eyebrow {
        font-size: 12px;
        margin-bottom: 14px;
    }
    .wendy-home-hero h1 {
        font-size: clamp(38px, 12vw, 54px) !important;
        line-height: 1.04 !important;
    }
    .wendy-home-hero__ornament {
        margin: 18px 0 16px;
        width: 75%;
    }
    .wendy-home-hero__content p {
        font-size: 14px !important;
        line-height: 1.5 !important;
    }
    .wendy-home-experience > .wendy-home-launcher {
        margin-left: 10px;
        margin-right: 10px;
        margin-top: -28px;
        width: calc(100% - 20px);
    }
}


/* v1.9.2 — hero rendering fix */
.wendy-home-experience,
.wendy-home-experience > .wendy-home-hero {
    display: block !important;
}
.wendy-home-experience > .wendy-home-hero {
    visibility: visible !important;
    opacity: 1 !important;
}


/* v1.9.3 — alignement exact du contenu hero sur le bord du module d’accueil */
@media (min-width: 621px) {
    .wendy-home-experience > .wendy-home-hero .wendy-home-hero__inner {
        margin-left: var(--wendy-hero-content-left, auto) !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        width: var(--wendy-hero-content-width, min(1260px, 100%)) !important;
    }
}


/* v1.9.6 — position réglable des médias du hero */
.wendy-home-hero__image {
    object-position: var(--wendy-hero-image-x, 50%) var(--wendy-hero-image-y, 50%) !important;
}
.wendy-home-hero__video {
    object-position: var(--wendy-hero-mobile-x, 50%) var(--wendy-hero-mobile-y, 50%) !important;
}


/* v1.9.7 — largeur globale alignée sur le conteneur du menu (1410 px) */
:root {
    --wendy-content-width: 1410px;
}

@media (min-width: 761px) {
    .tsb-search.tsb-search--premium,
    .tsb-suite,
    .wendy-booking,
    .wendy-home-booking,
    .wendy-home-launcher,
    .wendy-benefits {
        max-width: var(--wendy-content-width) !important;
    }

    .wendy-booking,
    .wendy-home-booking,
    .wendy-home-launcher,
    .wendy-benefits {
        width: min(var(--wendy-content-width), calc(100vw - 32px)) !important;
    }

    .wendy-home-hero__inner {
        width: min(var(--wendy-content-width), 100%) !important;
    }

    .wendy-home-experience > .wendy-home-hero .wendy-home-hero__inner {
        width: var(--wendy-hero-content-width, min(var(--wendy-content-width), 100%)) !important;
    }
}


/* v1.9.8 — cadrage hero sauvegardé et appliqué sans ambiguïté */
.wendy-home-hero .wendy-home-hero__image {
    object-position: var(--wendy-hero-image-x, 50%) var(--wendy-hero-image-y, 50%) !important;
}
.wendy-home-hero .wendy-home-hero__video {
    object-position: var(--wendy-hero-mobile-x, 50%) var(--wendy-hero-mobile-y, 50%) !important;
}


/* v1.9.9 — cadrage hero appliqué au média front et purge automatique des caches */
.wendy-home-hero__media {
    overflow: hidden !important;
}
.wendy-home-hero__media > .wendy-home-hero__image {
    object-fit: cover !important;
    object-position: var(--wendy-hero-image-x, 50%) var(--wendy-hero-image-y, 50%) !important;
    transform: none !important;
}
@media (max-width: 620px) {
    .wendy-home-hero__media > .wendy-home-hero__video {
        object-fit: cover !important;
        object-position: var(--wendy-hero-mobile-x, 50%) var(--wendy-hero-mobile-y, 50%) !important;
        transform: none !important;
    }
}


/* v1.10.0 — XStore/theme-proof hero media sizing so object-position actually works */
.wendy-home-hero__media {
    inset: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
}
.wendy-home-hero__media > img.wendy-home-hero__image,
.wendy-home-hero__media > video.wendy-home-hero__video {
    bottom: 0 !important;
    display: block;
    height: 100% !important;
    inset: 0 !important;
    left: 0 !important;
    margin: 0 !important;
    max-height: none !important;
    max-width: none !important;
    min-height: 100% !important;
    min-width: 100% !important;
    object-fit: cover !important;
    padding: 0 !important;
    position: absolute !important;
    right: 0 !important;
    top: 0 !important;
    transform: none !important;
    width: 100% !important;
}
.wendy-home-hero__media > img.wendy-home-hero__image {
    object-position: var(--wendy-hero-image-x, 50%) var(--wendy-hero-image-y, 50%) !important;
}
.wendy-home-hero__media > video.wendy-home-hero__video {
    object-position: var(--wendy-hero-mobile-x, 50%) var(--wendy-hero-mobile-y, 50%) !important;
}
@media (min-width: 621px) {
    .wendy-home-hero__media > video.wendy-home-hero__video {
        display: none !important;
    }
}
@media (max-width: 620px) {
    .wendy-home-hero.has-mobile-video .wendy-home-hero__media > img.wendy-home-hero__image {
        display: none !important;
    }
    .wendy-home-hero.has-mobile-video .wendy-home-hero__media > video.wendy-home-hero__video {
        display: block !important;
    }
}


/* v1.10.1 — options alignment + selected date and hero ornament fixes */
.wendy-booking .wendy-options {
    align-items: stretch;
    gap: 14px;
}
.wendy-booking label.wendy-option {
    align-items: center !important;
    background: #fff !important;
    display: grid !important;
    gap: 14px !important;
    grid-template-areas: "check content price" !important;
    grid-template-columns: 24px minmax(0, 1fr) auto !important;
    min-height: 110px !important;
    padding: 18px 18px !important;
    text-align: left !important;
    width: 100% !important;
}
.wendy-booking .wendy-option > .wendy-option__check {
    align-self: center !important;
    grid-area: check !important;
    justify-self: center !important;
    margin: 0 !important;
}
.wendy-booking .wendy-option > .wendy-option__content {
    align-self: center !important;
    display: block !important;
    grid-area: content !important;
    min-width: 0 !important;
    text-align: left !important;
}
.wendy-booking .wendy-option__content strong {
    color: var(--wendy-ink) !important;
    display: block !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    margin: 0 !important;
    overflow-wrap: anywhere;
    text-align: left !important;
}
.wendy-booking .wendy-option__content small {
    color: var(--wendy-muted) !important;
    display: block !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    margin: 4px 0 0 !important;
    text-align: left !important;
}
.wendy-booking .wendy-option__content .wendy-option__confirm {
    color: var(--wendy-accent) !important;
}
.wendy-booking .wendy-option > em {
    align-self: center !important;
    color: var(--wendy-accent) !important;
    font-size: 17px !important;
    font-style: normal !important;
    font-weight: 700 !important;
    grid-area: price !important;
    justify-self: end !important;
    margin: 0 !important;
    padding-left: 8px !important;
    text-align: right !important;
    white-space: nowrap !important;
}

/* XStore can override button child colors; selected date must stay readable. */
.wendy-home-launcher .wendy-home-launcher__date-strip > button.is-selected,
.wendy-home-launcher .wendy-home-launcher__date-strip > button.is-selected strong,
.wendy-home-launcher .wendy-home-launcher__date-strip > button.is-selected small,
.wendy-home-launcher .wendy-home-launcher__date-strip > button.is-selected span {
    color: #fff !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #fff !important;
}

/* Keep the decorative symbol visible over every hero image. */
.wendy-home-hero .wendy-home-hero__ornament b {
    color: #fff !important;
    opacity: 1 !important;
    text-shadow: 0 2px 8px rgba(0, 0, 0, .35);
}

@media (max-width: 767px) {
    .wendy-booking label.wendy-option {
        gap: 11px !important;
        grid-template-areas:
            "check content"
            ". price" !important;
        grid-template-columns: 24px minmax(0, 1fr) !important;
        min-height: 0 !important;
        padding: 15px !important;
    }
    .wendy-booking .wendy-option > em {
        justify-self: start !important;
        padding-left: 0 !important;
        padding-top: 2px !important;
        text-align: left !important;
    }
}


/* v1.10.3 — restore search JS, align hero copy and keep summary visible on desktop */
@media (min-width: 1051px) {
    /* Keep the full-width breakout without a transformed ancestor: transformed
       parents make position:sticky unreliable in several themes, including XStore. */
    .wendy-booking {
        left: 50% !important;
        margin-left: max(-705px, calc(-50vw + 16px)) !important;
        margin-right: 0 !important;
        max-width: none !important;
        transform: none !important;
        width: min(var(--wendy-content-width, 1410px), calc(100vw - 32px)) !important;
    }

    .wendy-booking__summary {
        align-self: start !important;
        max-height: calc(100vh - 124px) !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        position: sticky !important;
        top: 108px !important;
        z-index: 12 !important;
    }

    body.admin-bar .wendy-booking__summary {
        max-height: calc(100vh - 156px) !important;
        top: 140px !important;
    }
}

/* The text column must start on the exact same vertical line as the launcher. */
@media (min-width: 621px) {
    .wendy-home-experience > .wendy-home-hero .wendy-home-hero__inner {
        justify-content: flex-start !important;
    }
    .wendy-home-experience > .wendy-home-hero .wendy-home-hero__content {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

/* v1.20.9 — stable first-paint alignment for the desktop hero.
 * The exact launcher position is still measured by JS after load, but these
 * fallbacks already match its desktop width/margins before JS runs. This avoids
 * the brief centred jump without hiding the hero or changing booking behaviour. */
@media (min-width: 761px) {
    .wendy-home-experience {
        --wendy-hero-content-left: max(16px, calc((100vw - var(--wendy-content-width, 1410px)) / 2));
        --wendy-hero-content-width: min(var(--wendy-content-width, 1410px), calc(100vw - 32px));
    }
}


/* v1.10.4 — make the “Votre réservation” panel follow desktop scrolling */
.wendy-booking__summary-slot {
    align-self: stretch;
    min-width: 0;
    position: relative;
}

@media (min-width: 1051px) {
    .wendy-booking__summary-slot {
        height: 100%;
    }
    .wendy-booking__summary {
        position: relative !important;
        top: auto !important;
        width: 100%;
    }
    .wendy-booking__summary.is-wendy-floating {
        margin: 0 !important;
        overscroll-behavior: contain;
        scrollbar-width: thin;
    }
}

@media (max-width: 1050px) {
    .wendy-booking__summary-slot {
        display: contents;
    }
}


/* v1.10.8 — hidden options must stay hidden despite the forced grid layout */
.wendy-booking label.wendy-option[hidden],
.wendy-booking label.wendy-option.is-hidden {
    display: none !important;
}


/* v1.10.9 — hero mobile text centered horizontally and vertically */
@media (max-width: 620px) {
    .wendy-home-hero__inner {
        align-items: center !important;
        justify-content: center !important;
        min-height: min(780px, 82svh) !important;
        padding: 64px 20px 88px !important;
        text-align: center !important;
    }

    .wendy-home-hero__content {
        margin: 0 auto !important;
        max-width: 100% !important;
        text-align: center !important;
        width: 100% !important;
    }

    .wendy-home-hero__eyebrow,
    .wendy-home-hero h1,
    .wendy-home-hero__content p {
        margin-left: auto !important;
        margin-right: auto !important;
        text-align: center !important;
    }

    .wendy-home-hero h1 {
        max-width: 330px !important;
    }

    .wendy-home-hero__content p {
        max-width: 310px !important;
    }

    .wendy-home-hero__ornament {
        justify-content: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
        width: min(210px, 72%) !important;
    }
}


/* v1.11.1 — larger mobile hero title while keeping a balanced 3-line layout */
@media (max-width: 620px) {
    .wendy-home-hero__inner {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .wendy-home-hero__content {
        max-width: 356px !important;
        width: min(356px, calc(100vw - 24px)) !important;
    }

    .wendy-home-hero h1 {
        font-size: clamp(37px, 10.5vw, 42px) !important;
        line-height: 1.06 !important;
        letter-spacing: -.035em !important;
        max-width: 356px !important;
        text-wrap: balance !important;
        width: 100% !important;
    }
}

@media (max-width: 380px) {
    .wendy-home-hero h1 {
        font-size: clamp(35px, 10.2vw, 39px) !important;
        max-width: 348px !important;
    }
}


/* v1.11.3 — mobile-only search launcher ordering */
.wendy-label-mobile {
    display: none;
}

@media (max-width: 620px) {
    /* Button first, then the centered Wellness label. Desktop remains untouched. */
    .wendy-home-launcher__cta {
        align-items: center !important;
        display: grid !important;
        gap: 10px 8px !important;
        grid-template-columns: 38px max-content !important;
        justify-content: center !important;
        padding: 14px 0 16px !important;
        text-align: center !important;
    }

    .wendy-home-launcher__submit {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
        margin: 0 0 4px !important;
        order: 0 !important;
        width: 100% !important;
    }

    .wendy-home-launcher__cta-icon {
        grid-column: 1 !important;
        grid-row: 2 !important;
        justify-self: end !important;
        margin: 0 !important;
    }

    .wendy-home-launcher__cta > strong {
        grid-column: 2 !important;
        grid-row: 2 !important;
        justify-self: start !important;
        margin: 0 !important;
        text-align: center !important;
    }

    /* Only two reassurance items, side by side. */
    .wendy-home-launcher__benefits {
        gap: 0 !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        padding: 10px 12px !important;
    }

    .wendy-home-launcher__benefits > span:nth-child(2) {
        display: none !important;
    }

    .wendy-home-launcher__benefits > span {
        align-items: center !important;
        gap: 7px !important;
        justify-content: center !important;
        padding: 2px 8px !important;
        text-align: center !important;
    }

    .wendy-home-launcher__benefits > span:nth-child(3) {
        border-left: 1px solid var(--whl-line) !important;
    }

    .wendy-home-launcher__benefits svg {
        flex-basis: 32px !important;
        height: 32px !important;
        padding: 7px !important;
        width: 32px !important;
    }

    .wendy-home-launcher__benefits strong {
        font-size: 11px !important;
        line-height: 1.2 !important;
        white-space: normal !important;
    }

    .wendy-label-desktop {
        display: none !important;
    }

    .wendy-label-mobile {
        display: inline !important;
    }
}


/* v1.11.5 — desktop launcher text alignment and single reassurance label */
@media (min-width: 901px) {
    .wendy-home-launcher__title {
        flex: 1 1 auto !important;
    }

    .wendy-home-launcher__title > div {
        min-width: 0 !important;
    }

    .wendy-home-launcher__title p {
        white-space: nowrap !important;
    }

    .wendy-home-launcher__handoff {
        flex: 0 0 auto !important;
        max-width: none !important;
        white-space: nowrap !important;
    }

    .wendy-home-launcher__handoff p {
        white-space: nowrap !important;
    }
}


/* v1.11.6 — mobile-only launcher refinements */
@media (max-width: 620px) {
    /* Remove the isolated step badge on mobile and center the heading block. */
    .wendy-home-launcher__step {
        display: none !important;
    }

    .wendy-home-launcher__title {
        display: block !important;
        justify-content: center !important;
        text-align: center !important;
        width: 100% !important;
    }

    .wendy-home-launcher__title > div {
        margin: 0 auto !important;
        max-width: 100% !important;
        width: 100% !important;
    }

    .wendy-home-launcher__title h2,
    .wendy-home-launcher__title p {
        margin-left: auto !important;
        margin-right: auto !important;
        text-align: center !important;
    }

    /* Center the whole “next availability” group, including its calendar icon. */
    .wendy-home-launcher__next {
        justify-content: center !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        text-align: left !important;
        width: 100% !important;
    }

    .wendy-home-launcher__next-icon {
        align-items: center !important;
        display: inline-flex !important;
        justify-content: center !important;
        margin: 0 !important;
    }

    .wendy-home-launcher__next-icon svg {
        display: block !important;
        margin: 0 auto !important;
        transform: translateX(.25px) !important;
    }

    /* The main action must span the same full width as the calendar button. */
    .wendy-home-launcher__cta {
        box-sizing: border-box !important;
        grid-template-columns: 38px minmax(0, 1fr) !important;
        justify-content: stretch !important;
        width: 100% !important;
    }

    .wendy-home-launcher__submit {
        box-sizing: border-box !important;
        justify-self: stretch !important;
        max-width: none !important;
        min-width: 0 !important;
        width: 100% !important;
    }
}


/* v1.11.7 — mobile-only strict centering for CTA and Wellness label */
@media (max-width: 620px) {
    .wendy-home-launcher__cta {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 38px max-content minmax(0, 1fr) !important;
        justify-items: center !important;
        text-align: center !important;
        width: 100% !important;
    }

    .wendy-home-launcher__submit {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
        justify-content: center !important;
        padding-left: 50px !important;
        padding-right: 50px !important;
        position: relative !important;
        text-align: center !important;
        width: 100% !important;
    }

    .wendy-home-launcher__submit > span:first-child {
        display: block !important;
        margin: 0 auto !important;
        text-align: center !important;
        width: 100% !important;
    }

    .wendy-home-launcher__submit-arrow {
        margin: 0 !important;
        position: absolute !important;
        right: 10px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
    }

    .wendy-home-launcher__cta-icon {
        grid-column: 2 !important;
        grid-row: 2 !important;
        justify-self: center !important;
        margin: 0 !important;
    }

    .wendy-home-launcher__cta > strong {
        grid-column: 3 !important;
        grid-row: 2 !important;
        justify-self: center !important;
        margin: 0 !important;
        text-align: center !important;
        white-space: nowrap !important;
    }
}


/* v1.11.9 — desktop slideshow with crossfade only */
@media (min-width: 621px) {
    .wendy-home-hero__media > img.wendy-home-hero__slide {
        display: block !important;
        opacity: 0 !important;
        transform: none !important;
        transition: opacity 1.1s cubic-bezier(.4, 0, .2, 1) !important;
        visibility: visible !important;
        will-change: opacity;
        z-index: 0;
    }
    .wendy-home-hero__media > img.wendy-home-hero__slide.is-active {
        opacity: 1 !important;
        transform: none !important;
        z-index: 1;
    }
}
@media (max-width: 620px) {
    .wendy-home-hero__media > img.wendy-home-hero__slide {
        display: none !important;
        opacity: 0 !important;
        transform: none !important;
        transition: none !important;
    }
    .wendy-home-hero:not(.has-mobile-video) .wendy-home-hero__media > img.wendy-home-hero__slide:first-of-type {
        display: block !important;
        opacity: 1 !important;
    }
    .wendy-home-hero.has-mobile-video .wendy-home-hero__media > img.wendy-home-hero__slide {
        display: none !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    .wendy-home-hero__media > img.wendy-home-hero__slide {
        transition: none !important;
        transform: none !important;
    }
}


/* v1.12.0 — fix desktop sticky summary stacking below XStore/header */
@media (min-width: 1025px) {
    .wendy-booking,
    .wendy-booking__sidebar,
    .wendy-booking__main {
        isolation: auto !important;
        z-index: auto !important;
    }

    .wendy-booking__summary {
        position: sticky !important;
        top: 108px !important;
        z-index: 2 !important;
    }

    .wendy-booking__summary.is-fixed,
    .wendy-booking__summary.is-stuck {
        z-index: 2 !important;
    }
}


/* v1.12.1 — keep the floating reservation summary below the theme header */
@media (min-width: 1051px) {
    .wendy-booking__summary.is-wendy-floating {
        z-index: 20 !important;
    }

    #header,
    #masthead,
    .site-header,
    .header-wrapper,
    .header-main,
    .main-header,
    .sticky-header,
    .fixed-header,
    .et_b_header-wrapper,
    .et_b_header-main,
    .etheme-sticky-header,
    .xstore-sticky-header,
    .elementor-location-header,
    .elementor-sticky--active {
        z-index: 1000;
    }
}

/* v1.12.3 — rollback wizard + no calendar flash when arriving from home search */
.wendy-booking[data-has-initial-date="1"] [data-wendy-section="1"]:not(.is-open) {
    display: none !important;
}
.wendy-booking[data-has-initial-date="1"] [data-wendy-section="2"].is-open {
    margin-top: 0;
}
@media (max-width: 767px) {
    .wendy-booking[data-has-initial-date="1"] [data-wendy-section="1"]:not(.is-open) {
        display: none !important;
    }
}


/* v1.12.4 — no calendar flash when arriving from home search + clean mobile sequence */
.wendy-booking[data-has-initial-date="1"] [data-wendy-section="1"]:not(.is-open) {
    display: none !important;
}

.wendy-booking[data-has-initial-date="1"] .wendy-booking__steps [data-wendy-step-indicator="1"].is-complete {
    opacity: .72;
}

@media (max-width: 767px) {
    .wendy-booking[data-wendy-booking] .wendy-booking__section:not(.is-open) {
        display: none !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-booking__section.is-locked {
        display: none !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-booking__section.is-open {
        display: block !important;
    }

    .wendy-booking[data-has-initial-date="1"] [data-wendy-section="1"]:not(.is-open) {
        display: none !important;
    }
}


/* v1.12.5 — mobile booking repair: real one-step view and clean fixed action bar */
@media (max-width: 767px) {
    body.single-tsb_suite .template-container,
    body.single-tsb_suite .template-content,
    body.single-tsb_suite .page-wrapper,
    body.single-tsb_suite .content-page,
    body.single-tsb_suite .site-content,
    body.single-tsb_suite .container {
        overflow-x: hidden !important;
    }

    body.single-tsb_suite .single-post-large-wrapper,
    body.single-tsb_suite .single-post-large,
    body.single-tsb_suite .wendy-booking,
    body.single-tsb_suite #wendy-booking {
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    .wendy-booking[data-wendy-booking] {
        border-radius: 18px !important;
        display: block !important;
        margin: 0 auto 28px !important;
        padding: 12px !important;
        width: min(100%, 360px) !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-booking__main {
        display: block !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-booking__steps {
        display: none !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-booking__section {
        margin: 0 !important;
        width: 100% !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-booking__section:not(.is-open),
    .wendy-booking[data-wendy-booking] .wendy-booking__section.is-locked {
        display: none !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-booking__section.is-open {
        display: block !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-booking__section > header {
        align-items: flex-start !important;
        border-bottom: 1px solid var(--wendy-line) !important;
        display: flex !important;
        gap: 10px !important;
        padding: 14px !important;
        text-align: left !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-booking__section > header > span {
        align-items: center !important;
        background: var(--wendy-primary) !important;
        border-radius: 999px !important;
        color: #fff !important;
        display: inline-flex !important;
        flex: 0 0 34px !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        height: 34px !important;
        justify-content: center !important;
        margin-top: 0 !important;
        width: 34px !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-booking__section h2 {
        color: var(--wendy-primary) !important;
        font-size: 24px !important;
        line-height: 1.12 !important;
        margin: 0 !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-booking__section > header p {
        font-size: 13px !important;
        line-height: 1.35 !important;
        margin: 5px 0 0 !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-booking__section > header > button {
        display: none !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-booking__section-body,
    .wendy-booking[data-wendy-booking] .wendy-date-layout {
        padding: 14px !important;
        width: 100% !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-slots-grid,
    .wendy-booking[data-wendy-booking] .wendy-options,
    .wendy-booking[data-wendy-booking] .wendy-people-choices {
        display: grid !important;
        gap: 12px !important;
        grid-template-columns: 1fr !important;
        width: 100% !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-slot-card {
        align-items: flex-start !important;
        border-radius: 16px !important;
        display: flex !important;
        flex-direction: column !important;
        min-height: 0 !important;
        padding: 18px !important;
        text-align: left !important;
        width: 100% !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-slot-card strong {
        font-size: 18px !important;
        line-height: 1.2 !important;
        max-width: 100% !important;
        white-space: normal !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-slot-card b {
        font-size: 24px !important;
        margin-top: 10px !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-people-choices button {
        min-height: 58px !important;
        width: 100% !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-option {
        grid-template-columns: 28px minmax(0, 1fr) auto !important;
        min-height: 78px !important;
        padding: 16px !important;
        width: 100% !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-included-note {
        margin-bottom: 110px !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-booking__summary {
        display: none !important;
    }

    .wendy-booking[data-wendy-booking].has-mobile-selection-ready .wendy-booking__summary {
        align-items: center !important;
        background: rgba(255, 253, 249, .99) !important;
        border: 1px solid #dfd4c6 !important;
        border-bottom: 0 !important;
        border-radius: 18px 18px 0 0 !important;
        bottom: 0 !important;
        box-shadow: 0 -12px 32px rgba(36, 28, 18, .14) !important;
        display: grid !important;
        gap: 10px !important;
        grid-template-columns: minmax(82px, .65fr) minmax(190px, 1.35fr) !important;
        left: 0 !important;
        margin: 0 !important;
        max-width: none !important;
        overflow: visible !important;
        padding: 10px max(12px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)) !important;
        position: fixed !important;
        right: 0 !important;
        top: auto !important;
        width: 100% !important;
        z-index: 80 !important;
    }

    .wendy-booking[data-wendy-booking].has-mobile-selection-ready .wendy-booking__summary > header,
    .wendy-booking[data-wendy-booking].has-mobile-selection-ready .wendy-booking__summary .wendy-summary-row,
    .wendy-booking[data-wendy-booking].has-mobile-selection-ready .wendy-booking__summary .wendy-secure,
    .wendy-booking[data-wendy-booking].has-mobile-selection-ready .wendy-booking__summary footer {
        display: none !important;
    }

    .wendy-booking[data-wendy-booking].has-mobile-selection-ready .wendy-booking__summary .wendy-summary-total {
        align-items: flex-start !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 0 !important;
        justify-content: center !important;
        min-width: 0 !important;
        padding: 0 !important;
    }

    .wendy-booking[data-wendy-booking].has-mobile-selection-ready .wendy-booking__summary .wendy-summary-total span {
        color: #70695f !important;
        font-size: 10px !important;
        font-weight: 700 !important;
        letter-spacing: .08em !important;
        line-height: 1.2 !important;
    }

    .wendy-booking[data-wendy-booking].has-mobile-selection-ready .wendy-booking__summary .wendy-summary-total strong {
        color: var(--wendy-primary) !important;
        font-size: 25px !important;
        line-height: 1.1 !important;
        white-space: nowrap !important;
    }

    .wendy-booking[data-wendy-booking].has-mobile-selection-ready .wendy-booking__summary > .wendy-primary {
        border-radius: 11px !important;
        font-size: 14px !important;
        line-height: 1.2 !important;
        margin: 0 !important;
        min-height: 50px !important;
        padding: 10px 12px !important;
        width: 100% !important;
    }

    .wendy-benefits {
        display: none !important;
    }
}


/* v1.12.6 — mobile centering and breathing room for booking steps */
@media (max-width: 767px) {
    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] {
        box-sizing: border-box !important;
        left: 50% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        max-width: 414px !important;
        overflow: visible !important;
        padding: 12px !important;
        position: relative !important;
        transform: translateX(-50%) !important;
        width: calc(100vw - 28px) !important;
    }

    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] .wendy-booking__main,
    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] .wendy-booking__section,
    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] .wendy-booking__section-body,
    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] .wendy-slots-grid,
    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] .wendy-slot-card {
        box-sizing: border-box !important;
        max-width: 100% !important;
    }

    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] .wendy-booking__section-body {
        padding-bottom: 30px !important;
    }

    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] [data-wendy-section="2"].is-open .wendy-booking__section-body {
        padding-bottom: 38px !important;
    }

    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] .wendy-slots-grid {
        margin: 0 auto !important;
    }

    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] .wendy-slot-card:last-child {
        margin-bottom: 12px !important;
    }
}


/* v1.12.7 — mobile spacing above the booking module */
@media (max-width: 767px) {
    body.single-tsb_suite #wendy-booking,
    body.single-tsb_suite .wendy-booking[data-wendy-booking] {
        margin-top: 20px !important;
        scroll-margin-top: 96px !important;
    }

    body.single-tsb_suite .wendy-booking[data-wendy-booking] .wendy-booking__section.is-open {
        padding-top: 0 !important;
    }

    body.single-tsb_suite .wendy-booking[data-wendy-booking] .wendy-booking__section.is-open > header {
        margin-top: 0 !important;
    }

    body.single-tsb_suite .wendy-booking[data-has-initial-date="1"] {
        margin-top: 22px !important;
    }
}


/* v1.12.8 — mobile breathing room between included note and fixed checkout bar */
@media (max-width: 767px) {
    body.single-tsb_suite .wendy-booking[data-wendy-booking] [data-wendy-section="4"].is-open .wendy-booking__section-body {
        padding-bottom: calc(150px + env(safe-area-inset-bottom)) !important;
    }

    body.single-tsb_suite .wendy-booking[data-wendy-booking] [data-wendy-section="4"].is-open .wendy-included-note {
        margin-bottom: calc(86px + env(safe-area-inset-bottom)) !important;
    }

    body.single-tsb_suite .wendy-booking[data-wendy-booking].has-mobile-selection-ready [data-wendy-section="4"].is-open .wendy-included-note {
        margin-bottom: calc(104px + env(safe-area-inset-bottom)) !important;
    }
}


/* v1.12.9 — mobile included-note spacing reduced by 15px */
@media (max-width: 767px) {
    body.single-tsb_suite .wendy-booking[data-wendy-booking] [data-wendy-section="4"].is-open .wendy-booking__section-body {
        padding-bottom: calc(135px + env(safe-area-inset-bottom)) !important;
    }

    body.single-tsb_suite .wendy-booking[data-wendy-booking] [data-wendy-section="4"].is-open .wendy-included-note {
        margin-bottom: calc(71px + env(safe-area-inset-bottom)) !important;
    }

    body.single-tsb_suite .wendy-booking[data-wendy-booking].has-mobile-selection-ready [data-wendy-section="4"].is-open .wendy-included-note {
        margin-bottom: calc(89px + env(safe-area-inset-bottom)) !important;
    }
}


/* v1.13.0 — mobile included-note spacing reduced by another 15px */
@media (max-width: 767px) {
    body.single-tsb_suite .wendy-booking[data-wendy-booking] [data-wendy-section="4"].is-open .wendy-booking__section-body {
        padding-bottom: calc(120px + env(safe-area-inset-bottom)) !important;
    }

    body.single-tsb_suite .wendy-booking[data-wendy-booking] [data-wendy-section="4"].is-open .wendy-included-note {
        margin-bottom: calc(56px + env(safe-area-inset-bottom)) !important;
    }

    body.single-tsb_suite .wendy-booking[data-wendy-booking].has-mobile-selection-ready [data-wendy-section="4"].is-open .wendy-included-note {
        margin-bottom: calc(74px + env(safe-area-inset-bottom)) !important;
    }
}


/* v1.14.0 — Wendy gift card module */
.wendy-gift-card,
.wendy-gift-card * {
    box-sizing: border-box;
}
.wendy-gift-card {
    --gift-primary: var(--wendy-primary, #6f5a51);
    --gift-accent: var(--wendy-accent, #d5b690);
    --gift-bg: #fbf6ed;
    --gift-line: rgba(111, 90, 81, .18);
    color: var(--gift-primary);
    margin: 42px auto;
    max-width: 1240px;
    padding: 0 20px;
}
.wendy-gift-card__intro {
    margin: 0 auto 28px;
    max-width: 760px;
    text-align: center;
}
.wendy-gift-card__icon {
    align-items: center;
    border: 1px solid rgba(213, 182, 144, .55);
    border-radius: 999px;
    color: var(--gift-accent);
    display: inline-flex;
    font-size: 32px;
    height: 68px;
    justify-content: center;
    margin-bottom: 12px;
    width: 68px;
}
.wendy-gift-card__intro h2 {
    color: var(--gift-primary) !important;
    font-family: Georgia, serif !important;
    font-size: clamp(34px, 4vw, 54px) !important;
    font-weight: 400 !important;
    line-height: 1.08 !important;
    margin: 0 0 10px !important;
}
.wendy-gift-card__intro p {
    color: #6d5d55 !important;
    font-size: 17px !important;
    line-height: 1.55 !important;
    margin: 0 auto !important;
    max-width: 650px;
}
.wendy-gift-card__grid {
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
    align-items: start;
}
.wendy-gift-card__form,
.wendy-gift-preview {
    background: rgba(255,255,255,.9);
    border: 1px solid var(--gift-line);
    border-radius: 22px;
    box-shadow: 0 18px 48px rgba(68, 48, 35, .08);
}
.wendy-gift-card__form {
    display: grid;
    gap: 0;
    padding: 24px;
}
.wendy-gift-step {
    border-bottom: 1px solid var(--gift-line);
    padding: 0 0 22px;
    margin-bottom: 22px;
}
.wendy-gift-step:last-of-type {
    border-bottom: 0;
    margin-bottom: 18px;
}
.wendy-gift-step header {
    align-items: flex-start;
    display: flex;
    gap: 12px;
    margin-bottom: 16px;
}
.wendy-gift-step header span {
    align-items: center;
    background: var(--gift-primary);
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    flex: 0 0 32px;
    font-size: 14px;
    font-weight: 700;
    height: 32px;
    justify-content: center;
    width: 32px;
}
.wendy-gift-step h3 {
    color: var(--gift-primary) !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    letter-spacing: .04em;
    margin: 0 0 3px !important;
    text-transform: uppercase;
}
.wendy-gift-step p {
    color: #8b7b72 !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    margin: 0 !important;
}
.wendy-gift-amounts {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 16px;
}
.wendy-gift-amounts button {
    background: #fff;
    border: 1px solid rgba(213, 182, 144, .7);
    border-radius: 10px;
    color: var(--gift-primary);
    cursor: pointer;
    font-weight: 800;
    min-height: 48px;
    transition: .18s ease;
}
.wendy-gift-amounts button:hover,
.wendy-gift-amounts button.is-selected {
    background: var(--gift-accent);
    border-color: var(--gift-accent);
    color: #fff;
    transform: translateY(-1px);
}
.wendy-gift-field {
    display: grid;
    gap: 7px;
    margin-bottom: 14px;
}
.wendy-gift-field span {
    color: var(--gift-primary);
    font-size: 14px;
    font-weight: 800;
}
.wendy-gift-field em {
    color: #927e72;
    font-style: normal;
    font-weight: 500;
}
.wendy-gift-field input,
.wendy-gift-field textarea {
    background: #fff;
    border: 1px solid var(--gift-line);
    border-radius: 12px;
    color: var(--gift-primary);
    font-size: 15px;
    min-height: 50px;
    outline: none;
    padding: 12px 14px;
    width: 100%;
}
.wendy-gift-field textarea {
    min-height: 105px;
    resize: vertical;
}
.wendy-gift-field input:focus,
.wendy-gift-field textarea:focus {
    border-color: var(--gift-accent);
    box-shadow: 0 0 0 3px rgba(213, 182, 144, .2);
}
.wendy-gift-step > small,
.wendy-gift-field small {
    color: #89796f;
    font-size: 13px;
}
.wendy-gift-radio {
    align-items: flex-start;
    background: #fff;
    border: 1px solid var(--gift-line);
    border-radius: 14px;
    cursor: pointer;
    display: flex;
    gap: 11px;
    margin-bottom: 10px;
    padding: 14px;
}
.wendy-gift-radio input {
    accent-color: var(--gift-primary);
    margin-top: 3px;
}
.wendy-gift-radio strong {
    color: var(--gift-primary);
    display: block;
    font-size: 15px;
}
.wendy-gift-radio small {
    color: #89796f;
    display: block;
    font-size: 13px;
    line-height: 1.35;
    margin-top: 2px;
}
.wendy-gift-submit {
    align-items: center;
    background: linear-gradient(135deg, var(--gift-accent), #c5a173);
    border: 0;
    border-radius: 13px;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    font-size: 15px;
    font-weight: 900;
    gap: 10px;
    justify-content: center;
    letter-spacing: .04em;
    min-height: 56px;
    padding: 15px 20px;
    text-transform: uppercase;
    width: 100%;
}
.wendy-gift-submit:disabled {
    cursor: wait;
    opacity: .65;
}
.wendy-gift-message {
    color: var(--gift-primary);
    font-size: 14px;
    font-weight: 700;
    margin-top: 12px;
    text-align: center;
}
.wendy-gift-message.is-error {
    color: #9e3228;
}
.wendy-gift-secure {
    color: #89796f;
    display: block;
    margin-top: 11px;
    text-align: center;
}
.wendy-gift-preview {
    padding: 24px;
    position: sticky;
    top: 110px;
}
.wendy-gift-preview > h3 {
    color: var(--gift-primary) !important;
    font-size: 19px !important;
    font-weight: 900 !important;
    letter-spacing: .04em;
    margin: 0 0 18px !important;
    text-align: center;
    text-transform: uppercase;
}
.wendy-gift-voucher {
    background:
        radial-gradient(circle at top left, rgba(213, 182, 144, .18), transparent 34%),
        radial-gradient(circle at bottom right, rgba(213, 182, 144, .16), transparent 30%),
        #fff;
    border: 1px solid rgba(213, 182, 144, .5);
    border-radius: 22px;
    box-shadow: 0 18px 42px rgba(68, 48, 35, .12);
    min-height: 760px;
    overflow: hidden;
    padding: 0 28px 0;
    text-align: center;
}
.wendy-gift-voucher__header {
    background-color: #ece5dc;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    height: 150px;
    margin: 0 -28px;
}
.wendy-gift-voucher__header-separator {
    background: linear-gradient(180deg, rgba(213, 182, 144, .55), rgba(213, 182, 144, .22));
    height: 4px;
    margin: 0 -28px 18px;
}
.wendy-gift-voucher__brand {
    color: var(--gift-primary);
    display: block;
    font-family: Georgia, serif;
    font-size: 34px;
    line-height: 1;
    margin: 0 auto 18px;
}
.wendy-gift-voucher__brand em {
    display: block;
    font-family: cursive;
    font-size: 22px;
    font-style: normal;
    margin-top: -4px;
}
.wendy-gift-voucher > strong {
    color: var(--gift-primary);
    display: block;
    font-family: Georgia, serif;
    font-size: 36px;
    font-weight: 400;
    letter-spacing: .04em;
    line-height: 1.05;
    text-transform: uppercase;
}
.wendy-gift-voucher > small {
    color: #8c715e;
    display: block;
    font-size: 15px;
    margin: 8px 0 22px;
}
.wendy-gift-voucher__amount span {
    color: #7a6a62;
    display: block;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .18em;
    margin-bottom: 3px;
    text-transform: uppercase;
}
.wendy-gift-voucher__amount b {
    color: var(--gift-accent);
    display: block;
    font-family: Georgia, serif;
    font-size: 72px;
    font-weight: 400;
    line-height: 1.02;
    margin: 4px 0 26px;
}
.wendy-gift-voucher__names p {
    color: #7a6a62;
    font-size: 14px;
    margin: 0 0 22px;
}
.wendy-gift-voucher__names strong {
    color: var(--gift-primary);
    display: block;
    font-family: Georgia, serif;
    font-size: 27px;
    font-style: italic;
    font-weight: 400;
    line-height: 1.15;
    margin-top: 7px;
}
.wendy-gift-voucher blockquote {
    color: var(--gift-primary);
    font-family: Georgia, serif;
    font-size: 18px;
    font-style: italic;
    line-height: 1.5;
    margin: 24px auto 28px;
    max-width: 420px;
    min-height: 66px;
}
.wendy-gift-voucher footer {
    background: #f6efe6;
    border: 1px solid rgba(213, 182, 144, .65);
    margin: 4px 30px 28px;
    padding: 24px 22px 22px;
}
.wendy-gift-voucher footer span {
    color: #7a6a62;
    display: block;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .08em;
    margin-bottom: 12px;
    text-transform: uppercase;
}
.wendy-gift-voucher code {
    background: #fff;
    border: 1px solid rgba(213, 182, 144, .85);
    border-radius: 0;
    color: var(--gift-primary);
    display: inline-block;
    font-family: Georgia, serif;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: .15em;
    padding: 14px 24px;
}
.wendy-gift-voucher footer small {
    color: #8b7b72;
    display: block;
    font-size: 12px;
    line-height: 1.55;
    margin-top: 12px;
}
.wendy-gift-preview__benefits {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 18px;
}
.wendy-gift-preview__benefits span {
    align-items: center;
    background: #fff;
    border: 1px solid var(--gift-line);
    border-radius: 14px;
    color: var(--gift-primary);
    display: flex;
    flex-direction: column;
    font-size: 21px;
    gap: 6px;
    justify-content: center;
    min-height: 88px;
    padding: 12px;
    text-align: center;
}
.wendy-gift-preview__benefits strong {
    font-size: 12px;
    letter-spacing: .04em;
    text-transform: uppercase;
}
@media (max-width: 980px) {
    .wendy-gift-card__grid {
        grid-template-columns: 1fr;
    }
    .wendy-gift-preview {
        position: relative;
        top: auto;
    }
}
@media (max-width: 767px) {
    .wendy-gift-card {
        margin: 24px auto;
        padding: 0 14px;
    }
    .wendy-gift-card__intro {
        margin-bottom: 18px;
    }
    .wendy-gift-card__intro h2 {
        font-size: 32px !important;
    }
    .wendy-gift-card__intro p {
        font-size: 15px !important;
    }
    .wendy-gift-card__form,
    .wendy-gift-preview {
        border-radius: 18px;
        padding: 16px;
    }
    .wendy-gift-step {
        margin-bottom: 18px;
        padding-bottom: 18px;
    }
    .wendy-gift-step header {
        gap: 10px;
    }
    .wendy-gift-step h3 {
        font-size: 16px !important;
        line-height: 1.2 !important;
    }
    .wendy-gift-amounts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .wendy-gift-voucher {
        min-height: 0;
        padding: 0 18px 0;
    }
    .wendy-gift-voucher__header {
        height: 126px;
        margin: 0 -18px;
    }
    .wendy-gift-voucher__header-separator {
        margin: 0 -18px 18px;
    }
    .wendy-gift-voucher__brand {
        font-size: 28px;
        margin-bottom: 20px;
    }
    .wendy-gift-voucher > strong {
        font-size: 28px;
    }
    .wendy-gift-voucher__amount b {
        font-size: 56px;
    }
    .wendy-gift-voucher code {
        font-size: 18px;
        letter-spacing: .1em;
        padding: 12px 16px;
    }
    .wendy-gift-preview__benefits {
        grid-template-columns: 1fr;
    }
}


/* v1.15.0 — gift card verification shortcode */
.wendy-gift-check {
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(111,90,81,.18);
    border-radius: 20px;
    box-shadow: 0 16px 42px rgba(68,48,35,.08);
    color: var(--wendy-primary, #6f5a51);
    margin: 28px auto;
    max-width: 720px;
    padding: 24px;
}
.wendy-gift-check h3 {
    color: var(--wendy-primary, #6f5a51) !important;
    font-family: Georgia, serif !important;
    font-size: 30px !important;
    font-weight: 400 !important;
    margin: 0 0 8px !important;
}
.wendy-gift-check p {
    color: #75665f !important;
    margin: 0 0 16px !important;
}
.wendy-gift-check > div:not(.wendy-gift-check__result) {
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) auto;
}
.wendy-gift-check input {
    border: 1px solid rgba(111,90,81,.22);
    border-radius: 12px;
    min-height: 50px;
    padding: 12px 14px;
    text-transform: uppercase;
}
.wendy-gift-check button {
    background: var(--wendy-primary, #6f5a51);
    border: 0;
    border-radius: 12px;
    color: #fff;
    cursor: pointer;
    font-weight: 800;
    padding: 0 22px;
}
.wendy-gift-check__result {
    border-radius: 14px;
    display: grid;
    gap: 6px;
    margin-top: 16px;
    padding: 15px;
}
.wendy-gift-check__result.is-valid {
    background: #f4eadb;
    border: 1px solid rgba(213,182,144,.65);
}
.wendy-gift-check__result.is-error {
    background: #fff0ee;
    border: 1px solid #e8b9b1;
    color: #8b2e25;
}
.wendy-gift-check__result strong {
    font-size: 17px;
}
@media (max-width: 767px) {
    .wendy-gift-check {
        margin: 22px 14px;
        padding: 18px;
    }
    .wendy-gift-check > div:not(.wendy-gift-check__result) {
        grid-template-columns: 1fr;
    }
    .wendy-gift-check button {
        min-height: 50px;
        width: 100%;
    }
}


/* v1.15.1 — gift-card link inside the home search module */
.wendy-home-launcher__gift-link {
    text-decoration: none !important;
    transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.wendy-home-launcher__gift-link:hover {
    background: #fffaf1;
    border-color: rgba(213, 182, 144, .82);
    color: var(--whl-green);
    transform: translateY(-1px);
}

.wendy-home-launcher__gift-link span svg {
    height: 14px;
    width: 14px;
}

.wendy-home-launcher__gift-link span svg path {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.wendy-home-launcher__gift-link p {
    color: inherit !important;
    font-weight: 650;
}

@media (max-width: 767px) {
    .wendy-home-launcher__gift-link {
        justify-content: center;
        text-align: left;
    }
}


/* v1.15.3 — gift-card preview fixed follow-scroll fallback */
@media (min-width: 981px) {
    .wendy-gift-preview.is-wendy-gift-floating {
        box-shadow: 0 18px 48px rgba(68, 48, 35, .12) !important;
    }
}


/* v1.15.4 — remove old v1.15.2 internal scrollbar, keep only visual cleanup */
.wendy-gift-card__icon,
.wendy-gift-preview__benefits {
    display: none !important;
}

@media (min-width: 981px) {
    .wendy-gift-card,
    .wendy-gift-card__grid {
        overflow: visible !important;
    }

    .wendy-gift-card__grid {
        align-items: start !important;
    }

    .wendy-gift-preview:not(.is-wendy-gift-floating) {
        max-height: none !important;
        overflow: visible !important;
    }
}


/* v1.15.5 — absolutely no internal scrollbar on the gift preview */
@media (min-width: 981px) {
    .wendy-gift-preview,
    .wendy-gift-preview.is-wendy-gift-floating {
        max-height: none !important;
        overflow: visible !important;
        overflow-y: visible !important;
    }
}


/* v1.15.6 — gift preview must stop with the left form, not over the footer */
@media (min-width: 981px) {
    .wendy-gift-card__grid {
        position: relative !important;
    }

    .wendy-gift-preview.is-wendy-gift-floating {
        max-height: none !important;
        overflow: visible !important;
        overflow-y: visible !important;
        will-change: top;
    }
}


/* v1.15.7 — mobile swipe support for the home date strip */
@media (max-width: 767px) {
    .wendy-home-launcher__dates {
        touch-action: pan-y;
        user-select: none;
        -webkit-user-select: none;
    }
}


/* v1.15.8 — use real Salon by Wendy logo in gift-card preview */
.wendy-gift-voucher__brand--logo {
    align-items: center;
    display: flex !important;
    justify-content: center;
    margin-bottom: 16px;
}

.wendy-gift-voucher__brand--logo img {
    display: block;
    height: auto;
    max-height: 56px;
    max-width: 150px;
    object-fit: contain;
    width: auto;
}

@media (max-width: 767px) {
    .wendy-gift-voucher__brand--logo {
        margin-bottom: 18px;
    }

    .wendy-gift-voucher__brand--logo img {
        max-height: 50px;
        max-width: 138px;
    }
}


/* v1.16.1 — mobile wheel-like date swipe */
@media (max-width: 767px) {
    .wendy-home-launcher__dates.is-wheel-moving {
        pointer-events: none;
    }

    .wendy-home-launcher__dates.is-wheel-tick button {
        animation: wendyDateWheelTick .14s ease-out;
    }

    @keyframes wendyDateWheelTick {
        0% {
            opacity: .62;
            transform: translateX(7px) scale(.985);
        }
        100% {
            opacity: 1;
            transform: translateX(0) scale(1);
        }
    }
}


/* v1.16.2 — real mobile slider for home dates */
.wendy-home-launcher__date-strip-viewport {
    min-width: 0;
}

@media (max-width: 767px) {
    .wendy-home-launcher__date-strip-viewport {
        min-width: 0;
        overflow: hidden;
    }

    .wendy-home-launcher__date-strip {
        overflow: visible !important;
        touch-action: pan-y;
        transform: translate3d(0,0,0);
        will-change: transform;
    }

    .wendy-home-launcher__date-strip > button:nth-child(n+4) {
        display: flex !important;
    }

    .wendy-home-launcher__date-strip.is-real-dragging > button,
    .wendy-home-launcher__date-strip.is-real-sliding > button {
        pointer-events: none;
    }

    .wendy-home-launcher__date-strip.is-real-dragging > button {
        transition: border-color .18s ease, background .18s ease;
    }

    .wendy-home-launcher__date-strip.is-real-sliding {
        cursor: grabbing;
    }
}


/* v1.16.3 — keep real mobile slider, remove extra post-release inertia in JS */
@media (max-width: 767px) {
    .wendy-home-launcher__date-strip.is-real-sliding {
        transition-timing-function: cubic-bezier(.22,.86,.22,1);
    }
}


/* v1.16.4 — mobile date slider: no rebound after release */
@media (max-width: 767px) {
    .wendy-home-launcher__date-strip.is-real-sliding {
        transition-timing-function: cubic-bezier(.22,.86,.22,1) !important;
    }
}


/* v1.16.5 — keep date buttons clickable on simple mobile taps */
@media (max-width: 767px) {
    .wendy-home-launcher__date-strip.is-real-ready:not(.is-real-dragging):not(.is-real-sliding) > button {
        pointer-events: auto !important;
    }
}


/* v1.16.6 — mobile: center available formula cards */
@media (max-width: 767px) {
    .wendy-booking[data-wendy-booking] .wendy-slot-card,
    .wendy-booking[data-wendy-booking] button.wendy-slot-card,
    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] .wendy-slot-card,
    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] button.wendy-slot-card {
        align-items: center !important;
        justify-content: center !important;
        padding: 18px 20px !important;
        text-align: center !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-slot-card__icon,
    .wendy-booking[data-wendy-booking] .wendy-slot-card__title,
    .wendy-booking[data-wendy-booking] .wendy-slot-card strong,
    .wendy-booking[data-wendy-booking] .wendy-slot-card em,
    .wendy-booking[data-wendy-booking] .wendy-slot-card b,
    .wendy-booking[data-wendy-booking] .wendy-slot-card small,
    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] .wendy-slot-card__icon,
    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] .wendy-slot-card__title,
    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] .wendy-slot-card strong,
    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] .wendy-slot-card em,
    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] .wendy-slot-card b,
    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] .wendy-slot-card small {
        align-self: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
        max-width: 100% !important;
        text-align: center !important;
        width: 100% !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-slot-card__title,
    .wendy-booking[data-wendy-booking] .wendy-slot-card strong.wendy-slot-card__title,
    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] .wendy-slot-card__title,
    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] .wendy-slot-card strong.wendy-slot-card__title {
        align-items: center !important;
        justify-content: center !important;
        min-height: 0 !important;
        text-align: center !important;
    }
}


/* v1.16.7 — performance hint for mobile date slider */
@media (max-width: 767px) {
    .wendy-home-launcher__date-strip {
        contain: layout paint;
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
    }
}


/* v1.16.8 — front booking links now target /reservation/ instead of tsb_suite permalinks */


/* v1.16.9 — mobile: keep [wendy_booking] centered on the Elementor /reservation/ page */
@media (max-width: 767px) {
    body .wendy-booking[data-wendy-booking],
    body #wendy-booking.wendy-booking[data-wendy-booking] {
        box-sizing: border-box !important;
        clear: both !important;
        display: block !important;
        float: none !important;
        left: auto !important;
        margin-left: auto !important;
        margin-right: auto !important;
        max-width: 414px !important;
        min-width: 0 !important;
        overflow: visible !important;
        padding: 12px !important;
        position: relative !important;
        right: auto !important;
        transform: none !important;
        width: min(414px, calc(100vw - 28px)) !important;
    }

    body .wendy-booking[data-wendy-booking] *,
    body #wendy-booking.wendy-booking[data-wendy-booking] * {
        box-sizing: border-box !important;
    }

    body .wendy-booking[data-wendy-booking] .wendy-booking__main,
    body .wendy-booking[data-wendy-booking] .wendy-booking__section,
    body .wendy-booking[data-wendy-booking] .wendy-booking__section-body,
    body .wendy-booking[data-wendy-booking] .wendy-slots-grid,
    body .wendy-booking[data-wendy-booking] .wendy-options,
    body .wendy-booking[data-wendy-booking] .wendy-option,
    body .wendy-booking[data-wendy-booking] .wendy-slot-card {
        max-width: 100% !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    body .elementor .wendy-booking[data-wendy-booking],
    body .elementor-widget-shortcode .wendy-booking[data-wendy-booking],
    body .elementor-shortcode .wendy-booking[data-wendy-booking] {
        margin-left: auto !important;
        margin-right: auto !important;
    }

    body .elementor-widget-shortcode,
    body .elementor-shortcode {
        max-width: 100% !important;
        overflow-x: clip !important;
    }

    @supports not (overflow: clip) {
        body .elementor-widget-shortcode,
        body .elementor-shortcode {
            overflow-x: hidden !important;
        }
    }
}


/* v1.17.0 — desktop: center reassurance benefits under the reservation module */
@media (min-width: 768px) {
    body .wendy-benefits {
        box-sizing: border-box !important;
        display: grid !important;
        gap: 0 !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        left: 50% !important;
        margin: 18px 0 42px !important;
        max-width: none !important;
        padding: 16px 12px !important;
        position: relative !important;
        transform: translateX(-50%) !important;
        width: min(1320px, calc(100vw - 32px)) !important;
    }

    body .wendy-benefits > span {
        align-items: center !important;
        display: grid !important;
        gap: 2px 13px !important;
        grid-template-columns: 34px max-content !important;
        justify-content: center !important;
        min-width: 0 !important;
        padding: 10px 18px !important;
        text-align: left !important;
    }

    body .wendy-benefits i {
        justify-self: center !important;
        text-align: center !important;
    }

    body .wendy-benefits strong,
    body .wendy-benefits small {
        display: block !important;
        max-width: 210px !important;
        text-align: left !important;
        white-space: normal !important;
    }
}

/* v1.20.0 — Formule Évasion Solo : bloc pleine largeur et parcours sans étape personnes */
.wendy-booking .wendy-solo-formula {
    background: #fffdf9;
    border: 1px solid rgba(18, 61, 41, .24);
    border-radius: 20px;
    box-shadow: 0 12px 34px rgba(18, 61, 41, .08);
    margin-top: 18px;
    overflow: hidden;
    width: 100%;
}
.wendy-booking .wendy-solo-formula__header {
    align-items: center;
    background: #123d29;
    color: #fff;
    display: flex;
    gap: 12px;
    justify-content: center;
    min-height: 62px;
    padding: 15px 24px;
    text-align: center;
}
.wendy-booking .wendy-solo-formula__header > span {
    color: #e7c58e;
    font-size: 25px;
    line-height: 1;
}
.wendy-booking .wendy-solo-formula__header strong {
    color: #fff !important;
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif);
    font-size: 22px;
    font-weight: 600;
    letter-spacing: .035em;
    text-transform: uppercase;
}
.wendy-booking .wendy-solo-formula__body {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
}
.wendy-booking .wendy-solo-formula__details {
    padding: 26px 34px 24px;
}
.wendy-booking .wendy-solo-formula__intro {
    color: #1d392c !important;
    font-size: 18px !important;
    font-style: italic;
    font-weight: 600;
    line-height: 1.42 !important;
    margin: 0 0 21px !important;
    text-align: center;
}
.wendy-booking .wendy-solo-formula__service {
    align-items: center;
    display: flex;
    gap: 16px;
    margin: 15px auto;
    max-width: 500px;
}
.wendy-booking .wendy-solo-formula__service > i {
    align-items: center;
    border: 1px solid rgba(171, 99, 31, .28);
    border-radius: 50%;
    color: #a85f1f;
    display: inline-flex;
    flex: 0 0 46px;
    font-family: Georgia, serif;
    font-size: 24px;
    font-style: normal;
    height: 46px;
    justify-content: center;
}
.wendy-booking .wendy-solo-formula__service > span {
    min-width: 0;
}
.wendy-booking .wendy-solo-formula__service strong,
.wendy-booking .wendy-solo-formula__service small {
    display: block;
    text-align: left;
}
.wendy-booking .wendy-solo-formula__service strong {
    color: #2f2a25 !important;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.3;
}
.wendy-booking .wendy-solo-formula__service small {
    color: #6f675f !important;
    font-size: 13px;
    line-height: 1.35;
    margin-top: 2px;
}
.wendy-booking .wendy-solo-formula__included {
    background: #f5ead8;
    border-radius: 999px;
    color: #4e453c !important;
    font-size: 12px !important;
    font-weight: 600;
    margin: 22px auto 0 !important;
    max-width: 410px;
    padding: 10px 18px;
    text-align: center;
}
.wendy-booking .wendy-solo-formula__booking {
    align-items: stretch;
    background: #f8f3eb;
    border-left: 1px solid rgba(18, 61, 41, .14);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 25px 27px;
}
.wendy-booking .wendy-solo-formula__choice-label {
    color: #123d29;
    display: block;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .07em;
    margin-bottom: 12px;
    text-align: center;
    text-transform: uppercase;
}
.wendy-booking .wendy-solo-formula__times {
    display: grid;
    gap: 10px;
    grid-template-columns: 1fr;
}
.wendy-booking button.wendy-solo-time,
.wendy-booking button.wendy-solo-time:hover,
.wendy-booking button.wendy-solo-time:focus,
.wendy-booking button.wendy-solo-time:active {
    align-items: center;
    background: #fff !important;
    border: 1px solid rgba(18, 61, 41, .22) !important;
    border-radius: 13px !important;
    box-shadow: none !important;
    color: #2f2a25 !important;
    cursor: pointer;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) auto 24px;
    min-height: 62px;
    outline: none !important;
    padding: 11px 13px !important;
    text-align: left;
    transform: none !important;
    width: 100%;
}
.wendy-booking button.wendy-solo-time:hover:not(:disabled) {
    border-color: #123d29 !important;
    transform: translateY(-1px) !important;
}
.wendy-booking button.wendy-solo-time > span strong,
.wendy-booking button.wendy-solo-time > span small {
    display: block;
}
.wendy-booking button.wendy-solo-time > span strong {
    color: #123d29 !important;
    font-size: 15px;
    font-weight: 700;
}
.wendy-booking button.wendy-solo-time > span small {
    color: #6f675f !important;
    font-size: 13px;
    margin-top: 2px;
}
.wendy-booking button.wendy-solo-time > em {
    color: #7c7167 !important;
    font-size: 11px;
    font-style: normal;
    font-weight: 700;
    text-transform: uppercase;
}
.wendy-booking button.wendy-solo-time > i {
    align-items: center;
    background: #123d29;
    border-radius: 50%;
    color: #fff;
    display: none;
    font-size: 12px;
    font-style: normal;
    height: 22px;
    justify-content: center;
    width: 22px;
}
.wendy-booking button.wendy-solo-time.is-selected {
    background: #eef4ef !important;
    border: 2px solid #123d29 !important;
    padding: 10px 12px !important;
}
.wendy-booking button.wendy-solo-time.is-selected > i {
    display: inline-flex;
}
.wendy-booking button.wendy-solo-time.is-selected > em {
    color: #123d29 !important;
}
.wendy-booking button.wendy-solo-time:disabled {
    background: #eee9e2 !important;
    border-color: #ddd5ca !important;
    cursor: not-allowed;
    opacity: .62;
}
.wendy-booking .wendy-solo-formula__price {
    align-items: baseline;
    background: #ead8bd;
    border-radius: 999px;
    color: #24211e;
    display: flex;
    gap: 8px;
    justify-content: center;
    margin: 18px auto 0;
    max-width: 245px;
    padding: 9px 20px;
    width: 100%;
}
.wendy-booking .wendy-solo-formula__price b {
    color: #24211e !important;
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif);
    font-size: 27px;
    font-weight: 500;
}
.wendy-booking .wendy-solo-formula__price span {
    color: #4f4942;
    font-size: 13px;
    font-weight: 600;
}
.wendy-booking .wendy-options-empty:not([hidden]) {
    display: block !important;
    grid-column: 1 / -1;
    margin: 0 !important;
    padding: 18px !important;
    text-align: center;
    width: 100%;
}
.wendy-booking.is-solo-selected [data-wendy-section="3"],
.wendy-booking.is-solo-selected [data-wendy-step-indicator="3"] {
    display: none !important;
}
.wendy-booking.is-solo-selected .wendy-booking__steps {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

@media (max-width: 900px) {
    .wendy-booking .wendy-solo-formula__body {
        grid-template-columns: 1fr;
    }
    .wendy-booking .wendy-solo-formula__booking {
        border-left: 0;
        border-top: 1px solid rgba(18, 61, 41, .14);
    }
    .wendy-booking .wendy-solo-formula__times {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .wendy-booking .wendy-solo-formula {
        border-radius: 17px;
        margin-top: 14px;
    }
    .wendy-booking .wendy-solo-formula__header {
        gap: 9px;
        min-height: 54px;
        padding: 13px 16px;
    }
    .wendy-booking .wendy-solo-formula__header > span {
        font-size: 21px;
    }
    .wendy-booking .wendy-solo-formula__header strong {
        font-size: 17px;
        letter-spacing: .025em;
    }
    .wendy-booking .wendy-solo-formula__details {
        padding: 21px 18px 19px;
    }
    .wendy-booking .wendy-solo-formula__intro {
        font-size: 16px !important;
        margin-bottom: 17px !important;
    }
    .wendy-booking .wendy-solo-formula__service {
        align-items: flex-start;
        gap: 12px;
        margin: 13px 0;
    }
    .wendy-booking .wendy-solo-formula__service > i {
        flex-basis: 40px;
        font-size: 20px;
        height: 40px;
    }
    .wendy-booking .wendy-solo-formula__service strong {
        font-size: 15px;
    }
    .wendy-booking .wendy-solo-formula__included {
        border-radius: 12px;
        line-height: 1.35;
        margin-top: 17px !important;
        padding: 10px 12px;
    }
    .wendy-booking .wendy-solo-formula__booking {
        padding: 20px 17px 22px;
    }
    .wendy-booking .wendy-solo-formula__times {
        grid-template-columns: 1fr;
    }
    .wendy-booking button.wendy-solo-time,
    .wendy-booking button.wendy-solo-time:hover,
    .wendy-booking button.wendy-solo-time:focus,
    .wendy-booking button.wendy-solo-time:active {
        min-height: 64px;
        padding: 12px 13px !important;
    }
    .wendy-booking button.wendy-solo-time.is-selected {
        padding: 11px 12px !important;
    }
    .wendy-booking .wendy-solo-formula__price {
        margin-top: 15px;
    }
    .wendy-booking.is-solo-selected .wendy-booking__steps {
        gap: 22px !important;
    }
    .wendy-booking.is-solo-selected .wendy-booking__steps::before {
        left: calc(50% - 56px) !important;
        width: 112px !important;
    }
}
.wendy-booking .wendy-options.has-no-visible-options {
    display: block !important;
    grid-template-columns: 1fr !important;
}

/* v1.20.1 — harmonisation premium des formules et checkout direct Évasion Solo */
.wendy-booking[data-wendy-booking] .wendy-slots-grid {
    gap: 18px !important;
    margin-top: 20px !important;
}

.wendy-booking[data-wendy-booking] button.wendy-slot-card {
    background:
        radial-gradient(circle at 18% 14%, rgba(226, 198, 153, .16), transparent 31%),
        radial-gradient(circle at 82% 88%, rgba(111, 90, 81, .06), transparent 34%),
        #fffdf9 !important;
    border: 1px solid rgba(203, 174, 132, .55) !important;
    border-radius: 18px !important;
    box-shadow: 0 10px 26px rgba(67, 50, 38, .07) !important;
    min-height: 322px !important;
    overflow: visible !important;
    padding: 54px 22px 20px !important;
    position: relative !important;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease !important;
}

.wendy-booking[data-wendy-booking] button.wendy-slot-card::before {
    background: linear-gradient(135deg, rgba(255,255,255,.6), rgba(244,235,222,.28));
    border-radius: inherit;
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 0;
}

.wendy-booking[data-wendy-booking] button.wendy-slot-card > * {
    position: relative;
    z-index: 1;
}

.wendy-booking[data-wendy-booking] button.wendy-slot-card:hover {
    border-color: #c59b62 !important;
    box-shadow: 0 16px 34px rgba(67, 50, 38, .12) !important;
    transform: translateY(-4px) !important;
}

.wendy-booking[data-wendy-booking] button.wendy-slot-card.is-selected {
    background:
        radial-gradient(circle at 18% 14%, rgba(226, 198, 153, .21), transparent 31%),
        #fffaf2 !important;
    border: 2px solid #9e7448 !important;
    box-shadow: 0 16px 36px rgba(111, 90, 81, .17) !important;
    padding: 53px 21px 19px !important;
}

.wendy-booking[data-wendy-booking] .wendy-slot-card__icon-wrap {
    align-items: center;
    background: #fffdf9;
    border: 1px solid rgba(203, 174, 132, .68);
    border-radius: 50%;
    box-shadow: 0 8px 18px rgba(67, 50, 38, .12);
    display: flex;
    height: 62px;
    justify-content: center;
    left: 50%;
    position: absolute !important;
    top: -22px;
    transform: translateX(-50%);
    width: 62px;
}

.wendy-booking[data-wendy-booking] .wendy-slot-card__icon {
    color: #d2a35f !important;
    display: block !important;
    font-family: Georgia, serif;
    font-size: 32px !important;
    line-height: 1 !important;
    margin: 0 !important;
    width: auto !important;
}

.wendy-booking[data-wendy-booking] .wendy-slot-card__title,
.wendy-booking[data-wendy-booking] button.wendy-slot-card strong.wendy-slot-card__title {
    color: #3c3028 !important;
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif) !important;
    font-size: 20px !important;
    font-weight: 500 !important;
    line-height: 1.18 !important;
    min-height: 48px !important;
}

.wendy-booking[data-wendy-booking] button.wendy-slot-card em {
    color: #6c625a !important;
    font-size: 14px !important;
    margin-top: 11px !important;
    min-height: 20px !important;
}

.wendy-booking[data-wendy-booking] .wendy-slot-card__divider {
    background: linear-gradient(90deg, transparent, #d6b17a 18%, #d6b17a 82%, transparent);
    display: block;
    height: 1px;
    margin: 12px auto 8px;
    max-width: 170px;
    width: 78%;
}

.wendy-booking[data-wendy-booking] button.wendy-slot-card b {
    color: #2d2722 !important;
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif) !important;
    font-size: 31px !important;
    font-weight: 500 !important;
    margin-top: 4px !important;
}

.wendy-booking[data-wendy-booking] button.wendy-slot-card small {
    color: #686057 !important;
    font-size: 13px !important;
    line-height: 1.42 !important;
    margin: 6px 0 16px !important;
    min-height: 38px;
}

.wendy-booking[data-wendy-booking] .wendy-slot-card__cta {
    align-items: center;
    background: linear-gradient(135deg, #d8ae73, #c99450);
    border-radius: 9px;
    box-shadow: 0 7px 15px rgba(176, 126, 65, .19);
    color: #fff !important;
    display: flex;
    font-size: 13px;
    font-weight: 700;
    justify-content: center;
    margin-top: auto;
    min-height: 38px;
    padding: 9px 18px;
    transition: filter .2s ease, transform .2s ease;
    width: min(176px, 88%);
}

.wendy-booking[data-wendy-booking] button.wendy-slot-card:hover .wendy-slot-card__cta {
    filter: brightness(.96);
}

.wendy-booking[data-wendy-booking] button.wendy-slot-card.is-selected .wendy-slot-card__cta {
    background: #6f5a51;
}

.wendy-booking[data-wendy-booking] .wendy-slot-card__check {
    background: #123d29 !important;
    border: 3px solid #fffdf9;
    box-shadow: 0 5px 12px rgba(18, 61, 41, .24);
    height: 29px !important;
    right: 12px !important;
    top: 12px !important;
    width: 29px !important;
}

.wendy-booking[data-wendy-booking] .wendy-solo-formula {
    box-shadow: 0 15px 38px rgba(18, 61, 41, .10);
    margin-top: 28px;
}

.wendy-booking[data-wendy-booking] .wendy-solo-formula__checkout-note {
    align-items: flex-start;
    color: #61594f !important;
    display: flex;
    font-size: 12px !important;
    gap: 8px;
    justify-content: center;
    line-height: 1.4 !important;
    margin: 13px auto 0 !important;
    max-width: 285px;
    text-align: left;
}

.wendy-booking[data-wendy-booking] .wendy-solo-formula__checkout-note > span {
    align-items: center;
    background: #123d29;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 18px;
    font-size: 10px;
    height: 18px;
    justify-content: center;
    margin-top: 1px;
    width: 18px;
}

.wendy-booking[data-wendy-booking] button.wendy-solo-time.is-loading {
    background: #eef4ef !important;
    border-color: #123d29 !important;
    cursor: wait !important;
    opacity: 1 !important;
}

.wendy-booking[data-wendy-booking] button.wendy-solo-time.is-loading > em {
    color: #123d29 !important;
}

.wendy-booking[data-wendy-booking].is-solo-checkout-loading button.wendy-slot-card,
.wendy-booking[data-wendy-booking].is-solo-checkout-loading button.wendy-solo-time:not(.is-loading) {
    cursor: wait !important;
    opacity: .55;
}

@media (max-width: 1180px) and (min-width: 768px) {
    .wendy-booking[data-wendy-booking] button.wendy-slot-card {
        min-height: 306px !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    .wendy-booking[data-wendy-booking] .wendy-slot-card__title,
    .wendy-booking[data-wendy-booking] button.wendy-slot-card strong.wendy-slot-card__title {
        font-size: 18px !important;
    }
}

@media (max-width: 767px) {
    .wendy-booking[data-wendy-booking] .wendy-slots-grid {
        gap: 28px !important;
        margin-top: 28px !important;
    }

    .wendy-booking[data-wendy-booking] button.wendy-slot-card,
    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] button.wendy-slot-card {
        align-items: center !important;
        min-height: 294px !important;
        overflow: visible !important;
        padding: 48px 20px 18px !important;
        text-align: center !important;
    }

    .wendy-booking[data-wendy-booking] button.wendy-slot-card.is-selected,
    body.single-tsb_suite #wendy-booking.wendy-booking[data-wendy-booking] button.wendy-slot-card.is-selected {
        padding: 47px 19px 17px !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-slot-card__icon-wrap {
        height: 56px;
        top: -20px;
        width: 56px;
    }

    .wendy-booking[data-wendy-booking] .wendy-slot-card__icon {
        font-size: 29px !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-slot-card__title,
    .wendy-booking[data-wendy-booking] button.wendy-slot-card strong.wendy-slot-card__title {
        align-items: center !important;
        font-size: 20px !important;
        min-height: 48px !important;
        text-align: center !important;
    }

    .wendy-booking[data-wendy-booking] button.wendy-slot-card em,
    .wendy-booking[data-wendy-booking] button.wendy-slot-card b,
    .wendy-booking[data-wendy-booking] button.wendy-slot-card small,
    .wendy-booking[data-wendy-booking] .wendy-slot-card__divider,
    .wendy-booking[data-wendy-booking] .wendy-slot-card__cta {
        align-self: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
        text-align: center !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-slot-card__cta {
        width: min(210px, 90%);
    }

    .wendy-booking[data-wendy-booking] .wendy-solo-formula {
        margin-top: 30px;
    }

    .wendy-booking[data-wendy-booking] .wendy-solo-formula__checkout-note {
        font-size: 11.5px !important;
        max-width: 270px;
    }
}

/* v1.20.2 — clear and reliable direct checkout flow for the solo formula */
.wendy-booking[data-wendy-booking] .wendy-solo-formula__mobile-status {
    display: none;
}

.wendy-booking[data-wendy-booking] .wendy-solo-formula__mobile-status.is-visible {
    align-items: center;
    background: #f4eee4;
    border: 1px solid rgba(18, 61, 41, .22);
    border-radius: 14px;
    color: #123d29;
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin: 12px 0 0;
    padding: 14px 16px;
    text-align: center;
}

.wendy-booking[data-wendy-booking] .wendy-solo-formula__mobile-status strong {
    color: #123d29 !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
}

.wendy-booking[data-wendy-booking] .wendy-solo-formula__mobile-status small {
    color: #61594f !important;
    display: block;
    font-size: 12px !important;
    line-height: 1.45 !important;
}

.wendy-booking[data-wendy-booking] .wendy-solo-formula__mobile-status a {
    background: #123d29;
    border-radius: 9px;
    color: #fff !important;
    display: inline-flex;
    font-size: 13px;
    font-weight: 700;
    justify-content: center;
    margin-top: 5px;
    min-height: 40px;
    padding: 10px 16px;
    text-decoration: none !important;
    width: 100%;
}

.wendy-booking[data-wendy-booking] .wendy-solo-formula__mobile-status.is-error {
    background: #fff2ef;
    border-color: #dca89f;
    color: #8b2e25;
}

.wendy-booking[data-wendy-booking] .wendy-solo-formula__mobile-status.is-error strong,
.wendy-booking[data-wendy-booking] .wendy-solo-formula__mobile-status.is-error small {
    color: #8b2e25 !important;
}

.wendy-booking[data-wendy-booking] .wendy-solo-status__spinner {
    animation: wendy-solo-spin .75s linear infinite;
    border: 2px solid rgba(18, 61, 41, .18);
    border-radius: 50%;
    border-top-color: #123d29;
    display: block;
    height: 22px;
    width: 22px;
}

@keyframes wendy-solo-spin {
    to { transform: rotate(360deg); }
}

@media (max-width: 767px) {
    .wendy-booking[data-wendy-booking] .wendy-solo-formula__times {
        gap: 12px !important;
    }

    .wendy-booking[data-wendy-booking] button.wendy-solo-time {
        align-items: center !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        min-height: 72px !important;
        padding: 12px 14px !important;
        width: 100% !important;
    }

    .wendy-booking[data-wendy-booking] button.wendy-solo-time > span {
        min-width: 0;
        text-align: left !important;
    }

    .wendy-booking[data-wendy-booking] button.wendy-solo-time > em {
        align-items: center;
        background: #123d29;
        border-radius: 8px;
        color: #fff !important;
        display: inline-flex;
        font-style: normal;
        font-weight: 700;
        justify-content: center;
        min-height: 40px;
        min-width: 92px;
        padding: 8px 12px;
    }

    .wendy-booking[data-wendy-booking] button.wendy-solo-time.is-loading > em {
        background: #123d29 !important;
        color: #fff !important;
    }

    .wendy-booking[data-wendy-booking] .wendy-solo-formula__mobile-status.is-visible {
        margin-top: 14px;
    }

    .wendy-booking[data-wendy-booking].is-solo-checkout-loading .wendy-solo-formula__price,
    .wendy-booking[data-wendy-booking].is-solo-checkout-loading .wendy-solo-formula__checkout-note {
        opacity: .55;
    }
}

/* v1.20.3 — transition fixe vers le checkout pour la formule solo */
html.wendy-solo-checkout-is-open,
body.wendy-solo-checkout-is-open {
    overflow: hidden !important;
    overscroll-behavior: none;
}

.wendy-solo-checkout-overlay {
    align-items: center;
    background: rgba(31, 26, 23, .48);
    display: flex;
    inset: 0;
    justify-content: center;
    opacity: 0;
    padding: 22px;
    position: fixed;
    transition: opacity .16s ease;
    visibility: hidden;
    z-index: 2147483000;
}

.wendy-solo-checkout-overlay.is-visible {
    opacity: 1;
    visibility: visible;
}

.wendy-solo-checkout-overlay__panel {
    align-items: center;
    background: #fffaf3;
    border: 1px solid rgba(213, 182, 144, .72);
    border-radius: 20px;
    box-shadow: 0 24px 70px rgba(23, 16, 12, .25);
    color: #123d29;
    display: flex;
    flex-direction: column;
    gap: 9px;
    max-width: 430px;
    padding: 29px 26px 27px;
    text-align: center;
    width: min(100%, 430px);
}

.wendy-solo-checkout-overlay__panel strong {
    color: #123d29 !important;
    font-family: Georgia, serif !important;
    font-size: 23px !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
    margin: 0 !important;
}

.wendy-solo-checkout-overlay__panel small {
    color: #655b54 !important;
    display: block;
    font-size: 14px !important;
    line-height: 1.5 !important;
    margin: 0 !important;
    max-width: 330px;
}

.wendy-solo-checkout-overlay__spinner {
    animation: wendy-solo-checkout-spin .78s linear infinite;
    border: 3px solid rgba(18, 61, 41, .16);
    border-radius: 50%;
    border-top-color: #123d29;
    display: block;
    height: 38px;
    margin-bottom: 4px;
    width: 38px;
}

@keyframes wendy-solo-checkout-spin {
    to { transform: rotate(360deg); }
}

@media (max-width: 767px) {
    .wendy-solo-checkout-overlay {
        padding: 18px;
    }

    .wendy-solo-checkout-overlay__panel {
        border-radius: 18px;
        padding: 25px 20px 23px;
    }

    .wendy-solo-checkout-overlay__panel strong {
        font-size: 20px !important;
    }

    .wendy-solo-checkout-overlay__panel small {
        font-size: 13px !important;
    }
}

/* v1.20.6 — séparation des petits plus payables et des demandes à confirmer */
.wendy-booking[data-wendy-booking] .wendy-options {
    display: block !important;
    width: 100% !important;
}
.wendy-booking[data-wendy-booking] .wendy-options-group {
    border: 1px solid rgba(111, 90, 81, .14);
    border-radius: 16px;
    margin: 0 0 18px;
    overflow: hidden;
    width: 100%;
}
.wendy-booking[data-wendy-booking] .wendy-options-group[hidden] {
    display: none !important;
}
.wendy-booking[data-wendy-booking] .wendy-options-group__header {
    align-items: center;
    background: #f7f0e5;
    display: flex;
    gap: 13px;
    padding: 15px 18px;
}
.wendy-booking[data-wendy-booking] .wendy-options-group__header > span {
    align-items: center;
    background: #fff;
    border: 1px solid rgba(181, 145, 96, .4);
    border-radius: 50%;
    color: #9c6d35;
    display: flex;
    flex: 0 0 34px;
    font-size: 17px;
    height: 34px;
    justify-content: center;
}
.wendy-booking[data-wendy-booking] .wendy-options-group__header h3 {
    color: var(--wendy-primary) !important;
    font-family: var(--e-global-typography-primary-font-family, Georgia, serif) !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    margin: 0 !important;
}
.wendy-booking[data-wendy-booking] .wendy-options-group__header p {
    color: var(--wendy-muted) !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    margin: 3px 0 0 !important;
}
.wendy-booking[data-wendy-booking] .wendy-options-group--request {
    border-color: rgba(16, 70, 46, .2);
}
.wendy-booking[data-wendy-booking] .wendy-options-group--request .wendy-options-group__header {
    background: #edf3ef;
}
.wendy-booking[data-wendy-booking] .wendy-options-group--request .wendy-options-group__header > span {
    border-color: rgba(16, 70, 46, .25);
    color: #10462e;
}
.wendy-booking[data-wendy-booking] .wendy-options-group--request .wendy-options-group__header h3 {
    color: #10462e !important;
}
.wendy-booking[data-wendy-booking] .wendy-options-group__grid {
    background: #fffdfa;
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 14px;
    width: 100%;
}
.wendy-booking[data-wendy-booking] .wendy-options-group__grid .wendy-option {
    margin: 0 !important;
}
.wendy-booking[data-wendy-booking] .wendy-option--payable:first-child {
    border-color: rgba(181, 145, 96, .55) !important;
    box-shadow: 0 8px 20px rgba(111, 90, 81, .07);
}
.wendy-booking[data-wendy-booking] .wendy-option--request {
    background: #fbfdfb !important;
    border-color: rgba(16, 70, 46, .18) !important;
}
.wendy-booking[data-wendy-booking] .wendy-option__payment-note {
    color: #8c6a3e !important;
    font-weight: 600 !important;
}
.wendy-booking[data-wendy-booking] .wendy-option__content .wendy-option__confirm {
    color: #10462e !important;
    font-weight: 700 !important;
}
.wendy-booking[data-wendy-booking] .wendy-option > .wendy-option__price {
    align-self: center !important;
    display: flex !important;
    flex-direction: column;
    grid-area: price !important;
    justify-self: end !important;
    min-width: 76px;
    text-align: right;
}
.wendy-booking[data-wendy-booking] .wendy-option__price em {
    color: var(--wendy-accent) !important;
    font-size: 17px !important;
    font-style: normal !important;
    font-weight: 700 !important;
    line-height: 1.1;
    white-space: nowrap;
}
.wendy-booking[data-wendy-booking] .wendy-option__price small {
    color: var(--wendy-muted) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    margin: 4px 0 0 !important;
    white-space: nowrap;
}
.wendy-booking[data-wendy-booking] .wendy-option__price--request em,
.wendy-booking[data-wendy-booking] .wendy-option__price--request small {
    color: #10462e !important;
}

@media (max-width: 767px) {
    .wendy-booking[data-wendy-booking] .wendy-options-group {
        border-radius: 14px;
        margin-bottom: 15px;
    }
    .wendy-booking[data-wendy-booking] .wendy-options-group__header {
        align-items: flex-start;
        padding: 14px;
    }
    .wendy-booking[data-wendy-booking] .wendy-options-group__header h3 {
        font-size: 16px !important;
    }
    .wendy-booking[data-wendy-booking] .wendy-options-group__header p {
        font-size: 12px !important;
    }
    .wendy-booking[data-wendy-booking] .wendy-options-group__grid {
        gap: 10px;
        grid-template-columns: 1fr;
        padding: 10px;
    }
    .wendy-booking[data-wendy-booking] .wendy-option > .wendy-option__price {
        justify-self: start !important;
        min-width: 0;
        padding-left: 0 !important;
        text-align: left;
    }
    .wendy-booking[data-wendy-booking] .wendy-option__price small {
        white-space: normal;
    }
}


/* v1.21.0 — homepage text + responsive photo showcase */
.wendy-showcase,
.wendy-showcase * {
    box-sizing: border-box;
}
.wendy-showcase {
    --wendy-showcase-ink: #4f3b34;
    --wendy-showcase-muted: #6d625d;
    --wendy-showcase-line: #e6dcd3;
    background: #fcf9f5;
    border: 1px solid var(--wendy-showcase-line);
    border-radius: 14px;
    display: grid;
    grid-template-columns: minmax(0, .93fr) minmax(0, 1.27fr);
    margin: 64px auto;
    max-width: 1220px;
    overflow: hidden;
    width: calc(100% - 40px);
}
.wendy-showcase__copy {
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 54px 48px 46px;
}
.wendy-showcase__eyebrow {
    align-items: center;
    color: #7b6357;
    display: flex;
    font-size: 12px;
    font-weight: 700;
    gap: 14px;
    letter-spacing: .12em;
    margin: 0 0 22px;
    text-transform: uppercase;
}
.wendy-showcase__eyebrow::before {
    background: var(--wendy-accent, #d5b690);
    content: "";
    height: 1px;
    width: 34px;
}
.wendy-showcase h2 {
    color: var(--wendy-showcase-ink);
    font-family: var(--e-global-typography-primary-font-family, Georgia, "Times New Roman", serif);
    font-size: clamp(42px, 3.65vw, 58px);
    font-weight: 400;
    letter-spacing: -.035em;
    line-height: .98;
    margin: 0 0 24px;
    max-width: 520px;
}
.wendy-showcase__description {
    color: #3f3936;
    font-size: 16px;
    line-height: 1.55;
    margin: 0;
    max-width: 510px;
}
.wendy-showcase__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 30px;
}
.wendy-showcase__button {
    align-items: center;
    border-radius: 5px;
    display: inline-flex;
    font-size: 13px;
    font-weight: 700;
    gap: 18px;
    justify-content: space-between;
    min-height: 52px;
    padding: 0 18px;
    text-decoration: none !important;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
.wendy-showcase__button:hover {
    transform: translateY(-1px);
}
.wendy-showcase__button b {
    font-size: 19px;
    font-weight: 400;
    line-height: 1;
}
.wendy-showcase__button--primary {
    background: var(--wendy-primary, #6f5a51);
    border: 1px solid var(--wendy-primary, #6f5a51);
    color: #fff !important;
    min-width: 205px;
}
.wendy-showcase__button--primary:hover {
    box-shadow: 0 8px 20px rgba(79, 59, 52, .14);
}
.wendy-showcase__button--secondary {
    background: rgba(255,255,255,.55);
    border: 1px solid #d9cec6;
    color: var(--wendy-showcase-ink) !important;
    min-width: 215px;
}
.wendy-showcase__benefits {
    border-top: 1px solid var(--wendy-showcase-line);
    display: grid;
    gap: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 28px;
    padding-top: 22px;
}
.wendy-showcase__benefits > span {
    align-items: center;
    color: #6b5a52;
    display: flex;
    gap: 8px;
    min-width: 0;
    padding-right: 10px;
}
.wendy-showcase__benefits > span + span {
    border-left: 1px solid #e8ded6;
    padding-left: 14px;
}
.wendy-showcase__benefits .dashicons {
    color: #b18e70;
    flex: 0 0 auto;
    font-size: 18px;
    height: 18px;
    width: 18px;
}
.wendy-showcase__benefits strong {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1.25;
    text-transform: uppercase;
}
.wendy-showcase__gallery {
    border-left: 1px solid var(--wendy-showcase-line);
    min-width: 0;
    padding: 32px 28px 30px;
}
.wendy-showcase__stage {
    aspect-ratio: 5 / 4;
    background: #e9e2dc;
    border-radius: 11px;
    overflow: hidden;
    position: relative;
    width: 100%;
}
.wendy-showcase.is-landscape .wendy-showcase__stage {
    aspect-ratio: 16 / 10;
}
.wendy-showcase.is-portrait .wendy-showcase__stage {
    aspect-ratio: 4 / 5;
}
.wendy-showcase.is-square .wendy-showcase__stage {
    aspect-ratio: 1 / 1;
}
.wendy-showcase__stage:focus-visible {
    box-shadow: 0 0 0 3px rgba(181, 145, 114, .35);
    outline: 0;
}
.wendy-showcase__main-image {
    display: block;
    height: 100% !important;
    max-height: none !important;
    max-width: none !important;
    object-fit: cover;
    opacity: 1;
    transition: opacity .14s ease;
    width: 100% !important;
}
.wendy-showcase.is-changing-image .wendy-showcase__main-image {
    opacity: .9;
}
.wendy-showcase__arrow {
    align-items: center;
    background: rgba(255,255,255,.94);
    border: 0;
    border-radius: 999px;
    box-shadow: 0 5px 18px rgba(52, 38, 31, .15);
    color: #5b4740;
    cursor: pointer;
    display: flex;
    font-family: Arial, sans-serif;
    font-size: 34px;
    font-weight: 300;
    height: 46px;
    justify-content: center;
    line-height: 1;
    margin: 0;
    min-height: 0;
    padding: 0 0 4px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    transition: transform .18s ease, background .18s ease;
    width: 46px;
    z-index: 3;
}
.wendy-showcase__arrow:hover {
    background: #fff;
    transform: translateY(-50%) scale(1.04);
}
.wendy-showcase__arrow--prev { left: 16px; }
.wendy-showcase__arrow--next { right: 16px; }
.wendy-showcase__counter {
    background: rgba(45, 35, 31, .76);
    border-radius: 999px;
    bottom: 12px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    padding: 8px 11px;
    position: absolute;
    right: 12px;
    z-index: 3;
}
.wendy-showcase__thumbs {
    display: flex;
    gap: 10px;
    margin-top: 10px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    padding: 0 0 3px;
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
}
.wendy-showcase__thumb {
    aspect-ratio: 4 / 5;
    background: #eee6df;
    border: 2px solid transparent;
    border-radius: 8px;
    cursor: pointer;
    flex: 0 0 82px;
    margin: 0;
    min-height: 0;
    overflow: hidden;
    padding: 0;
    scroll-snap-align: start;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.wendy-showcase__thumb:hover {
    transform: translateY(-1px);
}
.wendy-showcase__thumb.is-active {
    border-color: #b58e70;
    box-shadow: 0 0 0 1px rgba(181, 142, 112, .18);
}
.wendy-showcase__thumb img {
    display: block;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover;
    width: 100% !important;
}

@media (max-width: 1080px) {
    .wendy-showcase {
        grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    }
    .wendy-showcase__copy {
        padding: 42px 34px 38px;
    }
    .wendy-showcase h2 {
        font-size: clamp(40px, 4vw, 50px);
    }
    .wendy-showcase__gallery {
        padding: 26px 22px 24px;
    }
    .wendy-showcase__benefits {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .wendy-showcase__benefits > span + span {
        border-left: 0;
        padding-left: 0;
    }
}

@media (max-width: 900px) {
    .wendy-showcase {
        display: block;
        margin: 44px auto;
        max-width: 760px;
    }
    .wendy-showcase__copy {
        padding: 42px 40px 32px;
    }
    .wendy-showcase h2 {
        max-width: 620px;
    }
    .wendy-showcase__description {
        max-width: 620px;
    }
    .wendy-showcase__benefits {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .wendy-showcase__benefits > span + span {
        border-left: 1px solid #e8ded6;
        padding-left: 14px;
    }
    .wendy-showcase__gallery {
        border-left: 0;
        border-top: 1px solid var(--wendy-showcase-line);
        padding: 24px;
    }
}

@media (max-width: 600px) {
    .wendy-showcase {
        border-radius: 12px;
        margin: 32px auto;
        width: calc(100% - 24px);
    }
    .wendy-showcase__copy {
        padding: 30px 20px 24px;
    }
    .wendy-showcase__eyebrow {
        font-size: 10px;
        gap: 10px;
        margin-bottom: 16px;
    }
    .wendy-showcase__eyebrow::before {
        width: 26px;
    }
    .wendy-showcase h2 {
        font-size: clamp(36px, 11vw, 46px);
        line-height: 1;
        margin-bottom: 18px;
    }
    .wendy-showcase__description {
        font-size: 15px;
        line-height: 1.5;
    }
    .wendy-showcase__actions {
        display: grid;
        gap: 9px;
        margin-top: 24px;
    }
    .wendy-showcase__button {
        min-width: 0;
        width: 100%;
    }
    .wendy-showcase__benefits {
        gap: 9px;
        grid-template-columns: 1fr;
        margin-top: 22px;
        padding-top: 18px;
    }
    .wendy-showcase__benefits > span + span {
        border-left: 0;
        padding-left: 0;
    }
    .wendy-showcase__gallery {
        padding: 12px 12px 16px;
    }
    .wendy-showcase__stage {
        aspect-ratio: 4 / 5;
        border-radius: 9px;
    }
    .wendy-showcase.is-landscape .wendy-showcase__stage {
        aspect-ratio: 4 / 3;
    }
    .wendy-showcase.is-portrait .wendy-showcase__stage {
        aspect-ratio: 4 / 5;
    }
    .wendy-showcase.is-square .wendy-showcase__stage {
        aspect-ratio: 1 / 1;
    }
    .wendy-showcase__arrow {
        font-size: 29px;
        height: 40px;
        width: 40px;
    }
    .wendy-showcase__arrow--prev { left: 9px; }
    .wendy-showcase__arrow--next { right: 9px; }
    .wendy-showcase__counter {
        bottom: 9px;
        font-size: 11px;
        padding: 7px 9px;
        right: 9px;
    }
    .wendy-showcase__thumbs {
        gap: 7px;
        margin-top: 8px;
        scrollbar-width: none;
    }
    .wendy-showcase__thumbs::-webkit-scrollbar { display: none; }
    .wendy-showcase__thumb {
        border-radius: 7px;
        flex-basis: 64px;
    }
}
