/* ==========================================================================
   Le Nid des Lys — habillage
   ========================================================================== */

/* ---- Menu principal : place réservée pour le bloc compte ----
   Le sélecteur FR/EN ajoute une 7e entrée au menu. Or le menu est centré dans
   #access sur toute la largeur, tandis que le bloc « Se connecter / Inscription »
   (.user_menu) est en position:absolute à droite : le menu passait donc DESSOUS
   (chevauchement mesuré à 38 px en 1440, 63 px en 1280). On rogne la boîte de
   #access à droite de la largeur du bloc compte : le menu se recentre dans
   l'espace restant et ne peut plus le croiser. En dessous de 1101 px le thème
   bascule sur le menu mobile, la règle ne s'applique donc pas. */
@media (min-width: 1101px) {
    #access { padding-right: 180px; }
}

/* ---- Formulaire de recherche du hero : bouton qui passe à la ligne ----
   Le widget de recherche WPRentals se rétrécit à la largeur minimale de son
   contenu (chaîne shrink-to-fit jusqu'à .elementor-widget-wrap qui est en flex).
   Dans la colonne étroite du hero (~458 px à 1025, ~572 px à 1280), le formulaire
   ne fait que ~285 px : les 3 champs (Arrivée/Départ/Voyageurs à 25 % chacun)
   remplissent la ligne et le bouton « Rechercher » (96 px, plus large que le quart
   restant) bascule seul sur une 2e ligne. En anglais « Search » est plus court, le
   souci n'apparaît pas. On donne au formulaire une largeur explicite qui remplit sa
   colonne sans jamais la déborder : clamp(420px, 40vw, 520px) tient sur une seule
   ligne de 1025 px (col 458 → form 420) à 1440+ (form plafonné à 520). En dessous
   de 1025 px le hero s'empile en une colonne pleine largeur : le formulaire est
   alors naturellement large et chaque champ passe à 100 %, la règle ne s'applique
   donc pas. Scopé à la home (.home) pour ne pas toucher les autres formulaires de
   recherche (#search_wrapper des pages listing, barre sticky…). */
@media (min-width: 1025px) {
    .home .elementor-widget-Wprentals_Search_Form_Builder .wpestate-adv-holder {
        width: clamp(420px, 40vw, 520px);
        box-sizing: border-box;
    }
}

/* ---- Sélecteur de langue FR/EN ----
   Le switcher est une entrée de menu contenant DEUX liens. Le thème impose
   `#access li { display:inline-block }` et `#access li a { display:block;
   height:90px }` : sans la spécificité `#access`, nos règles étaient écrasées et
   les deux liens s'empilaient verticalement (li de 180 px, « FR » détaché
   au-dessus de « EN »). On force donc le li en inline-flex et on rend aux liens
   une hauteur naturelle, centrés dans la barre. */
.ndl-lang-switcher { display: flex; align-items: center; gap: 4px; }

#access li.ndl-lang-switcher,
.mobilex-menu li.ndl-lang-switcher {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    vertical-align: middle;
}
#access li.ndl-lang-switcher > a.ndl-lang,
.mobilex-menu li.ndl-lang-switcher > a.ndl-lang {
    display: inline-block;
    height: auto;
    line-height: 1.4;
    padding: 3px 8px;
}

.ndl-lang-switcher .ndl-lang {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    opacity: .6;
}
.ndl-lang-switcher .ndl-lang-current {
    opacity: 1;
    background: rgba(46, 125, 82, 0.14);
    color: #2e7d52;
}

/* ---- Pages éditoriales (À propos, Services) ---- */
.ndl-page { max-width: 820px; margin: 0 auto; }
.ndl-page h2 { font-size: 30px; color: #1f3d2b; margin: 0 0 14px; }
.ndl-page h3 { font-size: 21px; color: #1f3d2b; margin: 30px 0 8px; }
.ndl-page p { line-height: 1.75; color: #3f4c45; }
.ndl-values {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 20px;
    margin: 28px 0;
}
.ndl-value {
    background: #f4f7f5;
    border-radius: 14px;
    padding: 22px 20px;
}
.ndl-value i { color: #2e7d52; font-size: 22px; }
.ndl-value strong { display: block; margin: 10px 0 6px; font-size: 17px; color: #1f3d2b; }
.ndl-value span { font-size: 14.5px; line-height: 1.6; color: #5a6b60; }
.ndl-cta {
    background: #1f3d2b;
    border-radius: 16px;
    padding: 28px 26px;
    text-align: center;
    margin-top: 34px;
}
.ndl-cta, .ndl-cta p, .ndl-page .ndl-cta p { color: #fff; }
.ndl-cta a { color: #fff; text-decoration: underline; font-weight: 600; }

/* Prix mis en avant dans une carte service */
.ndl-value .ndl-price { color: #2e7d52; font-weight: 700; }

/* ---- Avis voyageurs ---- */
.ndl-reviews-block { margin: 28px 0; }
.ndl-reviews-title {
    font-size: 22px;
    color: #1f3d2b;
    margin-bottom: 16px;
}
.ndl-reviews-badge {
    font-size: 14px;
    font-weight: 600;
    color: #2e7d52;
    margin-left: 8px;
}
.ndl-reviews {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 20px;
}
.ndl-review-card {
    background: #fff;
    border: 1px solid #e6ece7;
    border-radius: 14px;
    padding: 20px;
    box-shadow: 0 4px 16px rgba(31, 61, 43, 0.05);
}
.ndl-review-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}
.ndl-review-avatar {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #1f3d2b;
    color: #fff;
    font-weight: 700;
    font-size: 17px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
}
.ndl-review-meta { display: flex; flex-direction: column; line-height: 1.3; }
.ndl-review-meta strong { font-size: 15px; color: #1f3d2b; }
.ndl-review-meta em { font-style: normal; font-size: 12.5px; color: #8a9a90; }
.ndl-review-source { margin-left: auto; font-size: 20px; }
.ndl-review-stars {
    color: #e0a92e;
    font-size: 14px;
    letter-spacing: 2px;
    margin-bottom: 8px;
}
.ndl-review-text {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.65;
    color: #3f4c45;
}

/* ---- Recommandations « Nos coups de cœur » ---- */
.ndl-reco-block { margin: 30px 0; }
.ndl-reco-title {
    font-size: 30px;
    color: #1f3d2b;
    text-align: center;
    margin: 0 0 22px;
}
.ndl-reco-single { margin-top: 40px; padding-top: 30px; border-top: 1px solid #e6ece7; }
.ndl-reco-single .ndl-reco-title { font-size: 22px; text-align: left; }

/* Bloc pleine largeur injecté en bas de fiche (avant le footer) */
.ndl-reco-fullwidth {
    margin: 0;
    padding: 50px 20px 56px;
    background: #f4f7f5;
    border-top: 1px solid #e6ece7;
}
.ndl-reco-fullwidth .ndl-reco-inner { max-width: 1180px; margin: 0 auto; }
.ndl-reco-fullwidth .ndl-reco-title { font-size: 26px; text-align: center; margin-bottom: 26px; }
.ndl-reco-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
    gap: 24px;
}
.ndl-reco-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 6px 22px rgba(31, 61, 43, 0.08);
    text-decoration: none;
    color: inherit;
    transition: transform .18s ease, box-shadow .18s ease;
}
.ndl-reco-card:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(31, 61, 43, 0.15); }
.ndl-reco-media {
    position: relative;
    display: block;
    height: 190px;
    background-size: cover;
    background-position: center;
    background-color: #dfe8e1;
}
.ndl-reco-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    background: #1f3d2b;
    color: #fff;
    font-size: 12.5px;
    font-weight: 600;
    padding: 5px 11px;
    border-radius: 999px;
    letter-spacing: .2px;
}
.ndl-reco-body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 6px; }
.ndl-reco-name { font-size: 17.5px; color: #1f3d2b; line-height: 1.3; }
.ndl-reco-metaline { font-size: 13.5px; color: #8a9a90; }
.ndl-reco-price { font-size: 14.5px; color: #3f4c45; margin-top: 2px; }
.ndl-reco-price .ndl-reco-from { color: #8a9a90; font-size: 13px; }
.ndl-reco-price strong { color: #2e7d52; font-size: 17px; }
.ndl-reco-price .ndl-reco-night { color: #8a9a90; font-size: 13px; }
.ndl-reco-cta {
    margin-top: 12px;
    align-self: flex-start;
    font-size: 14px;
    font-weight: 600;
    color: #2e7d52;
}
.ndl-reco-card:hover .ndl-reco-cta { text-decoration: underline; }

/* ---- Encart articles récents (Sorties & Activités) ---- */
.ndl-posts {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 22px;
    margin-top: 8px;
}
.ndl-post-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 6px 22px rgba(31, 61, 43, 0.07);
    text-decoration: none;
    color: inherit;
    transition: transform .18s ease, box-shadow .18s ease;
}
.ndl-post-card:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(31, 61, 43, 0.13); }
.ndl-post-img { height: 170px; background-size: cover; background-position: center; background-color: #dfe8e1; }
.ndl-post-body { padding: 18px 20px; display: flex; flex-direction: column; gap: 6px; }
.ndl-post-date { font-size: 12.5px; color: #8a9a90; }
.ndl-post-body strong { font-size: 17px; color: #1f3d2b; line-height: 1.3; }
.ndl-post-excerpt { font-size: 14px; color: #5a6b60; line-height: 1.55; }

/* ---- Paiement Mobile Money (PayGate) au checkout ---- */
.ndl-mm { margin-top: 14px; }
.ndl-mm-sep {
    text-align: center;
    border-top: 1px solid #e6ece7;
    margin: 16px 0 12px;
    line-height: 0;
}
.ndl-mm-sep span {
    background: #fff;
    padding: 0 12px;
    color: #8a9a90;
    font-size: 13px;
}
.ndl-mm-title { font-weight: 600; color: #1f3d2b; margin-bottom: 8px; }
.ndl-mm-title small { color: #8a9a90; font-weight: 400; }
.ndl-mm-btn {
    display: block;
    width: 100%;
    box-sizing: border-box;
    text-align: center;
    background: #f39200;      /* orange mobile money */
    color: #fff !important;
    border: 0;
    border-radius: 26px;
    padding: 13px 20px;
    font-weight: 600;
    font-size: 15px;
    cursor: pointer;
    text-decoration: none;
    transition: background .15s ease;
}
.ndl-mm-btn:hover { background: #d97e00; }
.ndl-mm-nets { display: flex; gap: 16px; margin-bottom: 10px; font-size: 14px; }
.ndl-mm-phone {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #d7e0d9;
    border-radius: 10px;
    padding: 11px 14px;
    margin-bottom: 10px;
    font-size: 15px;
}
.ndl-mm-msg { font-size: 13.5px; margin: 10px 0 0; }

/* Badges source */
.ndl-src { display: inline-flex; align-items: center; justify-content: center; }
.ndl-src-airbnb { color: #ff5a5f; font-size: 22px; }
.ndl-src-booking {
    width: 24px; height: 24px; border-radius: 6px;
    background: #003580; color: #fff; font-size: 12px; font-weight: 700;
}
.ndl-src-direct { color: #2e7d52; font-size: 18px; }
