/* Le moteur de réservation HBook aux couleurs du site.
   HBook impose ses boutons et ses champs avec !important : on les reprend ici, sous
   « body.lha-page », avec un sélecteur plus précis. Rien n'est masqué de ce qui fait
   fonctionner les étapes (hbook.css reste chargé). */

body.lha-page .hbook-wrapper{font-family:var(--lha-sans);color:var(--lha-ink)}
body.lha-page .hbook-wrapper *{box-sizing:border-box}
body.lha-page .hbook-wrapper p{padding:0}
body.lha-page .hbook-wrapper .hb-title{
  font:600 20px/1.3 var(--lha-display)!important; letter-spacing:-.01em; color:var(--lha-ink);
  margin:0 0 14px; padding:0;
}
body.lha-page .hbook-wrapper .hb-title-search-form{
  font:600 13px/1 var(--lha-sans)!important; letter-spacing:.09em; text-transform:uppercase; color:var(--lha-muted);
}

/* ---------- champs ---------- */
body.lha-page .hbook-wrapper label,
body.lha-page .hbook-wrapper .lha-hb-label{
  display:block; font:600 14px/1.3 var(--lha-sans); color:var(--lha-ink); margin:0 0 6px;
}
body.lha-page .lha-hb-label small{font-weight:400;color:var(--lha-muted);font-size:13px}
body.lha-page .hbook-wrapper input[type="text"],
body.lha-page .hbook-wrapper input[type="email"],
body.lha-page .hbook-wrapper input[type="tel"],
body.lha-page .hbook-wrapper input[type="number"],
body.lha-page .hbook-wrapper select,
body.lha-page .hbook-wrapper textarea,
body.lha-page .hbook-wrapper .selectize-input{
  width:100%; min-height:50px!important; height:auto!important;
  padding:12px 14px!important; background:#fff!important;
  border:1px solid var(--lha-border-strong)!important; border-radius:var(--lha-r-md)!important;
  font:400 16px/1.35 var(--lha-sans)!important; color:var(--lha-ink)!important; box-shadow:none!important;
  transition:border-color .15s ease, box-shadow .15s ease!important;
}
body.lha-page .hbook-wrapper textarea{min-height:110px!important}
body.lha-page .hbook-wrapper input:hover,
body.lha-page .hbook-wrapper select:hover,
body.lha-page .hbook-wrapper .selectize-input:hover{border-color:var(--lha-ink)!important}
body.lha-page .hbook-wrapper input:focus,
body.lha-page .hbook-wrapper select:focus,
body.lha-page .hbook-wrapper textarea:focus,
body.lha-page .hbook-wrapper .selectize-input.focus{
  border-color:var(--lha-ink)!important; outline:3px solid var(--lha-accent)!important; outline-offset:1px;
}
body.lha-page .hbook-wrapper input::placeholder{color:#8a8f86;opacity:1}
body.lha-page .hbook-wrapper .hb-input-datepicker{cursor:pointer;padding-right:44px!important;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235c645c' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2.5'/%3E%3Cpath d='M3.5 10h17M8.5 3v4M15.5 3v4'/%3E%3C/svg%3E") right 14px center/20px no-repeat!important}
body.lha-page .hbook-wrapper .form-error,
body.lha-page .hbook-wrapper .hb-search-error,
body.lha-page .hbook-wrapper .hb-confirm-error{color:#b3261e!important;font-size:14px;line-height:1.45}
body.lha-page .hbook-wrapper input.error,
body.lha-page .hbook-wrapper select.error{border-color:#b3261e!important}

/* ---------- boutons ---------- */
body.lha-page .hbook-wrapper input[type="submit"],
body.lha-page .hbook-wrapper input[type="button"],
body.lha-page .hbook-wrapper .hb-step-button input,
body.lha-page .hbook-wrapper input.hb-apply-coupon{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:50px; height:auto!important; padding:14px 24px!important;
  background:var(--lha-accent)!important; color:#fff!important; border:0!important;
  border-radius:var(--lha-r-md)!important; font:600 16px/1.2 var(--lha-sans)!important;
  cursor:pointer; transition:background-color .15s ease, transform .1s ease!important; -webkit-appearance:none;
}
body.lha-page .hbook-wrapper input[type="submit"]:hover,
body.lha-page .hbook-wrapper input[type="button"]:hover{background:var(--lha-accent-h)!important}
body.lha-page .hbook-wrapper input[type="submit"]:active,
body.lha-page .hbook-wrapper input[type="button"]:active{transform:translateY(1px)}
body.lha-page .hbook-wrapper input[type="submit"]:focus-visible,
body.lha-page .hbook-wrapper input[type="button"]:focus-visible{outline:3px solid var(--lha-ink)!important;outline-offset:2px}
/* boutons secondaires : précédent, modifier la recherche, appliquer le code */
body.lha-page .hbook-wrapper .hb-previous-step input,
body.lha-page .hbook-wrapper .hb-change-search-wrapper input,
body.lha-page .hbook-wrapper input.hb-apply-coupon{
  background:#fff!important; color:var(--lha-ink)!important; box-shadow:inset 0 0 0 1px var(--lha-border-strong)!important;
}
body.lha-page .hbook-wrapper .hb-previous-step input:hover,
body.lha-page .hbook-wrapper .hb-change-search-wrapper input:hover,
body.lha-page .hbook-wrapper input.hb-apply-coupon:hover{background:var(--lha-sage100)!important;box-shadow:inset 0 0 0 1px var(--lha-ink)!important}

/* ---------- formulaire de recherche : une ligne sur grand écran ---------- */
body.lha-page .hbook-wrapper .hb-booking-search-form{max-width:none;margin:0}
body.lha-page .hbook-wrapper .hb-search-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}
body.lha-page .hbook-wrapper .hb-search-fields > p{float:none!important;width:auto!important;margin:0!important;padding:0!important;flex:1 1 200px}
body.lha-page .hbook-wrapper .hb-search-fields > p.hb-search-button-wrapper{flex:0 0 auto}
body.lha-page .hbook-wrapper .hb-search-fields > p.hb-search-button-wrapper input{width:100%}
body.lha-page .hbook-wrapper .hb-search-fields > p[style*="display: none"],
body.lha-page .hbook-wrapper .hb-search-fields > p.hb-people-wrapper{flex-basis:140px}
/* le résumé n'apparaît qu'après une recherche (HBook l'affiche en « display: block ») */
body.lha-page .hbook-wrapper .hb-searched-summary{
  flex-wrap:wrap; align-items:center; gap:6px 20px; padding:16px 18px;
  background:var(--lha-sage100); border-radius:var(--lha-r-md); font-size:15px;
}
body.lha-page .hbook-wrapper .hb-searched-summary[style*="block"]{display:flex!important}
body.lha-page .hbook-wrapper .hb-searched-summary p{float:none!important;width:auto!important;margin:0!important}
body.lha-page .hbook-wrapper .hb-searched-summary span{font-weight:600}
body.lha-page .hbook-wrapper .hb-searched-summary .hb-change-search-wrapper{margin-left:auto!important}
body.lha-page .hbook-wrapper .hb-booking-searching{font-size:15px;color:var(--lha-muted);margin-top:12px}
body.lha-page .hbook-wrapper .hb-search-no-result{font-size:15px;line-height:1.5;margin-top:12px}

/* recherche seule (accueil, Nos vans) : fond clair, ancrée dans son bloc */
body.lha-page .lha .lha-resa-recherche .hbook-wrapper{
  background:#fff; border:1px solid var(--lha-border); border-radius:var(--lha-r-lg);
  padding:20px 22px 22px; box-shadow:0 18px 40px -28px rgba(27,42,34,.45);
}

/* ---------- résultats : une carte par van ---------- */
body.lha-page .hbook-wrapper .hb-accom-list{max-width:none;margin:24px 0 0}
body.lha-page .hbook-wrapper .hb-search-result-title-section p{font-size:15px;color:var(--lha-muted);margin:0 0 4px}
body.lha-page .hbook-wrapper .hb-multi-accom-choices{display:flex;flex-direction:column;gap:14px}
body.lha-page .hbook-wrapper .hb-accom{
  display:grid; grid-template-columns:150px minmax(0,1fr) auto; grid-template-areas:"img titre prix" "img desc prix" "img detail choix";
  column-gap:20px; row-gap:6px; align-items:start;
  padding:18px!important; margin:0!important; background:#fff; border:1px solid var(--lha-border)!important;
  border-radius:var(--lha-r-lg); transition:border-color .15s ease, box-shadow .2s ease;
}
body.lha-page .hbook-wrapper .hb-accom:hover{border-color:var(--lha-border-strong)!important;box-shadow:0 14px 30px -20px rgba(27,42,34,.4)}
body.lha-page .hbook-wrapper .hb-accom.hb-accom-selected{border-color:var(--lha-primary)!important;box-shadow:inset 0 0 0 1px var(--lha-primary)}
body.lha-page .hbook-wrapper .hb-accom > a{grid-area:img;display:block;background:var(--lha-sunken);border-radius:var(--lha-r-md);pointer-events:none}
body.lha-page .hbook-wrapper .hb-accom-img{float:none!important;width:150px!important;height:auto!important;aspect-ratio:1;object-fit:contain;margin:0!important;display:block}
body.lha-page .hbook-wrapper .hb-accom-title{grid-area:titre;font:600 21px/1.25 var(--lha-display);letter-spacing:-.01em;color:var(--lha-ink)}
body.lha-page .hbook-wrapper .hb-accom-desc{grid-area:desc;font-size:14px;line-height:1.55;color:var(--lha-muted);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
body.lha-page .hbook-wrapper .hb-accom-price-total{grid-area:prix;text-align:right;margin:0!important;float:none!important}
body.lha-page .hbook-wrapper .hb-accom-price{font:600 26px/1.1 var(--lha-display)!important;color:var(--lha-ink);font-variant-numeric:tabular-nums;float:none!important}
body.lha-page .hbook-wrapper .hb-accom-price-caption{font-size:13px;color:var(--lha-muted);float:none!important;text-align:right}
body.lha-page .hbook-wrapper .hb-accom-price-caption a{color:var(--lha-primary);text-underline-offset:3px}
body.lha-page .hbook-wrapper .hb-price-breakdown{grid-area:detail;font-size:13px;line-height:1.5;color:var(--lha-muted);margin:4px 0 0!important}
body.lha-page .hbook-wrapper .hb-price-breakdown span{display:block}
body.lha-page .hbook-wrapper .hb-select-accom-wrapper{grid-area:choix;align-self:end;margin:0!important}
body.lha-page .hbook-wrapper .hb-select-accom-wrapper p{margin:0!important;float:none!important}
body.lha-page .hbook-wrapper .hb-accom-selected-left-wrapper{grid-column:2 / -1;font-size:14px;color:var(--lha-primary);font-weight:600;margin:0!important}

/* ---------- options ---------- */
body.lha-page .hbook-wrapper .hb-options-form{max-width:none}
body.lha-page .hbook-wrapper .hb-option{
  display:flex; align-items:center; gap:12px; padding:12px 4px; margin:0!important;
  border-top:1px solid var(--lha-border); font-size:15px; line-height:1.45;
}
body.lha-page .hbook-wrapper .hb-option:first-of-type{border-top:0}
body.lha-page .hbook-wrapper .hb-option label{display:inline;font-weight:400;margin:0}
body.lha-page .hbook-wrapper .hb-option label b{font-weight:600}
body.lha-page .hbook-wrapper .hb-option input[type="checkbox"]{width:20px;height:20px;accent-color:var(--lha-primary);margin:0 10px 0 0;vertical-align:-4px}
body.lha-page .hbook-wrapper .hb-quantity-option input[type="number"]{width:90px;min-height:44px!important}

/* ---------- coordonnées, récapitulatif, paiement ---------- */
body.lha-page .hbook-wrapper .hb-booking-details-form{max-width:none}
body.lha-page .hbook-wrapper .hb-booking-details-form > * + *{margin-top:20px}
body.lha-page .hbook-wrapper .hb-column-half,
body.lha-page .hbook-wrapper .hb-column-third{padding:0 6px 0 0}
body.lha-page .hbook-wrapper .hb-booking-details-form p{margin:0 0 14px}
body.lha-page .hbook-wrapper .hb-coupons-area,
body.lha-page .hbook-wrapper .hb-summary-wrapper,
body.lha-page .hbook-wrapper .hb-policies-area,
body.lha-page .hbook-wrapper .hb-payment-info-wrapper{
  background:var(--lha-sunken); border-radius:var(--lha-r-md); padding:18px 20px!important;
}
body.lha-page .hbook-wrapper .hb-summary-wrapper:empty,
body.lha-page .hbook-wrapper .hb-summary-wrapper:not(:has(*)){display:none}
body.lha-page .hbook-wrapper .hb-policies-area label{font-weight:400;display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.5}
body.lha-page .hbook-wrapper .hb-policies-area input[type="checkbox"]{width:20px;height:20px;flex:0 0 20px;accent-color:var(--lha-primary);margin-top:2px}
body.lha-page .hbook-wrapper .hb-policies-area a{color:var(--lha-accent)}
body.lha-page .hbook-wrapper .hb-resa-done-msg,
body.lha-page .hbook-wrapper .hb-resa-payment-msg{
  background:var(--lha-sage100); border-radius:var(--lha-r-md); padding:18px 20px; font-size:16px; line-height:1.55;
}

/* ---------- calendrier (ouvert au-dessus de la page) ---------- */
body.lha-page .hb-datepick-popup-wrapper{
  border-radius:var(--lha-r-lg); border:1px solid var(--lha-border);
  box-shadow:0 24px 60px -24px rgba(27,42,34,.5), 0 2px 6px rgba(27,42,34,.08)!important;
  font-family:var(--lha-sans); overflow:hidden;
}
body.lha-page .hb-dp-month-header{font:600 16px/1.3 var(--lha-display);color:var(--lha-ink)}
body.lha-page .hb-dp-cmd-wrapper a,
body.lha-page .hb-dp-cmd-close,
body.lha-page .hb-people-popup-wrapper-close{background:var(--lha-forest900)!important;border-radius:8px}
body.lha-page .hb-dp-cmd-wrapper a:hover,
body.lha-page .hb-dp-cmd-close:hover{background:var(--lha-primary)!important}
body.lha-page .hb-day-available,
body.lha-page .hb-avail-caption-available{background:#dfe8d6!important}
body.lha-page .hb-dp-day-check-in,
body.lha-page .hb-dp-day-check-out{background:var(--lha-primary)!important;color:#fff!important}
body.lha-page .hb-day-taken-start:before,
body.lha-page .hb-day-taken-end:before,
body.lha-page .hb-day-fully-taken,
body.lha-page .hb-avail-caption-occupied{background:#ecd9cc!important}

/* ---------- mobile ---------- */
@media (max-width:767px){
  body.lha-page .hbook-wrapper .hb-search-fields > p{flex:1 1 100%}
  body.lha-page .hbook-wrapper .hb-accom{
    grid-template-columns:96px minmax(0,1fr); grid-template-areas:"img titre" "img prix" "desc desc" "detail detail" "choix choix";
    padding:16px!important;
  }
  body.lha-page .hbook-wrapper .hb-accom-img{width:96px!important}
  body.lha-page .hbook-wrapper .hb-accom-price-total{text-align:left}
  body.lha-page .hbook-wrapper .hb-accom-price-caption{text-align:left}
  body.lha-page .hbook-wrapper .hb-select-accom-wrapper input{width:100%}
  body.lha-page .hbook-wrapper .hb-column-half,
  body.lha-page .hbook-wrapper .hb-column-third{width:100%!important;float:none!important;padding:0}
  body.lha-page .lha .lha-resa-recherche .hbook-wrapper{padding:16px}
}
@media (prefers-reduced-motion:reduce){
  body.lha-page .hbook-wrapper *{transition:none!important}
}
