/* PCM RateHawk — base styles
   La variante "hero-dark" est stylée par le thème Black Tomato (assets/css/blacktomato.css). */

.pcm-rh-search-wrap { width: 100%; }

.pcm-rh-search-wrap form {
    display: grid;
    gap: 8px;
}

.pcm-rh-field {
    position: relative;
    display: flex;
    flex-direction: column;
}
.pcm-rh-field label {
    font-size: 12px;
    font-weight: 500;
    margin-bottom: 6px;
}
.pcm-rh-field input,
.pcm-rh-field .pcm-rh-guests-toggle {
    border: 1px solid #ddd;
    padding: 12px 14px;
    font-size: 15px;
    background: #fff;
    color: #111;
    border-radius: 0;
    width: 100%;
    text-align: left;
}

.pcm-rh-dates {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.pcm-rh-suggestions {
    position: absolute;
    top: 100%;
    left: 0; right: 0;
    background: #fff;
    border: 1px solid #ddd;
    z-index: 50;
    max-height: 320px;
    overflow-y: auto;
}
.pcm-rh-suggestion {
    padding: 12px 14px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    border-bottom: 1px solid #eee;
}
.pcm-rh-suggestion:hover { background: #f5f5f5; }
.pcm-rh-suggestion .pcm-rh-label { flex: 1; font-weight: 500; }
.pcm-rh-suggestion .pcm-rh-sub   { color: #888; font-size: 13px; }

.pcm-rh-icon {
    display: inline-block;
    width: 16px; height: 16px;
    flex-shrink: 0;
    background: currentColor;
    -webkit-mask: no-repeat center / contain;
    mask: no-repeat center / contain;
}
.pcm-rh-icon-location { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'><path d='M12 2a8 8 0 0 0-8 8c0 5.4 7 11.6 7.3 11.8a1 1 0 0 0 1.4 0C13 21.6 20 15.4 20 10a8 8 0 0 0-8-8Zm0 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6Z'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'><path d='M12 2a8 8 0 0 0-8 8c0 5.4 7 11.6 7.3 11.8a1 1 0 0 0 1.4 0C13 21.6 20 15.4 20 10a8 8 0 0 0-8-8Zm0 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6Z'/></svg>"); }
.pcm-rh-icon-hotel    { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'><path d='M2 4h20v16H2V4Zm2 2v12h7v-4h2v4h7V6H4Zm3 3h2v2H7V9Zm0 4h2v2H7v-2Zm6-4h4v2h-4V9Zm0 4h4v2h-4v-2Z'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'><path d='M2 4h20v16H2V4Zm2 2v12h7v-4h2v4h7V6H4Zm3 3h2v2H7V9Zm0 4h2v2H7v-2Zm6-4h4v2h-4V9Zm0 4h4v2h-4v-2Z'/></svg>"); }

.pcm-rh-guests-panel {
    position: absolute;
    top: 100%;
    right: 0;
    background: #fff;
    border: 1px solid #ddd;
    padding: 16px;
    width: 260px;
    z-index: 50;
}
.pcm-rh-counter { display: flex; justify-content: space-between; align-items: center; margin: 8px 0; }
.pcm-rh-counter > div { display: flex; align-items: center; gap: 12px; }
.pcm-rh-counter button {
    width: 28px; height: 28px;
    border: 1px solid #ccc;
    background: #fff;
    cursor: pointer;
    font-size: 16px;
}

.pcm-rh-btn-search {
    background: #111;
    color: #fff;
    border: 0;
    padding: 14px 28px;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .12em;
    cursor: pointer;
}
.pcm-rh-btn-search:hover { background: #333; }

/* =========================================================================
   PAGE RÉSULTATS / FICHE HÔTEL / BOOKING — Black Tomato edition
   Variables BT héritées du thème ; fallbacks ici pour standalone.
   ========================================================================= */

:root {
    --bt-black: #0a0a0a;
    --bt-ink: #1a1a1a;
    --bt-graphite: #2c2c2c;
    --bt-stone: #6b6b6b;
    --bt-fog: #b8b8b8;
    --bt-mist: #e8e6e1;
    --bt-bone: #f4f1ec;
    --bt-paper: #faf8f4;
    --bt-white: #ffffff;
    --bt-sand: #c9a880;
    --bt-font-display: 'Cormorant Garamond', 'Times New Roman', serif;
    --bt-font-body:    'DM Sans', -apple-system, 'Segoe UI', sans-serif;
}

/* RESULTS HERO ----------------------------------------------------------- */
.bt-results-hero {
    background: var(--bt-bone);
    padding: 140px 0 60px;
}
.bt-results-hero__title {
    font-family: var(--bt-font-display);
    font-size: clamp(40px, 5.5vw, 72px);
    font-weight: 300;
    letter-spacing: -0.02em;
    line-height: 1.05;
    margin: 0 0 16px;
    color: var(--bt-black);
}
.bt-results-hero__title em { font-style: italic; font-weight: 400; }
.bt-results-meta {
    color: var(--bt-stone);
    font-size: 15px;
    margin-bottom: 16px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.bt-dot { color: var(--bt-fog); }
.bt-results-edit {
    display: inline-block;
    font-size: 11px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-black);
    border-bottom: 1px solid var(--bt-black);
    padding-bottom: 3px;
}
.bt-results-edit:hover { color: var(--bt-sand); border-color: var(--bt-sand); opacity: 1; }

/* RESULTS LAYOUT --------------------------------------------------------- */
.bt-results-body { padding: 64px 0 120px; background: var(--bt-white); }
.bt-results-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 56px;
    align-items: start;
}
@media (max-width: 1024px) { .bt-results-layout { grid-template-columns: 1fr; gap: 40px; } }

/* FILTERS ---------------------------------------------------------------- */
.bt-filters {
    position: sticky;
    top: 100px;
    padding: 24px 0;
    border-top: 1px solid var(--bt-mist);
    border-bottom: 1px solid var(--bt-mist);
    font-family: var(--bt-font-body);
}
.bt-filters__title {
    font-family: var(--bt-font-body);
    font-size: 11px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-black);
    margin: 0 0 24px;
    font-weight: 500;
}
.bt-filter-group { padding: 18px 0; border-top: 1px solid var(--bt-mist); }
.bt-filter-group:first-of-type { border-top: 0; padding-top: 0; }
.bt-filter-label {
    display: block;
    font-size: 11px;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--bt-stone);
    margin-bottom: 12px;
    font-weight: 500;
}
.bt-filters select {
    width: 100%;
    border: 1px solid var(--bt-mist);
    background: var(--bt-white);
    padding: 10px 12px;
    font-family: var(--bt-font-body);
    font-size: 14px;
    color: var(--bt-ink);
    border-radius: 0;
}
.bt-filter-stars label,
.bt-filter-list label {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 8px 0;
    font-size: 14px;
    color: var(--bt-ink);
    cursor: pointer;
}
.bt-filter-stars label input,
.bt-filter-list label input { accent-color: var(--bt-black); }
.bt-filter-count { color: var(--bt-fog); font-size: 12px; margin-left: auto; }
.bt-filter-price { font-size: 14px; color: var(--bt-ink); }
.bt-filter-price input[type="range"] {
    width: 100%;
    margin-top: 12px;
    accent-color: var(--bt-black);
}
.bt-filters-reset {
    margin-top: 16px;
    background: transparent;
    border: 1px solid var(--bt-mist);
    color: var(--bt-stone);
    padding: 10px 16px;
    font-size: 11px;
    letter-spacing: .2em;
    text-transform: uppercase;
    cursor: pointer;
    width: 100%;
}
.bt-filters-reset:hover { color: var(--bt-black); border-color: var(--bt-black); }

/* RESULTS LISTING -------------------------------------------------------- */
.bt-listing-head { margin-bottom: 24px; }
.bt-results-count {
    font-family: var(--bt-font-display);
    font-size: 28px;
    color: var(--bt-black);
    font-weight: 400;
}
.bt-results-count strong { font-weight: 500; font-style: italic; }

.bt-results-list { display: flex; flex-direction: column; gap: 24px; }

.bt-hotel-card {
    display: grid;
    grid-template-columns: 320px 1fr 220px;
    gap: 0;
    border: 1px solid var(--bt-mist);
    background: var(--bt-white);
    transition: border-color .3s, box-shadow .3s;
    overflow: hidden;
}
@media (max-width: 900px) {
    .bt-hotel-card { grid-template-columns: 1fr; }
}
.bt-hotel-card:hover {
    border-color: var(--bt-graphite);
    box-shadow: 0 24px 60px -30px rgba(0,0,0,.18);
}

.bt-hotel-card__media {
    display: block;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    position: relative;
}
.bt-hotel-card__media img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .8s cubic-bezier(.2,.7,.2,1);
}
.bt-hotel-card:hover .bt-hotel-card__media img { transform: scale(1.06); }

.bt-hotel-card__body {
    padding: 28px 32px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.bt-hotel-card__head { display: flex; justify-content: space-between; align-items: center; }
.bt-hotel-card__neighborhood {
    font-size: 11px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-sand);
}
.bt-hotel-card__stars { color: var(--bt-sand); font-size: 13px; }
.bt-stars-empty { color: var(--bt-mist); }

.bt-hotel-card__name {
    font-family: var(--bt-font-display);
    font-size: 30px;
    font-weight: 400;
    line-height: 1.1;
    margin: 0;
}
.bt-hotel-card__name a { color: var(--bt-black); text-decoration: none; }
.bt-hotel-card__name a:hover { color: var(--bt-sand); opacity: 1; }

.bt-hotel-card__meta {
    color: var(--bt-stone);
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.bt-hotel-card__rating strong {
    background: var(--bt-black);
    color: var(--bt-white);
    padding: 4px 8px;
    font-family: var(--bt-font-body);
    font-weight: 500;
    font-size: 12px;
    margin-right: 6px;
}
.bt-hotel-card__reviews { color: var(--bt-fog); font-size: 13px; }
.bt-hotel-card__amenities {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 10px;
    color: var(--bt-stone);
    font-size: 13px;
}
.bt-hotel-card__amenities span { display: inline-flex; align-items: center; gap: 6px; }

.bt-hotel-card__price {
    background: var(--bt-bone);
    padding: 28px 32px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
    text-align: center;
    gap: 6px;
    border-left: 1px solid var(--bt-mist);
}
@media (max-width: 900px) {
    .bt-hotel-card__price { border-left: 0; border-top: 1px solid var(--bt-mist); text-align: left; }
}
.bt-hotel-card__price-meal {
    font-size: 11px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--bt-sand);
    margin-bottom: 8px;
    min-height: 14px;
}
.bt-from {
    font-size: 11px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--bt-stone);
    display: block;
}
.bt-hotel-card__price-total strong {
    font-family: var(--bt-font-display);
    font-size: 38px;
    font-weight: 500;
    color: var(--bt-black);
    line-height: 1;
    display: block;
    margin-top: 4px;
}
.bt-hotel-card__price-nights {
    font-size: 13px;
    color: var(--bt-stone);
    margin-bottom: 16px;
}
.bt-hotel-card__cta {
    display: inline-block;
    background: var(--bt-black);
    color: var(--bt-white);
    padding: 14px 20px;
    font-family: var(--bt-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background .3s ease;
}
.bt-hotel-card__cta:hover { background: var(--bt-sand); color: var(--bt-black); }

/* LOADER ---------------------------------------------------------------- */
.bt-loader {
    text-align: center;
    padding: 80px 20px;
    color: var(--bt-stone);
    font-size: 14px;
}
.bt-loader--big { padding: 40px 20px; }
.bt-loader--fixed { padding: 200px 20px; }
.bt-loader__spinner {
    width: 40px; height: 40px;
    border: 1px solid var(--bt-mist);
    border-top-color: var(--bt-black);
    border-radius: 50%;
    animation: bt-spin .9s linear infinite;
    margin: 0 auto 16px;
}
.bt-loader--big .bt-loader__spinner { width: 56px; height: 56px; border-width: 2px; }
@keyframes bt-spin { to { transform: rotate(360deg); } }

.bt-empty {
    text-align: center;
    padding: 80px 20px;
    color: var(--bt-stone);
    font-style: italic;
    font-size: 18px;
}

/* HOTEL PAGE ------------------------------------------------------------- */
.bt-hotel-app { background: var(--bt-white); min-height: 80vh; padding-top: 80px; }

.bt-hotel-hero { padding: 32px 0 0; }
.bt-hotel-gallery {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 32px;
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 12px;
    height: 560px;
}
@media (max-width: 900px) { .bt-hotel-gallery { grid-template-columns: 1fr; height: auto; } }
.bt-hotel-gallery__main { overflow: hidden; height: 100%; }
.bt-hotel-gallery__main img { width: 100%; height: 100%; object-fit: cover; }
.bt-hotel-gallery__thumbs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 12px;
    height: 100%;
}
@media (max-width: 900px) { .bt-hotel-gallery__thumbs { display: none; } }
.bt-gallery-thumb {
    background-size: cover;
    background-position: center;
    border: 0;
    cursor: pointer;
    transition: opacity .3s;
}
.bt-gallery-thumb:hover { opacity: .8; }

.bt-hotel-intro { padding: 80px 0 60px; }
.bt-hotel-intro__head { margin-bottom: 40px; }
.bt-hotel-intro__title {
    font-family: var(--bt-font-display);
    font-size: clamp(40px, 5.5vw, 72px);
    font-weight: 300;
    letter-spacing: -0.02em;
    line-height: 1.05;
    margin: 12px 0 16px;
    color: var(--bt-black);
}
.bt-hotel-intro__meta {
    color: var(--bt-stone);
    font-size: 15px;
    display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
}
.bt-hotel-intro__stars { color: var(--bt-sand); }
.bt-hotel-intro__rating strong {
    background: var(--bt-black);
    color: var(--bt-white);
    padding: 4px 8px;
    font-weight: 500;
    font-size: 12px;
    margin-right: 4px;
}

.bt-hotel-intro__columns {
    display: grid;
    grid-template-columns: 1.7fr 1fr;
    gap: 64px;
}
@media (max-width: 1024px) { .bt-hotel-intro__columns { grid-template-columns: 1fr; gap: 40px; } }

.bt-hotel-intro__desc {
    font-size: 17px;
    line-height: 1.8;
    color: var(--bt-graphite);
}
.bt-hotel-intro__desc h3 {
    font-family: var(--bt-font-display);
    font-size: 28px;
    font-weight: 400;
    font-style: italic;
    margin: 40px 0 16px;
    color: var(--bt-black);
}
.bt-hotel-amenities {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.bt-hotel-amenities li {
    padding: 10px 0;
    border-bottom: 1px solid var(--bt-mist);
    font-size: 14px;
    color: var(--bt-ink);
}

.bt-hotel-stickybox {
    border: 1px solid var(--bt-mist);
    padding: 28px;
    background: var(--bt-bone);
    position: sticky;
    top: 100px;
}
.bt-hotel-stickybox__dates {
    font-family: var(--bt-font-display);
    font-size: 22px;
    color: var(--bt-black);
    margin-bottom: 12px;
}
.bt-arrow { color: var(--bt-sand); margin: 0 8px; }
.bt-hotel-stickybox__nights { color: var(--bt-stone); font-size: 14px; }

/* ROOMS LIST ------------------------------------------------------------- */
.bt-hotel-rooms { padding: 60px 0 120px; background: var(--bt-paper); }
.bt-rooms-list { display: flex; flex-direction: column; gap: 20px; }
.bt-room-card {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 0;
    background: var(--bt-white);
    border: 1px solid var(--bt-mist);
}
@media (max-width: 900px) { .bt-room-card { grid-template-columns: 1fr; } }
.bt-room-card__main { padding: 28px 32px; }
.bt-room-card__name {
    font-family: var(--bt-font-display);
    font-size: 28px;
    font-weight: 400;
    margin: 0 0 8px;
    color: var(--bt-black);
}
.bt-room-card__desc { color: var(--bt-stone); font-size: 15px; margin: 0 0 12px; }
.bt-room-card__specs {
    color: var(--bt-graphite);
    font-size: 14px;
    margin-bottom: 16px;
    display: flex; gap: 8px; align-items: center;
}
.bt-room-card__perks { display: flex; flex-direction: column; gap: 6px; }
.bt-room-perk {
    display: inline-block;
    font-size: 13px;
    color: var(--bt-graphite);
}
.bt-room-perk--meal::before    { content: '◷ '; color: var(--bt-sand); }
.bt-room-perk--cancel::before  { content: '✓ '; color: var(--bt-sand); }

.bt-room-card__price {
    background: var(--bt-bone);
    padding: 28px;
    display: flex; flex-direction: column; justify-content: center; align-items: stretch;
    text-align: right;
    border-left: 1px solid var(--bt-mist);
}
@media (max-width: 900px) { .bt-room-card__price { border-left: 0; border-top: 1px solid var(--bt-mist); text-align: left; } }
.bt-room-card__total {
    font-family: var(--bt-font-display);
    font-size: 38px;
    font-weight: 500;
    color: var(--bt-black);
    line-height: 1;
    margin: 6px 0 4px;
}
.bt-room-card__nightly { font-size: 13px; color: var(--bt-stone); margin-bottom: 16px; }

/* BOOKING --------------------------------------------------------------- */
.bt-booking { background: var(--bt-paper); min-height: 80vh; padding: 100px 0 80px; }
.bt-booking-grid {
    display: grid;
    grid-template-columns: 380px 1fr;
    gap: 56px;
    align-items: start;
}
@media (max-width: 1024px) { .bt-booking-grid { grid-template-columns: 1fr; gap: 40px; } }

.bt-booking-summary {
    background: var(--bt-white);
    border: 1px solid var(--bt-mist);
    overflow: hidden;
    position: sticky;
    top: 100px;
}
.bt-booking-summary__media {
    height: 200px;
    background-size: cover;
    background-position: center;
    background-color: var(--bt-mist);
}
.bt-booking-summary__body { padding: 28px; }
.bt-booking-summary__body h2 {
    font-family: var(--bt-font-display);
    font-size: 28px;
    font-weight: 400;
    margin: 8px 0 4px;
    color: var(--bt-black);
}
.bt-booking-summary__room { font-size: 14px; color: var(--bt-stone); margin: 0 0 20px; font-style: italic; }
.bt-booking-summary__dates {
    padding: 14px 0;
    border-top: 1px solid var(--bt-mist);
    border-bottom: 1px solid var(--bt-mist);
    font-family: var(--bt-font-display);
    font-size: 18px;
    color: var(--bt-black);
}
.bt-booking-summary__nights { color: var(--bt-stone); font-size: 13px; padding: 12px 0; }
.bt-booking-summary__total {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding-top: 16px;
    border-top: 1px solid var(--bt-mist);
}
.bt-booking-summary__total span {
    font-size: 11px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-stone);
}
.bt-booking-summary__total strong {
    font-family: var(--bt-font-display);
    font-size: 32px;
    color: var(--bt-black);
    font-weight: 500;
}
.bt-booking-summary__note {
    font-size: 12px;
    color: var(--bt-stone);
    line-height: 1.6;
    margin: 16px 0 0;
    font-style: italic;
}

.bt-booking-form-wrap {}
.bt-booking-title {
    font-family: var(--bt-font-display);
    font-size: clamp(40px, 5vw, 64px);
    font-weight: 300;
    letter-spacing: -0.02em;
    line-height: 1.05;
    margin: 12px 0 40px;
    color: var(--bt-black);
}
.bt-booking-title em { font-style: italic; font-weight: 400; }

.bt-form-row { margin-bottom: 20px; }
.bt-form-row--2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 600px) { .bt-form-row--2 { grid-template-columns: 1fr; } }
.bt-form-field label {
    display: block;
    font-size: 11px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--bt-stone);
    margin-bottom: 8px;
    font-weight: 500;
}
.bt-form-field input,
.bt-form-field select {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--bt-mist);
    background: transparent;
    padding: 12px 0;
    font-family: var(--bt-font-display);
    font-size: 22px;
    color: var(--bt-black);
    outline: none;
    border-radius: 0;
    transition: border-color .3s ease;
}
.bt-form-field input:focus,
.bt-form-field select:focus { border-bottom-color: var(--bt-black); }

.bt-form-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 20px 0;
    font-size: 14px;
    color: var(--bt-stone);
    line-height: 1.6;
    cursor: pointer;
}
.bt-form-checkbox input { accent-color: var(--bt-black); margin-top: 4px; }
.bt-form-checkbox a { color: var(--bt-black); border-bottom: 1px solid var(--bt-sand); }

.bt-booking-form-foot {
    margin-top: 16px;
    font-size: 12px;
    color: var(--bt-stone);
    text-align: center;
    font-style: italic;
}

/* PROCESSING ------------------------------------------------------------- */
.bt-booking-processing { text-align: center; padding: 80px 0; }
.bt-booking-processing h2 {
    font-family: var(--bt-font-display);
    font-size: 42px;
    font-weight: 400;
    font-style: italic;
    margin: 24px 0 12px;
    color: var(--bt-black);
}
.bt-booking-processing p { color: var(--bt-stone); }
.bt-booking-progress {
    max-width: 320px;
    height: 2px;
    margin: 32px auto 0;
    background: var(--bt-mist);
    overflow: hidden;
}
.bt-booking-progress__bar {
    height: 100%;
    background: var(--bt-black);
    width: 0%;
}

/* CONFIRMED ------------------------------------------------------------- */
.bt-booking-confirmed { text-align: center; padding: 60px 0; max-width: 700px; margin: 0 auto; }
.bt-booking-check {
    width: 80px; height: 80px;
    border-radius: 50%;
    background: var(--bt-black);
    color: var(--bt-white);
    display: flex; align-items: center; justify-content: center;
    font-size: 38px;
    margin: 0 auto 24px;
    font-family: var(--bt-font-display);
}
.bt-booking-confirmed h1 {
    font-family: var(--bt-font-display);
    font-size: clamp(40px, 5vw, 64px);
    font-weight: 300;
    line-height: 1.05;
    margin: 16px 0 24px;
    color: var(--bt-black);
}
.bt-booking-confirmed h1 em { font-style: italic; font-weight: 400; }
.bt-booking-confirmed__lead { color: var(--bt-stone); font-size: 17px; line-height: 1.7; margin-bottom: 32px; }

.bt-booking-error { text-align: center; padding: 60px 0; }
.bt-booking-cross {
    width: 60px; height: 60px;
    border-radius: 50%;
    border: 1px solid var(--bt-graphite);
    color: var(--bt-graphite);
    display: flex; align-items: center; justify-content: center;
    font-size: 28px;
    margin: 0 auto 24px;
}
.bt-booking-error h2 {
    font-family: var(--bt-font-display);
    font-size: 36px;
    font-weight: 400;
    margin: 0 0 12px;
}

/* PAGINATION (already in theme) */
.bt-pagination { margin-top: 40px; }

/* =========================================================================
   FIXES VISUELS
   ========================================================================= */

/* Reset de tout outline rouge ou bordure de validation HTML5 dans le tunnel */
.bt-booking input:invalid,
.bt-booking select:invalid,
.bt-booking input:focus:invalid,
.bt-booking input,
.bt-booking select,
.bt-room-card__cta:focus,
.bt-room-card__cta {
    box-shadow: none !important;
    outline: none !important;
}
.bt-room-card__cta {
    border: 1px solid var(--bt-black) !important;
    margin-top: 8px;
}
.bt-room-card__cta:focus,
.bt-room-card__cta:active {
    outline: 2px solid var(--bt-sand) !important;
    outline-offset: 2px !important;
}

/* Galerie hôtel — fix proportions (les thumbs étaient étirées en hauteur) */
.bt-hotel-gallery {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 8px;
    height: clamp(360px, 55vh, 560px);
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 32px;
}
.bt-hotel-gallery__main {
    overflow: hidden;
    height: 100%;
    background: var(--bt-mist);
}
.bt-hotel-gallery__main img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}
.bt-hotel-gallery__thumbs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 8px;
    height: 100%;
}
.bt-gallery-thumb {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    border: 0;
    cursor: pointer;
    transition: opacity .3s, transform .8s;
    background-color: var(--bt-mist);
}
.bt-gallery-thumb:hover { opacity: .88; }
@media (max-width: 900px) {
    .bt-hotel-gallery { grid-template-columns: 1fr; height: auto; }
    .bt-hotel-gallery__main { aspect-ratio: 16/10; height: auto; }
    .bt-hotel-gallery__thumbs { grid-template-columns: 1fr 1fr 1fr 1fr; grid-template-rows: 1fr; height: 120px; }
}

/* Sticky box — meilleurs paddings du bouton */
.bt-hotel-stickybox .bt-cta-band__btn,
.bt-room-card__cta {
    padding: 16px 24px !important;
    line-height: 1.3 !important;
    min-height: auto !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    border-radius: 0 !important;
}

/* Page wrapper pour les pages plugin (page-ratehawk.php) */
.bt-page--ratehawk {
    margin: 0;
    padding: 0;
}
.bt-page--ratehawk > * { margin-top: 0; }

/* Quand .bt-article wrappe nos shortcodes (cas où on n'a pas pu changer le template) */
.bt-article > .bt-results-hero,
.bt-article > .bt-results-body,
.bt-article > .bt-hotel-app,
.bt-article > .bt-booking,
.bt-article .bt-results-hero,
.bt-article .bt-results-body,
.bt-article .bt-hotel-app,
.bt-article .bt-booking {
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
}

/* Le hero results — déduire la hauteur header pour ne pas chevaucher */
.bt-results-hero,
.bt-hotel-app,
.bt-booking {
    padding-top: 100px;
}

/* Les inputs date du formulaire booking : pas de bordure rouge sur invalid */
input:invalid {
    box-shadow: none;
}

/* Form fields focus state propre */
.bt-form-field input:focus,
.bt-form-field select:focus,
.bt-search-form-inline input:focus {
    outline: none;
    border-bottom-color: var(--bt-black) !important;
}

/* Formulaire du hero homepage : reset focus rouge */
.bt-search-hero input:focus,
.bt-search-hero select:focus,
.bt-search-hero input:invalid {
    outline: none !important;
    box-shadow: none !important;
}

/* =========================================================================
   FLATPICKR — Black Tomato skin
   Override total du calendrier flatpickr pour matcher le design BT
   ========================================================================= */

.flatpickr-calendar {
    background: var(--bt-black);
    color: var(--bt-white);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 0;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .35);
    font-family: var(--bt-font-body);
    width: 320px;
    padding: 12px;
    margin-top: 8px;
}

.flatpickr-calendar.arrowTop::before,
.flatpickr-calendar.arrowTop::after,
.flatpickr-calendar.arrowBottom::before,
.flatpickr-calendar.arrowBottom::after { display: none; }

/* Header / mois nav */
.flatpickr-months {
    padding: 14px 12px 16px !important;
    display: flex !important;
    align-items: center !important;
    position: relative;
    min-height: 56px;
}
.flatpickr-month {
    background: transparent !important;
    color: var(--bt-white) !important;
    height: 40px !important;
    overflow: visible !important;
    flex: 1;
}
.flatpickr-current-month {
    font-family: var(--bt-font-display) !important;
    font-size: 19px !important;
    font-weight: 400 !important;
    font-style: italic !important;
    color: var(--bt-white) !important;
    padding: 6px 0 !important;
    height: auto !important;
    width: 100% !important;
    text-align: center;
    left: 0 !important;
    top: 0 !important;
    position: static !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 6px;
}
.flatpickr-current-month input.cur-year {
    color: var(--bt-white);
    font-family: var(--bt-font-display);
    font-size: 18px;
    font-weight: 400;
    font-style: italic;
    background: transparent;
    border: 0;
    cursor: pointer;
    padding: 0 4px;
}
.flatpickr-current-month .flatpickr-monthDropdown-months {
    background: var(--bt-black);
    color: var(--bt-white);
    font-family: var(--bt-font-display);
    font-size: 18px;
    font-style: italic;
    border: 0;
    padding: 0 4px;
    cursor: pointer;
    text-transform: capitalize;
    appearance: none;
}
.flatpickr-current-month .flatpickr-monthDropdown-months option {
    background: var(--bt-black);
    color: var(--bt-white);
    text-transform: capitalize;
}
.flatpickr-current-month .numInputWrapper:hover { background: rgba(255, 255, 255, .05); }
.flatpickr-current-month .numInputWrapper span.arrowUp::after { border-bottom-color: var(--bt-fog); }
.flatpickr-current-month .numInputWrapper span.arrowDown::after { border-top-color: var(--bt-fog); }

/* Flèches gauche / droite — visibles et cliquables, sans casser la position du mois */
.flatpickr-prev-month,
.flatpickr-next-month {
    color: var(--bt-sand, #c9a880) !important;
    fill: var(--bt-sand, #c9a880) !important;
    padding: 8px !important;
    height: 36px !important;
    width: 36px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    z-index: 10;
    transition: color .25s ease, background .25s ease !important;
    background: transparent;
    border-radius: 50%;
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%);
}
.flatpickr-prev-month { left: 10px !important; }
.flatpickr-next-month { right: 10px !important; }
.flatpickr-prev-month:hover,
.flatpickr-next-month:hover {
    color: var(--bt-white, #fff) !important;
    fill: var(--bt-white, #fff) !important;
    background: rgba(201, 168, 128, .12) !important;
}
.flatpickr-prev-month svg,
.flatpickr-next-month svg {
    width: 18px !important;
    height: 18px !important;
}
.flatpickr-prev-month svg path,
.flatpickr-next-month svg path { fill: currentColor !important; }
/* Variante claire pour pages internes */
.bt-fp-light .flatpickr-prev-month,
.bt-fp-light .flatpickr-next-month {
    color: var(--bt-black, #0a0a0a) !important;
    fill: var(--bt-black, #0a0a0a) !important;
}
.bt-fp-light .flatpickr-prev-month:hover,
.bt-fp-light .flatpickr-next-month:hover {
    background: rgba(0, 0, 0, .05) !important;
}

/* Jours de la semaine (L M M J V S D) */
.flatpickr-weekdays { background: transparent; padding: 8px 0; }
.flatpickr-weekday {
    color: var(--bt-stone) !important;
    background: transparent !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    letter-spacing: .15em;
    text-transform: uppercase;
    font-family: var(--bt-font-body) !important;
}

/* Grille de jours */
.dayContainer {
    padding: 4px 0;
    width: 100%;
    min-width: 100%;
    max-width: 100%;
    gap: 2px;
}
.flatpickr-day {
    background: transparent;
    border: 0;
    color: var(--bt-white);
    font-family: var(--bt-font-body);
    font-size: 14px;
    font-weight: 400;
    border-radius: 0;
    height: 40px;
    line-height: 40px;
    max-width: calc(100% / 7);
    flex-basis: calc(100% / 7);
    transition: background .15s var(--bt-ease), color .15s var(--bt-ease);
}
.flatpickr-day:hover,
.flatpickr-day:focus {
    background: rgba(255, 255, 255, .08);
    color: var(--bt-white);
    border: 0;
    outline: none;
}
.flatpickr-day.today {
    border: 1px solid var(--bt-sand) !important;
    color: var(--bt-sand);
}
.flatpickr-day.today:hover {
    background: var(--bt-sand);
    color: var(--bt-black);
    border-color: var(--bt-sand) !important;
}
.flatpickr-day.selected,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.startRange,
.flatpickr-day.selected.endRange {
    background: var(--bt-sand) !important;
    color: var(--bt-black) !important;
    border-color: var(--bt-sand) !important;
    font-weight: 500;
    box-shadow: none;
}
.flatpickr-day.inRange {
    background: rgba(201, 168, 128, .18) !important;
    color: var(--bt-white) !important;
    box-shadow: none;
    border: 0;
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover,
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
    color: rgba(255, 255, 255, .15) !important;
    background: transparent;
}
.flatpickr-day.prevMonthDay:hover,
.flatpickr-day.nextMonthDay:hover {
    color: rgba(255, 255, 255, .35) !important;
    background: rgba(255, 255, 255, .04);
}

/* Cache la flèche déroulante du select de mois (look plus propre) */
.flatpickr-monthDropdown-months {
    background-image: none !important;
}

/* Skin "light" pour les pickers HORS du hero noir (dans la modale booking, etc.) */
.bt-results-body .flatpickr-calendar,
.bt-booking .flatpickr-calendar {
    background: var(--bt-white);
    color: var(--bt-black);
    border: 1px solid var(--bt-mist);
    box-shadow: 0 30px 80px rgba(0, 0, 0, .12);
}
.bt-results-body .flatpickr-day,
.bt-booking .flatpickr-day { color: var(--bt-ink); }
.bt-results-body .flatpickr-day:hover,
.bt-booking .flatpickr-day:hover { background: var(--bt-bone); }
.bt-results-body .flatpickr-current-month,
.bt-booking .flatpickr-current-month,
.bt-results-body .flatpickr-current-month input.cur-year,
.bt-booking .flatpickr-current-month input.cur-year,
.bt-results-body .flatpickr-current-month .flatpickr-monthDropdown-months,
.bt-booking .flatpickr-current-month .flatpickr-monthDropdown-months {
    color: var(--bt-black);
    background: var(--bt-white);
}
.bt-results-body .flatpickr-prev-month,
.bt-booking .flatpickr-prev-month,
.bt-results-body .flatpickr-next-month,
.bt-booking .flatpickr-next-month { color: var(--bt-stone); fill: var(--bt-stone); }
.bt-results-body .flatpickr-day.prevMonthDay,
.bt-results-body .flatpickr-day.nextMonthDay,
.bt-booking .flatpickr-day.prevMonthDay,
.bt-booking .flatpickr-day.nextMonthDay { color: var(--bt-fog) !important; }

/* Empêcher l'input alt (la version visible) d'afficher les boutons natifs */
.flatpickr-input,
.flatpickr-input.form-control.input,
input.flatpickr-mobile {
    color-scheme: dark;
}
.bt-search-hero .flatpickr-input.input,
.bt-search-hero input.form-control.flatpickr-input,
.bt-search-hero input.flatpickr-input ~ input {
    background: transparent !important;
    border: 0 !important;
    color: var(--bt-white) !important;
    font-family: var(--bt-font-display) !important;
    font-size: 22px !important;
    padding: 0 !important;
    cursor: pointer;
}

/* =========================================================================
   ESPACE CLIENT — login / register / account / track
   ========================================================================= */

.bt-account-page {
    background: var(--bt-paper);
    min-height: 80vh;
    padding: 140px 0 100px;
}
.bt-account-page--narrow .bt-container { max-width: 720px; }

.bt-account-card {
    background: var(--bt-white);
    border: 1px solid var(--bt-mist);
    padding: 56px 56px 48px;
}
@media (max-width: 700px) {
    .bt-account-card { padding: 36px 24px; }
    .bt-account-page { padding: 100px 0 60px; }
}

.bt-account-title {
    font-family: var(--bt-font-display);
    font-size: clamp(36px, 4.5vw, 56px);
    font-weight: 300;
    letter-spacing: -0.02em;
    line-height: 1.05;
    margin: 12px 0 12px;
    color: var(--bt-black);
}
.bt-account-title em { font-style: italic; font-weight: 400; }
.bt-account-lead {
    color: var(--bt-stone);
    font-size: 16px;
    line-height: 1.7;
    margin: 0 0 32px;
}

.bt-form--auth { margin-top: 8px; }
.bt-form--auth .bt-form-field { margin-bottom: 24px; }
.bt-form--auth .bt-form-row { margin-bottom: 0; }
.bt-form--auth .bt-form-field input,
.bt-form--auth .bt-form-field select {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--bt-mist);
    background: transparent;
    padding: 12px 0;
    font-family: var(--bt-font-display);
    font-size: 22px;
    color: var(--bt-black);
    outline: none;
    border-radius: 0;
}
.bt-form--auth .bt-form-field input:focus { border-bottom-color: var(--bt-black); }

.bt-account-submit {
    width: 100%;
    background: var(--bt-black);
    color: var(--bt-white);
    border: 0;
    padding: 18px 28px;
    font-family: var(--bt-font-body);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .3s var(--bt-ease);
    margin-top: 12px;
}
.bt-account-submit:hover { background: var(--bt-sand); color: var(--bt-black); }
.bt-account-submit:disabled { opacity: .55; cursor: not-allowed; }

.bt-form-error {
    padding: 14px 18px;
    background: rgba(10, 10, 10, .04);
    border-left: 3px solid var(--bt-black, #0a0a0a);
    color: var(--bt-black, #0a0a0a);
    font-size: 14px;
    margin: 0 0 16px;
}

.bt-account-links {
    text-align: center;
    margin-top: 18px;
}
.bt-account-links a {
    font-size: 13px;
    color: var(--bt-stone);
    border-bottom: 1px solid transparent;
    padding-bottom: 2px;
}
.bt-account-links a:hover { color: var(--bt-black); border-bottom-color: var(--bt-sand); opacity: 1; }

.bt-account-divider {
    margin: 40px 0 32px;
    text-align: center;
    position: relative;
}
.bt-account-divider::before {
    content: '';
    position: absolute;
    top: 50%; left: 0; right: 0;
    border-top: 1px solid var(--bt-mist);
}
.bt-account-divider span {
    position: relative;
    background: var(--bt-white);
    padding: 0 16px;
    font-size: 11px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-stone);
}

.bt-account-foot {
    text-align: center;
    color: var(--bt-stone);
    font-size: 14px;
    line-height: 1.7;
}
.bt-account-link-strong {
    color: var(--bt-black);
    font-weight: 500;
    border-bottom: 1px solid var(--bt-sand);
    padding-bottom: 2px;
}
.bt-account-link-strong:hover { color: var(--bt-sand); opacity: 1; }

/* MON ESPACE - dashboard
   ----------------------------------------------------------------------- */

.bt-account-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 56px;
    gap: 24px;
    flex-wrap: wrap;
}
.bt-account-logout {
    font-size: 11px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-stone);
    border: 1px solid var(--bt-mist);
    padding: 10px 18px;
    transition: all .3s var(--bt-ease);
}
.bt-account-logout:hover {
    color: var(--bt-black);
    border-color: var(--bt-black);
    opacity: 1;
}

.bt-account-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background: var(--bt-mist);
    margin-bottom: 64px;
    border: 1px solid var(--bt-mist);
}
@media (max-width: 700px) { .bt-account-stats { grid-template-columns: 1fr; } }
.bt-account-stat {
    background: var(--bt-white);
    padding: 32px 28px;
    text-align: center;
}
.bt-account-stat__num {
    display: block;
    font-family: var(--bt-font-display);
    font-size: 56px;
    font-weight: 300;
    line-height: 1;
    color: var(--bt-black);
    margin-bottom: 8px;
}
.bt-account-stat__lbl {
    font-size: 11px;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--bt-stone);
}

.bt-account-section { margin-bottom: 64px; }
.bt-account-section__title {
    font-family: var(--bt-font-display);
    font-size: clamp(28px, 3vw, 42px);
    font-weight: 300;
    margin: 0 0 32px;
    color: var(--bt-black);
}
.bt-account-section__title em { font-style: italic; font-weight: 400; }

.bt-account-empty {
    background: var(--bt-white);
    border: 1px dashed var(--bt-mist);
    padding: 64px 32px;
    text-align: center;
    color: var(--bt-stone);
}

/* Order card "À venir" */
.bt-orders-list { display: flex; flex-direction: column; gap: 16px; }
.bt-order-card {
    display: grid;
    grid-template-columns: 120px 1fr 200px;
    align-items: center;
    background: var(--bt-white);
    border: 1px solid var(--bt-mist);
    padding: 24px 28px;
    gap: 24px;
}
@media (max-width: 700px) {
    .bt-order-card { grid-template-columns: 1fr; gap: 16px; }
    .bt-order-card__price { text-align: left !important; }
}
.bt-order-card--upcoming { border-left: 3px solid var(--bt-sand); }
.bt-order-card__date {
    text-align: center;
    padding-right: 24px;
    border-right: 1px solid var(--bt-mist);
}
@media (max-width: 700px) {
    .bt-order-card__date { border-right: 0; padding-right: 0; padding-bottom: 16px; border-bottom: 1px solid var(--bt-mist); text-align: left; display: flex; gap: 12px; align-items: baseline; }
}
.bt-order-card__day {
    display: block;
    font-family: var(--bt-font-display);
    font-size: 48px;
    font-weight: 400;
    color: var(--bt-black);
    line-height: 1;
}
.bt-order-card__month {
    display: block;
    font-size: 11px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-stone);
    margin-top: 6px;
}
.bt-order-card__main { display: flex; flex-direction: column; gap: 6px; }
.bt-order-card__countdown {
    font-size: 11px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-sand);
}
.bt-order-card__hotel {
    font-family: var(--bt-font-display);
    font-size: 26px;
    font-weight: 400;
    margin: 0;
    color: var(--bt-black);
}
.bt-order-card__meta { color: var(--bt-stone); font-size: 14px; }
.bt-order-card__price {
    text-align: right;
    border-left: 1px solid var(--bt-mist);
    padding-left: 24px;
}
.bt-order-card__price strong {
    display: block;
    font-family: var(--bt-font-display);
    font-size: 28px;
    color: var(--bt-black);
    font-weight: 500;
    line-height: 1;
}
.bt-order-card__price small {
    display: block;
    font-size: 11px;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--bt-stone);
    margin-top: 6px;
    word-break: break-all;
}

/* Status pills */
.bt-status {
    display: inline-block;
    padding: 4px 12px;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .2em;
    text-transform: uppercase;
    border: 1px solid;
}
.bt-status--confirmed { color: #2e7d32; border-color: #2e7d32; }
.bt-status--pending   { color: var(--bt-sand); border-color: var(--bt-sand); }
.bt-status--cancelled { color: #888; border-color: #888; }

/* Orders table */
.bt-orders-table-wrap {
    background: var(--bt-white);
    border: 1px solid var(--bt-mist);
    overflow-x: auto;
}
.bt-orders-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.bt-orders-table th, .bt-orders-table td {
    padding: 16px 20px;
    text-align: left;
    border-bottom: 1px solid var(--bt-mist);
    vertical-align: middle;
}
.bt-orders-table tr:last-child td { border-bottom: 0; }
.bt-orders-table th {
    font-size: 10px;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--bt-stone);
    font-weight: 500;
    background: var(--bt-bone);
}
.bt-orders-table__actions {
    text-align: right;
    white-space: nowrap;
}
.bt-orders-table__actions a,
.bt-orders-table__actions button.bt-order-action {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 7px 12px !important;
    margin-left: 4px !important;
    background: transparent !important;
    border: 1px solid var(--bt-mist, #e8e6e1) !important;
    color: var(--bt-graphite, #2a2a2a) !important;
    font-family: var(--bt-font-body) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    text-decoration: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    transition: background .2s, color .2s, border-color .2s !important;
}
.bt-orders-table__actions a:hover,
.bt-orders-table__actions button.bt-order-action:hover {
    background: var(--bt-black, #0a0a0a) !important;
    color: var(--bt-white, #fff) !important;
    border-color: var(--bt-black, #0a0a0a) !important;
}
.bt-orders-table__actions .bt-order-action--primary {
    background: var(--bt-black, #0a0a0a) !important;
    color: var(--bt-white, #fff) !important;
    border-color: var(--bt-black, #0a0a0a) !important;
}
.bt-orders-table__actions .bt-order-action--primary:hover {
    background: var(--bt-sand, #c9a880) !important;
    color: var(--bt-black, #0a0a0a) !important;
    border-color: var(--bt-sand, #c9a880) !important;
}
.bt-orders-table__actions .bt-order-action--danger:hover {
    background: transparent !important;
    color: var(--bt-black, #0a0a0a) !important;
    border-color: var(--bt-black, #0a0a0a) !important;
}
.bt-orders-table__actions .is-loading {
    opacity: .5;
    pointer-events: none;
}
.bt-orders-table__actions .is-loading svg {
    animation: bt-spin 1s linear infinite;
}
@keyframes bt-spin {
    to { transform: rotate(360deg); }
}
.bt-orders-table code {
    font-family: 'SF Mono', Menlo, monospace;
    font-size: 12px;
    color: var(--bt-graphite);
    word-break: break-all;
}
.bt-orders-table small {
    color: var(--bt-fog);
    font-size: 11px;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.bt-orders-table__price {
    text-align: right !important;
    font-family: var(--bt-font-display);
    font-size: 18px;
    color: var(--bt-black);
    font-weight: 500;
}

/* Track result */
.bt-track-result {
    background: var(--bt-bone);
    padding: 28px;
    display: grid;
    grid-template-columns: 1fr 200px;
    gap: 24px;
    align-items: center;
}
@media (max-width: 600px) { .bt-track-result { grid-template-columns: 1fr; } }
.bt-track-result__head h3 {
    font-family: var(--bt-font-display);
    font-size: 26px;
    font-weight: 400;
    margin: 6px 0;
    color: var(--bt-black);
}
.bt-track-result__head p { color: var(--bt-stone); font-size: 14px; margin: 4px 0; }
.bt-track-result__body { text-align: right; }
@media (max-width: 600px) { .bt-track-result__body { text-align: left; } }
.bt-track-result__total {
    margin-top: 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    align-items: flex-end;
}
@media (max-width: 600px) { .bt-track-result__total { align-items: flex-start; } }
.bt-track-result__total small {
    font-size: 11px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-stone);
}
.bt-track-result__total strong {
    font-family: var(--bt-font-display);
    font-size: 28px;
    color: var(--bt-black);
    font-weight: 500;
}

/* Account gate (non-logged) */
.bt-account-gate {
    padding: 160px 0;
    background: var(--bt-paper);
    text-align: center;
}

/* =========================================================================
   FLATPICKR ALT INPUT — l'input visible créé par flatpickr
   ========================================================================= */

/* L'alt input remplace l'input original côté visible. Il faut qu'il hérite
   du style des inputs natifs du formulaire. */
.pcm-rh-flatpickr-alt {
    width: 100%;
    background: transparent;
    border: 0;
    color: var(--bt-white);
    font-family: var(--bt-font-display);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: .005em;
    padding: 0;
    outline: none;
    line-height: 1.25;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}
.pcm-rh-flatpickr-alt::placeholder { color: var(--bt-stone); }

/* Sur fond clair (pages résultats / booking), reset la couleur */
.bt-page-body .pcm-rh-flatpickr-alt,
.bt-results-body .pcm-rh-flatpickr-alt,
.bt-booking .pcm-rh-flatpickr-alt {
    color: var(--bt-black);
}

/* L'input original masqué par flatpickr — s'assurer qu'il prend pas de place */
.bt-search-hero .pcm-rh-field input.flatpickr-input[type="hidden"],
.bt-search-hero .pcm-rh-field input.flatpickr-input.flatpickr-mobile {
    position: absolute;
    visibility: hidden;
    pointer-events: none;
}

/* =========================================================================
   SEARCH FORM V2 — style RateHawk officiel (BT skin)
   Layout horizontal : | Destination icon+label+input | Dates icon+range | Guests icon+toggle | [BTN] |
   ========================================================================= */

.pcm-rh-form-v2 {
    display: grid !important;
    grid-template-columns: 2fr 1.4fr 1.4fr auto;
    gap: 1px;
    background: rgba(255, 255, 255, .12);
    align-items: stretch;
}
@media (max-width: 1100px) {
    .pcm-rh-form-v2 { grid-template-columns: 1fr 1fr; }
    .pcm-rh-form-v2 .pcm-rh-btn-search { grid-column: span 2; }
}
@media (max-width: 640px) {
    .pcm-rh-form-v2 { grid-template-columns: 1fr; }
    .pcm-rh-form-v2 .pcm-rh-btn-search { grid-column: span 1; }
}

.pcm-rh-form-v2 .pcm-rh-field {
    background: var(--bt-black, #0a0a0a);
    padding: 12px 20px;
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 68px;
    flex-direction: row;
    position: relative;
}
.pcm-rh-form-v2 .pcm-rh-field__icon {
    width: 26px; height: 26px;
    color: var(--bt-sand, #c9a880);
    flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    border-right: 1px solid rgba(255, 255, 255, .08);
    padding-right: 11px;
    margin-right: 2px;
}
.pcm-rh-form-v2 .pcm-rh-field__icon svg {
    width: 17px; height: 17px;
}
.pcm-rh-form-v2 .pcm-rh-field__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.pcm-rh-form-v2 .pcm-rh-field__body label {
    font-family: var(--bt-font-body);
    font-size: 9px;
    font-weight: 500;
    letter-spacing: .26em;
    text-transform: uppercase;
    color: var(--bt-fog, #b8b8b8);
    margin: 0 0 3px;
    display: block;
}
.pcm-rh-form-v2 .pcm-rh-field__body input[type="text"],
.pcm-rh-form-v2 .pcm-rh-field__body input[type="email"],
.pcm-rh-form-v2 .pcm-rh-field__body .pcm-rh-guests-toggle,
.pcm-rh-form-v2 .pcm-rh-flatpickr-alt {
    width: 100%;
    background: transparent;
    border: 0;
    color: var(--bt-white, #fff);
    font-family: var(--bt-font-display);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: .005em;
    padding: 0;
    outline: none;
    line-height: 1.25;
    text-align: left;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}
.pcm-rh-form-v2 input[type="text"]::placeholder,
.pcm-rh-form-v2 .pcm-rh-flatpickr-alt::placeholder {
    color: var(--bt-stone, #6b6b6b);
    font-style: italic;
}

.pcm-rh-form-v2 .pcm-rh-input-error {
    color: var(--bt-stone, #6b6b6b) !important;
    animation: bt-shake .35s ease;
}
@keyframes bt-shake {
    0%,100% { transform: translateX(0); }
    25% { transform: translateX(-4px); }
    75% { transform: translateX(4px); }
}

/* Bouton Rechercher — affiné */
.pcm-rh-form-v2 .pcm-rh-btn-search {
    background: var(--bt-white, #fff);
    color: var(--bt-black, #0a0a0a);
    border: 0;
    padding: 0 28px;
    font-family: var(--bt-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .26em;
    text-transform: uppercase;
    transition: background .3s ease, color .3s ease;
    min-height: 68px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    cursor: pointer;
}
.pcm-rh-form-v2 .pcm-rh-btn-search svg {
    width: 15px; height: 15px;
    stroke-width: 1.4;
}
.pcm-rh-form-v2 .pcm-rh-btn-search:hover {
    background: var(--bt-sand, #c9a880);
}

/* AUTOCOMPLETE — refresh visuel
   Le dropdown est positionné par rapport au .pcm-rh-field-destination
   pour utiliser la pleine largeur du champ (icon + body) */
.pcm-rh-form-v2 .pcm-rh-field-destination { position: relative; }
.pcm-rh-form-v2 .pcm-rh-autocomplete-wrap { position: static; width: 100%; }
.pcm-rh-form-v2 .pcm-rh-suggestions {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    background: var(--bt-ink, #1a1a1a);
    color: var(--bt-white, #fff);
    border: 1px solid rgba(255, 255, 255, .08);
    z-index: 50;
    max-height: 440px;
    overflow-y: auto;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .5);
}
.pcm-rh-form-v2 .pcm-rh-suggestion {
    padding: 14px 22px;
    cursor: pointer;
    border-bottom: 1px solid rgba(255, 255, 255, .04);
    display: grid;
    grid-template-columns: 18px 1fr auto;
    align-items: center;
    gap: 14px;
    font-size: 14px;
    transition: background .15s ease;
    color: var(--bt-white, #fff);
}
.pcm-rh-form-v2 .pcm-rh-suggestion:hover { background: rgba(255, 255, 255, .04); }
.pcm-rh-form-v2 .pcm-rh-suggestion:last-child { border-bottom: 0; }
.pcm-rh-form-v2 .pcm-rh-suggestion .pcm-rh-icon {
    width: 18px; height: 18px;
    color: var(--bt-sand, #c9a880);
    flex-shrink: 0;
}
.pcm-rh-form-v2 .pcm-rh-suggestion .pcm-rh-label {
    color: var(--bt-white, #fff);
    font-weight: 500;
    font-family: var(--bt-font-body);
    font-size: 15px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pcm-rh-form-v2 .pcm-rh-suggestion .pcm-rh-sub {
    color: var(--bt-fog, #b8b8b8);
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
    flex-shrink: 0;
}

/* PILL "Notre voyage" — petit, inline, à gauche du sub */
.pcm-rh-form-v2 .pcm-rh-suggestion .pcm-rh-pill,
.pcm-rh-pill {
    display: inline-block;
    background: var(--bt-sand, #c9a880);
    color: var(--bt-black, #0a0a0a) !important;
    padding: 2px 8px;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .15em;
    text-transform: uppercase;
    line-height: 1.3;
    white-space: nowrap;
    border-radius: 0;
}

/* GUESTS PANEL — multi-rooms */
.pcm-rh-form-v2 .pcm-rh-guests-toggle {
    cursor: pointer;
    user-select: none;
}
.pcm-rh-form-v2 .pcm-rh-guests-panel {
    position: absolute;
    top: calc(100% + 14px);
    right: 0;
    background: #0f0f0f;
    color: var(--bt-white, #fff) !important;
    border: 1px solid rgba(255, 255, 255, .06);
    padding: 0;
    width: 420px;
    z-index: 50;
    box-shadow: 0 24px 60px rgba(0, 0, 0, .5);
    max-height: 75vh;
    overflow-y: auto;
}

/* Header sticky du panel */
.pcm-rh-form-v2 .pcm-rh-guests-panel__head {
    padding: 22px 28px;
    border-bottom: 1px solid rgba(255, 255, 255, .06);
    background: #0a0a0a;
    position: sticky;
    top: 0;
    z-index: 2;
}
.pcm-rh-form-v2 .pcm-rh-guests-panel__head strong {
    display: block;
    font-family: var(--bt-font-body, 'DM Sans', sans-serif) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: .26em !important;
    text-transform: uppercase !important;
    color: var(--bt-fog, #b8b8b8) !important;
    line-height: 1.4;
}
.pcm-rh-form-v2 .pcm-rh-guests-panel__head strong::before {
    content: '';
    display: inline-block;
    width: 24px;
    height: 1px;
    background: var(--bt-sand, #c9a880);
    margin-right: 12px;
    vertical-align: middle;
}
/* Force visibility de tous les enfants du panel (sinon hérités du body sombre = invisibles) */
.pcm-rh-form-v2 .pcm-rh-guests-panel,
.pcm-rh-form-v2 .pcm-rh-guests-panel * { color: inherit; }
.pcm-rh-form-v2 .pcm-rh-guests-panel strong,
.pcm-rh-form-v2 .pcm-rh-guests-panel span,
.pcm-rh-form-v2 .pcm-rh-guests-panel small,
.pcm-rh-form-v2 .pcm-rh-guests-panel label { color: var(--bt-white, #fff); }
.pcm-rh-form-v2 .pcm-rh-guests-panel small { color: var(--bt-stone, #6b6b6b); }
.pcm-rh-form-v2 .pcm-rh-guests-panel button { color: var(--bt-white, #fff); }
.pcm-rh-form-v2 .pcm-rh-guests-panel .pcm-rh-room__head strong { color: var(--bt-sand, #c9a880); }

/* Reset focus rouge HTML5 sur les boutons du panel et de la search bar */
.pcm-rh-form-v2 button,
.pcm-rh-form-v2 input,
.pcm-rh-form-v2 select,
.pcm-rh-form-v2 button:focus,
.pcm-rh-form-v2 button:focus-visible,
.pcm-rh-form-v2 button:invalid,
.pcm-rh-form-v2 input:invalid,
.pcm-rh-form-v2 input:focus:invalid,
.pcm-rh-form-v2 input:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}
.pcm-rh-form-v2 button:focus-visible {
    outline: 2px solid var(--bt-sand, #c9a880) !important;
    outline-offset: 2px;
}
@media (max-width: 640px) {
    .pcm-rh-form-v2 .pcm-rh-guests-panel { width: calc(100vw - 40px); right: auto; left: 0; }
}

.pcm-rh-rooms-list {
    display: flex;
    flex-direction: column;
    padding: 8px 28px 0;
}
.pcm-rh-room {
    background: transparent;
    padding: 22px 0;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .06);
}
.pcm-rh-room:last-child { border-bottom: 0; }
.pcm-rh-room__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 18px;
    padding-bottom: 0;
    border-bottom: 0;
}
.pcm-rh-room__head strong {
    font-family: var(--bt-font-body);
    font-size: 10px;
    letter-spacing: .26em;
    text-transform: uppercase;
    color: var(--bt-sand, #c9a880);
    font-weight: 500;
}
.pcm-rh-remove-room,
button.pcm-rh-remove-room {
    background: transparent !important;
    border: 0 !important;
    color: var(--bt-stone, #6b6b6b) !important;
    font-family: var(--bt-font-body) !important;
    font-size: 11px !important;
    letter-spacing: .04em !important;
    text-transform: none !important;
    cursor: pointer !important;
    padding: 0 !important;
    text-decoration: underline !important;
    text-decoration-color: rgba(255, 255, 255, .12) !important;
    text-underline-offset: 3px !important;
    transition: color .2s ease, text-decoration-color .2s ease !important;
    box-shadow: none !important;
    outline: none !important;
}
.pcm-rh-remove-room:hover,
button.pcm-rh-remove-room:hover {
    color: var(--bt-white, #fff) !important;
    text-decoration-color: var(--bt-sand, #c9a880) !important;
}

.pcm-rh-counter {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 0;
}
.pcm-rh-counter + .pcm-rh-counter { border-top: 0; padding-top: 10px; }
.pcm-rh-counter__label { display: flex; flex-direction: column; min-width: 0; max-width: 60%; }
.pcm-rh-counter__label span {
    color: var(--bt-white, #fff);
    font-family: var(--bt-font-body, 'DM Sans', sans-serif);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0;
}
.pcm-rh-counter__label small {
    color: var(--bt-stone, #6b6b6b);
    font-family: var(--bt-font-body, 'DM Sans', sans-serif);
    font-size: 11px;
    font-weight: 400;
    margin-top: 2px;
    letter-spacing: 0;
    line-height: 1.4;
}
.pcm-rh-counter__ctrl {
    display: flex;
    align-items: center;
    gap: 0;
    flex-shrink: 0;
    border: 1px solid rgba(255, 255, 255, .12);
}
.pcm-rh-counter__ctrl button,
.pcm-rh-form-v2 .pcm-rh-counter__ctrl button {
    width: 32px !important;
    height: 32px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--bt-white, #fff) !important;
    font-size: 16px !important;
    font-family: var(--bt-font-body) !important;
    line-height: 1 !important;
    cursor: pointer !important;
    transition: background .15s ease, color .15s ease !important;
    padding: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.pcm-rh-counter__ctrl button:hover:not(:disabled),
.pcm-rh-form-v2 .pcm-rh-counter__ctrl button:hover:not(:disabled) {
    background: var(--bt-sand, #c9a880) !important;
    color: var(--bt-black, #0a0a0a) !important;
}
.pcm-rh-counter__ctrl button:disabled,
.pcm-rh-form-v2 .pcm-rh-counter__ctrl button:disabled {
    opacity: .25;
    cursor: not-allowed !important;
}
.pcm-rh-counter__ctrl span {
    min-width: 36px;
    text-align: center;
    font-family: var(--bt-font-body) !important;
    font-size: 14px !important;
    color: var(--bt-white, #fff);
    font-weight: 500 !important;
    border-left: 1px solid rgba(255, 255, 255, .12);
    border-right: 1px solid rgba(255, 255, 255, .12);
    height: 32px;
    line-height: 32px;
}

.pcm-rh-children-ages {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-top: 12px;
    margin-top: 12px;
    border-top: 1px solid rgba(255, 255, 255, .08);
}
.pcm-rh-child-age {
    display: grid;
    grid-template-columns: 1fr 100px auto;
    align-items: center;
    gap: 10px;
}
.pcm-rh-child-age label {
    color: var(--bt-fog, #b8b8b8);
    font-size: 12px;
}
.pcm-rh-child-select {
    background: var(--bt-black, #0a0a0a);
    border: 1px solid rgba(255, 255, 255, .15);
    color: var(--bt-white, #fff);
    padding: 6px 8px;
    font-size: 13px;
    border-radius: 0;
}
.pcm-rh-child-select option { background: var(--bt-black, #0a0a0a); }
.pcm-rh-remove-child {
    width: 22px; height: 22px;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .2);
    color: var(--bt-fog, #b8b8b8);
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
}
.pcm-rh-remove-child:hover { color: var(--bt-stone, #6b6b6b); border-color: var(--bt-stone, #6b6b6b); }

.pcm-rh-guests-actions {
    display: flex;
    gap: 12px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, .08);
}
.pcm-rh-add-room {
    flex: 1;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .25);
    color: var(--bt-white, #fff);
    padding: 12px;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .2em;
    text-transform: uppercase;
    cursor: pointer;
    transition: border-color .2s, color .2s;
}
.pcm-rh-add-room:hover { border-color: var(--bt-sand, #c9a880); color: var(--bt-sand, #c9a880); }
.pcm-rh-guests-confirm {
    flex: 1;
    background: var(--bt-white, #fff);
    color: var(--bt-black, #0a0a0a);
    border: 0;
    padding: 12px;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .2em;
    text-transform: uppercase;
    cursor: pointer;
}
.pcm-rh-guests-confirm:hover { background: var(--bt-sand, #c9a880); }

/* Variante "hero-dark" : search bar pro avec hover, separators sand, et CTA flèche */
.bt-search-hero .pcm-rh-form-v2 {
    background: rgba(201, 168, 128, .12) !important;
}
.bt-search-hero .pcm-rh-form-v2 .pcm-rh-field {
    padding: 18px 24px;
    min-height: 84px;
    transition: background .25s ease;
}
.bt-search-hero .pcm-rh-form-v2 .pcm-rh-field:hover {
    background: #131313;
}
.bt-search-hero .pcm-rh-form-v2 .pcm-rh-field:focus-within {
    background: #161616;
}
.bt-search-hero .pcm-rh-form-v2 .pcm-rh-btn-search {
    min-height: 84px;
    padding: 0 40px;
    gap: 12px;
    font-size: 11px;
    letter-spacing: .28em;
}
.bt-search-hero .pcm-rh-form-v2 .pcm-rh-btn-search svg {
    transition: transform .3s ease;
}
.bt-search-hero .pcm-rh-form-v2 .pcm-rh-btn-search:hover svg {
    transform: translateX(3px);
}
.bt-search-hero .pcm-rh-form-v2 .pcm-rh-field__body input[type="text"],
.bt-search-hero .pcm-rh-form-v2 .pcm-rh-field__body .pcm-rh-guests-toggle,
.bt-search-hero .pcm-rh-form-v2 .pcm-rh-flatpickr-alt {
    font-size: 18px;
}
.bt-search-hero .pcm-rh-form-v2 .pcm-rh-field__icon {
    width: 24px; height: 24px;
    padding-right: 14px;
    margin-right: 4px;
    transition: color .2s ease;
}
.bt-search-hero .pcm-rh-form-v2 .pcm-rh-field__icon svg {
    width: 17px; height: 17px;
}
.bt-search-hero .pcm-rh-form-v2 .pcm-rh-field:hover .pcm-rh-field__icon {
    color: var(--bt-white);
}

/* Indicateur "X nuits" sous le sélecteur de dates */
.bt-search-hero .pcm-rh-field-dates .pcm-rh-nights-hint {
    position: absolute;
    bottom: 8px;
    right: 22px;
    font-family: var(--bt-font-body, 'DM Sans', sans-serif);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--bt-sand, #c9a880);
    background: rgba(201, 168, 128, .08);
    padding: 2px 8px;
    border-radius: 0;
    pointer-events: none;
    opacity: 0;
    transition: opacity .25s ease;
}
.bt-search-hero .pcm-rh-field-dates .pcm-rh-nights-hint.is-visible {
    opacity: 1;
}

/* Onglets dans le hero — un peu plus aérés */
.bt-search-hero .pcm-rh-tabs {
    margin-bottom: 18px;
}

/* Pages internes (résultats, hôtel, booking) — variante claire si réutilisé */
.bt-results-body .pcm-rh-form-v2 { background: var(--bt-mist, #e8e6e1); }
.bt-results-body .pcm-rh-form-v2 .pcm-rh-field { background: var(--bt-white, #fff); }
.bt-results-body .pcm-rh-form-v2 .pcm-rh-field__body label { color: var(--bt-stone, #6b6b6b); }
.bt-results-body .pcm-rh-form-v2 input,
.bt-results-body .pcm-rh-form-v2 .pcm-rh-guests-toggle,
.bt-results-body .pcm-rh-form-v2 .pcm-rh-flatpickr-alt { color: var(--bt-black, #0a0a0a); }
.bt-results-body .pcm-rh-form-v2 .pcm-rh-btn-search { background: var(--bt-black, #0a0a0a); color: var(--bt-white, #fff); }

/* =========================================================================
   SEARCH FORM V2 — POLISH FINAL (override des règles précédentes)
   - Plus compacte, plus design, dividers subtils, hover discrets
   - Ajout du sélecteur Devise
   - Panel Voyageurs reécrit propre (head + rooms + footer fixe)
   ========================================================================= */

.pcm-rh-form-v2 {
    display: grid !important;
    grid-template-columns: 2.4fr 2fr 1.5fr 1fr auto;  /* dest / dates / guests / currency / btn */
    gap: 0;
    background: var(--bt-black, #0a0a0a);
    border: 1px solid rgba(255, 255, 255, .07);
    align-items: stretch;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .4);
}
@media (max-width: 1100px) {
    .pcm-rh-form-v2 { grid-template-columns: 1fr 1fr; }
    .pcm-rh-form-v2 .pcm-rh-btn-search { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
    .pcm-rh-form-v2 { grid-template-columns: 1fr; }
    .pcm-rh-form-v2 .pcm-rh-btn-search { grid-column: 1; }
}

.pcm-rh-form-v2 .pcm-rh-field {
    background: transparent;
    padding: 18px 24px;
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 88px;
    flex-direction: row;
    position: relative;
    transition: background .25s var(--bt-ease, cubic-bezier(.2,.7,.2,1));
}
/* Divider subtil entre les champs */
.pcm-rh-form-v2 .pcm-rh-field + .pcm-rh-field::before {
    content: '';
    position: absolute;
    left: 0; top: 18px; bottom: 18px;
    width: 1px;
    background: rgba(255, 255, 255, .08);
}
.pcm-rh-form-v2 .pcm-rh-field:hover {
    background: rgba(255, 255, 255, .025);
}

/* Icône épurée — plus de border séparateur, juste l'icon */
.pcm-rh-form-v2 .pcm-rh-field__icon {
    width: 22px;
    height: 22px;
    color: var(--bt-sand, #c9a880);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}
.pcm-rh-form-v2 .pcm-rh-field__icon svg {
    width: 22px;
    height: 22px;
    stroke-width: 1.3;
}

.pcm-rh-form-v2 .pcm-rh-field__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
}
.pcm-rh-form-v2 .pcm-rh-field__body label {
    font-family: var(--bt-font-body, 'DM Sans', sans-serif);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .5);
    margin: 0;
    display: block;
    line-height: 1;
}
.pcm-rh-form-v2 .pcm-rh-field__body input[type="text"],
.pcm-rh-form-v2 .pcm-rh-field__body input[type="email"],
.pcm-rh-form-v2 .pcm-rh-field__body select,
.pcm-rh-form-v2 .pcm-rh-field__body .pcm-rh-guests-toggle,
.pcm-rh-form-v2 .pcm-rh-flatpickr-alt {
    width: 100%;
    background: transparent;
    border: 0;
    color: var(--bt-white, #fff);
    font-family: var(--bt-font-display, 'Cormorant Garamond', serif);
    font-size: 21px;
    font-weight: 400;
    letter-spacing: .005em;
    padding: 0;
    outline: none !important;
    line-height: 1.25;
    text-align: left;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}
.pcm-rh-form-v2 input[type="text"]::placeholder,
.pcm-rh-form-v2 .pcm-rh-flatpickr-alt::placeholder {
    color: rgba(255, 255, 255, .35);
    font-style: italic;
}

/* Caret tip discret sur les champs interactifs */
.pcm-rh-form-v2 .pcm-rh-guests-toggle,
.pcm-rh-form-v2 .pcm-rh-currency-select {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 7' fill='none' stroke='rgba(255,255,255,0.4)' stroke-width='1.5'><polyline points='1 1 6 6 11 1'/></svg>");
    background-repeat: no-repeat;
    background-position: right center;
    padding-right: 18px !important;
}
.pcm-rh-form-v2 .pcm-rh-currency-select option {
    background: var(--bt-black, #0a0a0a);
    color: var(--bt-white, #fff);
    font-family: var(--bt-font-body, sans-serif);
    font-size: 14px;
}

/* BOUTON RECHERCHER — bloc blanc plus net */
.pcm-rh-form-v2 .pcm-rh-btn-search {
    background: var(--bt-white, #fff);
    color: var(--bt-black, #0a0a0a);
    border: 0;
    padding: 0 40px;
    font-family: var(--bt-font-body, sans-serif);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .25em;
    text-transform: uppercase;
    transition: background .3s var(--bt-ease, cubic-bezier(.2,.7,.2,1));
    min-height: 88px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    cursor: pointer;
}
.pcm-rh-form-v2 .pcm-rh-btn-search svg {
    width: 18px;
    height: 18px;
    stroke-width: 1.6;
}
.pcm-rh-form-v2 .pcm-rh-btn-search:hover {
    background: var(--bt-sand, #c9a880);
}

/* PANEL VOYAGEURS — réécriture propre */
.pcm-rh-form-v2 .pcm-rh-guests-panel {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    background: var(--bt-ink, #1a1a1a);
    color: var(--bt-white, #fff) !important;
    border: 1px solid rgba(255, 255, 255, .08);
    width: 440px;
    z-index: 50;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .55);
    max-height: 75vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
@media (max-width: 640px) {
    .pcm-rh-form-v2 .pcm-rh-guests-panel { width: calc(100vw - 32px); right: auto; left: 0; }
}
.pcm-rh-form-v2 .pcm-rh-guests-panel,
.pcm-rh-form-v2 .pcm-rh-guests-panel * {
    color: inherit;
}

.pcm-rh-form-v2 .pcm-rh-guests-panel__head {
    padding: 22px 26px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.pcm-rh-form-v2 .pcm-rh-guests-panel__head strong {
    font-family: var(--bt-font-display, serif);
    font-size: 22px;
    font-style: italic;
    font-weight: 400;
    color: var(--bt-white, #fff);
    letter-spacing: .005em;
}

.pcm-rh-form-v2 .pcm-rh-rooms-list {
    flex: 1;
    overflow-y: auto;
    padding: 18px 26px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.pcm-rh-form-v2 .pcm-rh-room {
    background: rgba(255, 255, 255, .025);
    padding: 16px 18px;
    border: 1px solid rgba(255, 255, 255, .06);
}
.pcm-rh-form-v2 .pcm-rh-room__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.pcm-rh-form-v2 .pcm-rh-room__head strong {
    font-family: var(--bt-font-body, sans-serif);
    font-size: 11px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-sand, #c9a880) !important;
    font-weight: 500;
}
.pcm-rh-form-v2 .pcm-rh-remove-room {
    background: transparent;
    border: 0;
    color: rgba(255, 255, 255, .5);
    font-size: 11px;
    letter-spacing: .15em;
    text-transform: uppercase;
    cursor: pointer;
    padding: 4px 0;
    transition: color .25s ease;
}
.pcm-rh-form-v2 .pcm-rh-remove-room:hover { color: var(--bt-stone, #6b6b6b); }

.pcm-rh-form-v2 .pcm-rh-counter {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 0;
    margin: 0;
}
.pcm-rh-form-v2 .pcm-rh-counter > div { display: flex; }
.pcm-rh-form-v2 .pcm-rh-counter__label {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}
.pcm-rh-form-v2 .pcm-rh-counter__label span {
    color: var(--bt-white, #fff) !important;
    font-family: var(--bt-font-body, sans-serif);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: .01em;
}
.pcm-rh-form-v2 .pcm-rh-counter__label small {
    color: rgba(255, 255, 255, .45) !important;
    font-size: 11px;
    font-weight: 400;
    margin: 0;
}
.pcm-rh-form-v2 .pcm-rh-counter__ctrl {
    align-items: center;
    gap: 14px;
}
.pcm-rh-form-v2 .pcm-rh-counter__ctrl button {
    width: 30px; height: 30px;
    border: 1px solid rgba(255, 255, 255, .2);
    background: transparent;
    color: var(--bt-white, #fff) !important;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    transition: border-color .2s, color .2s, background .2s;
    border-radius: 0;
    padding: 0;
}
.pcm-rh-form-v2 .pcm-rh-counter__ctrl button:hover:not(:disabled) {
    border-color: var(--bt-sand, #c9a880);
    color: var(--bt-sand, #c9a880) !important;
    background: rgba(201, 168, 128, .08);
}
.pcm-rh-form-v2 .pcm-rh-counter__ctrl button:disabled {
    opacity: .25;
    cursor: not-allowed;
}
.pcm-rh-form-v2 .pcm-rh-counter__ctrl span {
    min-width: 24px;
    text-align: center;
    font-family: var(--bt-font-display, serif);
    font-size: 22px;
    color: var(--bt-white, #fff) !important;
    font-weight: 400;
}

/* Enfants : âges */
.pcm-rh-form-v2 .pcm-rh-children-ages {
    padding-top: 12px;
    margin-top: 12px;
    border-top: 1px solid rgba(255, 255, 255, .06);
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.pcm-rh-form-v2 .pcm-rh-child-age {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 12px;
}
.pcm-rh-form-v2 .pcm-rh-child-age label {
    color: rgba(255, 255, 255, .65) !important;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: .03em;
    text-transform: none;
    margin: 0;
}
.pcm-rh-form-v2 .pcm-rh-child-select {
    background: var(--bt-black, #0a0a0a) !important;
    border: 1px solid rgba(255, 255, 255, .15) !important;
    color: var(--bt-white, #fff) !important;
    padding: 6px 28px 6px 10px !important;
    font-size: 13px !important;
    font-family: var(--bt-font-body, sans-serif) !important;
    border-radius: 0;
    cursor: pointer;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 7' fill='none' stroke='rgba(255,255,255,0.5)' stroke-width='1.5'><polyline points='1 1 6 6 11 1'/></svg>");
    background-repeat: no-repeat;
    background-position: right 8px center;
    -webkit-appearance: none;
    appearance: none;
}
.pcm-rh-form-v2 .pcm-rh-child-select option {
    background: var(--bt-black, #0a0a0a);
    color: var(--bt-white, #fff);
}
.pcm-rh-form-v2 .pcm-rh-remove-child {
    width: 22px; height: 22px;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .2);
    color: rgba(255, 255, 255, .5);
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}
.pcm-rh-form-v2 .pcm-rh-remove-child:hover {
    color: var(--bt-stone, #6b6b6b);
    border-color: var(--bt-stone, #6b6b6b);
}

/* FOOTER ACTIONS */
.pcm-rh-form-v2 .pcm-rh-guests-actions {
    padding: 16px 26px 22px;
    border-top: 1px solid rgba(255, 255, 255, .08);
    display: flex;
    gap: 12px;
    background: var(--bt-ink, #1a1a1a);
}
.pcm-rh-form-v2 .pcm-rh-add-room {
    flex: 1;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .25);
    color: var(--bt-white, #fff) !important;
    padding: 12px 16px;
    font-family: var(--bt-font-body, sans-serif);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    cursor: pointer;
    transition: border-color .2s, color .2s;
    outline: none !important;
    box-shadow: none !important;
}
.pcm-rh-form-v2 .pcm-rh-add-room:hover {
    border-color: var(--bt-sand, #c9a880);
    color: var(--bt-sand, #c9a880) !important;
}
.pcm-rh-form-v2 .pcm-rh-guests-confirm {
    flex: 1;
    background: var(--bt-white, #fff);
    color: var(--bt-black, #0a0a0a) !important;
    border: 0;
    padding: 12px 16px;
    font-family: var(--bt-font-body, sans-serif);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    cursor: pointer;
    outline: none !important;
    box-shadow: none !important;
    transition: background .25s ease;
}
.pcm-rh-form-v2 .pcm-rh-guests-confirm:hover {
    background: var(--bt-sand, #c9a880);
}

/* Reset toutes les pseudo-classes invalides/focus pour éviter le rouge HTML5 */
.pcm-rh-form-v2 :is(button, input, select):invalid,
.pcm-rh-form-v2 :is(button, input, select):focus,
.pcm-rh-form-v2 :is(button, input, select):focus-visible {
    outline: none !important;
    box-shadow: none !important;
}
.pcm-rh-form-v2 :is(button, input, select):focus-visible {
    outline: 2px solid var(--bt-sand, #c9a880) !important;
    outline-offset: 2px !important;
}

/* Suggestions autocomplete : on garde le re-positionnement précédent */
.pcm-rh-form-v2 .pcm-rh-suggestions {
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    width: auto;
}

/* =========================================================================
   FIX CRITIQUE : hidden attr ne marche pas avec display:flex/grid
   ========================================================================= */
.pcm-rh-form-v2 [hidden],
[hidden] {
    display: none !important;
}

/* =========================================================================
   PANEL VOYAGEURS — POLISH FINAL DESIGN
   Plus aéré, hiérarchie claire, boutons ronds, typo plus belle
   ========================================================================= */

.pcm-rh-form-v2 .pcm-rh-guests-panel {
    width: 460px;
    border-radius: 0;
    /* Cadre plus subtil + glow doux */
    border: 1px solid rgba(255, 255, 255, .12);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, .04) inset,
        0 30px 90px rgba(0, 0, 0, .6);
}

.pcm-rh-form-v2 .pcm-rh-guests-panel__head {
    padding: 24px 28px 18px;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.pcm-rh-form-v2 .pcm-rh-guests-panel__head strong {
    font-family: var(--bt-font-display, serif) !important;
    font-size: 24px !important;
    font-style: italic !important;
    font-weight: 400 !important;
    color: var(--bt-white, #fff) !important;
    letter-spacing: -0.005em;
}

.pcm-rh-form-v2 .pcm-rh-rooms-list {
    padding: 20px 28px;
    gap: 22px;
}

/* Card chambre — plus aérée */
.pcm-rh-form-v2 .pcm-rh-room {
    background: rgba(255, 255, 255, .02);
    padding: 20px 22px;
    border: 1px solid rgba(255, 255, 255, .06);
    border-radius: 0;
}
.pcm-rh-form-v2 .pcm-rh-room__head {
    margin-bottom: 16px;
    padding-bottom: 14px;
}
.pcm-rh-form-v2 .pcm-rh-room__head strong {
    font-size: 11px !important;
    letter-spacing: .25em !important;
    color: var(--bt-sand, #c9a880) !important;
}

/* Compteurs — plus aérés, hiérarchie corrigée */
.pcm-rh-form-v2 .pcm-rh-counter {
    padding: 12px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .04);
}
.pcm-rh-form-v2 .pcm-rh-counter:last-of-type {
    border-bottom: 0;
    padding-bottom: 0;
}
.pcm-rh-form-v2 .pcm-rh-counter__label span {
    font-family: var(--bt-font-body, sans-serif) !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    color: var(--bt-white, #fff) !important;
}
.pcm-rh-form-v2 .pcm-rh-counter__label small {
    font-size: 11px !important;
    color: rgba(255, 255, 255, .4) !important;
    letter-spacing: .03em;
    margin-top: 2px !important;
    line-height: 1.3;
}

/* Boutons ronds */
.pcm-rh-form-v2 .pcm-rh-counter__ctrl {
    gap: 18px !important;
}
.pcm-rh-form-v2 .pcm-rh-counter__ctrl button {
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    border: 1px solid rgba(255, 255, 255, .25) !important;
    font-size: 16px !important;
    font-weight: 300 !important;
    line-height: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all .25s var(--bt-ease, ease) !important;
}
.pcm-rh-form-v2 .pcm-rh-counter__ctrl button:hover:not(:disabled) {
    border-color: var(--bt-sand, #c9a880) !important;
    color: var(--bt-sand, #c9a880) !important;
    background: rgba(201, 168, 128, .1) !important;
    transform: scale(1.06);
}
.pcm-rh-form-v2 .pcm-rh-counter__ctrl span {
    min-width: 24px !important;
    font-family: var(--bt-font-display, serif) !important;
    font-size: 24px !important;
    font-weight: 400 !important;
    color: var(--bt-white, #fff) !important;
    line-height: 1;
}

/* Footer actions — plus présent */
.pcm-rh-form-v2 .pcm-rh-guests-actions {
    padding: 18px 28px 24px;
    gap: 14px;
}
.pcm-rh-form-v2 .pcm-rh-add-room {
    padding: 14px 18px !important;
    font-size: 11px !important;
    letter-spacing: .25em !important;
}
.pcm-rh-form-v2 .pcm-rh-guests-confirm {
    padding: 14px 18px !important;
    font-size: 11px !important;
    letter-spacing: .25em !important;
}

/* Animation d'apparition */
.pcm-rh-form-v2 .pcm-rh-guests-panel:not([hidden]),
.pcm-rh-form-v2 .pcm-rh-suggestions:not([hidden]) {
    animation: bt-panel-in .25s var(--bt-ease, cubic-bezier(.2,.7,.2,1));
}
@keyframes bt-panel-in {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* =========================================================================
   FIX FINAL — panel actions (Ajouter / Valider tronqués)
   Cause : overflow: hidden + flex shrink mauvais + box-sizing
   ========================================================================= */

.pcm-rh-form-v2 .pcm-rh-guests-panel {
    overflow: visible !important;       /* ne plus clipper le footer */
    box-sizing: border-box;
}
.pcm-rh-form-v2 .pcm-rh-rooms-list {
    overflow-y: auto;
    overflow-x: hidden;
    box-sizing: border-box;
    max-height: 50vh;
}
.pcm-rh-form-v2 .pcm-rh-guests-actions {
    flex-shrink: 0;
    box-sizing: border-box;
    width: 100%;
    display: flex;
    gap: 10px;
    margin: 0;
    padding: 18px 28px 22px;
    border-top: 1px solid rgba(255, 255, 255, .06);
    background: #0a0a0a;
    position: sticky;
    bottom: 0;
    z-index: 2;
}
.pcm-rh-form-v2 .pcm-rh-add-room,
button.pcm-rh-add-room {
    flex: 1 1 0 !important;
    min-width: 0;
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, .18) !important;
    color: var(--bt-white, #fff) !important;
    padding: 12px 14px !important;
    font-family: var(--bt-font-body) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    transition: background .2s ease, border-color .2s ease, color .2s ease !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    min-height: 0 !important;
}
.pcm-rh-form-v2 .pcm-rh-add-room:hover,
button.pcm-rh-add-room:hover {
    background: rgba(255, 255, 255, .04) !important;
    border-color: var(--bt-sand, #c9a880) !important;
    color: var(--bt-sand, #c9a880) !important;
}
.pcm-rh-form-v2 .pcm-rh-guests-confirm,
button.pcm-rh-guests-confirm {
    flex: 1 1 0 !important;
    min-width: 0;
    background: var(--bt-white, #fff) !important;
    border: 1px solid var(--bt-white, #fff) !important;
    color: var(--bt-black, #0a0a0a) !important;
    padding: 12px 14px !important;
    font-family: var(--bt-font-body) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    transition: background .2s ease, color .2s ease, border-color .2s ease !important;
    white-space: nowrap;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    min-height: 0 !important;
}
.pcm-rh-form-v2 .pcm-rh-guests-confirm:hover,
button.pcm-rh-guests-confirm:hover {
    background: var(--bt-sand, #c9a880) !important;
    color: var(--bt-black, #0a0a0a) !important;
    border-color: var(--bt-sand, #c9a880) !important;
}

/* Sur petites largeurs : stack vertical */
@media (max-width: 520px) {
    .pcm-rh-form-v2 .pcm-rh-add-room,
    .pcm-rh-form-v2 .pcm-rh-guests-confirm {
        flex: 1 1 100% !important;
    }
    .pcm-rh-form-v2 .pcm-rh-guests-actions { flex-direction: column; }
}

/* S'assurer que box-shadow et box-sizing du panel n'étirent pas la largeur */
.pcm-rh-form-v2 .pcm-rh-guests-panel,
.pcm-rh-form-v2 .pcm-rh-guests-panel * {
    box-sizing: border-box;
}

/* =========================================================================
   ROOM CARD — ajout photo
   ========================================================================= */
.bt-room-card {
    grid-template-columns: 280px 1fr 240px !important;
}
@media (max-width: 900px) {
    .bt-room-card { grid-template-columns: 1fr !important; }
}

.bt-room-card__media {
    position: relative;
    overflow: hidden;
    background: var(--bt-mist);
    aspect-ratio: 4 / 3;
}
.bt-room-card__media img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .8s var(--bt-ease, cubic-bezier(.2,.7,.2,1));
}
.bt-room-card:hover .bt-room-card__media img {
    transform: scale(1.04);
}
@media (max-width: 900px) {
    .bt-room-card__media { aspect-ratio: 16 / 9; }
}

/* =========================================================================
   STICKY BOX FICHE HÔTEL — édition dates + voyageurs
   ========================================================================= */

.bt-hotel-stickybox {
    border: 1px solid var(--bt-mist);
    padding: 28px;
    background: var(--bt-bone);
    position: sticky;
    top: 110px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.bt-hotel-edit-field {
    position: relative;
}
.bt-hotel-edit-field label {
    display: block;
    font-family: var(--bt-font-body);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-stone);
    margin-bottom: 6px;
}
.bt-hotel-edit-field input,
.bt-hotel-edit-field .bt-edit-guests-toggle {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--bt-graphite);
    background: transparent;
    padding: 8px 0;
    font-family: var(--bt-font-display);
    font-size: 18px;
    color: var(--bt-black);
    outline: none;
    border-radius: 0;
    cursor: pointer;
    text-align: left;
}
.bt-hotel-edit-field input:focus,
.bt-hotel-edit-field .bt-edit-guests-toggle:focus {
    border-bottom-color: var(--bt-sand);
}

/* Panel guests dans la sticky box */
.bt-edit-guests-panel {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    background: var(--bt-white);
    border: 1px solid var(--bt-mist);
    box-shadow: 0 24px 60px rgba(0, 0, 0, .15);
    padding: 18px;
    z-index: 30;
    max-height: 60vh;
    overflow-y: auto;
}
.bt-edit-guests-panel[hidden] { display: none !important; }

.bt-edit-rooms-list { display: flex; flex-direction: column; gap: 14px; }
.bt-edit-room {
    background: var(--bt-paper);
    border: 1px solid var(--bt-mist);
    padding: 12px 14px;
}
.bt-edit-room__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 8px;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--bt-mist);
}
.bt-edit-room__head strong {
    font-family: var(--bt-font-body);
    font-size: 10px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-sand);
    font-weight: 500;
}
.bt-edit-remove-room {
    background: transparent;
    border: 0;
    color: var(--bt-stone);
    font-size: 18px;
    cursor: pointer;
    line-height: 1;
    padding: 0 4px;
}
.bt-edit-remove-room:hover { color: var(--bt-black, #0a0a0a); }

.bt-edit-counter {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 0;
}
.bt-edit-counter > span {
    font-family: var(--bt-font-body);
    font-size: 13px;
    color: var(--bt-ink);
    font-weight: 500;
}
.bt-edit-counter > div {
    display: flex;
    align-items: center;
    gap: 12px;
}
.bt-edit-counter button {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 1px solid var(--bt-mist);
    background: var(--bt-white);
    color: var(--bt-black);
    font-size: 14px;
    cursor: pointer;
    line-height: 1;
    padding: 0;
    transition: border-color .2s, color .2s;
}
.bt-edit-counter button:hover:not(:disabled) {
    border-color: var(--bt-sand);
    color: var(--bt-sand);
}
.bt-edit-counter button:disabled { opacity: .3; cursor: not-allowed; }
.bt-edit-counter > div span {
    min-width: 16px;
    text-align: center;
    font-family: var(--bt-font-display);
    font-size: 18px;
    color: var(--bt-black);
}

.bt-edit-children-ages {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--bt-mist);
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.bt-edit-child-age {
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: space-between;
}
.bt-edit-child-age label {
    color: var(--bt-stone);
    font-size: 12px;
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
    margin: 0;
}
.bt-edit-child-select {
    background: var(--bt-white);
    border: 1px solid var(--bt-mist);
    padding: 4px 8px;
    font-size: 12px;
    color: var(--bt-black);
    border-radius: 0;
}

.bt-edit-guests-actions {
    display: flex;
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--bt-mist);
}
/* Override aggressif : le thème Hello Elementor / ElementsKit injecte
   une bordure rouge sur tous les <button>. On force la palette éditoriale. */
.bt-hotel-stickybox .bt-edit-add-room,
button.bt-edit-add-room {
    flex: 1;
    background: transparent !important;
    border: 1px solid var(--bt-graphite, #2a2a2a) !important;
    color: var(--bt-black, #0a0a0a) !important;
    padding: 10px 12px !important;
    font-family: var(--bt-font-body) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: .15em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    transition: background .2s ease, color .2s ease, border-color .2s ease !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
}
.bt-hotel-stickybox .bt-edit-add-room:hover,
button.bt-edit-add-room:hover {
    background: var(--bt-black, #0a0a0a) !important;
    color: var(--bt-white, #fff) !important;
    border-color: var(--bt-black, #0a0a0a) !important;
}
.bt-hotel-stickybox .bt-edit-confirm,
button.bt-edit-confirm {
    flex: 1;
    background: var(--bt-black, #0a0a0a) !important;
    color: var(--bt-white, #fff) !important;
    border: 1px solid var(--bt-black, #0a0a0a) !important;
    padding: 10px 12px !important;
    font-family: var(--bt-font-body) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: .15em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    transition: background .2s ease, color .2s ease, border-color .2s ease !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
}
.bt-hotel-stickybox .bt-edit-confirm:hover,
button.bt-edit-confirm:hover {
    background: var(--bt-sand, #c9a880) !important;
    color: var(--bt-black, #0a0a0a) !important;
    border-color: var(--bt-sand, #c9a880) !important;
}

/* Total mini dans sticky */
.bt-hotel-stickybox__total {
    padding: 14px 0;
    border-top: 1px solid var(--bt-mist);
    border-bottom: 1px solid var(--bt-mist);
    text-align: center;
}
.bt-hotel-stickybox__total span {
    display: block;
    font-size: 10px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-stone);
    margin-bottom: 4px;
}
.bt-hotel-stickybox__total strong {
    display: block;
    font-family: var(--bt-font-display);
    font-size: 32px;
    color: var(--bt-black);
    font-weight: 500;
    line-height: 1;
}
.bt-hotel-stickybox__total small {
    display: block;
    font-size: 12px;
    color: var(--bt-stone);
    margin-top: 4px;
}

.bt-edit-apply { transition: opacity .2s; }
.bt-edit-apply:disabled { opacity: .6; cursor: wait; }

.bt-stickybox__see-rooms {
    text-align: center;
    font-size: 11px;
    color: var(--bt-stone);
    letter-spacing: .15em;
    text-transform: uppercase;
    border-bottom: 1px solid transparent;
    padding-bottom: 2px;
    align-self: center;
    margin-top: 4px;
}
.bt-stickybox__see-rooms:hover {
    color: var(--bt-black);
    border-bottom-color: var(--bt-sand);
    opacity: 1;
}

/* Skin clair flatpickr pour la sticky box (overrider le skin sombre par défaut) */
.bt-hotel-stickybox + .flatpickr-calendar,
.bt-hotel-app .flatpickr-calendar {
    background: var(--bt-white) !important;
    color: var(--bt-black) !important;
    border: 1px solid var(--bt-mist) !important;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .15) !important;
}
.bt-hotel-app .flatpickr-current-month,
.bt-hotel-app .flatpickr-current-month input.cur-year,
.bt-hotel-app .flatpickr-current-month .flatpickr-monthDropdown-months {
    color: var(--bt-black) !important;
    background: var(--bt-white) !important;
}
.bt-hotel-app .flatpickr-day {
    color: var(--bt-ink) !important;
}
.bt-hotel-app .flatpickr-day:hover {
    background: var(--bt-bone) !important;
    color: var(--bt-black) !important;
}
.bt-hotel-app .flatpickr-day.prevMonthDay,
.bt-hotel-app .flatpickr-day.nextMonthDay {
    color: var(--bt-fog) !important;
}
.bt-hotel-app .flatpickr-prev-month,
.bt-hotel-app .flatpickr-next-month {
    color: var(--bt-stone) !important;
    fill: var(--bt-stone) !important;
}
.bt-hotel-app .flatpickr-weekday {
    color: var(--bt-stone) !important;
}

/* =========================================================================
   FIX FINAL — Sticky box hotel : pas de focus rose + range picker lisible
   ========================================================================= */

/* Reset complet du focus/invalid des boutons de la sticky box (cause du rose) */
.bt-hotel-stickybox button,
.bt-hotel-stickybox input,
.bt-hotel-stickybox select,
.bt-hotel-stickybox button:focus,
.bt-hotel-stickybox button:focus-visible,
.bt-hotel-stickybox button:active,
.bt-hotel-stickybox button:invalid,
.bt-hotel-stickybox input:focus,
.bt-hotel-stickybox input:focus-visible,
.bt-hotel-stickybox input:invalid,
.bt-edit-guests-toggle,
.bt-edit-guests-toggle:focus,
.bt-edit-guests-toggle:focus-visible,
.bt-edit-guests-toggle:active,
.bt-edit-guests-toggle:hover {
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    outline: none !important;
}

/* Le toggle voyageurs : forcer transparent malgré tout */
.bt-hotel-stickybox .bt-edit-guests-toggle {
    background: transparent !important;
    color: var(--bt-black) !important;
    border-radius: 0 !important;
}

/* Bouton "Mettre à jour" : fond noir solide, pas d'outline */
.bt-hotel-stickybox .bt-edit-apply,
.bt-hotel-stickybox button.bt-edit-apply,
.bt-edit-apply,
.bt-edit-apply:focus,
.bt-edit-apply:focus-visible,
.bt-edit-apply:invalid {
    background: var(--bt-black) !important;
    color: var(--bt-white) !important;
    outline: none !important;
    box-shadow: none !important;
    border: 0 !important;
}
.bt-edit-apply:hover {
    background: var(--bt-sand) !important;
    color: var(--bt-black) !important;
}

/* CALENDRIER FLATPICKR — skin clair complet pour la fiche hôtel
   ----------------------------------------------------------------------- */

.bt-hotel-app .flatpickr-calendar {
    background: var(--bt-white) !important;
    color: var(--bt-black) !important;
    border: 1px solid var(--bt-mist) !important;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .15) !important;
}
.bt-hotel-app .flatpickr-day {
    color: var(--bt-ink) !important;
    background: transparent !important;
    border: 0 !important;
}
.bt-hotel-app .flatpickr-day:hover {
    background: var(--bt-bone) !important;
    color: var(--bt-black) !important;
    border: 0 !important;
}
.bt-hotel-app .flatpickr-day.today {
    border: 1px solid var(--bt-sand) !important;
    color: var(--bt-sand) !important;
    background: transparent !important;
}
.bt-hotel-app .flatpickr-day.today:hover {
    background: var(--bt-sand) !important;
    color: var(--bt-white) !important;
}

/* Selected (start + end) — sablé pleine teinte */
.bt-hotel-app .flatpickr-day.selected,
.bt-hotel-app .flatpickr-day.selected:hover,
.bt-hotel-app .flatpickr-day.startRange,
.bt-hotel-app .flatpickr-day.endRange,
.bt-hotel-app .flatpickr-day.selected.startRange,
.bt-hotel-app .flatpickr-day.selected.endRange {
    background: var(--bt-sand) !important;
    color: var(--bt-white) !important;
    border-color: var(--bt-sand) !important;
    font-weight: 600;
    box-shadow: none !important;
}

/* In-range middle days — bg sablé clair, texte NOIR (sinon invisible) */
.bt-hotel-app .flatpickr-day.inRange,
.bt-hotel-app .flatpickr-day.inRange:hover {
    background: rgba(201, 168, 128, .25) !important;
    color: var(--bt-black) !important;
    border: 0 !important;
    box-shadow: none !important;
}

.bt-hotel-app .flatpickr-day.flatpickr-disabled,
.bt-hotel-app .flatpickr-day.flatpickr-disabled:hover {
    color: var(--bt-fog) !important;
    background: transparent !important;
}
.bt-hotel-app .flatpickr-day.prevMonthDay,
.bt-hotel-app .flatpickr-day.nextMonthDay {
    color: var(--bt-fog) !important;
    background: transparent !important;
}
.bt-hotel-app .flatpickr-day.prevMonthDay:hover,
.bt-hotel-app .flatpickr-day.nextMonthDay:hover {
    color: var(--bt-stone) !important;
    background: var(--bt-bone) !important;
}

/* Header */
.bt-hotel-app .flatpickr-current-month,
.bt-hotel-app .flatpickr-current-month input.cur-year,
.bt-hotel-app .flatpickr-current-month .flatpickr-monthDropdown-months {
    color: var(--bt-black) !important;
    background: var(--bt-white) !important;
}
.bt-hotel-app .flatpickr-current-month .flatpickr-monthDropdown-months option {
    background: var(--bt-white) !important;
    color: var(--bt-black) !important;
}
.bt-hotel-app .flatpickr-prev-month,
.bt-hotel-app .flatpickr-next-month {
    color: var(--bt-stone) !important;
    fill: var(--bt-stone) !important;
}
.bt-hotel-app .flatpickr-prev-month:hover,
.bt-hotel-app .flatpickr-next-month:hover {
    color: var(--bt-sand) !important;
    fill: var(--bt-sand) !important;
}
.bt-hotel-app .flatpickr-weekday {
    color: var(--bt-stone) !important;
    background: transparent !important;
}

/* =========================================================================
   PHASE A1 — FILTRES AVANCÉS (accordéons + catégories amenities)
   ========================================================================= */

/* <details>/<summary> en accordéon BT */
.bt-filters details.bt-filter-group {
    padding: 0;
    border-top: 1px solid var(--bt-mist, #e8e6e1);
    border-bottom: 0;
}
.bt-filters details.bt-filter-group:first-of-type { border-top: 0; }

.bt-filters details summary.bt-filter-label {
    list-style: none;
    cursor: pointer;
    padding: 16px 0;
    user-select: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0;
    color: var(--bt-stone, #6b6b6b);
}
.bt-filters details summary.bt-filter-label::-webkit-details-marker { display: none; }
.bt-filters details summary.bt-filter-label::after {
    content: '+';
    font-family: var(--bt-font-display);
    font-size: 18px;
    color: var(--bt-stone, #6b6b6b);
    transition: transform .25s ease;
    line-height: 1;
}
.bt-filters details[open] summary.bt-filter-label::after {
    content: '−';
}
.bt-filters details summary.bt-filter-label:hover {
    color: var(--bt-black, #0a0a0a);
}

.bt-filters details > .bt-filter-list,
.bt-filters details > .bt-amenity-cat {
    padding: 4px 0 16px;
}

/* CATÉGORIES AMENITIES */
.bt-amenity-cat {
    padding: 12px 0;
    border-top: 1px solid var(--bt-mist, #e8e6e1);
}
.bt-amenity-cat:first-of-type { border-top: 0; padding-top: 4px; }
.bt-amenity-cat__title {
    display: block;
    font-family: var(--bt-font-body);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-sand, #c9a880);
    margin-bottom: 8px;
}
.bt-amenity-cat label {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 6px 0;
    font-size: 14px;
    color: var(--bt-ink, #1a1a1a);
    cursor: pointer;
}
.bt-amenity-cat label input { accent-color: var(--bt-black, #0a0a0a); }

/* Filter list (générique : repas, lits, kinds, neighborhoods) */
.bt-filters details .bt-filter-list label {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 8px 0;
    font-size: 14px;
    color: var(--bt-ink, #1a1a1a);
    cursor: pointer;
}
.bt-filters details .bt-filter-list label input {
    accent-color: var(--bt-black, #0a0a0a);
}

/* Bouton reset reformulé */
.bt-filters-reset {
    margin-top: 24px;
    padding: 12px 18px !important;
    font-size: 11px !important;
    letter-spacing: .2em !important;
}

/* =========================================================================
   FIX SCROLL FILTRES — sticky avec overflow auto
   ========================================================================= */
.bt-filters {
    position: sticky;
    top: 110px;
    max-height: calc(100vh - 130px);
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 8px;
}
.bt-filters::-webkit-scrollbar {
    width: 6px;
}
.bt-filters::-webkit-scrollbar-track {
    background: transparent;
}
.bt-filters::-webkit-scrollbar-thumb {
    background: var(--bt-mist, #e8e6e1);
    border-radius: 3px;
}
.bt-filters::-webkit-scrollbar-thumb:hover {
    background: var(--bt-fog, #b8b8b8);
}
@media (max-width: 1024px) {
    .bt-filters { position: static; max-height: none; overflow: visible; }
}

/* =========================================================================
   PHASE A2 — Badges paiement sur cards + summary booking
   ========================================================================= */
.bt-pay-badge {
    display: inline-block;
    margin-top: 6px;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: #2e7d32;
}

/* =========================================================================
   PHASE A3 — LIGHTBOX + MAP + VIEW TOGGLE
   ========================================================================= */

/* LIGHTBOX */
.bt-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .94);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: bt-lb-in .25s ease;
}
@keyframes bt-lb-in { from { opacity: 0; } to { opacity: 1; } }

.bt-lightbox__inner {
    max-width: 92vw;
    max-height: 86vh;
    padding: 60px;
    cursor: zoom-out;
}
.bt-lightbox__inner img {
    max-width: 100%;
    max-height: 86vh;
    object-fit: contain;
    display: block;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .8);
}

.bt-lightbox__close,
.bt-lightbox__prev,
.bt-lightbox__next {
    position: absolute;
    background: transparent;
    border: 0;
    color: var(--bt-white, #fff);
    cursor: pointer;
    font-size: 32px;
    width: 56px; height: 56px;
    display: flex; align-items: center; justify-content: center;
    line-height: 1;
    transition: opacity .2s, transform .2s;
}
.bt-lightbox__close { top: 24px; right: 24px; font-size: 40px; }
.bt-lightbox__prev  { left: 24px; top: 50%; transform: translateY(-50%); font-size: 56px; }
.bt-lightbox__next  { right: 24px; top: 50%; transform: translateY(-50%); font-size: 56px; }
.bt-lightbox__prev:hover,
.bt-lightbox__next:hover,
.bt-lightbox__close:hover { color: var(--bt-sand, #c9a880); }

.bt-lightbox__counter {
    position: absolute;
    bottom: 24px; left: 50%;
    transform: translateX(-50%);
    color: rgba(255, 255, 255, .7);
    font-size: 13px;
    letter-spacing: .15em;
    text-transform: uppercase;
    font-family: var(--bt-font-body);
}

/* VIEW TOGGLE Liste / Carte */
.bt-listing-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
    gap: 16px;
}
.bt-view-toggle {
    display: flex;
    border: 1px solid var(--bt-mist, #e8e6e1);
}
.bt-view-toggle button {
    background: var(--bt-white);
    border: 0;
    padding: 10px 18px;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--bt-stone);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: all .2s ease;
}
.bt-view-toggle button + button { border-left: 1px solid var(--bt-mist); }
.bt-view-toggle button:hover { color: var(--bt-black); }
.bt-view-toggle button.is-active {
    background: var(--bt-black);
    color: var(--bt-white);
}

/* CARTE (Leaflet) */
.bt-results-map {
    height: 70vh;
    min-height: 600px;
    margin-bottom: 32px;
    border: 1px solid var(--bt-mist);
}
.bt-results-map[hidden] { display: none; }

/* PIN custom (prix sur le marker) */
.bt-map-pin {
    background: var(--bt-black);
    color: var(--bt-white);
    padding: 4px 10px;
    border-radius: 14px;
    font-family: var(--bt-font-body);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .02em;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .25);
    border: 2px solid var(--bt-white);
    white-space: nowrap;
    transition: transform .15s ease;
}
.bt-map-pin:hover {
    transform: scale(1.08);
    background: var(--bt-sand);
    color: var(--bt-black);
}
.bt-map-pin span { display: block; }

/* POPUP carte */
.leaflet-popup-content-wrapper {
    border-radius: 0 !important;
    box-shadow: 0 24px 60px rgba(0, 0, 0, .25) !important;
    padding: 0 !important;
}
.leaflet-popup-content { margin: 0 !important; min-width: 280px; }
.leaflet-popup-tip { background: var(--bt-white); }

.bt-map-popup img {
    width: 100%;
    height: 140px;
    object-fit: cover;
    display: block;
}
.bt-map-popup__body { padding: 16px 18px; }
.bt-map-popup__hood {
    font-size: 10px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-sand);
    display: block;
    margin-bottom: 4px;
}
.bt-map-popup__name {
    font-family: var(--bt-font-display);
    font-size: 22px;
    font-weight: 400;
    color: var(--bt-black) !important;
    text-decoration: none !important;
    display: block;
    margin-bottom: 8px;
    line-height: 1.1;
}
.bt-map-popup__name:hover { color: var(--bt-sand) !important; }
.bt-map-popup__rating {
    font-size: 12px;
    color: var(--bt-stone);
    margin-bottom: 6px;
}
.bt-map-popup__price {
    font-family: var(--bt-font-display);
    font-size: 22px;
    color: var(--bt-black);
    font-weight: 500;
}
.bt-map-popup__price small { font-size: 12px; color: var(--bt-stone); font-family: var(--bt-font-body); }

/* =========================================================================
   FLATPICKR SKINS — basé sur classe ajoutée par JS onReady
   .bt-fp-dark  → search hero (fond noir)
   .bt-fp-light → fiche hôtel, sticky box, page résultats (fond clair)
   Ces règles override les règles globales (.flatpickr-day.inRange) qui
   ne sont plus valables car le calendrier flatpickr est dans <body>.
   ========================================================================= */

/* SKIN CLAIR — fiche hôtel et autres contextes clairs */
.flatpickr-calendar.bt-fp-light {
    background: var(--bt-white) !important;
    color: var(--bt-black) !important;
    border: 1px solid var(--bt-mist) !important;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .15) !important;
}
.flatpickr-calendar.bt-fp-light .flatpickr-day {
    color: var(--bt-ink) !important;
    background: transparent !important;
    border: 0 !important;
}
.flatpickr-calendar.bt-fp-light .flatpickr-day:hover {
    background: var(--bt-bone) !important;
    color: var(--bt-black) !important;
}
.flatpickr-calendar.bt-fp-light .flatpickr-day.today {
    border: 1px solid var(--bt-sand) !important;
    color: var(--bt-sand) !important;
}
.flatpickr-calendar.bt-fp-light .flatpickr-day.today:hover {
    background: var(--bt-sand) !important;
    color: var(--bt-white) !important;
}
.flatpickr-calendar.bt-fp-light .flatpickr-day.selected,
.flatpickr-calendar.bt-fp-light .flatpickr-day.selected:hover,
.flatpickr-calendar.bt-fp-light .flatpickr-day.startRange,
.flatpickr-calendar.bt-fp-light .flatpickr-day.endRange,
.flatpickr-calendar.bt-fp-light .flatpickr-day.selected.startRange,
.flatpickr-calendar.bt-fp-light .flatpickr-day.selected.endRange {
    background: var(--bt-sand) !important;
    color: var(--bt-white) !important;
    border-color: var(--bt-sand) !important;
    font-weight: 600;
    box-shadow: none !important;
}
/* IN-RANGE : LE FIX CRITIQUE - texte NOIR sur fond clair, plus jamais blanc */
.flatpickr-calendar.bt-fp-light .flatpickr-day.inRange,
.flatpickr-calendar.bt-fp-light .flatpickr-day.inRange:hover {
    background: rgba(201, 168, 128, .25) !important;
    color: var(--bt-black) !important;
    border: 0 !important;
    box-shadow: none !important;
    font-weight: 400;
}
.flatpickr-calendar.bt-fp-light .flatpickr-day.flatpickr-disabled,
.flatpickr-calendar.bt-fp-light .flatpickr-day.flatpickr-disabled:hover {
    color: var(--bt-fog) !important;
    background: transparent !important;
}
.flatpickr-calendar.bt-fp-light .flatpickr-day.prevMonthDay,
.flatpickr-calendar.bt-fp-light .flatpickr-day.nextMonthDay {
    color: var(--bt-fog) !important;
}
.flatpickr-calendar.bt-fp-light .flatpickr-current-month,
.flatpickr-calendar.bt-fp-light .flatpickr-current-month input.cur-year,
.flatpickr-calendar.bt-fp-light .flatpickr-current-month .flatpickr-monthDropdown-months {
    color: var(--bt-black) !important;
    background: var(--bt-white) !important;
}
.flatpickr-calendar.bt-fp-light .flatpickr-current-month .flatpickr-monthDropdown-months option {
    background: var(--bt-white) !important;
    color: var(--bt-black) !important;
}
.flatpickr-calendar.bt-fp-light .flatpickr-prev-month,
.flatpickr-calendar.bt-fp-light .flatpickr-next-month {
    color: var(--bt-stone) !important;
    fill: var(--bt-stone) !important;
}
.flatpickr-calendar.bt-fp-light .flatpickr-weekday {
    color: var(--bt-stone) !important;
    background: transparent !important;
}

/* SKIN SOMBRE — search hero accueil (fond noir) */
.flatpickr-calendar.bt-fp-dark {
    background: var(--bt-black) !important;
    color: var(--bt-white) !important;
    border: 1px solid rgba(255, 255, 255, .08) !important;
}
.flatpickr-calendar.bt-fp-dark .flatpickr-day {
    color: var(--bt-white) !important;
}
.flatpickr-calendar.bt-fp-dark .flatpickr-day.inRange,
.flatpickr-calendar.bt-fp-dark .flatpickr-day.inRange:hover {
    background: rgba(201, 168, 128, .18) !important;
    color: var(--bt-white) !important;
    border: 0 !important;
}
.flatpickr-calendar.bt-fp-dark .flatpickr-day.selected,
.flatpickr-calendar.bt-fp-dark .flatpickr-day.startRange,
.flatpickr-calendar.bt-fp-dark .flatpickr-day.endRange {
    background: var(--bt-sand) !important;
    color: var(--bt-black) !important;
    border-color: var(--bt-sand) !important;
}

/* =========================================================================
   RATE PILLS — sélecteur de formule par chambre (sans repas / petit-déj / etc.)
   ========================================================================= */

.bt-room-card__rates {
    margin: 16px 0 12px;
    padding-top: 14px;
    border-top: 1px solid var(--bt-mist, #e8e6e1);
}
.bt-rates-label {
    display: block;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-stone, #6b6b6b);
    margin-bottom: 10px;
}
.bt-rates-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.bt-rate-pill {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 14px;
    background: var(--bt-white, #fff);
    border: 1px solid var(--bt-mist, #e8e6e1);
    cursor: pointer;
    font-family: var(--bt-font-body);
    transition: all .2s ease;
    text-align: left;
    width: 100%;
}
.bt-rate-pill:hover {
    border-color: var(--bt-graphite, #2c2c2c);
    background: var(--bt-bone, #f4f1ec);
}
.bt-rate-pill.is-selected {
    background: var(--bt-black, #0a0a0a);
    border-color: var(--bt-black, #0a0a0a);
    color: var(--bt-white, #fff);
}
.bt-rate-pill__label {
    font-size: 13px;
    font-weight: 500;
    color: inherit;
}
.bt-rate-pill__diff {
    font-size: 12px;
    color: var(--bt-stone, #6b6b6b);
    font-weight: 500;
    font-family: var(--bt-font-display, serif);
    font-style: italic;
}
.bt-rate-pill.is-selected .bt-rate-pill__diff {
    color: var(--bt-sand, #c9a880);
}
.bt-rate-pill:focus,
.bt-rate-pill:focus-visible {
    outline: 2px solid var(--bt-sand, #c9a880);
    outline-offset: 2px;
}

/* =========================================================================
   RATE SELECT — menu déroulant pour choisir la formule de repas
   ========================================================================= */

.bt-rate-select {
    width: 100%;
    padding: 12px 38px 12px 14px;
    background: var(--bt-white, #fff);
    border: 1px solid var(--bt-mist, #e8e6e1);
    color: var(--bt-black, #0a0a0a);
    font-family: var(--bt-font-body);
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border-radius: 0;
    -webkit-appearance: none;
    appearance: none;
    transition: border-color .2s ease;

    /* Caret personnalisé en sand */
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 7' fill='none' stroke='%23c9a880' stroke-width='1.6'><polyline points='1 1 6 6 11 1'/></svg>");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 12px 7px;
}
.bt-rate-select:hover {
    border-color: var(--bt-graphite, #2c2c2c);
}
.bt-rate-select:focus {
    outline: none;
    border-color: var(--bt-black, #0a0a0a);
}
.bt-rate-select option {
    background: var(--bt-white, #fff);
    color: var(--bt-black, #0a0a0a);
    padding: 10px;
}

/* =========================================================================
   PHASE A4 — Sections enrichies fiche hôtel
   ========================================================================= */

/* Description par sections */
.bt-hotel-sections {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    margin: 32px 0;
}
@media (min-width: 700px) { .bt-hotel-sections { grid-template-columns: 1fr 1fr; } }
.bt-hotel-section {
    padding: 20px 0;
    border-top: 1px solid var(--bt-mist);
}
.bt-hotel-section__label {
    display: block;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-sand);
    margin-bottom: 10px;
}
.bt-hotel-section p {
    font-size: 15px;
    color: var(--bt-graphite);
    line-height: 1.7;
    margin: 0;
}

/* Reviews breakdown */
.bt-hotel-reviews {
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid var(--bt-mist);
}
.bt-hotel-reviews h3 {
    font-family: var(--bt-font-display);
    font-size: 26px;
    font-weight: 400;
    font-style: italic;
    margin: 0 0 20px;
    color: var(--bt-black);
}
.bt-hotel-reviews__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px 32px;
}
@media (max-width: 600px) { .bt-hotel-reviews__grid { grid-template-columns: 1fr; } }

.bt-review-cat__head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 8px;
}
.bt-review-cat__head span {
    font-size: 14px;
    color: var(--bt-graphite);
    font-weight: 500;
}
.bt-review-cat__head strong {
    font-family: var(--bt-font-display);
    font-size: 18px;
    color: var(--bt-black);
    font-weight: 500;
}
.bt-review-cat__bar {
    height: 4px;
    background: var(--bt-mist);
    overflow: hidden;
}
.bt-review-cat__bar span {
    display: block;
    height: 100%;
    background: var(--bt-sand);
    transition: width .8s var(--bt-ease, ease);
}

/* Facts + Policies grid */
.bt-hotel-info-grid {
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid var(--bt-mist);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
}
@media (max-width: 700px) { .bt-hotel-info-grid { grid-template-columns: 1fr; gap: 24px; } }
.bt-hotel-info-block h4 {
    font-family: var(--bt-font-display);
    font-size: 22px;
    font-weight: 400;
    font-style: italic;
    color: var(--bt-black);
    margin: 0 0 16px;
}
.bt-hotel-info-block ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.bt-hotel-info-block li {
    display: flex;
    justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px solid var(--bt-mist);
    font-size: 14px;
}
.bt-hotel-info-block li:last-child { border-bottom: 0; }
.bt-hotel-info-block li span {
    color: var(--bt-stone);
    font-size: 12px;
    letter-spacing: .05em;
}
.bt-hotel-info-block li strong {
    color: var(--bt-black);
    font-weight: 500;
    text-align: right;
}

/* Card chain tag + cancellation badge */
.bt-hotel-card__chain {
    display: inline-block;
    margin-left: 12px;
    padding: 3px 10px;
    background: var(--bt-bone);
    color: var(--bt-stone);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .15em;
    text-transform: uppercase;
}
.bt-hotel-card__policy {
    display: inline-block;
    margin-top: 6px;
    margin-right: 8px;
    padding: 3px 10px;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
    border: 1px solid;
}
.bt-hotel-card__policy--flexible        { color: #2e7d32; border-color: #2e7d32; background: rgba(46, 125, 50, .04); }
.bt-hotel-card__policy--partial         { color: var(--bt-sand); border-color: var(--bt-sand); }
.bt-hotel-card__policy--non-refundable  { color: var(--bt-stone); border-color: var(--bt-mist); }

/* =========================================================================
   ICÔNES SVG fiche hôtel — design BT (sand stroke, 24x24)
   ========================================================================= */

.bt-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    color: var(--bt-sand, #c9a880);
    flex-shrink: 0;
}
.bt-icon svg {
    width: 22px;
    height: 22px;
    display: block;
}

/* =========================================================================
   SECTIONS DESCRIPTION (Emplacement / Chambres / Restauration / Bien-être)
   ========================================================================= */

.bt-hotel-sections {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    margin: 32px 0 40px;
    background: var(--bt-paper);
    border: 1px solid var(--bt-mist);
}
@media (min-width: 700px) { .bt-hotel-sections { grid-template-columns: 1fr 1fr; } }

.bt-hotel-section {
    padding: 28px 28px 24px;
    border-top: 1px solid var(--bt-mist);
    border-left: 0;
    display: flex;
    flex-direction: column;
}
.bt-hotel-section:first-child,
.bt-hotel-section:nth-child(2) { border-top: 0; }
@media (min-width: 700px) {
    .bt-hotel-section:nth-child(2n) { border-left: 1px solid var(--bt-mist); }
    .bt-hotel-section:nth-child(2)  { border-top: 0; }
}

.bt-hotel-section__head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}
.bt-hotel-section__head h4 {
    font-family: var(--bt-font-display);
    font-size: 22px;
    font-weight: 400;
    font-style: italic;
    color: var(--bt-black);
    margin: 0;
    line-height: 1;
}
.bt-hotel-section .bt-icon {
    width: 26px; height: 26px;
}
.bt-hotel-section .bt-icon svg {
    width: 26px; height: 26px;
}
.bt-hotel-section p {
    font-family: var(--bt-font-body);
    font-size: 15px;
    line-height: 1.7;
    color: var(--bt-graphite);
    margin: 0 0 10px;
}
.bt-hotel-section p:last-child { margin-bottom: 0; }
.bt-hotel-section__body { flex: 1; }

/* ----- Clamp + "Lire plus" ----- */
.bt-clamp {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: max-height .3s ease;
}
/* Intro courte sous le nom de l'hôtel : 3 lignes */
.bt-clamp--intro { -webkit-line-clamp: 3; line-clamp: 3; }
/* Sections (Emplacement / À l'hôtel / Équipements) : 6 lignes pour égaliser */
.bt-clamp--section { -webkit-line-clamp: 6; line-clamp: 6; }
.bt-clamp.is-expanded {
    -webkit-line-clamp: unset;
    line-clamp: unset;
    display: block;
    overflow: visible;
}
/* "Lire plus" : lien hypertext discret — override agressif du thème
   Hello Elementor qui injecte une bordure rouge sur tous les <button>. */
button.bt-readmore,
.bt-readmore {
    margin-top: 8px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    color: var(--bt-graphite, #2a2a2a) !important;
    font-family: var(--bt-font-body) !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    cursor: pointer !important;
    text-decoration: underline !important;
    text-decoration-color: var(--bt-stone, #6b6b6b) !important;
    text-underline-offset: 3px !important;
    text-decoration-thickness: 1px !important;
    align-self: flex-start !important;
    transition: color .15s ease !important;
    line-height: 1.5 !important;
    min-height: 0 !important;
    width: auto !important;
}
button.bt-readmore:hover,
.bt-readmore:hover {
    color: var(--bt-black, #0a0a0a) !important;
    text-decoration-color: var(--bt-black, #0a0a0a) !important;
    background: transparent !important;
}
/* Intro : bouton aligné à gauche, espacement plus discret */
.bt-hotel-intro__desc + .bt-readmore,
[data-bt-description] + .bt-readmore { margin-top: 8px; }

/* =========================================================================
   ÉQUIPEMENTS — grille avec icônes
   ========================================================================= */

.bt-hotel-amenities {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
    background: var(--bt-white);
    border: 1px solid var(--bt-mist);
}
@media (max-width: 600px) { .bt-hotel-amenities { grid-template-columns: 1fr; } }

.bt-hotel-amenities li {
    display: flex !important;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    border-top: 1px solid var(--bt-mist);
    border-left: 0;
    border-bottom: 0;
    font-size: 14px;
    color: var(--bt-ink);
    background: transparent;
}
.bt-hotel-amenities li:nth-child(odd):nth-last-child(2),
.bt-hotel-amenities li:nth-child(odd):nth-last-child(2) ~ li,
.bt-hotel-amenities li:first-child,
.bt-hotel-amenities li:nth-child(2) { border-top: 0; }
@media (min-width: 600px) {
    .bt-hotel-amenities li:nth-child(2n) { border-left: 1px solid var(--bt-mist); }
}
.bt-hotel-amenities li span { color: var(--bt-graphite); font-weight: 500; }

/* Override de l'ancien style "h3 puis ul" pour les amenities */
.bt-hotel-intro__desc h3 {
    font-family: var(--bt-font-display);
    font-size: 26px;
    font-weight: 400;
    font-style: italic;
    margin: 40px 0 16px;
    color: var(--bt-black);
}

/* =========================================================================
   NOTES VOYAGEURS — barres + scores
   ========================================================================= */

.bt-hotel-reviews {
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid var(--bt-mist);
}
.bt-hotel-reviews h3 {
    font-family: var(--bt-font-display);
    font-size: 26px;
    font-weight: 400;
    font-style: italic;
    margin: 0 0 24px;
    color: var(--bt-black);
}
.bt-hotel-reviews__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px 40px;
    background: var(--bt-paper);
    border: 1px solid var(--bt-mist);
    padding: 28px;
}
@media (max-width: 600px) {
    .bt-hotel-reviews__grid { grid-template-columns: 1fr; padding: 20px; }
}

.bt-review-cat__head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 10px;
}
.bt-review-cat__head span {
    font-size: 14px;
    color: var(--bt-graphite);
    font-weight: 500;
}
.bt-review-cat__head strong {
    font-family: var(--bt-font-display);
    font-size: 22px;
    color: var(--bt-black);
    font-weight: 500;
    line-height: 1;
}
.bt-review-cat__bar {
    height: 4px;
    background: var(--bt-mist);
    overflow: hidden;
    border-radius: 0;
}
.bt-review-cat__bar span {
    display: block;
    height: 100%;
    background: var(--bt-sand);
    transition: width .8s var(--bt-ease, cubic-bezier(.2,.7,.2,1));
}

/* =========================================================================
   L'ÉTABLISSEMENT + CONDITIONS DE SÉJOUR — listes avec icônes
   ========================================================================= */

.bt-hotel-info-grid {
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid var(--bt-mist);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
}
@media (max-width: 700px) { .bt-hotel-info-grid { grid-template-columns: 1fr; gap: 24px; } }

.bt-hotel-info-block {
    background: var(--bt-paper);
    border: 1px solid var(--bt-mist);
    padding: 24px 28px 28px;
}
.bt-hotel-info-block h4 {
    font-family: var(--bt-font-display);
    font-size: 22px;
    font-weight: 400;
    font-style: italic;
    color: var(--bt-black);
    margin: 0 0 18px;
}
.bt-hotel-info-block ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.bt-hotel-info-block li {
    display: grid !important;
    grid-template-columns: 22px 1fr auto;
    align-items: center;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px solid var(--bt-mist);
    font-size: 14px;
    background: transparent;
}
.bt-hotel-info-block li:last-child { border-bottom: 0; }
.bt-hotel-info-block .bt-info-key {
    color: var(--bt-stone);
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
}
.bt-hotel-info-block .bt-info-val {
    color: var(--bt-black);
    font-weight: 500;
    text-align: right;
    font-size: 14px;
}

/* =========================================================================
   ONGLETS HÔTEL / VOL / PACK + FORMULAIRES DEVIS — éditorial Black Tomato
   ========================================================================= */

/* ---- Onglets minimalistes : juste du texte avec underline sur l'actif ---- */
.pcm-rh-tabs {
    display: flex;
    gap: 36px;
    margin: 0 0 22px;
    padding: 0 4px;
    background: transparent !important;
    border: 0 !important;
}
.pcm-rh-tab,
.pcm-rh-tabs button.pcm-rh-tab {
    all: unset;
    box-sizing: border-box;
    display: inline-flex !important;
    align-items: center;
    gap: 10px;
    padding: 6px 0 14px;
    background: transparent !important;
    color: rgba(255, 255, 255, .55);
    border: 0 !important;
    border-bottom: 1px solid transparent !important;
    font-family: var(--bt-font-body, 'DM Sans', sans-serif);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    cursor: pointer;
    transition: color .25s ease, border-color .25s ease;
    box-shadow: none !important;
    outline: none !important;
    border-radius: 0 !important;
    text-decoration: none !important;
}
.pcm-rh-tab svg {
    width: 16px; height: 16px;
    opacity: .7;
    transition: opacity .25s ease, color .25s ease;
}
.pcm-rh-tab:hover { color: rgba(255, 255, 255, .9); }
.pcm-rh-tab:hover svg { opacity: 1; }
.pcm-rh-tab.is-active {
    color: #fff !important;
    border-bottom-color: var(--bt-sand, #c9a880) !important;
}
.pcm-rh-tab.is-active svg { opacity: 1; color: var(--bt-sand, #c9a880); }
.pcm-rh-tab:focus-visible {
    border-bottom-color: var(--bt-sand, #c9a880) !important;
    color: #fff !important;
}

/* Variante claire (page recherche fond clair) */
.pcm-rh-variant-default .pcm-rh-tab { color: rgba(0, 0, 0, .5); }
.pcm-rh-variant-default .pcm-rh-tab:hover { color: rgba(0, 0, 0, .85); }
.pcm-rh-variant-default .pcm-rh-tab.is-active {
    color: #000 !important;
    border-bottom-color: #000 !important;
}
.pcm-rh-variant-default .pcm-rh-tab.is-active svg { color: #000; }

/* ---- Switch entre panes : un seul actif à la fois ---- */
.pcm-rh-pane { display: none !important; }
.pcm-rh-pane.is-active { display: grid !important; }
.pcm-rh-pane-quote { grid-template-columns: 1fr !important; gap: 0 !important; }
.pcm-rh-pane-quote.is-active { display: block !important; }

/* ---- Toggle aller-retour / simple / multi ---- */
.pcm-rh-quote-mode {
    display: inline-flex;
    gap: 0;
    margin: 0 0 18px;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .12);
}
.pcm-rh-quote-mode label { display: inline-flex; cursor: pointer; }
.pcm-rh-quote-mode input { position: absolute; opacity: 0; pointer-events: none; }
.pcm-rh-quote-mode span {
    display: inline-block;
    padding: 11px 22px;
    color: rgba(255, 255, 255, .55);
    font-family: var(--bt-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .18em;
    text-transform: uppercase;
    transition: background .25s, color .25s;
    border-right: 1px solid rgba(255, 255, 255, .08);
}
.pcm-rh-quote-mode label:last-child span { border-right: 0; }
.pcm-rh-quote-mode label:hover span { color: #fff; background: rgba(255, 255, 255, .04); }
.pcm-rh-quote-mode input:checked + span {
    background: var(--bt-sand, #c9a880);
    color: var(--bt-black, #0a0a0a);
}

/* ---- Grille des champs principaux (vol / pack) ---- */
/* Reprend exactement l'aesthetic du form Hôtel : icône sand, séparateur, label uppercase, valeur Cormorant */
.pcm-rh-quote-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background: rgba(255, 255, 255, .12);
    margin: 0;
}
@media (max-width: 1100px) { .pcm-rh-quote-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .pcm-rh-quote-grid { grid-template-columns: 1fr; } }

.pcm-rh-quote-grid .pcm-rh-field {
    background: var(--bt-black, #0a0a0a);
    padding: 16px 22px;
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 92px;
}
.pcm-rh-quote-grid .pcm-rh-field__icon {
    width: 34px; height: 34px;
    color: var(--bt-sand, #c9a880);
    flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    border-right: 1px solid rgba(255, 255, 255, .1);
    padding-right: 14px;
    margin-right: 4px;
}
.pcm-rh-quote-grid .pcm-rh-field__icon svg { width: 22px; height: 22px; }
.pcm-rh-quote-grid .pcm-rh-field__body {
    flex: 1; min-width: 0;
    display: flex; flex-direction: column; justify-content: center;
}
.pcm-rh-quote-grid .pcm-rh-field__body label {
    font-family: var(--bt-font-body);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--bt-fog, #b8b8b8);
    margin: 0 0 4px;
    display: block;
}
.pcm-rh-quote-grid .pcm-rh-field__body input,
.pcm-rh-quote-grid .pcm-rh-field__body select {
    width: 100%;
    background: transparent;
    border: 0;
    color: var(--bt-white, #fff);
    font-family: var(--bt-font-display, 'Cormorant Garamond', serif);
    font-size: 19px;
    font-weight: 400;
    letter-spacing: .005em;
    padding: 0;
    outline: none;
    line-height: 1.2;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}
.pcm-rh-quote-grid .pcm-rh-field__body input::placeholder {
    color: var(--bt-stone, #6b6b6b);
    font-style: italic;
}
.pcm-rh-quote-grid .pcm-rh-field__body select option {
    background: #0a0a0a;
    color: #fff;
    font-family: 'DM Sans', sans-serif;
    font-size: 14px;
}

/* Voyageurs : 3 selects côte à côte */
.pcm-rh-pax-row { display: flex; gap: 14px; align-items: baseline; }
.pcm-rh-pax-row select { flex: 1; min-width: 0; font-size: 16px !important; }

/* Autocomplete pour les villes Vol/Pack */
.pcm-rh-quote-grid .pcm-rh-field__body { position: relative; }
.pcm-rh-city-suggest {
    position: absolute;
    top: 100%;
    left: -10px;
    right: -22px;
    margin-top: 8px;
    background: #0a0a0a;
    border: 1px solid rgba(255, 255, 255, .12);
    z-index: 50;
    max-height: 320px;
    overflow-y: auto;
    box-shadow: 0 24px 48px rgba(0, 0, 0, .5);
}
.pcm-rh-city-suggest__item {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 18px;
    cursor: pointer;
    color: rgba(255, 255, 255, .85);
    font-family: var(--bt-font-body);
    font-size: 13px;
    border-bottom: 1px solid rgba(255, 255, 255, .04);
    transition: background .15s;
}
.pcm-rh-city-suggest__item:hover,
.pcm-rh-city-suggest__item.is-active {
    background: rgba(255, 255, 255, .06);
    color: #fff;
}
.pcm-rh-city-suggest__name { font-weight: 500; }
.pcm-rh-city-suggest__country {
    color: var(--bt-stone, #6b6b6b);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .12em;
}
.pcm-rh-city-suggest__code {
    color: var(--bt-sand, #c9a880);
    font-family: 'DM Mono', 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 500;
    background: rgba(201, 168, 128, .08);
    padding: 2px 8px;
    border-radius: 2px;
}

/* ---- Extras (pack) ---- */
.pcm-rh-quote-extras {
    display: flex;
    flex-wrap: wrap;
    gap: 26px;
    align-items: center;
    margin: 0;
    padding: 22px 24px;
    background: rgba(255, 255, 255, .03);
    border-top: 1px solid rgba(255, 255, 255, .08);
}
.pcm-rh-extras-label {
    color: var(--bt-fog, #b8b8b8);
    font-family: var(--bt-font-body);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    margin-right: 12px;
}
.pcm-rh-quote-extras label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: rgba(255, 255, 255, .82);
    font-family: var(--bt-font-body);
    font-size: 13px;
    cursor: pointer;
}
.pcm-rh-quote-extras input[type="checkbox"] {
    width: 16px;
    height: 16px;
    accent-color: var(--bt-sand, #c9a880);
    cursor: pointer;
}

/* ---- Bloc contact ---- */
.pcm-rh-quote-contact {
    margin: 0;
    padding: 28px 24px 24px;
    background: rgba(255, 255, 255, .025);
    border-top: 1px solid rgba(255, 255, 255, .08);
}
.pcm-rh-quote-contact h4 {
    color: var(--bt-fog, #b8b8b8);
    font-family: var(--bt-font-body);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    margin: 0 0 18px;
}
.pcm-rh-contact-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin: 0 0 14px;
}
@media (max-width: 900px) { .pcm-rh-contact-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .pcm-rh-contact-grid { grid-template-columns: 1fr; } }

.pcm-rh-quote-contact input,
.pcm-rh-quote-contact textarea {
    width: 100%;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .12);
    color: #fff;
    padding: 14px 16px;
    font-family: var(--bt-font-body);
    font-size: 14px;
    font-weight: 400;
    border-radius: 0;
    outline: none;
    transition: border-color .25s, background .25s;
    box-sizing: border-box;
}
.pcm-rh-quote-contact input:focus,
.pcm-rh-quote-contact textarea:focus {
    border-color: var(--bt-sand, #c9a880);
    background: rgba(255, 255, 255, .07);
}
.pcm-rh-quote-contact input::placeholder,
.pcm-rh-quote-contact textarea::placeholder { color: rgba(255, 255, 255, .4); }
.pcm-rh-quote-contact textarea { resize: vertical; min-height: 90px; }

/* Consent : ligne complète qui ne casse pas */
.pcm-rh-quote-consent {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 16px 0 0;
    padding: 0;
    color: rgba(255, 255, 255, .65);
    font-family: var(--bt-font-body);
    font-size: 12px;
    line-height: 1.55;
    cursor: pointer;
    width: 100%;
}
.pcm-rh-quote-consent input {
    width: 16px;
    height: 16px;
    margin: 2px 0 0;
    flex-shrink: 0;
    accent-color: var(--bt-sand, #c9a880);
    cursor: pointer;
    -webkit-appearance: auto;
    appearance: auto;
}
.pcm-rh-quote-consent span { flex: 1; min-width: 0; }

/* Bouton Submit devis */
.pcm-rh-pane-quote .pcm-rh-btn-quote {
    display: flex !important;
    width: 100%;
    margin: 0;
    padding: 22px 32px;
    background: var(--bt-white, #fff);
    color: var(--bt-black, #0a0a0a);
    border: 0;
    font-family: var(--bt-font-body);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    align-items: center;
    justify-content: center;
    gap: 14px;
    cursor: pointer;
    transition: background .25s ease, color .25s ease;
    min-height: 64px;
    border-radius: 0;
}
.pcm-rh-pane-quote .pcm-rh-btn-quote svg { width: 18px; height: 18px; }
.pcm-rh-pane-quote .pcm-rh-btn-quote:hover { background: var(--bt-sand, #c9a880); }
.pcm-rh-pane-quote .pcm-rh-btn-quote:disabled { opacity: .6; cursor: progress; }

/* Variante claire (page recherche) */
.pcm-rh-variant-default .pcm-rh-quote-mode { border-color: rgba(0, 0, 0, .12); }
.pcm-rh-variant-default .pcm-rh-quote-mode span { color: rgba(0, 0, 0, .55); border-right-color: rgba(0, 0, 0, .08); }
.pcm-rh-variant-default .pcm-rh-quote-mode label:hover span { color: #000; background: rgba(0, 0, 0, .04); }
.pcm-rh-variant-default .pcm-rh-quote-mode input:checked + span { background: #000; color: #fff; }
.pcm-rh-variant-default .pcm-rh-quote-grid { background: rgba(0, 0, 0, .08); }
.pcm-rh-variant-default .pcm-rh-quote-grid .pcm-rh-field { background: #fff; }
.pcm-rh-variant-default .pcm-rh-quote-grid .pcm-rh-field__icon { color: var(--bt-sand, #c9a880); border-right-color: rgba(0, 0, 0, .08); }
.pcm-rh-variant-default .pcm-rh-quote-grid .pcm-rh-field__body label { color: var(--bt-stone, #6b6b6b); }
.pcm-rh-variant-default .pcm-rh-quote-grid .pcm-rh-field__body input,
.pcm-rh-variant-default .pcm-rh-quote-grid .pcm-rh-field__body select { color: var(--bt-black, #0a0a0a); }
.pcm-rh-variant-default .pcm-rh-quote-grid .pcm-rh-field__body input::placeholder { color: rgba(0, 0, 0, .35); }
.pcm-rh-variant-default .pcm-rh-quote-grid .pcm-rh-field__body select option { background: #fff; color: #000; }
.pcm-rh-variant-default .pcm-rh-city-suggest { background: #fff; border-color: rgba(0, 0, 0, .12); box-shadow: 0 24px 48px rgba(0, 0, 0, .12); }
.pcm-rh-variant-default .pcm-rh-city-suggest__item { color: #222; border-bottom-color: rgba(0, 0, 0, .04); }
.pcm-rh-variant-default .pcm-rh-city-suggest__item:hover,
.pcm-rh-variant-default .pcm-rh-city-suggest__item.is-active { background: rgba(0, 0, 0, .04); color: #000; }
.pcm-rh-variant-default .pcm-rh-city-suggest__country { color: rgba(0, 0, 0, .5); }
.pcm-rh-variant-default .pcm-rh-quote-extras { background: rgba(0, 0, 0, .025); border-top-color: rgba(0, 0, 0, .08); }
.pcm-rh-variant-default .pcm-rh-extras-label { color: var(--bt-stone, #6b6b6b); }
.pcm-rh-variant-default .pcm-rh-quote-extras label { color: rgba(0, 0, 0, .85); }
.pcm-rh-variant-default .pcm-rh-quote-contact { background: rgba(0, 0, 0, .02); border-top-color: rgba(0, 0, 0, .08); }
.pcm-rh-variant-default .pcm-rh-quote-contact h4 { color: var(--bt-stone, #6b6b6b); }
.pcm-rh-variant-default .pcm-rh-quote-contact input,
.pcm-rh-variant-default .pcm-rh-quote-contact textarea {
    background: #fff;
    border-color: rgba(0, 0, 0, .12);
    color: #000;
}
.pcm-rh-variant-default .pcm-rh-quote-contact input:focus,
.pcm-rh-variant-default .pcm-rh-quote-contact textarea:focus { border-color: #000; background: #fafaf7; }
.pcm-rh-variant-default .pcm-rh-quote-contact input::placeholder,
.pcm-rh-variant-default .pcm-rh-quote-contact textarea::placeholder { color: rgba(0, 0, 0, .35); }
.pcm-rh-variant-default .pcm-rh-quote-consent { color: rgba(0, 0, 0, .65); }
.pcm-rh-variant-default .pcm-rh-pane-quote .pcm-rh-btn-quote { background: #000; color: #fff; }
.pcm-rh-variant-default .pcm-rh-pane-quote .pcm-rh-btn-quote:hover { background: var(--bt-sand, #c9a880); color: #000; }

/* Confirmation envoi devis */
.pcm-rh-quote-success {
    display: none;
    text-align: center;
    padding: 70px 32px;
    background: rgba(255, 255, 255, .03);
    color: #fff;
    border-top: 1px solid rgba(255, 255, 255, .08);
}
.pcm-rh-quote-success.is-visible { display: block; }
.pcm-rh-quote-success svg {
    width: 56px;
    height: 56px;
    margin: 0 auto 22px;
    color: var(--bt-sand, #c9a880);
    display: block;
}
.pcm-rh-quote-success h3 {
    font-family: var(--bt-font-display, 'Cormorant Garamond', serif);
    font-size: 36px;
    font-weight: 400;
    letter-spacing: .005em;
    line-height: 1.15;
    margin: 0 0 14px;
    color: #fff;
}
.pcm-rh-quote-success p {
    font-family: var(--bt-font-body);
    color: rgba(255, 255, 255, .75);
    font-size: 14px;
    line-height: 1.7;
    margin: 0 auto;
    max-width: 480px;
}
.pcm-rh-variant-default .pcm-rh-quote-success { background: #fafaf7; color: #000; border: 1px solid rgba(0, 0, 0, .08); }
.pcm-rh-variant-default .pcm-rh-quote-success svg { color: var(--bt-sand, #c9a880); }
.pcm-rh-variant-default .pcm-rh-quote-success h3 { color: #000; }
.pcm-rh-variant-default .pcm-rh-quote-success p { color: rgba(0, 0, 0, .65); }

/* =========================================================================
   MODAL "NOUS CONTACTER" — globale, déclenchée par [data-rh-contact-open]
   ========================================================================= */
.bt-contact-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
}
.bt-contact-modal.is-open { opacity: 1; pointer-events: auto; }
.bt-contact-modal[hidden] { display: none; }

.bt-contact-modal__backdrop {
    position: absolute; inset: 0;
    background: rgba(10, 10, 10, .78);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}
.bt-contact-modal__dialog {
    position: relative;
    width: 100%;
    max-width: 720px;
    max-height: calc(100vh - 48px);
    overflow-y: auto;
    background: var(--bt-white, #fff);
    padding: 48px 56px 44px;
    transform: translateY(20px);
    transition: transform .3s ease;
    box-shadow: 0 32px 80px rgba(0, 0, 0, .45);
}
.bt-contact-modal.is-open .bt-contact-modal__dialog { transform: translateY(0); }
@media (max-width: 640px) {
    .bt-contact-modal { padding: 0; }
    .bt-contact-modal__dialog { max-width: 100%; max-height: 100vh; padding: 32px 24px 28px; }
}

.bt-contact-modal__close {
    position: absolute;
    top: 16px; right: 16px;
    width: 40px; height: 40px;
    background: transparent !important;
    border: 0 !important;
    color: var(--bt-stone, #6b6b6b) !important;
    cursor: pointer !important;
    display: flex; align-items: center; justify-content: center;
    padding: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    transition: color .2s ease;
}
.bt-contact-modal__close:hover { color: var(--bt-black, #0a0a0a) !important; }
.bt-contact-modal__close svg { width: 22px; height: 22px; }

.bt-contact-modal__head {
    text-align: center;
    margin-bottom: 36px;
}
.bt-contact-modal__head .bt-overline {
    color: var(--bt-sand, #c9a880);
    margin-bottom: 14px;
}
.bt-contact-modal__head h2 {
    font-family: var(--bt-font-display, 'Cormorant Garamond', serif);
    font-size: 44px;
    font-weight: 400;
    line-height: 1.1;
    color: var(--bt-black, #0a0a0a);
    margin: 0 0 14px;
}
.bt-contact-modal__head h2 em { font-style: italic; }
.bt-contact-modal__lead {
    color: var(--bt-stone, #6b6b6b);
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
    font-family: var(--bt-font-body);
}

.bt-contact-form__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 14px;
    margin-bottom: 18px;
}
@media (max-width: 640px) { .bt-contact-form__grid { grid-template-columns: 1fr; } }
.bt-contact-field--full { grid-column: 1 / -1; }

.bt-contact-field label {
    display: block;
    font-family: var(--bt-font-body);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--bt-stone, #6b6b6b);
    margin: 0 0 6px;
}
.bt-contact-field label span {
    text-transform: none;
    letter-spacing: 0;
    font-size: 11px;
    color: var(--bt-fog, #b8b8b8);
}
.bt-contact-field input,
.bt-contact-field select,
.bt-contact-field textarea {
    width: 100%;
    padding: 12px 14px;
    background: var(--bt-bone, #fafaf7);
    border: 1px solid var(--bt-mist, #e8e6e1);
    border-radius: 0;
    font-family: var(--bt-font-body);
    font-size: 15px;
    color: var(--bt-black, #0a0a0a);
    outline: none;
    transition: border-color .2s, background .2s;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}
.bt-contact-field select {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 7'><path d='M1 1l5 5 5-5' fill='none' stroke='%236b6b6b' stroke-width='1.4'/></svg>");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 11px;
    padding-right: 36px;
}
.bt-contact-field textarea {
    resize: vertical;
    min-height: 120px;
    line-height: 1.6;
}
.bt-contact-field input:focus,
.bt-contact-field select:focus,
.bt-contact-field textarea:focus {
    border-color: var(--bt-black, #0a0a0a);
    background: var(--bt-white, #fff);
}
.bt-contact-field input::placeholder,
.bt-contact-field textarea::placeholder { color: var(--bt-fog, #b8b8b8); }

.bt-contact-consent {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 14px 0 22px;
    color: var(--bt-stone, #6b6b6b);
    font-family: var(--bt-font-body);
    font-size: 13px;
    line-height: 1.55;
    cursor: pointer;
}
.bt-contact-consent input {
    width: 16px; height: 16px;
    flex-shrink: 0;
    margin-top: 3px;
    accent-color: var(--bt-sand, #c9a880);
    cursor: pointer;
}

.bt-contact-submit,
button.bt-contact-submit {
    width: 100% !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 18px 32px !important;
    background: var(--bt-black, #0a0a0a) !important;
    color: var(--bt-white, #fff) !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-family: var(--bt-font-body) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    letter-spacing: .22em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    transition: background .25s ease, color .25s ease !important;
    box-shadow: none !important;
    outline: none !important;
    min-height: 0 !important;
}
.bt-contact-submit:hover,
button.bt-contact-submit:hover {
    background: var(--bt-sand, #c9a880) !important;
    color: var(--bt-black, #0a0a0a) !important;
}
.bt-contact-submit svg { width: 18px; height: 18px; }
.bt-contact-submit:disabled { opacity: .6; cursor: progress !important; }

.bt-contact-altchannels {
    text-align: center;
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid var(--bt-mist, #e8e6e1);
}
.bt-contact-altchannels .bt-overline {
    display: inline-block;
    margin-bottom: 14px;
    color: var(--bt-stone, #6b6b6b);
}
.bt-contact-altchannels__row {
    display: flex;
    gap: 18px;
    justify-content: center;
    flex-wrap: wrap;
}
.bt-contact-altchannels a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--bt-black, #0a0a0a);
    text-decoration: none;
    font-family: var(--bt-font-body);
    font-size: 14px;
    transition: color .2s;
}
.bt-contact-altchannels a:hover { color: var(--bt-sand, #c9a880); }
.bt-contact-altchannels a svg { width: 16px; height: 16px; }

/* Confirmation après envoi */
.bt-contact-success {
    text-align: center;
    padding: 30px 0;
}
.bt-contact-success svg {
    width: 64px; height: 64px;
    color: var(--bt-sand, #c9a880);
    display: block;
    margin: 0 auto 22px;
}
.bt-contact-success h3 {
    font-family: var(--bt-font-display, 'Cormorant Garamond', serif);
    font-size: 36px;
    font-weight: 400;
    line-height: 1.15;
    color: var(--bt-black, #0a0a0a);
    margin: 0 0 14px;
}
.bt-contact-success h3 em { font-style: italic; }
.bt-contact-success p {
    color: var(--bt-stone, #6b6b6b);
    font-family: var(--bt-font-body);
    font-size: 15px;
    line-height: 1.7;
    margin: 0 auto 28px;
    max-width: 440px;
}
.bt-contact-success button.bt-contact-modal__close,
.bt-contact-success .bt-contact-modal__close {
    position: static !important;
    width: auto !important;
    height: auto !important;
    padding: 14px 32px !important;
    border: 1px solid var(--bt-black, #0a0a0a) !important;
    color: var(--bt-black, #0a0a0a) !important;
    font-family: var(--bt-font-body) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: .22em !important;
    text-transform: uppercase !important;
    display: inline-block !important;
    transition: background .2s, color .2s !important;
}
.bt-contact-success .bt-contact-modal__close:hover {
    background: var(--bt-black, #0a0a0a) !important;
    color: var(--bt-white, #fff) !important;
}

/* =========================================================================
   OVERRIDE GLOBAL ANTI-HELLO-ELEMENTOR
   Hello Elementor + ElementsKit injectent du rose/rouge sur tous les <button>
   et inputs. On force la palette éditoriale sur tous nos sélecteurs principaux.
   ========================================================================= */

/* 1. Bouton "Nous contacter" du CTA band + tous les .bt-cta-band__btn */
button.bt-cta-band__btn,
a.bt-cta-band__btn,
.bt-cta-band__btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--bt-white, #fff) !important;
    color: var(--bt-black, #0a0a0a) !important;
    border: 1px solid var(--bt-white, #fff) !important;
    padding: 18px 48px !important;
    font-family: var(--bt-font-body, 'DM Sans', sans-serif) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    letter-spacing: .25em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    cursor: pointer !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    transition: background .25s ease, color .25s ease, border-color .25s ease !important;
    min-height: 0 !important;
}
button.bt-cta-band__btn:hover,
a.bt-cta-band__btn:hover,
.bt-cta-band__btn:hover {
    background: var(--bt-sand, #c9a880) !important;
    color: var(--bt-black, #0a0a0a) !important;
    border-color: var(--bt-sand, #c9a880) !important;
}

/* 2. Bouton "Créer mon compte" / "Se connecter" / submit account */
button.bt-account-submit,
.bt-account-submit {
    background: var(--bt-black, #0a0a0a) !important;
    color: var(--bt-white, #fff) !important;
    border: 1px solid var(--bt-black, #0a0a0a) !important;
    padding: 16px 38px !important;
    font-family: var(--bt-font-body) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    letter-spacing: .22em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    transition: background .25s ease, color .25s ease, border-color .25s ease !important;
    min-height: 0 !important;
}
button.bt-account-submit:hover,
.bt-account-submit:hover {
    background: var(--bt-sand, #c9a880) !important;
    color: var(--bt-black, #0a0a0a) !important;
    border-color: var(--bt-sand, #c9a880) !important;
}

/* 3. Bouton "+ Ajouter une chambre" du widget voyageurs (toutes variantes) */
button.pcm-rh-add-room,
.pcm-rh-add-room,
.pcm-rh-form-v2 .pcm-rh-add-room {
    background: transparent !important;
    color: var(--bt-white, #fff) !important;
    border: 1px solid rgba(255, 255, 255, .25) !important;
    padding: 10px 18px !important;
    font-family: var(--bt-font-body) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: .18em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    transition: background .2s ease, color .2s ease, border-color .2s ease !important;
    min-height: 0 !important;
}
button.pcm-rh-add-room:hover,
.pcm-rh-add-room:hover,
.pcm-rh-form-v2 .pcm-rh-add-room:hover {
    background: rgba(255, 255, 255, .08) !important;
    color: var(--bt-sand, #c9a880) !important;
    border-color: var(--bt-sand, #c9a880) !important;
}

/* 4. Bouton "Valider" du widget voyageurs */
button.pcm-rh-guests-confirm,
.pcm-rh-guests-confirm,
.pcm-rh-form-v2 .pcm-rh-guests-confirm {
    background: var(--bt-white, #fff) !important;
    color: var(--bt-black, #0a0a0a) !important;
    border: 1px solid var(--bt-white, #fff) !important;
    padding: 10px 18px !important;
    font-family: var(--bt-font-body) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: .18em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    transition: background .2s ease, color .2s ease, border-color .2s ease !important;
    min-height: 0 !important;
}
button.pcm-rh-guests-confirm:hover,
.pcm-rh-guests-confirm:hover,
.pcm-rh-form-v2 .pcm-rh-guests-confirm:hover {
    background: var(--bt-sand, #c9a880) !important;
    color: var(--bt-black, #0a0a0a) !important;
    border-color: var(--bt-sand, #c9a880) !important;
}

/* 5. Boutons +/- compteurs (adultes/enfants) — au cas où */
button.pcm-rh-counter-btn,
.pcm-rh-counter-btn {
    background: transparent !important;
    color: var(--bt-white, #fff) !important;
    border: 1px solid rgba(255, 255, 255, .25) !important;
    border-radius: 50% !important;
    width: 28px !important;
    height: 28px !important;
    padding: 0 !important;
    font-size: 14px !important;
    cursor: pointer !important;
    box-shadow: none !important;
    outline: none !important;
}
button.pcm-rh-counter-btn:hover,
.pcm-rh-counter-btn:hover {
    background: var(--bt-sand, #c9a880) !important;
    color: var(--bt-black, #0a0a0a) !important;
    border-color: var(--bt-sand, #c9a880) !important;
}

/* 6. Boutons compteurs widget sticky édition séjour */
.bt-edit-counter button,
button.bt-edit-counter__btn {
    background: transparent !important;
    color: var(--bt-black, #0a0a0a) !important;
    border: 1px solid var(--bt-mist, #e8e6e1) !important;
    border-radius: 50% !important;
    width: 28px !important;
    height: 28px !important;
    padding: 0 !important;
    font-size: 14px !important;
    cursor: pointer !important;
    box-shadow: none !important;
    outline: none !important;
    transition: background .2s, color .2s, border-color .2s !important;
}
.bt-edit-counter button:hover {
    background: var(--bt-black, #0a0a0a) !important;
    color: var(--bt-white, #fff) !important;
    border-color: var(--bt-black, #0a0a0a) !important;
}
.bt-edit-counter button:disabled {
    opacity: .35 !important;
    cursor: not-allowed !important;
}

/* 7. Toggle voyageurs / select dates — labels et toggles */
button.pcm-rh-guests-toggle,
.pcm-rh-guests-toggle {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    padding: 0 !important;
    text-align: left !important;
}

/* 8. Liens dans les formulaires — la fameuse couleur "lien WP rouge"
   sur "conditions générales", "politique de confidentialité", etc. */
.bt-account-consent a,
.bt-contact-consent a,
.bt-quote-consent a {
    color: var(--bt-black, #0a0a0a) !important;
    text-decoration: underline !important;
    text-decoration-color: var(--bt-sand, #c9a880) !important;
    text-underline-offset: 3px !important;
    transition: text-decoration-color .2s ease !important;
}
.bt-account-consent a:hover,
.bt-contact-consent a:hover,
.bt-quote-consent a:hover {
    text-decoration-color: var(--bt-black, #0a0a0a) !important;
}

/* =========================================================================
   POPUP VOYAGEURS — refonte finale (override de tous les blocs précédents)
   Cible : .pcm-rh-form-v2 .pcm-rh-guests-panel
   ========================================================================= */

/* Container : plus large, fond sobre */
html body .pcm-rh-form-v2 .pcm-rh-guests-panel {
    width: 460px !important;
    max-width: calc(100vw - 32px) !important;
    padding: 0 !important;
    background: #0f0f0f !important;
    border: 1px solid rgba(255, 255, 255, .08) !important;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .55) !important;
    overflow: hidden !important;
    border-radius: 0 !important;
}

/* Header sticky : label uppercase fin, PAS de Cormorant italic */
html body .pcm-rh-form-v2 .pcm-rh-guests-panel__head {
    padding: 22px 28px !important;
    border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
    background: #0a0a0a !important;
    margin: 0 !important;
}
html body .pcm-rh-form-v2 .pcm-rh-guests-panel__head strong {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    font-family: var(--bt-font-body, 'DM Sans', sans-serif) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    font-style: normal !important;
    letter-spacing: .26em !important;
    text-transform: uppercase !important;
    color: var(--bt-white, #fff) !important;
    line-height: 1.4 !important;
}
html body .pcm-rh-form-v2 .pcm-rh-guests-panel__head strong::before {
    content: '' !important;
    display: inline-block !important;
    width: 28px !important;
    height: 1px !important;
    background: var(--bt-sand, #c9a880) !important;
    margin: 0 !important;
    flex-shrink: 0 !important;
}

/* Liste chambres : pas de box autour, juste séparateur entre */
html body .pcm-rh-form-v2 .pcm-rh-rooms-list {
    padding: 8px 28px !important;
    gap: 0 !important;
    background: transparent !important;
}
html body .pcm-rh-form-v2 .pcm-rh-room {
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, .06) !important;
    padding: 20px 0 !important;
}
html body .pcm-rh-form-v2 .pcm-rh-room:last-child {
    border-bottom: 0 !important;
}
html body .pcm-rh-form-v2 .pcm-rh-room__head {
    border-bottom: 0 !important;
    padding-bottom: 0 !important;
    margin-bottom: 16px !important;
}
html body .pcm-rh-form-v2 .pcm-rh-room__head strong {
    font-family: var(--bt-font-body, sans-serif) !important;
    font-size: 10px !important;
    font-style: normal !important;
    font-weight: 500 !important;
    letter-spacing: .26em !important;
    text-transform: uppercase !important;
    color: var(--bt-sand, #c9a880) !important;
}
html body .pcm-rh-form-v2 .pcm-rh-remove-room {
    background: transparent !important;
    border: 0 !important;
    color: var(--bt-stone, #6b6b6b) !important;
    font-family: var(--bt-font-body) !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    text-decoration: underline !important;
    text-decoration-color: rgba(255, 255, 255, .15) !important;
    text-underline-offset: 3px !important;
    padding: 0 !important;
    cursor: pointer !important;
}
html body .pcm-rh-form-v2 .pcm-rh-remove-room:hover {
    color: var(--bt-white, #fff) !important;
    text-decoration-color: var(--bt-sand, #c9a880) !important;
}

/* Compteurs : design encadré rectangulaire (style Booking pro) */
html body .pcm-rh-form-v2 .pcm-rh-counter {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 8px 0 !important;
    border-bottom: 0 !important;
    margin: 0 !important;
}
html body .pcm-rh-form-v2 .pcm-rh-counter + .pcm-rh-counter {
    margin-top: 4px !important;
}
html body .pcm-rh-form-v2 .pcm-rh-counter__label {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 2px !important;
    max-width: 60% !important;
}
html body .pcm-rh-form-v2 .pcm-rh-counter__label span {
    color: var(--bt-white, #fff) !important;
    font-family: var(--bt-font-body, sans-serif) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    font-style: normal !important;
    letter-spacing: 0 !important;
}
html body .pcm-rh-form-v2 .pcm-rh-counter__label small {
    color: rgba(255, 255, 255, .42) !important;
    font-family: var(--bt-font-body, sans-serif) !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    text-transform: none !important;
}
html body .pcm-rh-form-v2 .pcm-rh-counter__ctrl {
    display: flex !important;
    align-items: stretch !important;
    gap: 0 !important;
    border: 1px solid rgba(255, 255, 255, .14) !important;
    border-radius: 0 !important;
    overflow: hidden !important;
}
html body .pcm-rh-form-v2 .pcm-rh-counter__ctrl button {
    width: 34px !important;
    height: 34px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--bt-white, #fff) !important;
    font-family: var(--bt-font-body) !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    cursor: pointer !important;
    padding: 0 !important;
    transition: background .15s ease, color .15s ease !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transform: none !important;
}
html body .pcm-rh-form-v2 .pcm-rh-counter__ctrl button:hover:not(:disabled) {
    background: var(--bt-sand, #c9a880) !important;
    color: var(--bt-black, #0a0a0a) !important;
    border-color: var(--bt-sand, #c9a880) !important;
    transform: none !important;
}
html body .pcm-rh-form-v2 .pcm-rh-counter__ctrl button:disabled {
    opacity: .25 !important;
    cursor: not-allowed !important;
}
html body .pcm-rh-form-v2 .pcm-rh-counter__ctrl span {
    min-width: 42px !important;
    text-align: center !important;
    font-family: var(--bt-font-body) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: var(--bt-white, #fff) !important;
    line-height: 34px !important;
    height: 34px !important;
    padding: 0 4px !important;
    border-left: 1px solid rgba(255, 255, 255, .14) !important;
    border-right: 1px solid rgba(255, 255, 255, .14) !important;
}

/* Footer sticky : 2 boutons full-width visibles */
html body .pcm-rh-form-v2 .pcm-rh-guests-actions {
    padding: 16px 28px 20px !important;
    border-top: 1px solid rgba(255, 255, 255, .08) !important;
    background: #0a0a0a !important;
    display: flex !important;
    gap: 10px !important;
    margin: 0 !important;
}
html body .pcm-rh-form-v2 .pcm-rh-add-room,
html body button.pcm-rh-add-room {
    flex: 1 1 0 !important;
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, .18) !important;
    color: var(--bt-white, #fff) !important;
    padding: 12px 14px !important;
    font-family: var(--bt-font-body) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: .18em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    border-radius: 0 !important;
    transition: background .2s ease, border-color .2s ease, color .2s ease !important;
    min-height: 0 !important;
}
html body .pcm-rh-form-v2 .pcm-rh-add-room:hover,
html body button.pcm-rh-add-room:hover {
    background: rgba(255, 255, 255, .05) !important;
    border-color: var(--bt-sand, #c9a880) !important;
    color: var(--bt-sand, #c9a880) !important;
}
html body .pcm-rh-form-v2 .pcm-rh-guests-confirm,
html body button.pcm-rh-guests-confirm {
    flex: 1 1 0 !important;
    background: var(--bt-white, #fff) !important;
    border: 1px solid var(--bt-white, #fff) !important;
    color: var(--bt-black, #0a0a0a) !important;
    padding: 12px 14px !important;
    font-family: var(--bt-font-body) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: .18em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    border-radius: 0 !important;
    transition: background .2s ease, color .2s ease, border-color .2s ease !important;
    min-height: 0 !important;
}
html body .pcm-rh-form-v2 .pcm-rh-guests-confirm:hover,
html body button.pcm-rh-guests-confirm:hover {
    background: var(--bt-sand, #c9a880) !important;
    color: var(--bt-black, #0a0a0a) !important;
    border-color: var(--bt-sand, #c9a880) !important;
}

/* Enfants : âges */
html body .pcm-rh-form-v2 .pcm-rh-children-ages {
    padding-top: 12px !important;
    margin-top: 14px !important;
    border-top: 1px solid rgba(255, 255, 255, .06) !important;
}

/* Petits écrans */
@media (max-width: 520px) {
    html body .pcm-rh-form-v2 .pcm-rh-guests-panel {
        width: calc(100vw - 24px) !important;
        right: 12px !important;
        left: 12px !important;
    }
    html body .pcm-rh-form-v2 .pcm-rh-guests-actions {
        flex-direction: column !important;
    }
}

/* =========================================================================
   FORMS VOL & PACK — design éditorial premium (override final)
   ========================================================================= */

/* Pane quote dans le hero : padding cohérent avec le form hôtel */
html body .bt-search-hero .pcm-rh-pane-quote {
    padding: 24px 28px !important;
    background: transparent !important;
}

/* Toggle Aller-retour / Aller simple / Multi-destinations */
html body .bt-search-hero .pcm-rh-quote-mode {
    display: inline-flex !important;
    align-items: stretch !important;
    margin: 0 0 22px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, .12) !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    width: auto !important;
}
html body .bt-search-hero .pcm-rh-quote-mode label {
    cursor: pointer !important;
    margin: 0 !important;
}
html body .bt-search-hero .pcm-rh-quote-mode input {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 0; height: 0;
}
html body .bt-search-hero .pcm-rh-quote-mode span {
    display: inline-block !important;
    padding: 12px 22px !important;
    color: rgba(255, 255, 255, .55) !important;
    font-family: var(--bt-font-body) !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    letter-spacing: .22em !important;
    text-transform: uppercase !important;
    transition: background .25s ease, color .25s ease !important;
    border-right: 1px solid rgba(255, 255, 255, .08) !important;
    border-radius: 0 !important;
    background: transparent !important;
}
html body .bt-search-hero .pcm-rh-quote-mode label:last-child span {
    border-right: 0 !important;
}
html body .bt-search-hero .pcm-rh-quote-mode label:hover span {
    color: var(--bt-white, #fff) !important;
    background: rgba(255, 255, 255, .04) !important;
}
html body .bt-search-hero .pcm-rh-quote-mode input:checked + span {
    background: var(--bt-sand, #c9a880) !important;
    color: var(--bt-black, #0a0a0a) !important;
}

/* Grille des champs vol/pack — hover/focus comme le form hôtel */
html body .bt-search-hero .pcm-rh-quote-grid {
    background: rgba(255, 255, 255, .08) !important;
    gap: 1px !important;
    margin: 0 -28px !important;
}
html body .bt-search-hero .pcm-rh-quote-grid .pcm-rh-field {
    background: var(--bt-black, #0a0a0a) !important;
    padding: 18px 24px !important;
    min-height: 84px !important;
    transition: background .25s ease !important;
}
html body .bt-search-hero .pcm-rh-quote-grid .pcm-rh-field:hover {
    background: #131313 !important;
}
html body .bt-search-hero .pcm-rh-quote-grid .pcm-rh-field:focus-within {
    background: #161616 !important;
}
html body .bt-search-hero .pcm-rh-quote-grid .pcm-rh-field__icon {
    color: var(--bt-sand, #c9a880) !important;
    width: 24px !important;
    height: 24px !important;
    padding-right: 14px !important;
    margin-right: 4px !important;
    border-right: 1px solid rgba(255, 255, 255, .08) !important;
    transition: color .2s ease !important;
}
html body .bt-search-hero .pcm-rh-quote-grid .pcm-rh-field:hover .pcm-rh-field__icon {
    color: var(--bt-white, #fff) !important;
}
html body .bt-search-hero .pcm-rh-quote-grid .pcm-rh-field__icon svg {
    width: 17px !important;
    height: 17px !important;
}
html body .bt-search-hero .pcm-rh-quote-grid .pcm-rh-field__body label {
    font-family: var(--bt-font-body) !important;
    font-size: 9px !important;
    font-weight: 500 !important;
    letter-spacing: .26em !important;
    text-transform: uppercase !important;
    color: var(--bt-fog, #b8b8b8) !important;
    margin: 0 0 4px !important;
}
html body .bt-search-hero .pcm-rh-quote-grid .pcm-rh-field__body input,
html body .bt-search-hero .pcm-rh-quote-grid .pcm-rh-field__body select {
    font-family: var(--bt-font-display, 'Cormorant Garamond', serif) !important;
    font-size: 18px !important;
    color: var(--bt-white, #fff) !important;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    line-height: 1.25 !important;
}
html body .bt-search-hero .pcm-rh-quote-grid .pcm-rh-field__body input::placeholder {
    color: var(--bt-stone, #6b6b6b) !important;
    font-style: italic !important;
}
html body .bt-search-hero .pcm-rh-quote-grid .pcm-rh-field__body select {
    cursor: pointer !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 7' fill='none' stroke='%23c9a880' stroke-width='1.5'><polyline points='1 1 6 6 11 1'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: right 0 center !important;
    background-size: 10px !important;
    padding-right: 18px !important;
}

/* Voyageurs (3 selects côte à côte) */
html body .bt-search-hero .pcm-rh-pax-row {
    display: flex !important;
    gap: 12px !important;
    align-items: baseline !important;
}
html body .bt-search-hero .pcm-rh-pax-row select {
    flex: 1 !important;
    min-width: 0 !important;
    font-size: 15px !important;
}

/* Extras (pack) — checkboxes éditoriales */
html body .bt-search-hero .pcm-rh-quote-extras {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 22px !important;
    margin: 22px 0 0 !important;
    padding: 20px 0 0 !important;
    border-top: 1px solid rgba(255, 255, 255, .08) !important;
}
html body .bt-search-hero .pcm-rh-extras-label {
    display: inline-block !important;
    font-family: var(--bt-font-body) !important;
    font-size: 9px !important;
    font-weight: 500 !important;
    letter-spacing: .26em !important;
    text-transform: uppercase !important;
    color: var(--bt-sand, #c9a880) !important;
}
html body .bt-search-hero .pcm-rh-quote-extras > label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    color: rgba(255, 255, 255, .75) !important;
    font-family: var(--bt-font-body) !important;
    font-size: 13px !important;
    cursor: pointer !important;
    margin: 0 !important;
    transition: color .2s ease !important;
}
html body .bt-search-hero .pcm-rh-quote-extras > label:hover {
    color: var(--bt-white, #fff) !important;
}
html body .bt-search-hero .pcm-rh-quote-extras input[type="checkbox"] {
    width: 16px !important;
    height: 16px !important;
    accent-color: var(--bt-sand, #c9a880) !important;
    cursor: pointer !important;
}

/* Section "Vos coordonnées" — séparateur éditorial */
html body .bt-search-hero .pcm-rh-quote-contact {
    margin: 28px 0 0 !important;
    padding: 26px 0 0 !important;
    border-top: 1px solid rgba(255, 255, 255, .08) !important;
    background: transparent !important;
}
html body .bt-search-hero .pcm-rh-quote-contact h4 {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    font-family: var(--bt-font-body) !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    letter-spacing: .26em !important;
    text-transform: uppercase !important;
    color: var(--bt-white, #fff) !important;
    margin: 0 0 18px !important;
}
html body .bt-search-hero .pcm-rh-quote-contact h4::before {
    content: '' !important;
    display: inline-block !important;
    width: 28px !important;
    height: 1px !important;
    background: var(--bt-sand, #c9a880) !important;
    flex-shrink: 0 !important;
}
html body .bt-search-hero .pcm-rh-contact-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 10px !important;
    margin: 0 0 12px !important;
}
@media (max-width: 900px) {
    html body .bt-search-hero .pcm-rh-contact-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 480px) {
    html body .bt-search-hero .pcm-rh-contact-grid { grid-template-columns: 1fr !important; }
}
html body .bt-search-hero .pcm-rh-quote-contact input,
html body .bt-search-hero .pcm-rh-quote-contact textarea {
    width: 100% !important;
    background: rgba(255, 255, 255, .03) !important;
    border: 1px solid rgba(255, 255, 255, .1) !important;
    color: var(--bt-white, #fff) !important;
    padding: 13px 16px !important;
    font-family: var(--bt-font-body) !important;
    font-size: 14px !important;
    border-radius: 0 !important;
    outline: none !important;
    transition: border-color .2s ease, background .2s ease !important;
    box-sizing: border-box !important;
}
html body .bt-search-hero .pcm-rh-quote-contact input:focus,
html body .bt-search-hero .pcm-rh-quote-contact textarea:focus {
    border-color: var(--bt-sand, #c9a880) !important;
    background: rgba(255, 255, 255, .06) !important;
}
html body .bt-search-hero .pcm-rh-quote-contact input::placeholder,
html body .bt-search-hero .pcm-rh-quote-contact textarea::placeholder {
    color: var(--bt-stone, #6b6b6b) !important;
}
html body .bt-search-hero .pcm-rh-quote-contact textarea {
    resize: vertical !important;
    min-height: 90px !important;
    line-height: 1.6 !important;
}

/* Consent : layout propre, sand au check */
html body .bt-search-hero .pcm-rh-quote-consent {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
    margin: 14px 0 0 !important;
    padding: 0 !important;
    color: rgba(255, 255, 255, .55) !important;
    font-family: var(--bt-font-body) !important;
    font-size: 12px !important;
    line-height: 1.55 !important;
    cursor: pointer !important;
}
html body .bt-search-hero .pcm-rh-quote-consent input[type="checkbox"] {
    width: 16px !important;
    height: 16px !important;
    margin-top: 2px !important;
    flex-shrink: 0 !important;
    accent-color: var(--bt-sand, #c9a880) !important;
    cursor: pointer !important;
}
html body .bt-search-hero .pcm-rh-quote-consent span {
    flex: 1 !important;
}

/* Bouton "Demander mon devis" — flèche animée style éditorial */
html body .bt-search-hero button.pcm-rh-btn-quote,
html body .bt-search-hero .pcm-rh-btn-quote {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 14px !important;
    width: 100% !important;
    margin: 26px 0 0 !important;
    padding: 20px 32px !important;
    background: var(--bt-white, #fff) !important;
    color: var(--bt-black, #0a0a0a) !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-family: var(--bt-font-body) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: .28em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    transition: background .25s ease, color .25s ease !important;
    box-shadow: none !important;
    outline: none !important;
    min-height: 0 !important;
}
html body .bt-search-hero .pcm-rh-btn-quote:hover {
    background: var(--bt-sand, #c9a880) !important;
    color: var(--bt-black, #0a0a0a) !important;
}
html body .bt-search-hero .pcm-rh-btn-quote svg {
    width: 16px !important;
    height: 16px !important;
    stroke-width: 1.5 !important;
    transition: transform .3s ease !important;
}
html body .bt-search-hero .pcm-rh-btn-quote:hover svg {
    transform: translateX(4px) !important;
}
html body .bt-search-hero .pcm-rh-btn-quote:disabled {
    opacity: .6 !important;
    cursor: progress !important;
}

/* Confirmation envoi devis — élégante */
html body .bt-search-hero .pcm-rh-quote-success {
    text-align: center !important;
    padding: 64px 32px !important;
    background: rgba(255, 255, 255, .02) !important;
    border: 1px solid rgba(255, 255, 255, .08) !important;
}
html body .bt-search-hero .pcm-rh-quote-success svg {
    width: 56px !important;
    height: 56px !important;
    color: var(--bt-sand, #c9a880) !important;
    margin: 0 auto 22px !important;
    display: block !important;
}
html body .bt-search-hero .pcm-rh-quote-success h3 {
    font-family: var(--bt-font-display, 'Cormorant Garamond', serif) !important;
    font-size: 32px !important;
    font-weight: 400 !important;
    color: var(--bt-white, #fff) !important;
    margin: 0 0 12px !important;
    letter-spacing: .005em !important;
}
html body .bt-search-hero .pcm-rh-quote-success p {
    color: rgba(255, 255, 255, .65) !important;
    font-family: var(--bt-font-body) !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
    margin: 0 auto !important;
    max-width: 460px !important;
}

/* =========================================================================
   MOBILE — datepicker & popup voyageurs en plein écran responsive
   ========================================================================= */
@media (max-width: 720px) {
    /* Datepicker : 1 seul mois + masque le 2ème pour éviter le débordement */
    .flatpickr-calendar {
        width: calc(100vw - 24px) !important;
        max-width: 380px !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        box-sizing: border-box;
    }
    .flatpickr-calendar.bt-fp-dark,
    .flatpickr-calendar.bt-fp-light {
        padding: 8px !important;
    }
    /* Cache le second mois quand showMonths:2 ne tient pas */
    .flatpickr-calendar .flatpickr-month + .flatpickr-month,
    .flatpickr-calendar .flatpickr-days + .flatpickr-days {
        display: none !important;
    }
    .flatpickr-months .flatpickr-month {
        flex: 1 1 100% !important;
    }
    .flatpickr-day {
        font-size: 13px !important;
        max-width: 14.2857143% !important;
    }
    .flatpickr-weekday {
        font-size: 10px !important;
        max-width: 14.2857143% !important;
    }
    /* Le calendrier doit prendre toute la largeur dispo */
    .flatpickr-rContainer, .flatpickr-days {
        width: 100% !important;
        max-width: 100% !important;
    }
    .dayContainer {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    /* Popup voyageurs : modal plein écran central */
    html body .pcm-rh-form-v2 .pcm-rh-guests-panel {
        position: fixed !important;
        top: 50% !important;
        left: 50% !important;
        right: auto !important;
        transform: translate(-50%, -50%) !important;
        width: calc(100vw - 24px) !important;
        max-width: 420px !important;
        max-height: 85vh !important;
        z-index: 9999 !important;
    }
    /* Backdrop sombre derrière le popup mobile */
    html body .pcm-rh-form-v2 .pcm-rh-guests-panel:not([hidden])::before {
        content: '';
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, .7);
        z-index: -1;
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
    }

    /* Search bar responsive : champs sur 1 colonne */
    .bt-search-hero .pcm-rh-form-v2 {
        grid-template-columns: 1fr !important;
    }
    .bt-search-hero .pcm-rh-form-v2 .pcm-rh-btn-search {
        grid-column: 1 / -1 !important;
        min-height: 64px !important;
    }
    /* Onglets Hôtel / Vol / Pack en wrap propre */
    .pcm-rh-tabs {
        gap: 20px !important;
        flex-wrap: wrap;
    }
    .pcm-rh-tab span {
        font-size: 10px !important;
    }

    /* Grille des champs vol/pack : 1 colonne */
    .bt-search-hero .pcm-rh-quote-grid {
        grid-template-columns: 1fr !important;
        margin: 0 !important;
    }
    .bt-search-hero .pcm-rh-pane-quote {
        padding: 18px !important;
    }
    .bt-search-hero .pcm-rh-contact-grid {
        grid-template-columns: 1fr !important;
    }

    /* Hero head : tailles ajustées */
    .bt-search-hero {
        padding: 28px 16px 24px !important;
        margin-top: -32px !important;
    }
    .bt-search-hero__head { margin: 0 0 22px !important; }
    .bt-search-hero__title { font-size: 24px !important; }
    .bt-search-hero__lead { font-size: 12px !important; }
}

/* =========================================================================
   FIX MOBILE — croix fermeture popup voyageurs + zoom iOS
   ========================================================================= */

/* Bouton croix dans le popup voyageurs (visible mobile + desktop) */
html body .pcm-rh-form-v2 .pcm-rh-guests-close,
html body button.pcm-rh-guests-close {
    position: absolute !important;
    top: 14px !important;
    right: 14px !important;
    width: 36px !important;
    height: 36px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 50% !important;
    color: var(--bt-fog, #b8b8b8) !important;
    cursor: pointer !important;
    z-index: 10 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: color .2s ease, background .2s ease !important;
    box-shadow: none !important;
    outline: none !important;
}
html body .pcm-rh-form-v2 .pcm-rh-guests-close:hover {
    color: var(--bt-white, #fff) !important;
    background: rgba(255, 255, 255, .08) !important;
}
html body .pcm-rh-form-v2 .pcm-rh-guests-close svg {
    width: 18px !important;
    height: 18px !important;
}

/* iOS Safari : empêche le zoom automatique au focus sur input (font-size ≥ 16px) */
@media (max-width: 720px) {
    html body .pcm-rh-form-v2 .pcm-rh-field__body input,
    html body .pcm-rh-form-v2 .pcm-rh-field__body select,
    html body .bt-search-hero .pcm-rh-quote-contact input,
    html body .bt-search-hero .pcm-rh-quote-contact textarea,
    html body .bt-search-hero .pcm-rh-quote-grid input,
    html body .bt-search-hero .pcm-rh-quote-grid select,
    html body .bt-contact-form input,
    html body .bt-contact-form select,
    html body .bt-contact-form textarea,
    html body .bt-contact-field input,
    html body .bt-contact-field select,
    html body .bt-contact-field textarea,
    html body .bt-account-form input,
    html body .bt-account-field input,
    html body input[type="text"],
    html body input[type="email"],
    html body input[type="tel"],
    html body input[type="password"],
    html body input[type="number"],
    html body input[type="search"],
    html body select,
    html body textarea {
        font-size: 16px !important;
    }
}

/* =========================================================================
   CROIX DE FERMETURE POPUP VOYAGEURS — visibilité forcée maximale
   ========================================================================= */
html body #pcm-rh-guests-panel #pcm-rh-guests-close,
html body button#pcm-rh-guests-close,
html body .pcm-rh-guests-close {
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    width: 40px !important;
    height: 40px !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    background-color: transparent !important;
    border: 1px solid rgba(255, 255, 255, .15) !important;
    border-radius: 50% !important;
    color: var(--bt-white, #fff) !important;
    cursor: pointer !important;
    z-index: 100 !important;
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background .2s ease, border-color .2s ease, color .2s ease !important;
    box-shadow: none !important;
    outline: none !important;
    pointer-events: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    font: inherit !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}
html body #pcm-rh-guests-close:hover,
html body button#pcm-rh-guests-close:hover,
html body .pcm-rh-guests-close:hover {
    background: var(--bt-sand, #c9a880) !important;
    border-color: var(--bt-sand, #c9a880) !important;
    color: var(--bt-black, #0a0a0a) !important;
}
html body #pcm-rh-guests-close svg,
html body .pcm-rh-guests-close svg {
    width: 18px !important;
    height: 18px !important;
    display: block !important;
}

/* Ajuste le padding-right du header sticky pour ne pas chevaucher la croix */
html body .pcm-rh-form-v2 .pcm-rh-guests-panel__head {
    padding-right: 64px !important;
}
