/* Listnova UI System 0.28.1
 * Reference: calendrier réservation V2 — surfaces claires, bordures fines,
 * grands rayons, ombres souples, accent rose et états secondaires doux.
 * Cette couche est volontairement chargée en dernier par le thème.
 */
:root{
  --ln-ui-surface:var(--ln-front-surface,#fff);
  --ln-ui-surface-soft:var(--ln-front-surface,#f8f9fb);
  --ln-ui-surface-green:var(--ln-front-surface-soft,#f4faf7);
  --ln-ui-line:var(--ln-front-border,#e5e8ec);
  --ln-ui-line-soft:var(--ln-front-surface-soft,#edf0f3);
  --ln-ui-ink:var(--ln-front-text,#1f2937);
  --ln-ui-text:var(--ln-front-muted,#475467);
  --ln-ui-muted:var(--ln-front-muted,#8a94a3);
  --ln-ui-accent:var(--e-global-color-accent,#ff174f);
  --ln-ui-accent-soft:var(--ln-front-surface-soft,#fff2f5);
  --ln-ui-accent-line:#ffc9d5;
  --ln-ui-radius-sm:10px;
  --ln-ui-radius-md:16px;
  --ln-ui-radius-lg:22px;
  --ln-ui-shadow:0 18px 48px rgba(16,24,40,.13);
  --ln-ui-shadow-soft:0 8px 28px rgba(16,24,40,.07);
}

/* Surfaces flottantes : même famille visuelle partout. */
html body .ln-header-popover__panel,
html body .ln-booking-modal__panel,
html body .ln-search-x__date-popover,
html body .ln-search-x__guest-popover,
html body .ln-search-x__filter-pop,
html body .ln-search-filter-drawer{
  border:1px solid var(--ln-ui-line)!important;
  background:var(--ln-ui-surface)!important;
  box-shadow:var(--ln-ui-shadow)!important;
}
html body .ln-header-popover__panel{border-radius:20px!important}
html body .ln-booking-modal__panel{border-radius:24px!important}
html body .ln-search-filter-drawer{border-radius:24px!important}

/* Contrôles Listnova : finition commune sans écraser la typo Elementor. */
html body .ln-form input:not([type="checkbox"]):not([type="radio"]),
html body .ln-form select,
html body .ln-form textarea,
html body .ln-search-filter-drawer input,
html body .ln-search-filter-drawer select,
html body .ln-search-x__filter-pop input,
html body .ln-search-x__filter-pop select{
  border-color:var(--ln-ui-line)!important;
  border-radius:12px!important;
  background:var(--ln-front-surface,#fff)!important;
  color:var(--ln-ui-ink)!important;
  box-shadow:none!important;
}
html body .ln-form input:focus,
html body .ln-form select:focus,
html body .ln-form textarea:focus,
html body .ln-search-filter-drawer input:focus,
html body .ln-search-filter-drawer select:focus,
html body .ln-search-x__filter-pop input:focus,
html body .ln-search-x__filter-pop select:focus{
  border-color:var(--ln-ui-accent-line)!important;
  outline:3px solid color-mix(in srgb,var(--ln-ui-accent) 10%,transparent)!important;
  outline-offset:0!important;
}

/* =========================
   RECHERCHE — CALENDRIER
   ========================= */
html body .ln-search-x__date-popover{
  width:min(570px,calc(100vw - 28px));
  padding:22px 22px 0;
  overflow:visible;
  border-radius:22px;
  transform-origin:top center;
}
html body .ln-search-x__date-popover:before{
  top:-7px;
  width:14px;
  height:14px;
  border-color:var(--ln-ui-line);
  background:var(--ln-front-surface,#fff);
}
html body .ln-search-x__date-popover>header{
  display:flex;
  min-height:44px;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin:0 0 18px;
  padding:0;
}
html body .ln-search-x__date-popover>header>div{display:grid;gap:3px}
html body .ln-search-x__date-popover>header strong{
  color:var(--ln-ui-ink);
  font-size:1.05rem;
  font-weight:850;
  line-height:1.2;
  letter-spacing:-.02em;
}
html body .ln-search-x__date-popover>header small{
  color:var(--ln-ui-muted);
  font-size:.74rem;
  font-weight:650;
  line-height:1.35;
}
html body .ln-search-x__date-popover>header button{
  display:grid;
  width:42px;
  height:42px;
  flex:0 0 42px;
  place-items:center;
  border:1px solid var(--ln-ui-line-soft);
  border-radius:13px;
  background:var(--ln-ui-surface-soft);
  color:var(--ln-front-muted,#667085);
  font-size:1.08rem;
  cursor:pointer;
}
html body .ln-search-x__date-popover>header button:hover{
  border-color:var(--ln-front-border,#dfe3e8);
  background:var(--ln-front-surface-soft,#f2f4f7);
  color:var(--ln-front-muted,#344054);
  transform:none;
}

/* Arrivée / départ — exactement le langage du calendrier réservation. */
html body .ln-search-x__date-summary{
  display:grid;
  grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);
  align-items:center;
  gap:6px;
  margin:0 0 20px;
  padding:8px;
  overflow:hidden;
  border:1px solid var(--ln-ui-line-soft);
  border-radius:17px;
  background:var(--ln-ui-surface-soft);
}
html body .ln-search-x__date-summary>button{
  min-height:76px;
  padding:13px 15px;
  border:1px solid transparent;
  border-radius:13px;
  background:transparent;
  box-shadow:none;
  text-align:left;
  transition:.15s ease;
}
html body .ln-search-x__date-summary>button small{
  display:block;
  margin-bottom:3px;
  color:var(--ln-front-muted,#98a2b3);
  font-size:.7rem;
  font-weight:760;
}
html body .ln-search-x__date-summary>button strong{
  display:block;
  color:var(--ln-front-muted,#475467);
  font-size:.94rem;
  font-weight:820;
  line-height:1.25;
}
html body .ln-search-x__date-summary>button.is-active{
  border-color:var(--ln-ui-accent-line);
  background:var(--ln-front-surface,#fff);
  box-shadow:0 3px 12px rgba(16,24,40,.05);
}
html body .ln-search-x__date-summary>button.is-active small,
html body .ln-search-x__date-summary>button.is-active strong{color:var(--ln-ui-accent)}
html body .ln-search-x__date-summary>i{color:#c4cbd4;font-size:1.1rem;text-align:center}

/* Mois et navigation. */
html body .ln-search-x__calendar-head{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 44px;
  align-items:center;
  gap:10px;
  margin:0 0 13px;
  padding:0;
}
html body .ln-search-x__calendar-head strong{
  color:var(--ln-front-text,#263142);
  font-size:1rem;
  font-weight:850;
  text-align:center;
  text-transform:capitalize;
}
html body .ln-search-x__calendar-head button{
  display:grid;
  width:42px;
  height:42px;
  place-items:center;
  border:1px solid var(--ln-ui-line);
  border-radius:13px;
  background:var(--ln-front-surface,#fff);
  color:var(--ln-front-muted,#667085);
  font-size:1rem;
  box-shadow:none;
}
html body .ln-search-x__calendar-head button:hover:not(:disabled){
  border-color:var(--ln-ui-accent-line);
  background:var(--ln-front-surface,#fff7f9);
  color:var(--ln-ui-accent);
}

/* Grille calendrier. */
html body .ln-search-x__weekdays,
html body .ln-search-x__calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:6px;
}
html body .ln-search-x__weekdays{margin:0 0 7px}
html body .ln-search-x__weekdays span{
  padding:4px 0;
  color:var(--ln-front-muted,#a0a8b5);
  font-size:.68rem;
  font-weight:800;
  text-align:center;
}
html body .ln-search-x__calendar-grid button{
  display:grid;
  min-height:58px;
  place-items:center;
  padding:6px 2px;
  border:1px solid transparent;
  border-radius:13px;
  background:var(--ln-front-surface,#fff);
  color:var(--ln-front-muted,#344054);
  font-size:.78rem;
  font-weight:800;
  box-shadow:none;
  cursor:pointer;
}
html body .ln-search-x__calendar-grid button:hover:not(:disabled):not(.is-arrival):not(.is-departure){
  border-color:var(--ln-front-border,#ffd6df);
  background:var(--ln-front-surface,#fff7f9);
  color:#c91847;
  transform:none;
}
html body .ln-search-x__calendar-grid button.is-range{
  border-color:var(--ln-front-border,#ffe0e7);
  border-radius:13px;
  background:var(--ln-front-surface-soft,#fff1f4);
  color:#a8143b;
}
html body .ln-search-x__calendar-grid button.is-arrival,
html body .ln-search-x__calendar-grid button.is-departure{
  border-color:var(--ln-ui-accent);
  border-radius:13px;
  background:var(--ln-ui-accent);
  color:#fff;
  box-shadow:0 7px 18px color-mix(in srgb,var(--ln-ui-accent) 20%,transparent);
}
html body .ln-search-x__calendar-grid button.is-outside{color:#c4cbd4}
html body .ln-search-x__calendar-grid button:disabled{
  border-color:var(--ln-front-border,#eef1f3);
  background:var(--ln-front-surface,#f8f9fa);
  color:#b8c0ca;
  text-decoration:line-through;
  text-decoration-thickness:1px;
  opacity:1;
  cursor:not-allowed;
}

/* Légende + barre d’action basse comme la référence. */
html body .ln-search-x__calendar-legend{
  display:flex;
  min-height:48px;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:18px 0 0;
  padding:14px 0;
  border-top:1px solid var(--ln-ui-line-soft);
}
html body .ln-search-x__calendar-legend>span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--ln-ui-muted);
  font-size:.72rem;
  font-weight:700;
}
html body .ln-search-x__calendar-legend>span>i{
  display:block;
  width:12px;
  height:12px;
  border-radius:4px;
  background:#ffc8d4;
}
html body .ln-search-x__calendar-legend>button{
  padding:0;
  border:0;
  background:transparent;
  color:var(--ln-front-muted,#667085);
  font:inherit;
  font-size:.72rem;
  font-weight:760;
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
}
html body .ln-search-x__date-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:0 -22px;
  padding:17px 22px;
  border-top:1px solid var(--ln-ui-line-soft);
  border-radius:0 0 22px 22px;
  background:var(--ln-front-surface,#fbfcfd);
}
html body .ln-search-x__date-actions>span{
  min-width:0;
  color:var(--ln-front-muted,#7c8798);
  font-size:.74rem;
  font-weight:700;
}
html body .ln-search-x__date-actions>button{
  min-width:120px;
  min-height:46px;
  padding:0 18px;
  border:1px solid var(--ln-front-border,#dfe4e8);
  border-radius:13px;
  background:var(--ln-front-surface,#fff);
  color:var(--ln-front-muted,#344054);
  font:inherit;
  font-size:.78rem;
  font-weight:820;
  cursor:pointer;
}
html body .ln-search-x__date-actions>button:hover{border-color:var(--ln-front-border,#cfd7dc);background:var(--ln-front-surface,#f8fafb)}

/* =========================
   RECHERCHE — VOYAGEURS / FILTRES
   ========================= */
html body .ln-search-x__guest-popover{
  width:min(390px,calc(100vw - 28px))!important;
  padding:18px!important;
  border-radius:20px!important;
}
html body .ln-search-x__guest-popover header{margin:0 0 4px!important;padding:0 0 12px!important}
html body .ln-search-x__guest-popover header strong{color:var(--ln-ui-ink)!important;font-size:.9rem!important;font-weight:830!important}
html body .ln-search-x__guest-popover header small{color:var(--ln-ui-muted)!important;font-size:.65rem!important}
html body .ln-search-x__guest-popover header button{
  width:34px!important;height:34px!important;border:1px solid var(--ln-ui-line-soft)!important;border-radius:10px!important;background:var(--ln-ui-surface-soft)!important;color:var(--ln-front-muted,#667085)!important
}
html body .ln-search-x__stepper{min-height:64px!important;padding:13px 1px!important;border-top:1px solid var(--ln-front-border,#f0f2f4)!important}
html body .ln-search-x__stepper strong{color:var(--ln-front-muted,#344054)!important;font-size:.78rem!important}
html body .ln-search-x__stepper small{color:var(--ln-front-muted,#98a2b3)!important;font-size:.6rem!important}
html body .ln-search-x__stepper>div:last-child{
  grid-template-columns:32px 36px 32px!important;
  gap:2px!important;
  padding:3px!important;
  border:1px solid var(--ln-front-border,#e8ebef)!important;
  border-radius:12px!important;
  background:var(--ln-ui-surface-soft)!important;
}
html body .ln-search-x__stepper button{
  width:32px!important;height:32px!important;border:0!important;border-radius:9px!important;background:var(--ln-front-surface,#fff)!important;color:var(--ln-front-muted,#475467)!important
}
html body .ln-search-x__guest-done{
  min-height:44px!important;margin-top:12px!important;border-radius:12px!important;background:var(--ln-ui-accent)!important;color:#fff!important
}
html body .ln-search-x__filter-pop{padding:16px!important;border-radius:17px!important}
html body .ln-search-x__filter-pop button{border-radius:11px!important;background:var(--ln-brand,#123f35)!important}
html body .ln-search-filter-drawer__content{padding:30px!important}
html body .ln-search-filter-drawer h2{color:var(--ln-ui-ink)!important}

/* Cartes, panneaux et sections Listnova : mêmes rayons / bordures, sans casser les gabarits. */
html body .ln-panel,
html body .ln-publish-section,
html body .ln-booking-recap-page__listing,
html body .ln-booking-recap-page__details,
html body .ln-booking-recap-page__options,
html body .ln-booking-recap-page__cancellation,
html body .ln-booking-recap-page__assurances,
html body .ln-booking-recap-page__checkout{
  border-color:var(--ln-ui-line)!important;
  border-radius:22px!important;
  box-shadow:var(--ln-ui-shadow-soft)!important;
}

@media(max-width:820px){
  html body .ln-search-x__date-popover{
    position:fixed!important;
    left:12px!important;
    right:12px!important;
    top:auto!important;
    bottom:12px!important;
    width:auto!important;
    max-height:84vh!important;
    overflow:auto!important;
    padding:18px 18px 0!important;
    border-radius:24px!important;
    z-index:1200!important;
  }
  html body .ln-search-x__date-popover:before{display:none!important}
  html body .ln-search-x__calendar-grid button{min-height:50px!important}
  html body .ln-search-x__date-actions{position:sticky!important;bottom:0!important;margin:0 -18px!important;padding:14px 18px calc(14px + env(safe-area-inset-bottom))!important;border-radius:0 0 24px 24px!important}
}
@media(max-width:560px){
  html body .ln-search-x__date-summary>button{min-height:66px!important;padding:11px 12px!important}
  html body .ln-search-x__calendar-grid{gap:4px!important}
  html body .ln-search-x__calendar-grid button{min-height:46px!important;border-radius:11px!important;font-size:.72rem!important}
  html body .ln-search-x__date-actions{align-items:stretch!important;flex-direction:column!important}
  html body .ln-search-x__date-actions>button{width:100%!important}
}
