/* Nîdwazô — améliorations esthétiques (surcouche du thème Twenty Seventeen) */
:root{
  --nid-green:#4f6f52;
  --nid-green-dark:#3c5640;
  --nid-cream:#f6f4ee;
}

/* ---- Sélecteur de langue (drapeaux) ---- */
/* Masquer la flèche décorative "défiler vers le contenu" du thème : elle télescope le switcher */
.menu-scroll-down{ display:none !important; }
.navigation-top .wrap{ position:relative; }
.nid-nav-right{
  position:absolute; right:8px; top:50%; transform:translateY(-50%); z-index:7;
  display:flex; align-items:center; gap:10px;
}
.nid-nav-right .nidwazo-cta{ margin:0; }
.nid-lang-switch{ position:relative; }
.nid-flag{ width:22px; height:15px; border-radius:2px; display:block; }
.nid-lang-btn{ display:flex; align-items:center; gap:5px; background:none; border:0; cursor:pointer; padding:6px; -webkit-appearance:none; appearance:none; }
.nid-lang-caret{
  width:0; height:0; display:inline-block;
  border-left:4px solid transparent;
  border-right:4px solid transparent;
  border-top:5px solid #767676;
}
.nid-lang-menu{
  position:absolute; right:0; top:calc(100% + 4px);
  background:#fff; border:1px solid #e4e4e4; border-radius:8px;
  box-shadow:0 8px 24px rgba(0,0,0,.14); padding:6px; display:none; min-width:160px; z-index:1001;
}
.nid-lang-menu.open{ display:block; }
.nid-lang-menu button{
  display:flex; align-items:center; gap:10px; width:100%;
  background:none; border:0; cursor:pointer; padding:8px 10px; border-radius:6px;
  font-size:14px; color:#333; text-align:left;
}
.nid-lang-menu button:hover{ background:#f2f2f2; }
.nid-lang-menu button[aria-current="true"]{ font-weight:700; color:var(--nid-green); }
@media(max-width:768px){
  /* Réserver + drapeau ancrés sur la ligne du toggle « Menu » (et non au milieu de la barre
     qui s'agrandit quand le menu s'ouvre) */
  .nid-nav-right{ right:6px; gap:6px; top:0 !important; height:49px; transform:none !important; }
  .nid-flag{ width:20px; height:14px; }
  .nid-nav-right .nidwazo-cta{ padding:.4em .8em; font-size:.72em; }
  .nid-lang-btn{ padding:4px; }
}
/* Logo cliquable dans le groupe de droite (avec Réserver + drapeau) : apparaît quand la barre
   devient fixe au défilement (desktop). Ne décale pas le texte du menu. */
.nid-nav-logo{ display:none; }
@media(min-width:769px){
  .site-navigation-fixed .nid-nav-logo{
    display:flex; align-items:center; line-height:0;
    position:absolute; left:8px; top:50%; transform:translateY(-50%); z-index:7;
  }
  .site-navigation-fixed .nid-nav-logo img{ display:block; height:36px; width:auto; }
  /* on laisse juste la place au logo à gauche : petit décalage du menu */
  .site-navigation-fixed .main-navigation{ padding-left:20px; }
}

/* ---- Rendu smartphone : lisibilité ---- */
@media(max-width:768px){
  .entry-content h3{ font-size:17px !important; }
  .entry-content{ font-size:16px; }
  .entry-content p, .entry-content li{ line-height:1.65; }
  /* Marges latérales un poil resserrées pour gagner en largeur utile */
  .wrap{ padding-left:1.2em; padding-right:1.2em; }
  /* Images de panneau plein écran (comme sur ordinateur) au lieu d'une bande écrasée */
  .nidwazo-panel .panel-image{ height:100vh !important; max-height:1000px; }
  /* Hero : image + bandeau menu (~54px) tiennent dans l'écran (comme sur ordinateur) */
  .custom-header, .custom-header-media{
    height:calc(100vh - 54px) !important;
    height:calc(100svh - 54px) !important;
    max-height:1000px !important;
  }
  /* Panneau du penseur : recadrer vers les 3/4 (statue à droite) au lieu du centre */
  .post-17 .panel-image{ background-position:75% center !important; }
}

/* ---- Couleur de marque : liens & titres de contenu ---- */
.entry-content a:not(.nidwazo-cta){
  color:var(--nid-green);
  text-decoration-color:rgba(79,111,82,.4);
}
.entry-content a:not(.nidwazo-cta):hover,
.entry-content a:not(.nidwazo-cta):focus{
  color:var(--nid-green-dark);
  text-decoration-color:currentColor;
}
.entry-content h2,
.entry-content h3{ color:var(--nid-green-dark); }

/* ---- Harmonisation typographique (identique sur toutes les pages) ---- */
/* Titre principal de page / panneau : grand et net (au lieu de 14px gras),
   responsive, toujours plus grand que les sous-titres */
.entry-title{
  font-size:clamp(23px, 3.1vw, 32px) !important;
  font-weight:700 !important;
  line-height:1.22 !important;
  letter-spacing:.5px !important;
  color:var(--nid-green-dark) !important;
  margin-bottom:.5em !important;
}
/* Réduire le grand espace sous le titre (thème : 64px) */
.entry-header{ margin-bottom:1.6rem !important; }
/* Sous-titres de section : plus petits que le titre, espacement maîtrisé + séparateur discret */
.entry-content h2{
  font-size:clamp(19px, 2.1vw, 23px) !important;
  line-height:1.3 !important;
  margin:2rem 0 .55rem !important;
  padding-bottom:.35rem;
  border-bottom:2px solid rgba(79,111,82,.18);
}
.entry-content > h2:first-child,
.entry-content h2:first-child{ margin-top:.2rem !important; }
.entry-content h3{ margin:1.6rem 0 .4rem; }
.entry-content > p{ margin-bottom:1.1rem; }
/* Lettrine (drop cap) du thème conservée sur le premier paragraphe, teintée de la couleur de marque */
.entry-content > p:first-of-type::first-letter{ color:var(--nid-green-dark); }
/* Listes plus aérées et lisibles, puce à la couleur de marque */
.entry-content ul{ padding-left:1.25em; }
.entry-content ul li{ margin-bottom:.5em; padding-left:.15em; }
.entry-content ul li::marker{ color:var(--nid-green); }

/* ---- Page Partenaires : séparateur identique entre chaque partenaire ---- */
.entry-content .blk-media-text + .blk-media-text{
  border-top:1px solid rgba(0,0,0,.12);
  padding-top:2.2rem;
  margin-top:2.2rem;
}

/* ---- Page Réservations : chambre = photo à gauche + titre & tarifs à droite ---- */
.nid-room-row{
  display:flex; align-items:stretch; gap:18px; margin:0 0 1.6rem;
}
.nid-room-photo{
  flex:0 0 150px; width:150px; align-self:stretch; min-height:0;
  height:auto; object-fit:cover; display:block;
  border-radius:6px; box-shadow:0 2px 10px rgba(0,0,0,.14);
}
.nid-room-info{
  flex:1 1 auto; min-width:0;
  display:flex; flex-direction:column; justify-content:center;
}
.nid-room-name{ margin:0 0 .4em !important; }
.nid-room-name strong{ color:var(--nid-green-dark); letter-spacing:.03em; font-size:1.02em; }
.nid-room-prices{ list-style:disc !important; margin:0 !important; padding-left:1.25em !important; }
.nid-room-prices li{ margin-bottom:.28em; }
.nid-room-prices li::marker{ color:var(--nid-green); }
@media(max-width:600px){
  .nid-room-row{ gap:12px; }
  .nid-room-photo{ flex-basis:104px; width:104px; }
}

/* ---- Bouton d'appel à l'action « Réserver » ---- */
.nidwazo-cta-item{ display:flex; align-items:center; }
a.nidwazo-cta{
  display:inline-block;
  margin:.25em .2em;
  padding:.5em 1.2em;
  background:var(--nid-green);
  color:#fff !important;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  font-size:.82em;
  border-radius:999px;
  border:1px solid var(--nid-green);
  transition:background .18s ease, transform .18s ease;
  white-space:nowrap;
}
a.nidwazo-cta:hover,
a.nidwazo-cta:focus{
  background:var(--nid-green-dark);
  border-color:var(--nid-green-dark);
  color:#fff !important;
  transform:translateY(-1px);
}

/* ---- Pied de page enrichi ---- */
/* Masquer les séparateurs résiduels qui suivent le bloc d'avis (vestiges de la page d'origine) */
.ti-static-reviews ~ .blk-separator{ display:none !important; }

/* Pied de page en colonne centrée : icônes sociales au-dessus du bloc contact, le tout centré */
.site-footer .wrap{ text-align:center; }
.site-footer .widget-area{ display:none; }
.site-footer .social-navigation{
  float:none !important;
  width:auto !important;
  margin:0 0 .3em !important;
  text-align:center !important;
}
.site-footer .social-navigation ul,
.site-footer .social-links-menu{
  display:inline-flex !important;
  justify-content:center;
  float:none !important;
  margin:0 auto !important;
}
.nidwazo-footer{
  float:none !important;
  width:auto !important;
  max-width:560px !important;
  margin:1.2em auto 0 !important;
  padding-top:1.4em;
  border-top:1px solid rgba(0,0,0,.08);
  font-size:.86em;
  line-height:1.7;
  color:#555;
  text-align:center;
}
.nidwazo-footer .nid-name{
  color:var(--nid-green-dark);
  font-weight:700;
  letter-spacing:.03em;
}
.nidwazo-footer a{ color:var(--nid-green); }
.nidwazo-footer a:hover{ color:var(--nid-green-dark); }
.nidwazo-footer .nid-copy{
  margin-top:.7em;
  font-size:.92em;
  color:#8a8a8a;
}

/* ---- Avis Booking : largeur alignée sur les galeries ---- */
@media(min-width:1100px){
  .ti-static-reviews{
    width:min(1240px,92vw) !important;
    max-width:none !important;
    margin-left:50% !important;
    margin-right:0 !important;
    transform:translateX(-50%);
  }
}
/* Mosaïque façon « colonnes » (Pinterest) : les cartes se tassent verticalement,
   plus de grands vides entre les lignes, espacement minimal et régulier.
   On remplace la grille flex (posée par trustindex.js) par un multi-colonnes CSS. */
.ti-static-reviews .ti-reviews-container-wrapper{
  display:block !important;
  column-count:1;
  column-gap:14px !important;
  overflow:visible !important;
}
@media(min-width:600px){
  .ti-static-reviews .ti-reviews-container-wrapper{ column-count:2; }
}
@media(min-width:1100px){
  .ti-static-reviews .ti-reviews-container-wrapper{ column-count:3; }
}
.ti-static-reviews .ti-review-item{
  flex:none !important;
  width:100% !important;
  max-width:100% !important;
  margin:0 0 14px 0 !important;
  break-inside:avoid;
  -webkit-column-break-inside:avoid;
  page-break-inside:avoid;
}

/* Afficher tout le texte de l'avis (le widget impose height:87px + line-clamp:4 en .ti-widget.ti-book,
   il faut donc une spécificité supérieure pour lever la troncature) et le rendre un peu plus compact */
.ti-static-reviews .ti-widget.ti-book .ti-review-content,
.ti-static-reviews .ti-review-content,
.ti-static-reviews .ti-review-text-container{
  height:auto !important;
  max-height:none !important;
  -webkit-line-clamp:unset !important;
  display:block !important;
  overflow:visible !important;
}
.ti-static-reviews .ti-widget.ti-book .ti-review-content{
  font-size:13.5px !important;
  line-height:1.5 !important;
}
.ti-static-reviews .ti-read-more{ display:none !important; }

/* Pastilles positif / négatif (remplacent les smileys ☺ ☹) */
.ti-static-reviews .nid-sent{
  display:inline-flex; align-items:center; justify-content:center;
  width:18px; height:18px; border-radius:50%;
  margin-right:6px; vertical-align:middle; flex:0 0 auto;
}
.ti-static-reviews .nid-sent svg{ width:11px; height:11px; fill:#fff; display:block; }
.ti-static-reviews .nid-sent-pos{ background:#2e9e57; }
.ti-static-reviews .nid-sent-neg{ background:#d1584a; }
.ti-static-reviews .nid-sent + br,
.ti-static-reviews br + .nid-sent-neg{ margin-top:2px; }

/* Espacement + fine barre (nombre d'or : 61.834 % de la largeur) entre info / avis+ / avis- */
.ti-static-reviews .nid-rv-line{ display:block; }
/* Titre (accroche) de l'avis : centré, gras, entre l'info et le texte */
.ti-static-reviews .nid-rv-title{
  text-align:center; font-weight:700; color:#2a2a2a;
  font-size:1.03em; line-height:1.3; margin:0 0 11px;
}
.ti-static-reviews .nid-rv-sep{
  border:0; height:1px; width:61.83399%;
  background:rgba(0,0,0,.12);
  margin:14px auto;
}
.ti-static-reviews .nid-rv-sep-top{ margin-top:16px; }

/* Sélecteur du nombre d'avis (10/20/50/100) */
.nid-review-filter{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:10px !important; margin:0 auto 20px;
}
.nid-review-filter-label{ font-size:.85em; color:#666; margin-right:8px; }
.nid-review-filter button{
  border:1px solid #d3d3d3; background:#fff; color:#333;
  padding:5px 15px; border-radius:999px; cursor:pointer; margin:4px 5px;
  font-size:.85em; font-weight:600; transition:all .15s ease;
}
.nid-review-filter button:hover{ border-color:var(--nid-green); color:var(--nid-green); }
.nid-review-filter button.is-active{ background:var(--nid-green); border-color:var(--nid-green); color:#fff; }

/* Bascule Original / Traduit */
.nid-review-mode{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:10px !important; margin:-8px auto 20px;
}
.nid-review-mode .nid-review-filter-label{ font-size:.85em; color:#666; margin-right:8px; }
.nid-review-mode button{
  border:1px solid #d3d3d3; background:#fff; color:#333;
  padding:5px 15px; border-radius:999px; cursor:pointer; margin:4px 5px;
  font-size:.85em; font-weight:600; transition:all .15s ease;
}
.nid-review-mode button:hover{ border-color:var(--nid-green); color:var(--nid-green); }
.nid-review-mode button.is-active{ background:var(--nid-green); border-color:var(--nid-green); color:#fff; }

/* Pagination des avis : ‹ Précédents / Suivants › */
.nid-review-pager{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:14px !important; margin:24px auto 4px;
}
.nid-review-pager button{
  border:1px solid #d3d3d3; background:#fff; color:#333;
  padding:6px 16px; border-radius:999px; cursor:pointer; margin:4px 7px;
  font-size:.85em; font-weight:600; transition:all .15s ease;
}
.nid-review-pager button:hover:not(:disabled){ border-color:var(--nid-green); color:var(--nid-green); }
.nid-review-pager button:disabled{ opacity:.4; cursor:default; }
.nid-review-pager .nid-pager-status{ font-size:.85em; color:#666; min-width:104px; text-align:center; margin:4px 7px; }

/* Avatar à initiale (pas de photo) */
.ti-static-reviews .ti-profile-img .nid-avatar{
  display:flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:50%;
  color:#fff; font-weight:700; font-size:16px; line-height:1;
}
/* Photo réelle du commentateur (récupérée de Booking) */
.ti-static-reviews .ti-profile-img .nid-avatar-photo{
  object-fit:cover; object-position:center; background:#e6e6e6; display:block;
}
/* Badge de note façon Booking */
/* Note : élément dans le flux de l'en-tête, aligné à droite et centré verticalement.
   Le nom (en haut du bloc) reste l'élément le plus haut ; aucun chevauchement possible. */
.ti-static-reviews .nid-score-badge{
  flex:0 0 auto; align-self:center; margin-left:10px;
  background:#003b95; color:#fff;
  font-weight:700; font-size:13px !important; line-height:1 !important; padding:3px 9px;
  border-radius:4px;
}
/* le nom/la date se replient au lieu d'être tronqués sur les cartes étroites */
.ti-static-reviews .ti-profile-details{ min-width:0; }
.ti-static-reviews .ti-name,
.ti-static-reviews .ti-review-header .ti-date{ white-space:normal !important; text-overflow:clip !important; }
/* petit drapeau du pays du commentateur, à gauche du nom du pays */
.ti-static-reviews .nid-cty-flag{
  display:inline-block; width:16px; height:11px; border-radius:2px;
  margin-right:5px; vertical-align:-1px; flex:0 0 auto;
}
.ti-static-reviews .nid-no-comment{ color:#9a9a9a; font-style:italic; }

/* Cartes d'avis cliquables (ouvrent la page Booking) */
.ti-static-reviews .ti-review-item{ cursor:pointer; }
.ti-static-reviews .ti-review-item .ti-inner{
  transition:box-shadow .18s ease, transform .18s ease;
}
.ti-static-reviews .ti-review-item:hover .ti-inner,
.ti-static-reviews .ti-review-item:focus-visible .ti-inner{
  box-shadow:0 6px 22px rgba(0,0,0,.13);
  transform:translateY(-2px);
}
.ti-static-reviews .ti-review-item:focus-visible{ outline:2px solid var(--nid-green); outline-offset:3px; }

/* ---- Correctif : reliquat de la barre de slider sous les avis Booking ---- */
.ti-static-reviews .ti-widget .ti-controls-line,
.ti-static-reviews .ti-widget .ti-controls,
.ti-static-reviews .ti-controls-line,
.ti-static-reviews .ti-controls,
.ti-static-reviews .dot{
  display:none !important;
  height:0 !important;
}

/* ---- Galeries plus larges & immersives sur grand écran ---- */
@media(min-width:1100px){
  .entry-content .blk-gallery{
    width:min(1240px,92vw);
    max-width:none;
    margin-left:50%;
    transform:translateX(-50%);
  }
}
/* Coins arrondis discrets sur les vignettes */
.entry-content .blk-image img{ border-radius:4px; }
.entry-content .blk-gallery img,
.entry-content figure.blk-image img{ cursor:zoom-in; }

/* ---- Lightbox ---- */
#nid-lightbox{
  position:fixed; inset:0; z-index:2147483647;
  display:none; align-items:center; justify-content:center;
  background:rgba(20,22,20,.92);
  opacity:0; transition:opacity .2s ease;
}
/* Masquer la barre de navigation (dont l'état fixe) tant que la lightbox est ouverte :
   évite qu'une barre fixe promue sur une couche GPU ne peigne au-dessus de l'overlay. */
html.nid-lb-open .navigation-top{ display:none !important; }
html.nid-lb-open{ overflow:hidden; }
#nid-lightbox.open{ display:flex; opacity:1; }
#nid-lightbox img{
  max-width:92vw; max-height:88vh;
  border-radius:4px;
  box-shadow:0 10px 40px rgba(0,0,0,.5);
  object-fit:contain;
}
#nid-lightbox .nid-lb-btn{
  position:absolute; top:50%; transform:translateY(-50%);
  display:flex; align-items:center; justify-content:center;
  width:52px; height:52px; padding:0; box-sizing:border-box;
  border:0; cursor:pointer; -webkit-appearance:none; appearance:none;
  background:rgba(255,255,255,.14); color:#fff;
  font-size:26px; line-height:1; border-radius:50%;
  transition:background .15s ease;
}
#nid-lightbox .nid-lb-btn:hover{ background:rgba(255,255,255,.3); }
#nid-lightbox .nid-lb-prev{ left:3vw; }
#nid-lightbox .nid-lb-next{ right:3vw; }
#nid-lightbox .nid-lb-close{
  top:3vh; right:3vw; transform:none;
  width:46px; height:46px; font-size:22px;
}
#nid-lightbox .nid-lb-count{
  position:absolute; bottom:3vh; left:0; right:0;
  text-align:center; color:rgba(255,255,255,.75);
  font-size:.85em; letter-spacing:.05em;
}
@media(max-width:600px){
  #nid-lightbox .nid-lb-prev{ left:1vw; }
  #nid-lightbox .nid-lb-next{ right:1vw; }
  #nid-lightbox .nid-lb-btn{ width:44px; height:44px; line-height:44px; font-size:22px; }
}
