/*
Theme Name: RentalHive Child
Template: rentalhive
Description: Les Extras — Version Finale Pro
Version: 19.0
*/

/* ═══════════════════════════════════════════════════════════════
   DESIGN SYSTEM — Les Extras v16
   Inspiré de Malt, Doctolib, Alan
   ═══════════════════════════════════════════════════════════════ */

/* ── Tokens ────────────────────────────────────────────────── */
:root {
  --red:      #DC2626;
  --red-h:    #B91C1C;
  --red-10:   rgba(220,38,38,.1);
  --blue:     #1E40AF;
  --blue-h:   #1E3A8A;
  --green:    #15803D;
  --amber:    #B45309;
  --grey-msg: #6B7280;
  --ink:      #111827;
  --ink-2:    #374151;
  --ink-3:    #6B7280;
  --ink-4:    #9CA3AF;
  --border:   #E5E7EB;
  --border-2: #D1D5DB;
  --bg:       #F9FAFB;
  --white:    #FFFFFF;
  --r:        10px;
  --r-lg:     16px;
  --r-full:   9999px;
  --shadow:   0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);
  --shadow-md:0 4px 16px rgba(0,0,0,.08);
  --shadow-lg:0 16px 48px rgba(0,0,0,.14);
  --t:        .18s cubic-bezier(.4,0,.2,1);
}

/* ── Reset minimal ─────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

/* ══════════════════════════════════════════════════════════════
   1. HOMEPAGE — fond blanc
   ══════════════════════════════════════════════════════════════ */
body.home,
body.home .site-main,
body.home #main {
    background-color: var(--white) !important;
}

/* ══════════════════════════════════════════════════════════════
   2. CARTES — uniformité parfaite
   Scopé sur les grilles et carousels uniquement
   ══════════════════════════════════════════════════════════════ */

/* Image fixe 200px — écrase le data-aspect-ratio JS de HP */
.hp-listings .hp-listing__image,
.slick-track .hp-listing__image,
.hp-grid    .hp-listing__image {
    height:     200px !important;
    min-height: 200px !important;
    max-height: 200px !important;
    overflow:   hidden !important;
    display:    block !important;
    flex-shrink: 0 !important;
}
.hp-listings .hp-listing__image img,
.slick-track .hp-listing__image img,
.hp-grid    .hp-listing__image img {
    width:           100% !important;
    height:          100% !important;
    object-fit:      cover !important;
    object-position: center !important;
    display:         block !important;
    transition:      transform .4s ease !important;
}
.hp-listings .hp-listing:hover .hp-listing__image img,
.slick-track .hp-listing:hover .hp-listing__image img {
    transform: scale(1.04) !important;
}

/* Carte flex colonne — footer toujours en bas */
.hp-listings .hp-listing,
.slick-track .hp-listing,
.hp-grid    .hp-listing {
    display:        flex !important;
    flex-direction: column !important;
    transition:     box-shadow var(--t), transform var(--t) !important;
    border-radius:  var(--r-lg) !important;
    overflow:       hidden !important;
}
.hp-listings .hp-listing:hover,
.slick-track .hp-listing:hover {
    transform:  translateY(-3px) !important;
    box-shadow: var(--shadow-lg) !important;
}
.hp-listings .hp-listing .hp-listing__content,
.slick-track .hp-listing .hp-listing__content {
    flex: 1 !important;
}

/* Prix sur les cartes — ambre */
.hp-listings .hp-listing__attribute--price,
.slick-track .hp-listing__attribute--price,
.hp-grid    .hp-listing__attribute--price {
    font-size:   18px !important;
    font-weight: 800 !important;
    color:       var(--amber) !important;
    letter-spacing: -.3px !important;
}

/* ══════════════════════════════════════════════════════════════
   3. PAGE PRODUIT — .single-hp_listing
   ══════════════════════════════════════════════════════════════ */

/* Prix sidebar — grand, ambre, immédiat */
.single-hp_listing .hp-listing__attribute--price {
    font-size:   28px !important;
    font-weight: 800 !important;
    color:       var(--amber) !important;
    letter-spacing: -1px !important;
    display:     block !important;
    padding:     16px 20px 8px !important;
    margin:      0 !important;
    line-height: 1 !important;
}

/* Sidebar sticky */
.single-hp_listing .sidebar {
    position:   sticky !important;
    top:        80px !important;
    max-height: calc(100vh - 96px) !important;
    overflow-y: auto !important;
    scrollbar-width: none !important;
}
.single-hp_listing .sidebar::-webkit-scrollbar { display: none !important; }

/* Bouton "Réserver maintenant" → rouge, toujours actif */
.single-hp_listing .hp-form--booking-make .hp-form__button,
.single-hp_listing .hp-form--booking-make button[type="submit"],
.single-hp_listing .hp-form--booking-make input[type="submit"] {
    background:     var(--red)   !important;
    color:          #fff         !important;
    border:         none         !important;
    border-radius:  var(--r-full)!important;
    width:          100%         !important;
    padding:        14px         !important;
    font-size:      15px         !important;
    font-weight:    700          !important;
    cursor:         pointer      !important;
    opacity:        1            !important;
    pointer-events: auto         !important;
    transition:     all var(--t) !important;
    box-shadow:     0 3px 12px rgba(220,38,38,.3) !important;
    letter-spacing: .1px         !important;
}
.single-hp_listing .hp-form--booking-make .hp-form__button:hover {
    background:  var(--red-h) !important;
    transform:   translateY(-2px) !important;
    box-shadow:  0 6px 20px rgba(220,38,38,.4) !important;
}

/* Bouton "Envoyer un message" → gris */
.single-hp_listing .hp-listing__action--message,
.single-hp_listing button.hp-listing__action--message {
    background:       var(--grey-msg) !important;
    background-color: var(--grey-msg) !important;
    color:            #fff !important;
    border:           none !important;
    border-radius:    var(--r-full) !important;
    width:            100% !important;
    padding:          12px !important;
    font-size:        14px !important;
    font-weight:      600 !important;
    cursor:           pointer !important;
    transition:       all var(--t) !important;
    display:          block !important;
    text-align:       center !important;
}
.single-hp_listing .hp-listing__action--message:hover {
    background:       #4B5563 !important;
    background-color: #4B5563 !important;
}

/* Bouton "Demander un devis" → bleu marine */
.single-hp_listing .hp-listing__action--quote,
.single-hp_listing button#leOpenDevis {
    display:         block      !important;
    width:           100%       !important;
    background:      var(--blue)!important;
    color:           #fff       !important;
    border:          none       !important;
    border-radius:   var(--r-full) !important;
    padding:         12px 20px  !important;
    text-align:      center     !important;
    font-size:       14px       !important;
    font-weight:     600        !important;
    cursor:          pointer    !important;
    transition:      all var(--t) !important;
    text-decoration: none       !important;
    box-shadow:      0 2px 8px rgba(30,64,175,.3) !important;
}
.single-hp_listing .hp-listing__action--quote:hover,
.single-hp_listing button#leOpenDevis:hover {
    background:  var(--blue-h) !important;
    color:       #fff !important;
    transform:   translateY(-2px) !important;
}

/* Zone d'actions */
.single-hp_listing .hp-listing__actions {
    display:        flex !important;
    flex-direction: column !important;
    gap:            8px !important;
    padding:        10px 16px 14px !important;
}

/* WhatsApp */
.le-wa-btn {
    display:         flex        !important;
    align-items:     center      !important;
    justify-content: center      !important;
    gap:             7px         !important;
    width:           100%        !important;
    background:      #25D366     !important;
    color:           #fff        !important;
    border:          none        !important;
    border-radius:   var(--r-full) !important;
    padding:         11px 20px   !important;
    text-decoration: none        !important;
    font-weight:     600         !important;
    font-size:       14px        !important;
    transition:      all var(--t)!important;
    font-family:     inherit     !important;
}
.le-wa-btn:hover {
    background: #1da851 !important;
    color:      #fff    !important;
    transform:  translateY(-2px) !important;
}

/* Flatpickr */
.single-hp_listing .flatpickr-calendar {
    z-index: 99999999 !important;
    border-radius: var(--r) !important;
    box-shadow: var(--shadow-lg) !important;
}
.single-hp_listing .flatpickr-day.selected,
.single-hp_listing .flatpickr-day.selected:hover {
    background:   var(--red) !important;
    border-color: var(--red) !important;
}

/* ══════════════════════════════════════════════════════════════
   4. WIDGETS CONVERSION SIDEBAR (injectés via PHP HP blocks)
   ══════════════════════════════════════════════════════════════ */

/* Social proof */
.le-social-proof {
    display:     flex;
    align-items: center;
    flex-wrap:   wrap;
    gap:         5px 10px;
    padding:     10px 16px;
    font-size:   13px;
    color:       var(--ink-3);
    background:  var(--bg);
    border-top:  1px solid var(--border);
    border-bottom: 1px solid var(--border);
}
.le-sp-item strong { color: var(--ink); font-weight: 700; }
.le-sp-sep         { color: var(--border-2); }

/* Badges */
.le-badges-row {
    display:   flex;
    flex-wrap: wrap;
    gap:       5px;
    padding:   8px 16px 6px;
}
.le-badge {
    display:       inline-flex;
    align-items:   center;
    gap:           4px;
    font-size:     11px;
    font-weight:   700;
    padding:       4px 10px;
    border-radius: var(--r-full);
    white-space:   nowrap;
    letter-spacing: .2px;
}
.le-badge--blue  { background: #EFF6FF; color: #1D4ED8; border: 1px solid #BFDBFE; }
.le-badge--green { background: #F0FDF4; color: var(--green); border: 1px solid #BBF7D0; }
.le-badge--amber { background: #FFFBEB; color: var(--amber); border: 1px solid #FDE68A; }

/* Prix × interventions */
.le-price-calc {
    display:     none;
    font-size:   13px;
    color:       var(--ink-3);
    padding:     2px 16px 6px;
    line-height: 1.5;
}
.le-price-calc strong { color: var(--amber); font-weight: 700; }

/* Timer 72h */
.le-response-timer {
    display:       flex;
    align-items:   center;
    gap:           10px;
    margin:        6px 16px 8px;
    padding:       11px 14px;
    background:    #F0FDF4;
    border:        1px solid #BBF7D0;
    border-radius: var(--r);
}
.le-timer-icon { font-size: 20px; flex-shrink: 0; }
.le-timer-text { font-size: 13px; color: #166534; line-height: 1.45; }
.le-timer-text strong { display: block; font-size: 13.5px; font-weight: 700; }

/* Alerte aucun créneau */
.le-no-slot {
    background:    #FFFBEB;
    border:        1px solid #FDE68A;
    border-radius: var(--r);
    padding:       10px 14px;
    font-size:     13px;
    color:         #92400E;
    line-height:   1.6;
    margin:        0 0 8px;
}
.le-no-slot strong { display: block; font-weight: 700; margin-bottom: 2px; }

/* ── QR Code + partage ──────────────────────────────────────── */
.le-qr-block {
    padding:    12px 16px 14px;
    border-top: 1px solid var(--border);
    text-align: center;
}
.le-qr-label {
    font-size:      11px;
    font-weight:    700;
    color:          var(--ink-4);
    margin-bottom:  10px;
    text-transform: uppercase;
    letter-spacing: .5px;
}
#leQRCanvas {
    display:       block !important;
    margin:        0 auto 10px !important;
    border-radius: 8px !important;
    border:        1px solid var(--border) !important;
    /* Pas de width/height CSS — géré par attributs HTML + QRious */
}
.le-qr-btns { display: flex; gap: 6px; justify-content: center; margin-bottom: 10px; }
.le-btn-sm {
    font-size:     11.5px;
    font-weight:   600;
    padding:       6px 12px;
    border-radius: var(--r-full);
    border:        1px solid var(--border);
    background:    var(--white);
    color:         var(--ink-2);
    cursor:        pointer;
    transition:    var(--t);
    font-family:   inherit;
}
.le-btn-sm:hover { background: var(--bg); border-color: var(--border-2); }

/* Grille de partage */
.le-share-grid {
    display:               grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap:                   5px;
}
.le-share-link {
    display:         flex;
    align-items:     center;
    justify-content: center;
    gap:             4px;
    padding:         6px 8px;
    border-radius:   var(--r);
    font-size:       11.5px;
    font-weight:     600;
    text-decoration: none;
    transition:      all var(--t);
    border:          1px solid transparent;
    cursor:          pointer;
    font-family:     inherit;
    white-space:     nowrap;
}
.le-share-link:hover { transform: translateY(-1px); box-shadow: var(--shadow); }
.le-share-fb   { background: #1877F2; color: #fff; }
.le-share-fb:hover { background: #1565C0; color: #fff; }
.le-share-li   { background: #0A66C2; color: #fff; }
.le-share-li:hover { background: #084B8A; color: #fff; }
.le-share-tw   { background: #000; color: #fff; }
.le-share-tw:hover { background: #222; color: #fff; }
.le-share-wa   { background: #25D366; color: #fff; }
.le-share-wa:hover { background: #1da851; color: #fff; }
.le-share-mail { background: var(--bg); color: var(--ink-2); border-color: var(--border); }
.le-share-mail:hover { background: var(--white); }
.le-share-copy { background: var(--bg); color: var(--ink-2); border-color: var(--border); }
.le-share-copy:hover { background: var(--white); }

/* ══════════════════════════════════════════════════════════════
   5. FAQ ACCORDÉON
   ══════════════════════════════════════════════════════════════ */
.le-faq-wrap {
    margin-top:   32px;
    padding-top:  28px;
    border-top:   2px solid var(--bg);
}
.le-faq-title {
    font-size:     20px;
    font-weight:   800;
    color:         var(--ink);
    margin-bottom: 16px;
    letter-spacing: -.3px;
}
.le-faq-item {
    border:        1px solid var(--border);
    border-radius: var(--r);
    margin-bottom: 6px;
    overflow:      hidden;
    transition:    border-color var(--t);
}
.le-faq-item.open { border-color: var(--blue); }
.le-faq-q {
    width:       100%;
    background:  var(--white);
    border:      none;
    padding:     14px 18px;
    text-align:  left;
    font-size:   14.5px;
    font-weight: 600;
    color:       var(--ink);
    cursor:      pointer;
    display:     flex;
    justify-content: space-between;
    align-items: center;
    gap:         12px;
    font-family: inherit;
    transition:  background var(--t);
    line-height: 1.4;
}
.le-faq-q:hover { background: var(--bg); }
.le-faq-item.open .le-faq-q { color: var(--blue); background: #EFF6FF; }
.le-faq-icon {
    font-size:   18px;
    flex-shrink: 0;
    color:       var(--ink-4);
    transition:  transform .25s ease;
    font-weight: 300;
    line-height: 1;
}
.le-faq-item.open .le-faq-icon { transform: rotate(45deg); color: var(--blue); }
.le-faq-a {
    max-height:  0;
    overflow:    hidden;
    transition:  max-height .3s ease, padding .3s ease;
    font-size:   14px;
    color:       var(--ink-2);
    line-height: 1.75;
    background:  var(--bg);
    padding:     0 18px;
}
.le-faq-item.open .le-faq-a {
    max-height: 300px;
    padding:    12px 18px 14px;
}

/* ══════════════════════════════════════════════════════════════
   6. EXIT INTENT
   ══════════════════════════════════════════════════════════════ */
.le-exit-overlay {
    display:         none;
    position:        fixed;
    inset:           0;
    background:      rgba(0,0,0,.55);
    z-index:         99998;
    backdrop-filter: blur(4px);
    align-items:     center;
    justify-content: center;
}
.le-exit-overlay.visible { display: flex; }
.le-exit-box {
    background:    var(--white);
    border-radius: var(--r-lg);
    max-width:     460px;
    width:         92%;
    padding:       36px 32px;
    text-align:    center;
    position:      relative;
    box-shadow:    var(--shadow-lg);
    animation:     lePopIn .3s cubic-bezier(.2,.8,.4,1) both;
}
@keyframes lePopIn {
    from { opacity:0; transform: scale(.92) translateY(20px); }
    to   { opacity:1; transform: scale(1)   translateY(0); }
}
.le-exit-emoji  { font-size: 44px; margin-bottom: 10px; }
.le-exit-box h3 { font-size: 22px; font-weight: 800; color: var(--ink); margin-bottom: 8px; letter-spacing: -.3px; }
.le-exit-box p  { font-size: 14px; color: var(--ink-2); margin-bottom: 22px; line-height: 1.7; }
.le-exit-close  { position: absolute; top: 14px; right: 16px; background: none; border: none; font-size: 22px; color: var(--ink-4); cursor: pointer; }
.le-exit-close:hover { color: var(--ink); }
.le-exit-cta {
    display:       block;
    width:         100%;
    background:    var(--red);
    color:         #fff;
    border:        none;
    border-radius: var(--r-full);
    padding:       14px;
    font-size:     15px;
    font-weight:   700;
    cursor:        pointer;
    font-family:   inherit;
    margin-bottom: 10px;
    transition:    all var(--t);
    text-decoration: none;
    box-shadow:    0 3px 12px rgba(220,38,38,.3);
}
.le-exit-cta:hover { background: var(--red-h); color: #fff; transform: translateY(-2px); }
.le-exit-dismiss { font-size: 13px; color: var(--ink-4); cursor: pointer; background: none; border: none; font-family: inherit; }
.le-exit-dismiss:hover { color: var(--ink-2); }

/* ══════════════════════════════════════════════════════════════
   7. STICKY BAR MOBILE
   ══════════════════════════════════════════════════════════════ */
.le-sticky-bar {
    position:   fixed;
    bottom:     0; left: 0; right: 0;
    background: var(--white);
    border-top: 1px solid var(--border);
    padding:    12px 16px env(safe-area-inset-bottom, 0px);
    display:    none;
    align-items: center;
    gap:        12px;
    z-index:    500;
    box-shadow: 0 -4px 20px rgba(0,0,0,.1);
}
.le-sticky-bar--visible { display: flex !important; }
.le-sticky-price {
    font-size:   20px;
    font-weight: 800;
    color:       var(--amber);
    flex:        1;
    letter-spacing: -.3px;
}
.le-sticky-cta {
    background:    var(--blue);
    color:         #fff;
    border:        none;
    border-radius: var(--r-full);
    padding:       11px 20px;
    font-size:     14px;
    font-weight:   700;
    cursor:        pointer;
    font-family:   inherit;
    white-space:   nowrap;
    transition:    var(--t);
}
.le-sticky-cta:hover { background: var(--blue-h); }
@media (max-width: 768px) { .le-sticky-bar { display: flex; } }

/* ══════════════════════════════════════════════════════════════
   8. MODALE DEVIS
   ══════════════════════════════════════════════════════════════ */
.le-modal-wrap {
    background:    var(--white);
    border-radius: var(--r-lg);
    max-width:     560px;
    width:         95%;
    overflow:      visible !important;
    box-shadow:    var(--shadow-lg);
}
.le-modal-head {
    background:    var(--ink);
    padding:       22px 28px;
    border-radius: var(--r-lg) var(--r-lg) 0 0;
    text-align:    center;
}
.le-modal-head h3 { color: #fff; font-size: 18px; font-weight: 700; margin: 0; }
.le-modal-head p  { color: rgba(255,255,255,.55); font-size: 13px; margin: 5px 0 0; }
.le-modal-body    { padding: 22px 28px; }

.le-field { margin-bottom: 13px; }
.le-field label {
    display:        block;
    margin-bottom:  5px;
    font-size:      11px;
    font-weight:    700;
    text-transform: uppercase;
    letter-spacing: .5px;
    color:          var(--ink-4);
}
.le-opt { font-weight: 400; text-transform: none; }
.le-field input,
.le-field textarea {
    width:         100%;
    padding:       10px 13px;
    border:        1.5px solid var(--border);
    border-radius: var(--r);
    font-size:     14px;
    font-family:   inherit;
    color:         var(--ink);
    background:    var(--bg);
    box-sizing:    border-box;
    transition:    border var(--t), box-shadow var(--t);
}
.le-field input:focus,
.le-field textarea:focus {
    border-color: var(--red);
    box-shadow:   0 0 0 3px var(--red-10);
    background:   var(--white);
    outline:      none;
}
.le-row { display: flex; gap: 12px; }
.le-row .le-field { flex: 1; }
@media(max-width:480px) { .le-row { flex-direction: column; gap: 0; } }

.le-submit-btn {
    width:         100%;
    background:    var(--red);
    color:         #fff;
    border:        none;
    border-radius: var(--r-full);
    padding:       14px;
    font-size:     15px;
    font-weight:   700;
    cursor:        pointer;
    font-family:   inherit;
    margin-top:    8px;
    transition:    all var(--t);
    box-shadow:    0 3px 12px rgba(220,38,38,.3);
    letter-spacing: .1px;
}
.le-submit-btn:hover    { background: var(--red-h); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(220,38,38,.4); }
.le-submit-btn:disabled { opacity: .6; transform: none; cursor: not-allowed; }

.le-form-note { text-align: center; font-size: 12px; color: var(--ink-4); margin-top: 8px; }

/* Guest login modal */
.le-guest-modal {
    background:    var(--white);
    border-radius: var(--r-lg);
    max-width:     400px;
    width:         95%;
    padding:       36px 30px;
    text-align:    center;
    box-shadow:    var(--shadow-lg);
}
.le-guest-modal h3 { font-size: 20px; font-weight: 700; color: var(--ink); margin: 10px 0 8px; }
.le-guest-modal p  { font-size: 14px; color: var(--ink-2); margin-bottom: 22px; line-height: 1.7; }
.le-gm-btn {
    display:         block;
    width:           100%;
    padding:         13px;
    border-radius:   var(--r-full);
    font-size:       14px;
    font-weight:     600;
    text-decoration: none;
    text-align:      center;
    margin-bottom:   8px;
    font-family:     inherit;
    transition:      var(--t);
    cursor:          pointer;
    border:          none;
}
.le-gm-btn-primary   { background: var(--red); color: #fff; }
.le-gm-btn-primary:hover { background: var(--red-h); color: #fff; }
.le-gm-btn-secondary { background: var(--bg); color: var(--ink); border: 1.5px solid var(--border); }

/* ══════════════════════════════════════════════════════════════
   9. TOAST NOTIFICATION
   ══════════════════════════════════════════════════════════════ */
.le-toast {
    position:    fixed;
    top:         24px;
    left:        50%;
    transform:   translateX(-50%);
    z-index:     999999;
    padding:     14px 24px;
    border-radius: var(--r);
    font-size:   14px;
    font-weight: 600;
    box-shadow:  var(--shadow-lg);
    max-width:   520px;
    width:       92%;
    text-align:  center;
    display:     none;
    animation:   leSlideDown .3s ease both;
}
.le-toast--success { background: #F0FDF4; border: 1px solid #BBF7D0; color: var(--green); }
.le-toast--error   { background: #FEF2F2; border: 1px solid #FECACA; color: var(--red-h); }
@keyframes leSlideDown {
    from { opacity:0; transform: translateX(-50%) translateY(-12px); }
    to   { opacity:1; transform: translateX(-50%) translateY(0); }
}

/* ══════════════════════════════════════════════════════════════
   10. SCROLL TO TOP
   ══════════════════════════════════════════════════════════════ */
#leScrollTop {
    position:        fixed;
    bottom:          28px;
    right:           24px;
    width:           44px;
    height:          44px;
    background:      var(--ink);
    color:           #fff;
    border-radius:   50%;
    display:         flex;
    align-items:     center;
    justify-content: center;
    z-index:         400;
    opacity:         0;
    visibility:      hidden;
    transform:       translateY(10px);
    transition:      all .25s cubic-bezier(.4,0,.2,1);
    box-shadow:      var(--shadow-md);
    text-decoration: none;
}
#leScrollTop:hover { background: var(--red); transform: translateY(-2px); box-shadow: var(--shadow-lg); }
#leScrollTop.le-scroll-visible { opacity: 1; visibility: visible; transform: translateY(0); }

/* ══════════════════════════════════════════════════════════════
   11. ALERTE DISPONIBILITÉ
   ══════════════════════════════════════════════════════════════ */
.le-avail-form {
    background:    #F0F9FF;
    border:        1px solid #BAE6FD;
    border-radius: var(--r);
    padding:       13px 16px;
    margin-bottom: 8px;
}
.le-avail-form p { font-size: 13px; color: #0C4A6E; margin-bottom: 10px; line-height: 1.5; font-weight: 500; }
.le-avail-input-row { display: flex; gap: 6px; }
.le-avail-input {
    flex:          1;
    padding:       9px 12px;
    border:        1.5px solid #BAE6FD;
    border-radius: var(--r);
    font-size:     13px;
    font-family:   inherit;
    color:         var(--ink);
    background:    var(--white);
    min-width:     0;
}
.le-avail-input:focus { border-color: #0369A1; outline: none; }
.le-avail-btn {
    background:    #0369A1;
    color:         #fff;
    border:        none;
    border-radius: var(--r);
    padding:       9px 14px;
    font-size:     13px;
    font-weight:   600;
    cursor:        pointer;
    font-family:   inherit;
    white-space:   nowrap;
    flex-shrink:   0;
    transition:    var(--t);
}
.le-avail-btn:hover { background: #0284C7; }

/* ══════════════════════════════════════════════════════════════
   12. CACHER CHAMPS FORMULAIRE SOUMISSION
   ══════════════════════════════════════════════════════════════ */
.hp-form--listing-submit [data-name="min_guests"],
.hp-form--listing-submit [data-name="max_guests"],
.hp-form--listing-submit [data-name="_min_guests"],
.hp-form--listing-submit [data-name="_max_guests"],
.hp-form--listing-edit   [data-name="min_guests"],
.hp-form--listing-edit   [data-name="max_guests"] {
    display: none !important;
}

/* ══════════════════════════════════════════════════════════════
   13. FORMULAIRE CONTACT HOMEPAGE
   ══════════════════════════════════════════════════════════════ */
.le-contact-rapide {
    background:    var(--white);
    border:        1px solid var(--border);
    border-radius: var(--r-lg);
    padding:       36px 40px;
    max-width:     680px;
    margin:        0 auto;
    box-shadow:    var(--shadow-md);
}
.le-contact-rapide h3 { font-size: 22px; font-weight: 800; color: var(--ink); margin-bottom: 6px; letter-spacing: -.3px; }
.le-contact-sub { font-size: 14px; color: var(--ink-3); margin-bottom: 24px; }
.le-contact-rapide .le-field { margin-bottom: 14px; }
.le-contact-rapide .le-field label { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--ink-4); margin-bottom: 5px; }
.le-contact-rapide .le-field input,
.le-contact-rapide .le-field textarea,
.le-contact-rapide .le-field select { width: 100%; padding: 11px 14px; border: 1.5px solid var(--border); border-radius: var(--r); font-size: 14px; font-family: inherit; color: var(--ink); background: var(--bg); box-sizing: border-box; transition: border var(--t); }
.le-contact-rapide .le-field input:focus,
.le-contact-rapide .le-field textarea:focus,
.le-contact-rapide .le-field select:focus { border-color: var(--red); outline: none; background: var(--white); }
.le-contact-rapide .le-row { display: flex; gap: 14px; }
.le-contact-rapide .le-row .le-field { flex: 1; }
.le-contact-submit { width: 100%; background: var(--red); color: #fff; border: none; border-radius: var(--r-full); padding: 14px; font-size: 15px; font-weight: 700; cursor: pointer; font-family: inherit; margin-top: 6px; transition: all var(--t); box-shadow: 0 3px 12px rgba(220,38,38,.25); }
.le-contact-submit:hover { background: var(--red-h); transform: translateY(-2px); }
.le-contact-note { font-size: 12px; color: var(--ink-4); text-align: center; margin-top: 8px; }
@media(max-width:640px) { .le-contact-rapide { padding: 24px 18px; } .le-contact-rapide .le-row { flex-direction: column; gap: 0; } }

/* ══════════════════════════════════════════════════════════════
   14. RESPONSIVE
   ══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
    .single-hp_listing .sidebar {
        position:   relative !important;
        top:        auto     !important;
        max-height: none     !important;
    }
    .le-modal-body { padding: 18px 16px; }
    .le-row { flex-direction: column; gap: 0; }
    .single-hp_listing { padding-bottom: 80px !important; }
}


/* ── FIX BOUTON DEVIS CLIQUABLE ─────────────────────────────
   Le bloc PHP HP wrapper peut bloquer les events de clic     */
.single-hp_listing #leOpenDevis,
.single-hp_listing .hp-listing__action--quote {
    position:       relative  !important;
    z-index:        10        !important;
    pointer-events: auto      !important;
    cursor:         pointer   !important;
}
/* Bloc le_widgets HP — ne pas bloquer les clics enfants */
.single-hp_listing .le-widgets-wrap,
.single-hp_listing [class*="le-"] {
    pointer-events: auto !important;
}


/* ── MASQUAGE CHAMPS FORMULAIRE SOUMISSION ───────────────────
   Double sécurité : CSS + JS                                 */
/* Par data-name HP */
.hp-form--listing-submit [data-name="tags"],
.hp-form--listing-edit   [data-name="tags"],
.hp-form--listing-submit [data-name="min_guests"],
.hp-form--listing-edit   [data-name="min_guests"],
.hp-form--listing-submit [data-name="max_guests"],
.hp-form--listing-edit   [data-name="max_guests"],
.hp-form--listing-submit [data-name="_min_guests"],
.hp-form--listing-edit   [data-name="_min_guests"],
.hp-form--listing-submit [data-name="_max_guests"],
.hp-form--listing-edit   [data-name="_max_guests"],
.hp-form--listing-submit [data-name="booking_slot_duration"],
.hp-form--listing-edit   [data-name="booking_slot_duration"] {
    display: none !important;
}
.grecaptcha-badge,
.grecaptcha-badge iframe,
iframe[src*="recaptcha"],
iframe[title*="reCAPTCHA"] {
    display:    none !important;
    visibility: hidden !important;
    opacity:    0 !important;
}


/* ── CATALOGUE — titre casse normale ────────────────────────── */
.hp-listings .hp-listing__title a,
.hp-grid    .hp-listing__title a {
    text-transform: capitalize !important;
    font-size:      15px !important;
    font-weight:    700 !important;
    color:          #111827 !important;
    line-height:    1.35 !important;
}

/* ── CATALOGUE — hover card ─────────────────────────────────── */
.hp-listings .hp-listing,
.hp-grid    .hp-listing {
    border:        1px solid #E5E7EB !important;
    border-radius: 12px !important;
    overflow:      hidden !important;
    background:    #fff !important;
}
.hp-listings .hp-listing:hover,
.hp-grid    .hp-listing:hover {
    border-color: #D1D5DB !important;
}

/* ── RECAPTCHA — badge caché (double sécurité CSS) ──────────── */
.grecaptcha-badge,
.grecaptcha-badge iframe,
iframe[src*="recaptcha"],
iframe[title*="reCAPTCHA"] {
    display:    none !important;
    visibility: hidden !important;
    opacity:    0 !important;
}

/* ── PRINT — masquer les éléments inutiles ──────────────────── */
@media print {
    .le-sticky-bar,
    #leScrollTop,
    #leExitOverlay,
    .le-toast,
    header,
    footer,
    nav { display: none !important; }
    .single-hp_listing .sidebar {
        position: relative !important;
        width: 100% !important;
    }
}

/* ── ACCESSIBILITÉ — focus visible ──────────────────────────── */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 2px solid #DC2626 !important;
    outline-offset: 2px !important;
}