/* =========================================================================
   ASSIST'AIR — BLACK TOMATO EDITION
   Inspired by blacktomato.com
   Typography: Cormorant Garamond (display) + DM Sans (body)
   Palette   : pure noir / blanc / sable
   ========================================================================= */

: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-gold: #b08a5a;

    --bt-font-display: 'Cormorant Garamond', 'Times New Roman', serif;
    --bt-font-body:    'DM Sans', -apple-system, 'Segoe UI', sans-serif;

    --bt-nav-h: 96px;
    --bt-container: 1440px;
    --bt-gutter: 32px;

    --bt-ease: cubic-bezier(.2,.7,.2,1);
}

/* RESET / BASE
   ----------------------------------------------------------------------- */

html { -webkit-text-size-adjust: 100%; }
body.bt-frontpage,
body {
    margin: 0;
    font-family: var(--bt-font-body);
    font-size: 16px;
    line-height: 1.6;
    color: var(--bt-ink);
    background: var(--bt-white);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
body.bt-frontpage { padding-top: 0 !important; } /* éviter padding parent */

* { box-sizing: border-box; }
img { max-width: 100%; height: auto; display: block; }

a { color: inherit; text-decoration: none; transition: opacity .25s var(--bt-ease); }
a:hover { opacity: .65; }

button { font-family: inherit; cursor: pointer; }

h1, h2, h3, h4, h5 {
    font-family: var(--bt-font-display);
    font-weight: 400;
    line-height: 1.05;
    letter-spacing: -0.01em;
    margin: 0 0 .5em;
    color: var(--bt-black);
}
h1 { font-size: clamp(48px, 8vw, 110px); }
h2 { font-size: clamp(36px, 5vw, 72px); }
h3 { font-size: clamp(24px, 2.6vw, 38px); }

p { margin: 0 0 1em; }

/* Petits caps "overline" éditoriaux */
.bt-overline {
    font-family: var(--bt-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--bt-stone);
    margin: 0 0 24px;
    display: inline-flex;
    align-items: center;
    gap: 14px;
}
.bt-overline::before {
    content: '';
    width: 36px; height: 1px;
    background: currentColor;
    opacity: .6;
}

/* CONTAINER
   ----------------------------------------------------------------------- */

.bt-container {
    width: 100%;
    max-width: var(--bt-container);
    margin: 0 auto;
    padding-left: var(--bt-gutter);
    padding-right: var(--bt-gutter);
}
@media (max-width: 768px) {
    :root { --bt-gutter: 20px; }
}

/* HEADER / NAV — minimaliste fond noir
   ----------------------------------------------------------------------- */

.bt-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    background: rgba(10, 10, 10, .92);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    height: var(--bt-nav-h);
    color: var(--bt-white);
    transition: background .35s var(--bt-ease);
}
.bt-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
    max-width: var(--bt-container);
    margin: 0 auto;
    padding: 0 var(--bt-gutter);
}
.bt-logo {
    font-family: var(--bt-font-display);
    font-size: 26px;
    font-weight: 500;
    letter-spacing: -0.01em;
    color: var(--bt-white);
    display: inline-flex;
    align-items: center;
}
.bt-logo em { font-style: italic; color: var(--bt-sand); }
.bt-logo__img {
    display: block;
    height: 64px;
    width: auto;
    max-width: 280px;
    /* Le logo PNG est sur fond clair → on le passe en blanc via filter pour le header noir */
    filter: brightness(0) invert(1);
    transition: opacity .25s var(--bt-ease);
}
.bt-logo__img--footer {
    height: 80px;
    margin-bottom: 16px;
}

.bt-nav { display: flex; gap: 36px; align-items: center; }
.bt-nav a {
    color: rgba(255, 255, 255, .85);
    font-size: 13px;
    font-weight: 400;
    letter-spacing: .12em;
    text-transform: uppercase;
    position: relative;
    padding: 8px 0;
}
.bt-nav a::after {
    content: '';
    position: absolute;
    bottom: 2px; left: 0;
    width: 0; height: 1px;
    background: var(--bt-sand);
    transition: width .3s var(--bt-ease);
}
.bt-nav a:hover { opacity: 1; color: var(--bt-white); }
.bt-nav a:hover::after { width: 100%; }

.bt-nav__cta {
    border: 1px solid rgba(255, 255, 255, .35);
    padding: 10px 20px !important;
    border-radius: 0;
    transition: all .3s var(--bt-ease);
}
.bt-nav__cta:hover {
    background: var(--bt-white);
    color: var(--bt-black) !important;
    border-color: var(--bt-white);
    opacity: 1 !important;
}
.bt-nav__cta::after { display: none !important; }

/* Menu mobile */
.bt-burger {
    display: none;
    background: none; border: 0;
    width: 32px; height: 24px;
    padding: 0;
    position: relative;
}
.bt-burger span {
    position: absolute;
    left: 0; right: 0;
    height: 1.5px;
    background: var(--bt-white);
    transition: transform .3s var(--bt-ease);
}
.bt-burger span:nth-child(1) { top: 4px; }
.bt-burger span:nth-child(2) { top: 50%; }
.bt-burger span:nth-child(3) { bottom: 4px; }

@media (max-width: 960px) {
    /* Nav cachée par défaut ; ouvre en panneau plein écran au clic burger */
    .bt-nav {
        display: none;
        position: fixed;
        inset: 0;
        background: var(--bt-black);
        flex-direction: column;
        align-items: stretch;
        justify-content: center;
        gap: 0;
        padding: 80px 32px 40px;
        z-index: 999;
        overflow-y: auto;
    }
    .bt-nav--open { display: flex !important; }
    .bt-nav a {
        font-family: var(--bt-font-display) !important;
        font-size: 22px !important;
        font-style: italic !important;
        font-weight: 400 !important;
        color: var(--bt-white) !important;
        padding: 14px 0 !important;
        border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
        text-align: left !important;
        opacity: 1 !important;
        text-transform: none !important;
        letter-spacing: 0 !important;
        display: block !important;
    }
    .bt-nav a::after { display: none !important; }
    .bt-nav__cta,
    .bt-nav a.bt-nav__cta {
        margin-top: 24px !important;
        background: var(--bt-white) !important;
        color: var(--bt-black) !important;
        padding: 16px 24px !important;
        text-align: center !important;
        border: 0 !important;
        border-bottom: 0 !important;
        font-family: var(--bt-font-body) !important;
        font-size: 12px !important;
        letter-spacing: .22em !important;
        text-transform: uppercase !important;
        font-style: normal !important;
    }
    .bt-nav__cta:hover { background: var(--bt-sand) !important; }

    .bt-burger {
        display: block;
        position: relative;
        z-index: 1000;
    }
    /* Croix au clic */
    .bt-burger--open span:nth-child(1) {
        top: 50%; transform: translateY(-50%) rotate(45deg);
    }
    .bt-burger--open span:nth-child(2) { opacity: 0; }
    .bt-burger--open span:nth-child(3) {
        bottom: auto; top: 50%; transform: translateY(-50%) rotate(-45deg);
    }

    /* Lock scroll quand le menu est ouvert */
    body:has(.bt-nav--open) { overflow: hidden; }
}

/* HERO — full screen photo + recherche RateHawk
   ----------------------------------------------------------------------- */

.bt-hero {
    position: relative;
    height: 100vh;
    min-height: 720px;
    color: var(--bt-white);
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    padding-bottom: 80px;
}
.bt-hero__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    z-index: 0;
    transform: scale(1.05);
    animation: bt-zoom 18s ease-out forwards;
}
.bt-hero__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,.15) 30%, rgba(0,0,0,.55) 75%, rgba(0,0,0,.85) 100%);
}
@keyframes bt-zoom {
    from { transform: scale(1.12); }
    to   { transform: scale(1.00); }
}

.bt-hero__inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: var(--bt-container);
    margin: 0 auto;
    padding: 0 var(--bt-gutter);
    display: grid;
    grid-template-columns: 1fr;
    gap: 56px;
}
.bt-hero__text { max-width: 720px; }
.bt-hero__overline {
    color: var(--bt-sand);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    margin-bottom: 28px;
    display: inline-flex;
    align-items: center;
    gap: 14px;
}
.bt-hero__overline::before {
    content: '';
    width: 60px; height: 1px;
    background: var(--bt-sand);
}
.bt-hero__title {
    color: var(--bt-white);
    font-size: clamp(54px, 8vw, 120px);
    line-height: .95;
    font-weight: 300;
    letter-spacing: -0.02em;
    margin-bottom: 28px;
}
.bt-hero__title em { font-style: italic; font-weight: 400; }
.bt-hero__lead {
    font-size: 18px;
    line-height: 1.6;
    color: rgba(255, 255, 255, .82);
    max-width: 520px;
    margin-bottom: 0;
}

/* Indicateur scroll */
.bt-scroll-hint {
    position: absolute;
    bottom: 28px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    color: rgba(255, 255, 255, .6);
    font-size: 10px;
    letter-spacing: .3em;
    text-transform: uppercase;
    text-align: center;
}
.bt-scroll-hint::after {
    content: '';
    display: block;
    width: 1px; height: 50px;
    background: linear-gradient(to bottom, rgba(255, 255, 255, .6), transparent);
    margin: 12px auto 0;
    animation: bt-scroll 2.2s ease-in-out infinite;
}
@keyframes bt-scroll {
    0%, 100% { transform: scaleY(1); opacity: .6; }
    50%      { transform: scaleY(.4) translateY(20px); opacity: .15; }
}

/* SEARCH BAR — RateHawk hero search
   ----------------------------------------------------------------------- */

.bt-search-hero {
    position: relative;
    z-index: 2;
    margin-top: -88px;
    background: linear-gradient(180deg, #0a0a0a 0%, #111111 100%);
    color: var(--bt-white);
    padding: 48px 56px 36px;
    width: 100%;
    max-width: var(--bt-container);
    margin-left: auto;
    margin-right: auto;
    box-shadow: 0 32px 80px rgba(0, 0, 0, .35);
}
@media (max-width: 900px) {
    .bt-search-hero { padding: 36px 24px 28px; margin-top: -48px; }
}

/* Head : overline + titre + lead */
.bt-search-hero__head {
    text-align: center;
    margin: 0 0 32px;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}
.bt-search-hero__head .bt-overline {
    color: var(--bt-sand);
    justify-content: center;
    margin-bottom: 14px;
}
.bt-search-hero__title {
    font-family: var(--bt-font-display);
    font-size: 34px;
    font-style: normal;
    font-weight: 400;
    color: var(--bt-white);
    margin: 0 0 12px;
    letter-spacing: .005em;
    line-height: 1.15;
}
.bt-search-hero__title em {
    font-style: italic;
    color: var(--bt-sand);
}
.bt-search-hero__lead {
    font-family: var(--bt-font-body);
    font-size: 14px;
    line-height: 1.7;
    color: rgba(255, 255, 255, .65);
    margin: 0;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}
.bt-search-hero__lead strong {
    color: var(--bt-white);
    font-weight: 500;
}
@media (max-width: 640px) {
    .bt-search-hero__title { font-size: 26px; }
    .bt-search-hero__lead  { font-size: 13px; }
}

/* Wrap autour du form : cadre sand subtil */
.bt-search-hero__wrap {
    position: relative;
    border: 1px solid rgba(201, 168, 128, .18);
    background: rgba(255, 255, 255, .015);
}
.bt-search-hero__wrap::before,
.bt-search-hero__wrap::after {
    content: '';
    position: absolute;
    width: 12px;
    height: 12px;
    border: 1px solid var(--bt-sand);
}
.bt-search-hero__wrap::before { top: -1px; left: -1px; border-right: 0; border-bottom: 0; }
.bt-search-hero__wrap::after  { bottom: -1px; right: -1px; border-left: 0; border-top: 0; }

/* Trust : ligne de réassurance sous le form */
.bt-search-hero__trust {
    list-style: none;
    padding: 0;
    margin: 32px 0 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border-top: 1px solid rgba(255, 255, 255, .08);
    padding-top: 28px;
}
.bt-search-hero__trust li {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 0 18px;
    border-right: 1px solid rgba(255, 255, 255, .06);
}
.bt-search-hero__trust li:last-child { border-right: 0; }
.bt-search-hero__trust li:first-child { padding-left: 0; }
.bt-search-hero__trust svg {
    width: 22px;
    height: 22px;
    color: var(--bt-sand);
    flex-shrink: 0;
    margin-top: 1px;
}
.bt-search-hero__trust div { display: flex; flex-direction: column; min-width: 0; }
.bt-search-hero__trust strong {
    color: var(--bt-white);
    font-family: var(--bt-font-body);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .04em;
    margin-bottom: 3px;
}
.bt-search-hero__trust span {
    color: rgba(255, 255, 255, .55);
    font-family: var(--bt-font-body);
    font-size: 11px;
    line-height: 1.5;
    letter-spacing: 0;
}
@media (max-width: 900px) {
    .bt-search-hero__trust { grid-template-columns: 1fr 1fr; gap: 20px; }
    .bt-search-hero__trust li { padding: 0; border-right: 0; }
}
@media (max-width: 480px) {
    .bt-search-hero__trust { grid-template-columns: 1fr; gap: 18px; }
}

/* Form — overrides du markup plugin */
.bt-search-hero .pcm-rh-search-wrap form,
.bt-search-hero #pcm-rh-form {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr auto;
    gap: 1px;
    background: rgba(255, 255, 255, .12);
}
@media (max-width: 1100px) {
    .bt-search-hero .pcm-rh-search-wrap form,
    .bt-search-hero #pcm-rh-form { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
    .bt-search-hero .pcm-rh-search-wrap form,
    .bt-search-hero #pcm-rh-form { grid-template-columns: 1fr; }
}

.bt-search-hero .pcm-rh-field {
    background: var(--bt-black);
    padding: 16px 22px;
    position: relative;
    min-height: 76px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.bt-search-hero .pcm-rh-field label {
    font-family: var(--bt-font-body);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--bt-fog);
    margin-bottom: 6px;
    display: block;
}
.bt-search-hero .pcm-rh-field input[type="text"],
.bt-search-hero .pcm-rh-field input[type="date"],
.bt-search-hero .pcm-rh-field .pcm-rh-guests-toggle {
    width: 100%;
    background: transparent;
    border: 0;
    color: var(--bt-white);
    font-family: var(--bt-font-display);
    font-size: 22px;
    font-weight: 400;
    letter-spacing: .01em;
    padding: 0;
    outline: none;
    line-height: 1.2;
    appearance: none;
    -webkit-appearance: none;
}
.bt-search-hero .pcm-rh-field input[type="date"] { color-scheme: dark; }
.bt-search-hero .pcm-rh-field input::placeholder { color: var(--bt-stone); }

.bt-search-hero .pcm-rh-dates {
    display: contents;
}
.bt-search-hero .pcm-rh-dates > div {
    background: var(--bt-black);
    padding: 16px 22px;
    min-height: 76px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.bt-search-hero .pcm-rh-dates > div + div {
    border-left: 1px solid rgba(255, 255, 255, .08);
}

.bt-search-hero .pcm-rh-guests-toggle {
    cursor: pointer;
    user-select: none;
}

.bt-search-hero .pcm-rh-btn-search {
    background: var(--bt-white);
    color: var(--bt-black);
    border: 0;
    padding: 0 48px;
    font-family: var(--bt-font-body);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    transition: background .3s var(--bt-ease), color .3s var(--bt-ease);
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.bt-search-hero .pcm-rh-btn-search:hover {
    background: var(--bt-sand);
    color: var(--bt-black);
}

/* Autocomplete */
.bt-search-hero .pcm-rh-suggestions {
    position: absolute;
    top: calc(100% + 2px);
    left: 0; right: 0;
    background: var(--bt-ink);
    border: 1px solid rgba(255, 255, 255, .08);
    z-index: 50;
    max-height: 380px;
    overflow-y: auto;
}
.bt-search-hero .pcm-rh-suggestion {
    padding: 14px 22px;
    cursor: pointer;
    border-bottom: 1px solid rgba(255, 255, 255, .04);
    display: flex; align-items: center; gap: 14px;
    font-size: 14px;
    transition: background .15s ease;
}
.bt-search-hero .pcm-rh-suggestion:hover {
    background: rgba(255, 255, 255, .05);
}
.bt-search-hero .pcm-rh-suggestion .pcm-rh-label {
    color: var(--bt-white);
    font-weight: 500;
    flex: 1;
}
.bt-search-hero .pcm-rh-suggestion .pcm-rh-sub {
    color: var(--bt-fog);
    font-size: 12px;
}
.bt-search-hero .pcm-rh-suggestion .pcm-rh-icon {
    width: 14px; height: 14px;
    color: var(--bt-sand);
}

/* Guests panel */
.bt-search-hero .pcm-rh-guests-panel {
    position: absolute;
    top: calc(100% + 2px);
    right: 0;
    background: var(--bt-ink);
    border: 1px solid rgba(255, 255, 255, .08);
    padding: 24px;
    width: 320px;
    z-index: 50;
}
.bt-search-hero .pcm-rh-counter {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 16px 0;
}
.bt-search-hero .pcm-rh-counter button {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .25);
    color: var(--bt-white);
    width: 32px; height: 32px;
    font-size: 18px;
    line-height: 1;
}
.bt-search-hero .pcm-rh-counter button:hover { background: rgba(255, 255, 255, .08); }
.bt-search-hero .pcm-rh-counter span {
    min-width: 32px; text-align: center;
    font-family: var(--bt-font-display);
    font-size: 20px;
}
.bt-search-hero #pcm-rh-guests-confirm {
    background: var(--bt-white);
    color: var(--bt-black);
    border: 0;
    padding: 12px 24px;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    margin-top: 16px;
    width: 100%;
}

/* SECTION INTRO ÉDITORIALE
   ----------------------------------------------------------------------- */

.bt-section {
    padding: 140px 0;
}
.bt-section--alt { background: var(--bt-paper); }
.bt-section--dark { background: var(--bt-black); color: var(--bt-white); }
.bt-section--dark h1, .bt-section--dark h2, .bt-section--dark h3 { color: var(--bt-white); }
.bt-section--dark .bt-overline { color: var(--bt-fog); }

.bt-section-head {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 80px;
    margin-bottom: 80px;
    align-items: end;
}
@media (max-width: 900px) {
    .bt-section-head { grid-template-columns: 1fr; gap: 32px; }
}
.bt-section-head h2 {
    margin: 0;
    font-style: italic;
    font-weight: 300;
}
.bt-section-head h2 strong { font-weight: 500; font-style: normal; }
.bt-section-head__lead {
    font-size: 17px;
    color: var(--bt-stone);
    max-width: 540px;
    line-height: 1.7;
}

/* GRILLE ÉDITORIALE DESTINATIONS
   ----------------------------------------------------------------------- */

.bt-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 24px;
}
.bt-card { position: relative; overflow: hidden; }

/* Layout asymétrique magazine */
.bt-card:nth-child(1)  { grid-column: span 7; aspect-ratio: 4 / 3; }
.bt-card:nth-child(2)  { grid-column: span 5; aspect-ratio: 4 / 5; }
.bt-card:nth-child(3)  { grid-column: span 5; aspect-ratio: 4 / 5; }
.bt-card:nth-child(4)  { grid-column: span 4; aspect-ratio: 1 / 1; }
.bt-card:nth-child(5)  { grid-column: span 3; aspect-ratio: 3 / 4; }
.bt-card:nth-child(6)  { grid-column: span 12; aspect-ratio: 21 / 9; }

@media (max-width: 900px) {
    .bt-grid { gap: 16px; }
    .bt-card:nth-child(n) { grid-column: span 12; aspect-ratio: 4 / 3; }
}

.bt-card__media {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform 1.4s var(--bt-ease);
}
.bt-card:hover .bt-card__media { transform: scale(1.06); }

.bt-card__media::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,.7) 100%);
}

.bt-card__body {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    padding: 32px 36px;
    color: var(--bt-white);
    z-index: 2;
}
.bt-card__sub {
    font-size: 11px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-sand);
    margin-bottom: 8px;
    display: block;
}
.bt-card__title {
    font-family: var(--bt-font-display);
    font-size: clamp(28px, 3vw, 48px);
    font-weight: 400;
    line-height: 1;
    color: var(--bt-white);
    margin: 0 0 12px;
}
.bt-card__excerpt {
    font-size: 14px;
    line-height: 1.55;
    color: rgba(255, 255, 255, .82);
    max-width: 380px;
    margin: 0 0 14px;
}
.bt-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--bt-white);
    font-size: 11px;
    letter-spacing: .22em;
    text-transform: uppercase;
    border-bottom: 1px solid rgba(255, 255, 255, .4);
    padding-bottom: 4px;
}
.bt-card__cta::after { content: '→'; font-size: 16px; }

.bt-card a.bt-card__link {
    position: absolute;
    inset: 0;
    z-index: 3;
    text-indent: -9999px;
    overflow: hidden;
}

/* MANIFESTO / PROMESSE
   ----------------------------------------------------------------------- */

.bt-manifesto { padding: 160px 0; text-align: center; }
.bt-manifesto blockquote {
    font-family: var(--bt-font-display);
    font-size: clamp(32px, 4vw, 56px);
    line-height: 1.2;
    font-weight: 300;
    font-style: italic;
    color: var(--bt-black);
    max-width: 1000px;
    margin: 0 auto;
    quotes: '“' '”';
}
.bt-manifesto blockquote::before { content: open-quote; color: var(--bt-sand); }
.bt-manifesto blockquote::after  { content: close-quote; color: var(--bt-sand); }
.bt-manifesto cite {
    display: block;
    margin-top: 32px;
    font-family: var(--bt-font-body);
    font-size: 12px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-stone);
    font-style: normal;
}

/* VALUE PROPS — 3 colonnes
   ----------------------------------------------------------------------- */

.bt-values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 64px; }
@media (max-width: 900px) { .bt-values { grid-template-columns: 1fr; gap: 48px; } }
.bt-value h3 {
    font-size: 32px;
    font-weight: 400;
    margin-bottom: 16px;
    font-style: italic;
}
.bt-value p { color: var(--bt-stone); font-size: 16px; line-height: 1.7; }
.bt-value__num {
    font-family: var(--bt-font-display);
    font-size: 56px;
    color: var(--bt-sand);
    font-weight: 300;
    line-height: 1;
    display: block;
    margin-bottom: 16px;
}

/* CTA FINAL FULL-BLEED
   ----------------------------------------------------------------------- */

.bt-cta-band {
    padding: 160px 0;
    background-image: linear-gradient(rgba(0,0,0,.55), rgba(0,0,0,.55)), url('https://images.unsplash.com/photo-1519677100203-a0e668c92439?w=2400&q=85');
    background-size: cover;
    background-position: center;
    color: var(--bt-white);
    text-align: center;
}
.bt-cta-band h2 {
    color: var(--bt-white);
    font-style: italic;
    font-weight: 300;
    margin-bottom: 32px;
}
.bt-cta-band__btn {
    display: inline-block;
    background: var(--bt-white);
    color: var(--bt-black);
    padding: 18px 48px;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    transition: all .3s var(--bt-ease);
}
.bt-cta-band__btn:hover { background: var(--bt-sand); opacity: 1; }

/* FOOTER
   ----------------------------------------------------------------------- */

.bt-footer {
    background: var(--bt-black);
    color: rgba(255, 255, 255, .7);
    padding: 80px 0 40px;
    font-size: 14px;
}
.bt-footer__cols {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 64px;
    margin-bottom: 64px;
}
@media (max-width: 900px) { .bt-footer__cols { grid-template-columns: 1fr 1fr; gap: 40px; } }

.bt-footer__brand .bt-logo { color: var(--bt-white); margin-bottom: 16px; display: block; }
.bt-footer h4 {
    font-family: var(--bt-font-body);
    font-size: 11px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-sand);
    margin-bottom: 24px;
}
.bt-footer ul { list-style: none; padding: 0; margin: 0; }
.bt-footer li { margin: 10px 0; }
.bt-footer a { color: rgba(255, 255, 255, .65); text-decoration: none; transition: color .2s ease; }
.bt-footer a:hover { color: var(--bt-white); opacity: 1; }
/* Boutons "Nous contacter" / "Devis" stylés comme des liens */
.bt-footer button.bt-footer__link,
button.bt-footer__link {
    background: transparent !important;
    border: 0 !important;
    color: rgba(255, 255, 255, .65) !important;
    padding: 0 !important;
    font: inherit !important;
    text-align: left !important;
    cursor: pointer !important;
    box-shadow: none !important;
    outline: none !important;
    border-radius: 0 !important;
    transition: color .2s ease !important;
}
.bt-footer button.bt-footer__link:hover,
button.bt-footer__link:hover {
    color: var(--bt-white) !important;
}
.bt-footer__bottom {
    border-top: 1px solid rgba(255, 255, 255, .1);
    padding-top: 24px;
    display: flex; justify-content: space-between;
    color: rgba(255, 255, 255, .4);
    font-size: 12px;
    letter-spacing: .05em;
}
@media (max-width: 600px) { .bt-footer__bottom { flex-direction: column; gap: 12px; } }

/* MASQUER LES ÉLÉMENTS HÉRITÉS DE L'ANCIEN THÈME SUR FRONTPAGE
   ----------------------------------------------------------------------- */

body.bt-frontpage .elementor-section-wrap > .elementor-section,
body.bt-frontpage .page-header,
body.bt-frontpage .site-header.elementor-element,
body.bt-frontpage [data-elementor-type="header"],
body.bt-frontpage [data-elementor-type="footer"] {
    display: none !important;
}
body.bt-frontpage main#content,
body.bt-frontpage .page-content,
body.bt-frontpage article {
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
}

/* Réinitialise le wrapper Hello Elementor */
body.bt-frontpage .elementor-section.elementor-section-boxed > .elementor-container { max-width: none; }

/* =========================================================================
   PAGES ANNEXES — page.php / single.php / archive.php / search.php / 404.php
   ========================================================================= */

/* PAGE HERO ------------------------------------------------------------- */
.bt-page-hero {
    background: var(--bt-bone);
    color: var(--bt-black);
    padding: calc(var(--bt-nav-h) + 100px) 0 100px;
    position: relative;
    overflow: hidden;
}
.bt-page-hero--image {
    background-size: cover;
    background-position: center;
    color: var(--bt-white);
    padding: calc(var(--bt-nav-h) + 160px) 0 140px;
    min-height: 480px;
    display: flex;
    align-items: flex-end;
}
.bt-page-hero--image::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.2) 35%, rgba(0,0,0,.7) 100%);
}
.bt-page-hero--image .bt-container { position: relative; z-index: 2; }
.bt-page-hero--image .bt-page-hero__title { color: var(--bt-white); }

.bt-page-hero__title {
    font-size: clamp(48px, 7vw, 96px);
    line-height: 1.02;
    font-weight: 300;
    letter-spacing: -0.02em;
    margin: 0;
    max-width: 960px;
}
.bt-page-hero__title em { font-style: italic; font-weight: 400; }
.bt-page-hero__lead {
    font-size: 18px;
    color: var(--bt-stone);
    max-width: 620px;
    margin: 24px 0 0;
    line-height: 1.6;
}
.bt-page-hero--image .bt-page-hero__lead { color: rgba(255, 255, 255, .85); }

.bt-single-meta {
    margin-top: 24px;
    font-size: 13px;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--bt-stone);
}

/* PAGE BODY / ARTICLE --------------------------------------------------- */
.bt-page-body { padding: 80px 0 140px; }

.bt-article {
    max-width: 760px;
    margin: 0 auto;
    font-size: 17px;
    line-height: 1.75;
    color: var(--bt-ink);
}
.bt-article > * + * { margin-top: 1.4em; }

.bt-article h1, .bt-article h2, .bt-article h3, .bt-article h4 {
    font-family: var(--bt-font-display);
    font-weight: 400;
    color: var(--bt-black);
    margin-top: 2em;
    margin-bottom: .6em;
    line-height: 1.15;
}
.bt-article h2 { font-size: clamp(32px, 4vw, 48px); font-style: italic; }
.bt-article h3 { font-size: clamp(24px, 2.8vw, 32px); }
.bt-article h4 { font-size: 22px; }

.bt-article p { margin: 0 0 1.4em; }

/* Drop cap + chapeau : SEULEMENT sur les articles "single" (post / destination),
   PAS sur les pages WP qui contiennent les shortcodes RateHawk ou des descriptions courtes */
body.single .bt-article p:first-of-type {
    font-size: 22px;
    line-height: 1.55;
    color: var(--bt-graphite);
    font-weight: 400;
}
body.single .bt-article p:first-of-type::first-letter {
    font-family: var(--bt-font-display);
    font-size: 5em;
    line-height: .9;
    float: left;
    margin: .05em .12em -.05em 0;
    color: var(--bt-black);
    font-weight: 400;
}

/* Sur les pages WP qui hébergent les shortcodes plugin, on retire le wrap .bt-article
   qui ajoute des contraintes éditoriales inutiles (max-width 760px) */
body.page .bt-article:has(.bt-results-hero, .bt-hotel-app, .bt-booking) {
    max-width: none;
}

.bt-article a {
    color: var(--bt-black);
    border-bottom: 1px solid var(--bt-sand);
    padding-bottom: 1px;
}
.bt-article a:hover { color: var(--bt-sand); opacity: 1; }

.bt-article ul, .bt-article ol {
    padding-left: 1.5em;
    margin: 0 0 1.4em;
}
.bt-article li { margin: .4em 0; }
.bt-article ul li::marker { color: var(--bt-sand); }

.bt-article blockquote {
    border-left: 2px solid var(--bt-sand);
    padding: 8px 0 8px 32px;
    margin: 2.4em 0;
    font-family: var(--bt-font-display);
    font-style: italic;
    font-size: 28px;
    line-height: 1.4;
    color: var(--bt-graphite);
}
.bt-article blockquote cite {
    display: block;
    font-family: var(--bt-font-body);
    font-style: normal;
    font-size: 12px;
    letter-spacing: .2em;
    text-transform: uppercase;
    margin-top: 16px;
    color: var(--bt-stone);
}

.bt-article img {
    width: 100%;
    height: auto;
    margin: 2.4em 0;
}
.bt-article figure { margin: 2.4em 0; }
.bt-article figure img { margin: 0; }
.bt-article figcaption {
    font-size: 13px;
    color: var(--bt-stone);
    margin-top: 12px;
    font-style: italic;
    text-align: center;
}

.bt-article hr {
    border: 0;
    border-top: 1px solid var(--bt-mist);
    margin: 3em auto;
    max-width: 200px;
}

.bt-article pre,
.bt-article code {
    font-family: 'SF Mono', Menlo, monospace;
    background: var(--bt-bone);
    font-size: 14px;
    border-radius: 0;
}
.bt-article code { padding: 2px 6px; }
.bt-article pre { padding: 20px; overflow-x: auto; }

.bt-article table {
    width: 100%;
    border-collapse: collapse;
    margin: 2em 0;
    font-size: 15px;
}
.bt-article th, .bt-article td {
    padding: 14px 16px;
    text-align: left;
    border-bottom: 1px solid var(--bt-mist);
}
.bt-article th {
    font-family: var(--bt-font-body);
    font-weight: 500;
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: .18em;
    color: var(--bt-stone);
}

/* TAGS ------------------------------------------------------------------ */
.bt-tags {
    max-width: 760px;
    margin: 64px auto 0;
    padding-top: 32px;
    border-top: 1px solid var(--bt-mist);
}
.bt-tags ul { list-style: none; padding: 0; margin: 16px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.bt-tags li a {
    display: inline-block;
    padding: 8px 14px;
    border: 1px solid var(--bt-mist);
    font-size: 12px;
    color: var(--bt-stone);
    letter-spacing: .1em;
}
.bt-tags li a:hover { border-color: var(--bt-black); color: var(--bt-black); opacity: 1; }

/* ARCHIVE GRID ---------------------------------------------------------- */
.bt-archive-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 48px 32px;
    margin-bottom: 80px;
}
@media (max-width: 900px) { .bt-archive-grid { grid-template-columns: 1fr 1fr; gap: 32px 24px; } }
@media (max-width: 600px) { .bt-archive-grid { grid-template-columns: 1fr; } }

.bt-archive-card { display: flex; flex-direction: column; }
.bt-archive-card__media {
    display: block;
    aspect-ratio: 4 / 5;
    background-size: cover;
    background-position: center;
    margin-bottom: 20px;
    transition: transform .8s var(--bt-ease);
    overflow: hidden;
}
.bt-archive-card:hover .bt-archive-card__media { transform: scale(1.02); }
.bt-archive-card__sub {
    font-size: 11px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-sand);
    margin-bottom: 8px;
}
.bt-archive-card__title {
    font-family: var(--bt-font-display);
    font-size: 28px;
    font-weight: 400;
    line-height: 1.15;
    margin: 0 0 12px;
}
.bt-archive-card__title a { color: var(--bt-black); }
.bt-archive-card__excerpt {
    color: var(--bt-stone);
    font-size: 15px;
    line-height: 1.6;
    margin-bottom: 16px;
}
.bt-archive-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 11px;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--bt-black);
    border-bottom: 1px solid var(--bt-black);
    padding-bottom: 4px;
    align-self: flex-start;
}
.bt-archive-card__cta::after { content: '→'; font-size: 14px; }
.bt-archive-card__cta:hover { color: var(--bt-sand); border-color: var(--bt-sand); opacity: 1; }

/* PAGINATION ------------------------------------------------------------ */
.bt-pagination {
    display: flex;
    justify-content: center;
    gap: 6px;
    padding-top: 48px;
    border-top: 1px solid var(--bt-mist);
}
.bt-pagination span a,
.bt-pagination span .current {
    display: inline-block;
    padding: 12px 16px;
    font-size: 13px;
    letter-spacing: .1em;
    color: var(--bt-stone);
    border: 1px solid transparent;
}
.bt-pagination span .current {
    color: var(--bt-black);
    border-color: var(--bt-black);
}
.bt-pagination span a:hover { color: var(--bt-black); opacity: 1; }

/* SEARCH RESULTS ------------------------------------------------------- */
.bt-search-form-inline {
    margin-top: 32px;
    display: flex;
    max-width: 540px;
    border-bottom: 1px solid var(--bt-black);
}
.bt-search-form-inline input {
    flex: 1;
    border: 0;
    background: transparent;
    padding: 16px 0;
    font-family: var(--bt-font-display);
    font-size: 22px;
    color: var(--bt-black);
    outline: none;
}
.bt-search-form-inline button {
    background: transparent;
    border: 0;
    color: var(--bt-black);
    font-size: 11px;
    letter-spacing: .25em;
    text-transform: uppercase;
    padding: 0 16px;
    cursor: pointer;
}

.bt-search-results { max-width: 880px; margin: 0 auto; }
.bt-search-item {
    padding: 40px 0;
    border-bottom: 1px solid var(--bt-mist);
}
.bt-search-item:last-child { border-bottom: 0; }
.bt-search-item h2 {
    font-size: clamp(28px, 3.2vw, 42px);
    margin: 8px 0 12px;
    font-weight: 400;
    font-style: italic;
}
.bt-search-item h2 a { color: var(--bt-black); }
.bt-search-item h2 a:hover { color: var(--bt-sand); opacity: 1; }
.bt-search-item p {
    color: var(--bt-stone);
    margin: 0 0 16px;
    line-height: 1.6;
}

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

/* 404 ------------------------------------------------------------------- */
.bt-404 {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 160px 0;
    background: var(--bt-paper);
}
.bt-404__title {
    font-size: clamp(56px, 9vw, 130px);
    line-height: 1;
    font-weight: 300;
    margin: 24px 0;
}
.bt-404__lead {
    font-size: 18px;
    color: var(--bt-stone);
    max-width: 480px;
    margin: 0 auto 40px;
    line-height: 1.7;
}

/* ELEMENTOR CONTENT (pages éditées avec Elementor)
   ----------------------------------------------------------------------- */

/* On laisse Elementor sur les pages annexes. On adoucit juste son rendu pour
   qu'il joue avec notre style éditorial (typo, couleurs). Les widgets text
   héritent de notre body, donc ça suffit pour la cohérence. */
.bt-page-body .elementor h1,
.bt-page-body .elementor h2,
.bt-page-body .elementor h3,
.bt-page-body .elementor h4,
.bt-page-body .elementor h5 {
    font-family: var(--bt-font-display) !important;
    font-weight: 400 !important;
    letter-spacing: -0.01em;
}
.bt-page-body .elementor-widget-text-editor {
    font-family: var(--bt-font-body);
    font-size: 17px;
    line-height: 1.75;
    color: var(--bt-ink);
}

/* Boutons Elementor → look BT */
.bt-page-body .elementor-button {
    border-radius: 0 !important;
    font-family: var(--bt-font-body) !important;
    text-transform: uppercase !important;
    letter-spacing: .2em !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    padding: 16px 36px !important;
}

/* HEADER - assurer visibilité partout
   ----------------------------------------------------------------------- */

/* Padding-top du body sur toutes les pages sauf la front-page (qui a le hero) */
body:not(.bt-frontpage):not(.error404) { padding-top: 0 !important; }
body:not(.bt-frontpage) .bt-page-hero { /* déjà géré */ }
body.error404 { padding-top: 0 !important; }

/* Cacher tous les wrappers / headers Elementor sur toutes les pages
   (sauf le contenu .elementor de la page elle-même) */
body [data-elementor-type="header"],
body [data-elementor-type="footer"],
body .elementor-location-header,
body .elementor-location-footer {
    display: none !important;
}

/* =========================================================================
   PAGE DESTINATION (Algérie, Égypte, etc.)
   ========================================================================= */

.bt-destination-page { background: var(--bt-white); }

/* HERO destination — proportions équilibrées, photo full bleed mais titre contraint */
.bt-dest-hero {
    position: relative;
    height: 78vh;
    min-height: 600px;
    max-height: 800px;
    background-size: cover;
    background-position: center;
    color: var(--bt-white);
    display: flex;
    align-items: center;
    padding: calc(var(--bt-nav-h) + 40px) 0 60px;
    overflow: hidden;
}
.bt-dest-hero__veil {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.30) 0%, rgba(0,0,0,.20) 50%, rgba(0,0,0,.75) 100%);
    z-index: 1;
}
.bt-dest-hero__inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 1000px;       /* contraint pour ne pas étirer le titre */
    margin: 0 auto;
    padding: 0 var(--bt-gutter);
    text-align: center;
}
.bt-dest-hero__overline {
    color: var(--bt-sand);
    font-family: var(--bt-font-body);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .3em;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-bottom: 24px;
}
.bt-dest-hero__overline::before,
.bt-dest-hero__overline::after {
    content: '';
    width: 36px; height: 1px;
    background: var(--bt-sand);
}
.bt-dest-hero__title {
    font-family: var(--bt-font-display);
    color: var(--bt-white);
    font-size: clamp(56px, 7vw, 110px);
    font-weight: 300;
    line-height: 1;
    letter-spacing: -0.015em;
    margin: 0 auto 24px;
    max-width: 14ch;
    display: block;
}
.bt-dest-hero__title em { font-style: italic; font-weight: 400; }
.bt-dest-hero__lead {
    font-size: 17px;
    color: rgba(255, 255, 255, .82);
    max-width: 600px;
    line-height: 1.65;
    margin: 0 auto;
}
.bt-dest-hero .bt-scroll-hint {
    color: rgba(255, 255, 255, .5);
    margin-top: 48px;
    position: relative;
    bottom: auto;
    left: auto;
    transform: none;
    display: inline-block;
}

/* Variante alternative : titre à gauche pour un look plus magazine
   .bt-dest-hero--left .bt-dest-hero__inner { text-align: left; max-width: 1440px; }
   .bt-dest-hero--left .bt-dest-hero__title { margin-left: 0; max-width: 18ch; }
*/

/* CONTENU Elementor — wrapper qui aère le contenu existant */
.bt-dest-content {
    background: var(--bt-paper);
    padding: 100px 0;
}
.bt-dest-content__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 32px;
}
@media (max-width: 768px) {
    .bt-dest-content { padding: 60px 0; }
    .bt-dest-content__inner { padding: 0 20px; }
}

/* Override le rendu Elementor pour matcher le design BT */
.bt-dest-content .elementor h1,
.bt-dest-content .elementor h2,
.bt-dest-content .elementor h3,
.bt-dest-content .elementor h4 {
    font-family: var(--bt-font-display) !important;
    font-weight: 400 !important;
    letter-spacing: -0.01em;
    color: var(--bt-black) !important;
}
.bt-dest-content .elementor h1 { font-size: clamp(48px, 6vw, 80px) !important; font-style: italic; }
.bt-dest-content .elementor h2 { font-size: clamp(36px, 4vw, 56px) !important; font-style: italic; }
.bt-dest-content .elementor h3 { font-size: clamp(24px, 2.6vw, 36px) !important; }

.bt-dest-content .elementor-widget-text-editor {
    font-family: var(--bt-font-body);
    font-size: 17px;
    line-height: 1.75;
    color: var(--bt-graphite);
}
.bt-dest-content .elementor-widget-text-editor p { margin: 0 0 1.4em; }

/* Photos — pleines largeurs et belles */
.bt-dest-content .elementor-widget-image img {
    width: 100% !important;
    height: auto !important;
    display: block;
    transition: transform .8s var(--bt-ease);
}
.bt-dest-content .elementor-widget-image:hover img { transform: scale(1.01); }

/* Boutons Elementor → look BT */
.bt-dest-content .elementor-button {
    border-radius: 0 !important;
    background: var(--bt-black) !important;
    color: var(--bt-white) !important;
    font-family: var(--bt-font-body) !important;
    text-transform: uppercase !important;
    letter-spacing: .22em !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    padding: 16px 36px !important;
    transition: background .3s ease;
}
.bt-dest-content .elementor-button:hover {
    background: var(--bt-sand) !important;
    color: var(--bt-black) !important;
}

/* Formulaires Elementor existants → on les masque pour utiliser le nôtre */
.bt-dest-content .elementor-widget-form,
.bt-dest-content .elementor-form {
    display: none !important;
}

/* Cache les widgets vides ou décoratifs trop chargés */
.bt-dest-content .elementor-widget-spacer { display: none !important; }

/* CTA — formulaire concevoir mon voyage */
.bt-dest-cta {
    background: var(--bt-black);
    color: var(--bt-white);
    padding: 120px 0;
}
.bt-dest-cta__grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 80px;
    align-items: start;
}
@media (max-width: 1024px) {
    .bt-dest-cta__grid { grid-template-columns: 1fr; gap: 48px; }
    .bt-dest-cta { padding: 80px 0; }
}
.bt-dest-cta .bt-overline {
    color: var(--bt-sand);
    margin-bottom: 24px;
}
.bt-dest-cta__title {
    font-family: var(--bt-font-display);
    font-size: clamp(40px, 5vw, 72px);
    color: var(--bt-white);
    font-weight: 300;
    line-height: 1.05;
    margin: 0 0 24px;
}
.bt-dest-cta__title em { font-style: italic; font-weight: 400; }
.bt-dest-cta__lead {
    color: rgba(255, 255, 255, .75);
    font-size: 17px;
    line-height: 1.7;
    max-width: 480px;
}

.bt-dest-form {
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .1);
    padding: 36px 36px 32px;
}
@media (max-width: 600px) { .bt-dest-form { padding: 24px; } }

.bt-dest-form__row { margin-bottom: 18px; }
.bt-dest-form__row--2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}
@media (max-width: 600px) { .bt-dest-form__row--2 { grid-template-columns: 1fr; } }

.bt-dest-form .bt-form-field label {
    display: block;
    font-size: 11px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .55);
    margin-bottom: 6px;
    font-weight: 500;
}
.bt-dest-form .bt-form-field input,
.bt-dest-form .bt-form-field select,
.bt-dest-form .bt-form-field textarea {
    width: 100%;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .15);
    background: transparent;
    padding: 10px 0;
    font-family: var(--bt-font-display);
    font-size: 18px;
    color: var(--bt-white);
    outline: none;
    border-radius: 0;
    resize: vertical;
}
.bt-dest-form .bt-form-field textarea {
    font-family: var(--bt-font-body);
    font-size: 15px;
    line-height: 1.6;
    min-height: 100px;
}
.bt-dest-form .bt-form-field input:focus,
.bt-dest-form .bt-form-field select:focus,
.bt-dest-form .bt-form-field textarea:focus {
    border-bottom-color: var(--bt-sand);
}
.bt-dest-form .bt-form-field select { color-scheme: dark; }

.bt-dest-form .bt-account-submit {
    background: var(--bt-white);
    color: var(--bt-black);
    margin-top: 12px;
}
.bt-dest-form .bt-account-submit:hover {
    background: var(--bt-sand);
    color: var(--bt-black);
}

.bt-dest-form__note {
    text-align: center;
    color: rgba(255, 255, 255, .5);
    font-size: 12px;
    font-style: italic;
    margin: 12px 0 0;
}

/* AUTRES DESTINATIONS */
.bt-dest-others {
    padding: 120px 0;
    background: var(--bt-paper);
}
.bt-dest-others__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}
@media (max-width: 1024px) { .bt-dest-others__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .bt-dest-others__grid { grid-template-columns: 1fr; } }

.bt-dest-others__card {
    display: block;
    color: var(--bt-black);
    overflow: hidden;
    text-decoration: none;
}
.bt-dest-others__media {
    aspect-ratio: 4 / 5;
    background-size: cover;
    background-position: center;
    margin-bottom: 16px;
    transition: transform .8s var(--bt-ease);
}
.bt-dest-others__card:hover .bt-dest-others__media {
    transform: scale(1.04);
    opacity: 1;
}
.bt-dest-others__sub {
    font-size: 11px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-sand);
    margin-bottom: 6px;
    display: block;
}
.bt-dest-others__body h3 {
    font-family: var(--bt-font-display);
    font-size: 24px;
    font-weight: 400;
    margin: 0;
    color: var(--bt-black);
}

/* Pill "Notre voyage" dans l'autocomplete (pour distinguer destinations locales) */
.pcm-rh-pill {
    display: inline-block;
    background: var(--bt-sand);
    color: var(--bt-black);
    padding: 2px 8px;
    font-size: 9px;
    font-weight: 500;
    letter-spacing: .15em;
    text-transform: uppercase;
    margin-right: 8px;
    vertical-align: middle;
}

/* =========================================================================
   HÔTELS RECOMMANDÉS sur les pages destinations
   ========================================================================= */

.bt-dest-hotels {
    padding: 120px 0;
    background: var(--bt-white);
}
@media (max-width: 768px) { .bt-dest-hotels { padding: 80px 0; } }

.bt-dest-hotels__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    margin-bottom: 48px;
}
@media (max-width: 1024px) { .bt-dest-hotels__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px)  { .bt-dest-hotels__grid { grid-template-columns: 1fr; } }

.bt-dest-hotel {
    display: flex;
    flex-direction: column;
    background: var(--bt-white);
}
.bt-dest-hotel__media {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    position: relative;
    margin-bottom: 16px;
}
.bt-dest-hotel__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1s var(--bt-ease);
}
.bt-dest-hotel:hover .bt-dest-hotel__media img { transform: scale(1.06); }
.bt-dest-hotel__stars {
    position: absolute;
    top: 14px;
    left: 14px;
    background: rgba(10, 10, 10, .7);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: var(--bt-sand);
    padding: 4px 10px;
    font-size: 11px;
    letter-spacing: .2em;
}

.bt-dest-hotel__body { display: flex; flex-direction: column; gap: 6px; }
.bt-dest-hotel__neighborhood {
    font-size: 11px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-sand);
}
.bt-dest-hotel__name {
    font-family: var(--bt-font-display);
    font-size: 26px;
    font-weight: 400;
    line-height: 1.15;
    margin: 4px 0 6px;
}
.bt-dest-hotel__name a { color: var(--bt-black); }
.bt-dest-hotel__name a:hover { color: var(--bt-sand); opacity: 1; }

.bt-dest-hotel__rating {
    display: flex;
    align-items: baseline;
    gap: 8px;
    color: var(--bt-stone);
    font-size: 13px;
    margin-bottom: 6px;
}
.bt-dest-hotel__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;
    letter-spacing: .02em;
}
.bt-dest-hotel__rating span { color: var(--bt-graphite); font-weight: 500; }
.bt-dest-hotel__rating small { color: var(--bt-fog); }

.bt-dest-hotel__price {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-top: 8px;
    padding-top: 14px;
    border-top: 1px solid var(--bt-mist);
}
.bt-dest-hotel__price .bt-from {
    font-size: 11px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--bt-stone);
}
.bt-dest-hotel__price strong {
    font-family: var(--bt-font-display);
    font-size: 28px;
    color: var(--bt-black);
    font-weight: 500;
    line-height: 1;
}
.bt-dest-hotel__price small {
    color: var(--bt-stone);
    font-size: 12px;
}

/* CTA "Voir tous les hôtels en X" */
.bt-dest-hotels__cta {
    text-align: center;
    padding-top: 48px;
    border-top: 1px solid var(--bt-mist);
}
.bt-dest-hotels__cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 18px 36px;
    background: var(--bt-black);
    color: var(--bt-white);
    font-family: var(--bt-font-body);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .25em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background .3s var(--bt-ease);
}
.bt-dest-hotels__cta-btn:hover {
    background: var(--bt-sand);
    color: var(--bt-black);
    opacity: 1;
}
.bt-dest-hotels__cta-btn span {
    font-size: 18px;
    transition: transform .3s var(--bt-ease);
}
.bt-dest-hotels__cta-btn:hover span { transform: translateX(4px); }

/* =========================================================================
   FIXES & POLISH PAGE DESTINATION
   ========================================================================= */

/* PHOTOS HÔTELS — fix display (l'élément <a> media doit être block + non collapse) */
.bt-dest-hotels__grid .bt-dest-hotel__media {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    position: relative;
    margin-bottom: 16px;
    background: var(--bt-mist);
    width: 100%;
    text-decoration: none;
}
.bt-dest-hotels__grid .bt-dest-hotel__media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    transition: transform .8s var(--bt-ease);
    position: absolute;
    inset: 0;
}
.bt-dest-hotels__grid .bt-dest-hotel:hover .bt-dest-hotel__media img {
    transform: scale(1.06);
}

/* CONTENU ELEMENTOR — refonte pour cohérence éditoriale Black Tomato */

.bt-dest-content {
    padding: 100px 0 80px;
    background: var(--bt-paper);
}
.bt-dest-content__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 32px;
}

/* On masque les containers vides / spacers Elementor moches */
.bt-dest-content .elementor-widget-spacer,
.bt-dest-content .elementor-element-empty,
.bt-dest-content .elementor-widget-form,
.bt-dest-content .elementor-form,
.bt-dest-content .elementor-widget-divider {
    display: none !important;
}

/* Containers Elementor → grid centré, padding standardisé */
.bt-dest-content .elementor-section,
.bt-dest-content .e-con-full,
.bt-dest-content .e-con,
.bt-dest-content .elementor-container {
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    background: transparent !important;
    padding-top: 0 !important;
    padding-bottom: 32px !important;
}

/* Titres Elementor → typo Cormorant éditoriale */
.bt-dest-content .elementor h1,
.bt-dest-content .elementor h2,
.bt-dest-content .elementor h3,
.bt-dest-content .elementor h4,
.bt-dest-content .elementor h5 {
    font-family: var(--bt-font-display) !important;
    font-weight: 400 !important;
    letter-spacing: -0.01em !important;
    color: var(--bt-black) !important;
    line-height: 1.1 !important;
}
.bt-dest-content .elementor h1 {
    font-size: clamp(48px, 6vw, 80px) !important;
    font-style: italic !important;
    text-align: center !important;
    margin: 60px auto 32px !important;
    max-width: 16ch !important;
}
.bt-dest-content .elementor h2 {
    font-size: clamp(36px, 4.5vw, 56px) !important;
    font-style: italic !important;
    text-align: center !important;
    margin: 60px auto 24px !important;
    max-width: 18ch !important;
}
.bt-dest-content .elementor h3 {
    font-size: clamp(28px, 3vw, 42px) !important;
    margin: 40px 0 20px !important;
}
.bt-dest-content .elementor h4 {
    font-size: 24px !important;
    margin: 32px 0 16px !important;
}

/* Texte editor Elementor → typo body lisible */
.bt-dest-content .elementor-widget-text-editor {
    font-family: var(--bt-font-body) !important;
    font-size: 17px !important;
    line-height: 1.8 !important;
    color: var(--bt-graphite) !important;
    max-width: 720px;
    margin: 0 auto 32px;
}
.bt-dest-content .elementor-widget-text-editor p {
    margin: 0 0 1.4em !important;
    text-align: left !important;
    font-family: var(--bt-font-body) !important;
}
.bt-dest-content .elementor-widget-text-editor p:first-of-type {
    font-size: 19px;
    color: var(--bt-ink);
    line-height: 1.7;
}

/* Images Elementor — pleine largeur, aspect cadré */
.bt-dest-content .elementor-widget-image {
    margin: 32px auto !important;
    max-width: 1100px;
}
.bt-dest-content .elementor-widget-image .elementor-widget-container {
    overflow: hidden;
}
.bt-dest-content .elementor-widget-image img {
    width: 100% !important;
    height: auto !important;
    max-height: 600px !important;
    object-fit: cover !important;
    display: block !important;
    transition: transform 1s var(--bt-ease);
    margin: 0 !important;
}
.bt-dest-content .elementor-widget-image:hover img {
    transform: scale(1.02);
}

/* Carousel d'images Elementor (slider) */
.bt-dest-content .elementor-widget-image-carousel,
.bt-dest-content .elementor-image-carousel-wrapper,
.bt-dest-content .swiper {
    margin: 48px auto !important;
    max-width: 1200px;
}
.bt-dest-content .swiper-slide img {
    width: 100% !important;
    height: 400px !important;
    object-fit: cover !important;
}

/* Boutons Elementor → look BT */
.bt-dest-content .elementor-button-wrapper {
    text-align: center;
    margin: 32px 0 !important;
}
.bt-dest-content .elementor-button {
    border-radius: 0 !important;
    background: var(--bt-black) !important;
    color: var(--bt-white) !important;
    font-family: var(--bt-font-body) !important;
    text-transform: uppercase !important;
    letter-spacing: .25em !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    padding: 18px 36px !important;
    transition: background .3s ease;
    box-shadow: none !important;
    border: 0 !important;
}
.bt-dest-content .elementor-button:hover {
    background: var(--bt-sand) !important;
    color: var(--bt-black) !important;
}

/* Liste / Bullets — accent sablé */
.bt-dest-content .elementor ul li::marker {
    color: var(--bt-sand);
}
.bt-dest-content .elementor ul {
    max-width: 720px;
    margin: 0 auto 32px;
    padding-left: 24px;
}
.bt-dest-content .elementor ul li {
    margin: 8px 0;
    font-family: var(--bt-font-body);
    font-size: 17px;
    color: var(--bt-graphite);
    line-height: 1.7;
}

/* Headings Elementor avec couleurs forcées par le thème original (bleu, rouge, etc.)
   → on les remet en noir BT */
.bt-dest-content .elementor h1[style*="color"],
.bt-dest-content .elementor h2[style*="color"],
.bt-dest-content .elementor h3[style*="color"],
.bt-dest-content .elementor h4[style*="color"] {
    color: var(--bt-black) !important;
}

/* Containers avec border-radius bizarres (corners arrondis Elementor) → rectangulaire BT */
.bt-dest-content .elementor [class*="border-radius"],
.bt-dest-content .elementor [style*="border-radius"] {
    border-radius: 0 !important;
}

/* Containers avec backgrounds colorés → on neutralise */
.bt-dest-content .elementor [style*="background-color"] {
    background: transparent !important;
}

/* Padding hérité gros / vertical excessif */
.bt-dest-content .e-con-full,
.bt-dest-content .e-con {
    padding-top: 24px !important;
    padding-bottom: 24px !important;
}

/* Heading widget : centré + overline générée pour le 1er h2 */
.bt-dest-content > .bt-dest-content__inner > .elementor:first-of-type h2:first-of-type::before {
    content: 'Découvrir';
    display: block;
    font-family: var(--bt-font-body);
    font-size: 11px;
    font-style: normal;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--bt-sand);
    margin-bottom: 20px;
    font-weight: 500;
}

/* =========================================================================
   MENU MOBILE — override agressif Hello Elementor
   La croix (.bt-burger--open) apparaissait rose à cause des styles du thème parent.
   ========================================================================= */
@media (max-width: 960px) {
    /* Burger button : 100% transparent, peu importe ce que le thème parent injecte */
    button.bt-burger,
    .bt-burger {
        background: transparent !important;
        background-color: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
        outline: none !important;
        padding: 0 !important;
        width: 32px !important;
        height: 24px !important;
        position: relative !important;
        z-index: 1001 !important;
        cursor: pointer !important;
        border-radius: 0 !important;
    }
    button.bt-burger:hover,
    .bt-burger:hover,
    button.bt-burger:focus,
    .bt-burger:focus {
        background: transparent !important;
        background-color: transparent !important;
    }
    /* Barres de la croix : toujours blanches */
    .bt-burger span,
    button.bt-burger span {
        background: var(--bt-white, #fff) !important;
        background-color: var(--bt-white, #fff) !important;
        position: absolute !important;
        left: 0 !important;
        right: 0 !important;
        height: 1.5px !important;
        transition: transform .3s ease, opacity .25s ease !important;
        border: 0 !important;
    }

    /* Menu : plein écran, opaque, par-dessus tout */
    .bt-nav.bt-nav--open,
    .bt-nav--open {
        display: flex !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;
        background: var(--bt-black, #0a0a0a) !important;
        background-color: var(--bt-black, #0a0a0a) !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 0 !important;
        padding: 96px 32px 40px !important;
        z-index: 9998 !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
    }
}

/* =========================================================================
   MENU MOBILE — la croix doit flotter par-dessus le menu plein écran
   ========================================================================= */
@media (max-width: 960px) {
    /* Quand le menu est ouvert, le burger devient une croix flottante en haut à droite */
    .bt-burger.bt-burger--open,
    button.bt-burger.bt-burger--open {
        position: fixed !important;
        top: 24px !important;
        right: 24px !important;
        width: 40px !important;
        height: 40px !important;
        z-index: 10000 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        background: transparent !important;
        border: 1px solid rgba(255, 255, 255, .2) !important;
        border-radius: 50% !important;
        padding: 0 !important;
    }
    /* Réinitialise position des spans pour la croix */
    .bt-burger.bt-burger--open span {
        position: absolute !important;
        left: 50% !important;
        top: 50% !important;
        width: 18px !important;
        right: auto !important;
        background: var(--bt-white, #fff) !important;
    }
    .bt-burger.bt-burger--open span:nth-child(1) {
        transform: translate(-50%, -50%) rotate(45deg) !important;
    }
    .bt-burger.bt-burger--open span:nth-child(2) {
        opacity: 0 !important;
    }
    .bt-burger.bt-burger--open span:nth-child(3) {
        transform: translate(-50%, -50%) rotate(-45deg) !important;
        bottom: auto !important;
    }
    .bt-burger.bt-burger--open:hover,
    button.bt-burger.bt-burger--open:hover {
        background: rgba(255, 255, 255, .08) !important;
        border-color: var(--bt-sand, #c9a880) !important;
    }
}
