/*
Theme Name: VCF Divi Enfant
Theme URI: https://www.votre-chateau-de-famille.com
Description: Theme enfant de Divi pour Votre Chateau de Famille (refonte). PHP + CSS + JS tout-en-un.
Author: Contech Connect
Template: Divi 4
Version: 2.99.0
*/

/* ===== CSS GLOBAL ===== */
/* =========================================================
   VCF — Home Divi (fidélité maquette monochrome)
   À coller dans : Divi → Options du thème → CSS personnalisé
   Polices à définir dans Divi : Manrope (titres) + Inter (corps)
   Indispensable : sans ce CSS, le layout s'affiche en modules Divi bruts empilés.
   ========================================================= */
.vcf-hero,.vcf-quick,.vcf-explore-sec,.vcf-statband,.vcf-feature,
.vcf-domaines,.vcf-treasures,.vcf-expertise,.vcf-seek{ font-family:'Inter',sans-serif; }
.vcf-hero h1,.vcf-explore-sec h2,.vcf-feature h2,.vcf-domaines h2,.vcf-treasures h2,
.vcf-expertise h2,.vcf-seek h2,.vcf-quick-col h3,.vcf-dest h3,.vcf-dom h3,.vcf-num,.vcf-big{ font-family:'Manrope',sans-serif; }

.vcf-eyebrow{ font-size:.7rem; letter-spacing:.34em; text-transform:uppercase; font-weight:400; color:#999999; margin:0 0 14px; }
.vcf-eyebrow-light{ color:rgba(255,255,255,.85); }

/* HERO */
.vcf-hero h1{ font-family:'Manrope',sans-serif; font-size:clamp(3.6rem,8vw,7rem); font-weight:600; letter-spacing:-.02em; line-height:1.02; color:#fff; margin:0 0 22px; }
.vcf-hero .vcf-eyebrow{ font-size:.82rem; letter-spacing:.32em; }
/* neutralise tout font-size inline parasite (ex. style="font-size:2") → les 2 lignes prennent la taille du H1 */
.vcf-hero h1 span{ font-size:inherit !important; }
.vcf-hero h1 .l2{ display:block; font-weight:300; }

/* HERO — dissociation du visuel et du sémantique.
   L'accroche garde l'apparence d'un grand titre sans en être un ; le H1, lui,
   porte le sujet de la page et répond à la requête visée par le <title>.
   Rien n'oblige le H1 à être le plus gros texte de la page — c'est la
   hiérarchie du document qui compte, pas celle de la mise en page. */
.vcf-hero .vcf-hero-accroche{ font-family:'Manrope',sans-serif; font-size:clamp(2.9rem,6.2vw,5.4rem); font-weight:600; letter-spacing:-.02em; line-height:1.02; color:#fff; margin:0 0 18px; text-shadow:0 2px 18px rgba(0,0,0,.5); }
.vcf-hero .vcf-hero-accroche span{ font-size:inherit !important; }
.vcf-hero .vcf-hero-accroche .l2{ display:block; font-weight:300; }

/* Le H1 prend le registre de la ligne d'accroche secondaire : présent, lisible,
   mais subordonné. Sélecteur plus spécifique que `.vcf-hero h1`, qui garde sa
   taille d'origine pour les pages où le H1 reste le grand titre. */
.vcf-hero h1.vcf-hero-h1{
  font-family:'Inter',sans-serif !important; font-weight:300;
  font-size:clamp(1.15rem,1.5vw,1.4rem); line-height:1.5; letter-spacing:0;
  color:rgba(255,255,255,.92); max-width:46ch; margin:0 0 16px;
  text-shadow:0 2px 18px rgba(0,0,0,.5);
}

/* Le H1 peut aussi porter directement la classe .vcf-lede : il prend alors
   l'apparence de la ligne d'introduction, sans ajouter de ligne supplémentaire.
   C'est la solution la plus sobre — le texte qui décrit l'offre EST le titre.
   Les styles de la lede étant posés sur la classe, ils s'appliquent quelle que
   soit la balise ; seules deux déclarations du style de titre subsistent par
   spécificité, on les annule ici pour un rendu strictement identique. */
.vcf-hero h1.vcf-lede{ letter-spacing:0; margin:0 0 18px; font-weight:300; }

/* Le H1 dissocie, quelle que soit la classe qui le porte. Place ici et non plus
   haut pour passer apres les regles du bandeau des fiches chateau. */
.vcf-hero h1.vcf-lede,
.vcf-hero h1.vcf-hero-h1{
  font-family:'Inter',sans-serif !important;
  font-size:clamp(1.05rem,1.25vw,1.25rem) !important;
  font-weight:300 !important;
  line-height:1.55 !important;
  letter-spacing:0 !important;
  color:rgba(255,255,255,.92) !important;
  max-width:52ch !important;
  margin:0 0 18px !important;
  text-shadow:0 2px 18px rgba(0,0,0,.5);
}

/* HERO — slideshow de fond (fondu enchaîné, contenu fixe au-dessus) */
.vcf-hero{ position:relative; }
.vcf-hero .vcf-hero-bg{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.vcf-hero .vcf-hero-bg > div{ position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transition:opacity 1.2s ease; }
.vcf-hero .vcf-hero-bg > div.on{ opacity:1; }
/* scrim de lisibilité DÉSACTIVÉ — l'assombrissement est piloté via Divi (superposition de la section). */
/* .vcf-hero .vcf-hero-bg::after{ content:""; position:absolute; inset:0; background:
  linear-gradient(90deg, rgba(20,17,14,.72) 0%, rgba(20,17,14,.48) 32%, rgba(20,17,14,.12) 62%, rgba(20,17,14,0) 100%),
  linear-gradient(180deg, rgba(20,17,14,.18) 0%, rgba(20,17,14,0) 32%, rgba(20,17,14,.55) 100%); } */
/* ombre portée sur les textes du hero → lisibles sur n'importe quel fond */
.vcf-hero h1, .vcf-hero h1 span, .vcf-hero .vcf-eyebrow, .vcf-hero .vcf-eyebrow span, .vcf-hero .vcf-lede{ text-shadow:0 2px 18px rgba(0,0,0,.5); }
/* on masque le fond/parallax Divi UNIQUEMENT sur le hero qui a notre slideshow (home) ;
   les fiches château gardent leur image de hero (parallax) */
.vcf-hero:has(.vcf-hero-bg) .et_parallax_bg_wrap{ display:none !important; }
.vcf-hero .et_pb_row{ position:relative; z-index:2; } /* texte + barre au-dessus du fond et du scrim */
.vcf-hero .vcf-lede{ font-family:'Inter',sans-serif !important; font-weight:300; font-size:clamp(1.15rem,1.5vw,1.4rem); line-height:1.6; color:rgba(255,255,255,.92); max-width:44ch; }

/* QUICK */
.vcf-quick .et_pb_row{ width:100%; max-width:100%; }
.vcf-quick-col{ position:relative; min-height:300px; display:flex; flex-direction:column; justify-content:flex-end; padding:40px!important; background-size:cover; background-position:center; overflow:hidden; }
.vcf-quick-col::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(20,17,14,.10),rgba(20,17,14,.72)); }
.vcf-quick-col .et_pb_text{ position:relative; z-index:2; }
.vcf-quick-col h3{ font-size:1.8rem; font-weight:600; line-height:1.15; color:#fff; margin:0 0 8px; }
.vcf-links{ font-size:.8rem; letter-spacing:.04em; color:rgba(255,255,255,.85); margin:0; }
.vcf-explore{ display:inline-block; margin-top:16px; font-size:.7rem; letter-spacing:.22em; text-transform:uppercase; color:#fff; border-bottom:1px solid rgba(255,255,255,.6); padding-bottom:3px; }

/* HEAD (titres de section centrés) */
.vcf-head{ margin:0 auto 50px; }
.vcf-head .et_pb_text, .vcf-head .et_pb_text_inner, .vcf-head .vcf-eyebrow, .vcf-head h2, .vcf-head .vcf-sub{ text-align:center !important; }
.vcf-head .et_pb_text_inner{ max-width:640px; margin-left:auto; margin-right:auto; }
.vcf-head h2{ font-family:'Manrope',sans-serif; font-size:clamp(2.2rem,4vw,3.4rem); font-weight:600; color:#191919; line-height:1.05; margin:16px 0 14px; }
.vcf-head h2 em{ font-style:normal; font-weight:700; color:#000; }
.vcf-head .vcf-eyebrow{ color:#999999; }

/* EXPLORE / DEST */
.vcf-explore-sec{ background:#ffffff; }
.vcf-dest{ position:relative; min-height:420px; display:flex; flex-direction:column; justify-content:flex-end; padding:30px!important; background-size:cover; background-position:center; overflow:hidden; }
.vcf-dest::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(20,17,14,0),rgba(20,17,14,.7)); }
.vcf-dest .et_pb_text{ position:relative; z-index:2; }
.vcf-rate{ display:block; font-size:.8rem; letter-spacing:.1em; color:rgba(255,255,255,.9); margin-bottom:8px; }
.vcf-dest h3{ font-size:1.7rem; font-weight:600; line-height:1.1; color:#fff; margin:0; }
.vcf-loc{ display:block; font-size:.8rem; color:rgba(255,255,255,.9); letter-spacing:.04em; margin-top:6px; }

/* STATBAND */
.vcf-statband{ position:relative; background-size:cover; background-position:center; }
.vcf-statband::after{ content:""; position:absolute; inset:0; background:rgba(20,17,14,.66); }
.vcf-statband .et_pb_row{ position:relative; z-index:2; }
.vcf-stat{ text-align:center; color:#fff; }
.vcf-num{ display:block; font-size:clamp(2.4rem,4vw,3.4rem); font-weight:700; line-height:1; }
.vcf-lab{ display:block; margin-top:10px; font-size:.85rem; letter-spacing:.05em; color:rgba(255,255,255,.8); }

/* FEATURE */
.vcf-feature{ background:#f5f5f5; }
.vcf-feature-img img{ width:100%; height:100%; object-fit:cover; }
.vcf-feature .vcf-step{ border-top:1px solid #e8e8e8; padding:18px 0; }
.vcf-feature .vcf-step h4{ font-family:'Manrope',sans-serif; font-size:1.05rem; font-weight:600; color:#191919; margin:0 0 4px; }
.vcf-feature .vcf-step p{ color:#999999; margin:0; }

/* DOMAINES */
.vcf-dom{ position:relative; min-height:380px; display:flex; align-items:flex-end; justify-content:center; padding:34px!important; background-size:cover; background-position:center; overflow:hidden; text-align:center; }
.vcf-dom::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(20,17,14,.05),rgba(20,17,14,.6)); }
.vcf-dom .et_pb_text{ position:relative; z-index:2; }
.vcf-dom h3{ font-size:1.6rem; font-weight:600; color:#fff; margin:0; }

/* TREASURES */
.vcf-tr-img img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.vcf-tr h4{ font-family:'Manrope',sans-serif; font-size:1.2rem; font-weight:600; color:#191919; margin:16px 0 8px; }
.vcf-tr p{ color:#999999; font-size:.92rem; }

/* EXPERTISE */
.vcf-expertise{ background:#191919; text-align:center; }
.vcf-expertise .vcf-eyebrow{ color:#999999; }
.vcf-big{ font-size:clamp(3rem,7vw,5.5rem); font-weight:700; color:#fff; line-height:1; margin:6px 0 10px; }
.vcf-expertise h2{ color:#fff; font-size:clamp(2rem,3.4vw,2.8rem); font-weight:600; }

/* SEEK (CTA) */
.vcf-seek{ position:relative; background-size:cover; background-position:center; text-align:center; }
.vcf-seek::after{ content:""; position:absolute; inset:0; background:rgba(20,17,14,.6); }
.vcf-seek .et_pb_row{ position:relative; z-index:2; }
.vcf-seek h2{ color:#fff; font-size:clamp(2rem,4vw,3rem); font-weight:600; }
.vcf-seek .vcf-lede{ color:rgba(255,255,255,.9); max-width:560px; margin:14px auto 24px; }

/* BOUTONS */
.vcf-btn.et_pb_button{ font-size:.72rem!important; letter-spacing:.18em!important; text-transform:uppercase; padding:14px 30px!important; border-radius:4!important; background:#191919!important; color:#fff!important; border:1px solid #191919!important; }
.vcf-btn-light.et_pb_button{ background:#fff!important; color:#191919!important; border-color:#fff!important; }
.vcf-btn.et_pb_button:after{ display:none!important; }

/* LOGO de l'en-tête — hauteur qui rentre dans la barre (pas de débordement).
   Spécificité forte (3 ids) pour battre Divi. */
#page-container #main-header #logo{ height:80px !important; max-height:80px !important; width:auto !important; max-width:none !important; }
#page-container #main-header.et-fixed-header #logo{ height:64px !important; max-height:64px !important; } /* réduit un peu au scroll (modèle fiche) */
@media (max-width:980px){ #page-container #main-header #logo{ height:30px !important; max-height:30px !important; } }
/* Fiche château mobile : logo agrandi même NON scrollé (sinon 30px, plus petit que le burger). Même taille que l'état scrollé. */
@media (max-width:980px){ body.single-chateau #page-container #main-header #logo{ height:60px !important; max-height:60px !important; } }
/* Logo aligné à GAUCHE + centré verticalement (format « Par défaut » de Divi) */
#page-container #main-header .logo_container{ display:flex !important; align-items:center !important; justify-content:flex-start !important; transform:translateY(-16px) !important; }
#page-container #main-header .logo_container #logo{ position:static !important; top:auto !important; bottom:auto !important; transform:none !important; margin:0 !important; }
/* Aère le haut du bandeau : le logo agrandi n'est plus collé/rogné au bord supérieur */
#page-container #main-header .container.et_menu_container{ padding-top:18px !important; padding-bottom:14px !important; }
#page-container #main-header.et-fixed-header{ height:auto !important; }
#page-container #main-header.et-fixed-header .container.et_menu_container{ padding-top:16px !important; padding-bottom:16px !important; }
@media (max-width:980px){ #page-container #main-header .container.et_menu_container{ padding-top:10px !important; padding-bottom:10px !important; } }
/* MOBILE — le décalage translateY(-16px) ci-dessus remonte le logo hors du bandeau :
   sur les fiches, où il est agrandi à 60px pour un bandeau de 10px de marge haute,
   son sommet passe au-dessus du bord et se retrouve rogné. On annule le décalage
   en mobile et on redonne un peu d'air sur les fiches. */
@media (max-width:980px){
  #page-container #main-header .logo_container{ transform:none !important; }
  #page-container #main-header .logo_container,
  #page-container #main-header #logo{ overflow:visible !important; }
  body.single-chateau #page-container #main-header .container.et_menu_container{ padding-top:14px !important; padding-bottom:14px !important; }
}

/* =========================================================
   MODULE DE RECHERCHE — BARRE BLANCHE SOBRE
   (remplace l'ancienne barre sombre + dropdown/flatpickr sombres)
   ========================================================= */

/* ---------- conteneur : barre blanche ---------- */
.vcf-search{
  display:flex!important; align-items:stretch!important; flex-wrap:nowrap!important;
  max-width:1180px!important; margin:0 auto!important;
  background:#fff!important; border:1px solid #e2dfda!important; border-radius:14px!important;
  box-shadow:0 8px 30px rgba(0,0,0,.08)!important; overflow:hidden!important;
  padding:0!important; gap:0!important; backdrop-filter:none!important;
}

/* ---------- chaque champ : label au-dessus + facette ---------- */
.vcf-search .vcf-search-field{
  flex:1 1 0!important; min-width:0!important;
  display:flex!important; flex-direction:column!important; justify-content:center!important;
  padding:11px 18px!important; margin:0!important;
  border-right:1px solid #ededed!important; position:relative!important;
}
.vcf-search .vcf-search-field > label{
  font-family:'Inter',sans-serif!important; font-size:.6rem!important; font-weight:600!important;
  letter-spacing:.15em!important; text-transform:uppercase!important; color:#a09b94!important;
  margin:0 0 2px!important; display:block!important; pointer-events:none;
}
.vcf-search .wpgb-facet{ margin:0!important; padding:0!important; }
.vcf-search .wpgb-facet fieldset{ margin:0!important; padding:0!important; border:0!important; }

/* ---------- facettes SELECT (séjour / région / capacité) ---------- */
.vcf-search .wpgb-select-facet{ margin:0!important; }
.vcf-search .wpgb-select-facet > label{ display:none!important; } /* select SR-only natif */
.vcf-search .wpgb-select{
  border:0!important; background:transparent!important; box-shadow:none!important;
  min-height:0!important; height:auto!important; padding:0!important; border-radius:0!important;
}
.vcf-search .wpgb-select-placeholder{ padding:0!important; min-height:0!important; border:0!important; background:transparent!important; }
.vcf-search .wpgb-select-values{ padding:0!important; gap:5px!important; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.vcf-search .wpgb-select input,
.vcf-search .wpgb-select-search input{
  font-family:'Manrope',sans-serif!important; font-size:.92rem!important; font-weight:500!important;
  color:#191919!important; background:transparent!important; border:0!important;
  padding:0!important; height:auto!important; min-height:0!important; cursor:pointer!important;
}
.vcf-search .wpgb-select input::placeholder{ color:#191919!important; opacity:1!important; }
.vcf-search .wpgb-select-separator{ display:none!important; }
.vcf-search .wpgb-select-controls{ position:static!important; padding:0!important; }
.vcf-search .wpgb-select-toggle{ background:transparent!important; border:0!important; }
.vcf-search .wpgb-select-toggle svg{ width:16px!important; height:16px!important; fill:#bdb9b2!important; }
.vcf-search .wpgb-select-toggle svg path{ fill:#bdb9b2!important; }
/* valeurs sélectionnées (chips) → discrètes brun clair */
.vcf-search .wpgb-select-value,
.vcf-search .wpgb-select-tag{
  background:#f3efe9!important; color:#5E4429!important; border:0!important;
  border-radius:6px!important; padding:1px 8px!important;
  font-family:'Inter',sans-serif!important; font-size:.82rem!important;
}
.vcf-search .wpgb-select-value *{ color:#5E4429!important; fill:#5E4429!important; }

/* ---------- facette DATE (flatpickr) — champ intégré ---------- */
.vcf-search .wpgb-date-facet{ margin:0!important; position:relative!important; }
.vcf-search .wpgb-date-facet input.form-control,
.vcf-search .wpgb-date-facet input.input,
.vcf-search .wpgb-date-facet input[type="text"]{
  border:0!important; background:transparent!important; box-shadow:none!important;
  font-family:'Manrope',sans-serif!important; font-size:.92rem!important; font-weight:500!important;
  color:#191919!important; padding:0 0 0 26px!important; height:auto!important; min-height:0!important;
  width:100%!important; cursor:pointer!important;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.vcf-search .wpgb-date-facet input::placeholder{ color:#8a857e!important; opacity:1!important; font-weight:500!important; }
.vcf-search .wpgb-date-facet .wpgb-input-icon{
  position:absolute!important; left:0!important; right:auto!important; top:50%!important; transform:translateY(-50%)!important;
  width:16px!important; height:16px!important; stroke:#bdb9b2!important; fill:none!important;
}
.vcf-search .wpgb-date-facet .wpgb-input-icon path{ stroke:#bdb9b2!important; fill:none!important; }
.vcf-search .wpgb-date-facet .wpgb-clear-button{ right:-4px!important; }
.vcf-search .wpgb-date-facet .wpgb-clear-button svg{ fill:#bdb9b2!important; width:18px!important; height:18px!important; }

/* ---------- bouton submit : carré brun + loupe ---------- */
.vcf-search .vcf-search-submit{
  flex:0 0 auto!important; display:flex!important; align-items:stretch!important;
  padding:0!important; margin:0!important; border:0!important;
}
.vcf-search .vcf-search-submit .wpgb-facet{ display:flex!important; align-items:stretch!important; }
.vcf-search .vcf-search-submit .wpgb-facet-label,
.vcf-search .vcf-search-submit > label{ display:none!important; }
.vcf-search .vcf-search-submit .wpgb-button,
.vcf-search .vcf-search-submit .wpgb-apply{
  width:66px!important; min-width:66px!important; align-self:stretch!important;
  background:#7C5C3E!important; border:0!important; border-radius:0!important;
  color:transparent!important; font-size:0!important; cursor:pointer!important;
  position:relative!important; transition:background .25s!important; opacity:1!important;
  letter-spacing:0!important; text-transform:none!important;
}
.vcf-search .vcf-search-submit .wpgb-button:hover,
.vcf-search .vcf-search-submit .wpgb-apply:hover{ background:#5E4429!important; }
.vcf-search .vcf-search-submit .wpgb-button:disabled,
.vcf-search .vcf-search-submit .wpgb-apply:disabled{ opacity:1!important; cursor:pointer!important; }
.vcf-search .vcf-search-submit .wpgb-button::after{
  content:""!important; position:absolute!important; inset:0!important;
  background:center/22px 22px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E")!important;
}

/* ---------- liste déroulante ouverte (combobox) : panneau blanc ---------- */
.wpgb-select-dropdown{
  background:#fff!important; border:1px solid #ececec!important; border-radius:12px!important;
  box-shadow:0 18px 40px rgba(0,0,0,.12)!important; padding:6px!important;
}
.wpgb-select-item{
  color:#191919!important; font-family:'Inter',sans-serif!important; font-size:.92rem!important;
  padding:9px 13px!important; border-radius:7px!important;
}
.wpgb-select-item.wpgb-focused,
.wpgb-select-item:hover,
.wpgb-select-item[aria-selected="true"]{ background:#f5f5f5!important; color:#000!important; }

/* ---------- calendrier (Flatpickr) : blanc monochrome, sélection brune ---------- */
.flatpickr-calendar{
  background:#fff!important; border:1px solid #ececec!important; border-radius:12px!important;
  box-shadow:0 18px 40px rgba(0,0,0,.14)!important; font-family:'Inter',sans-serif!important;
}
.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after,
.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{
  border-bottom-color:#fff!important; border-top-color:#fff!important;
}
.flatpickr-months,.flatpickr-month,
.flatpickr-current-month,.flatpickr-current-month input.cur-year{ color:#191919!important; fill:#191919!important; }
.flatpickr-monthDropdown-months{ background:#fff!important; color:#191919!important; }
.flatpickr-prev-month svg,.flatpickr-next-month svg{ fill:#191919!important; }
.flatpickr-prev-month:hover svg,.flatpickr-next-month:hover svg{ fill:#7C5C3E!important; }
.flatpickr-weekday{ color:#9a9a9a!important; }
.flatpickr-day{ color:#191919!important; border:0!important; }
.flatpickr-day:hover{ background:#f5f5f5!important; }
.flatpickr-day.today{ border:1px solid #d8d2ca!important; }
.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.flatpickr-disabled{ color:#cfcac3!important; }
.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,
.flatpickr-day.selected:hover{ background:#7C5C3E!important; color:#fff!important; border-color:#7C5C3E!important; }
.flatpickr-day.inRange{
  background:#f3efe9!important; border-color:transparent!important;
  box-shadow:-5px 0 0 #f3efe9,5px 0 0 #f3efe9!important;
}

/* ---------- responsive : champs empilés, bouton pleine largeur ---------- */
@media (max-width:860px){
  .vcf-search{ flex-direction:column!important; box-shadow:0 8px 24px rgba(0,0,0,.07)!important; }
  .vcf-search .vcf-search-field{ border-right:0!important; border-bottom:1px solid #ededed!important; padding:13px 18px!important; }
  .vcf-search .vcf-search-submit .wpgb-button,
  .vcf-search .vcf-search-submit .wpgb-apply{ width:100%!important; min-width:0!important; height:54px!important; }
  /* barre empilée (haute) en mobile → on la décolle du haut */
  .vcf-carte-search{ position:static!important; box-shadow:none!important; }
}

/* RESPONSIVE (home) */
@media (max-width:980px){
  .vcf-quick-col,.vcf-dest,.vcf-dom{ min-height:260px; }
  .vcf-head{ margin-bottom:34px; }
  .vcf-hero{ min-height:70vh; }
	/* Centrage des en-têtes de section */
.vcf-head{ text-align:center; margin:0 auto 50px; }
.vcf-head .et_pb_text{ text-align:center; max-width:640px; margin-left:auto; margin-right:auto; }
.vcf-head h2 em{ font-style:normal; font-weight:700; color:#000; }

/* Cartes "plus beaux domaines" : radius + hauteur + dégradé + rate */
.vcf-dest{ min-height:480px; border-radius:20px; }
.vcf-dest::after{ background:linear-gradient(180deg,rgba(20,17,14,0) 45%,rgba(20,17,14,.7)); }
.vcf-rate{ font-family:'Manrope',sans-serif; font-size:1.05rem; color:#fff; margin-bottom:8px; }
}

/* === Carte château WPGB (carte 22) === */
.wpgb-card-22{ border-radius:14px; overflow:hidden; }

/* Étiquette région = pastille en haut à gauche (plus de bande pleine largeur) */
.wpgb-card-media-content-top{ background:transparent!important; padding:0!important; text-align:left; }
.vcf-card-region{
  display:inline-block!important; width:auto!important;
  background:rgba(255,255,255,.92)!important; color:#191919!important;
  font-family:'Inter',sans-serif!important; font-size:.62rem!important;
  letter-spacing:.12em; text-transform:uppercase; padding:5px 10px; border-radius:4px; margin:14px 0 0 14px;
}

/* Dégradé sombre en bas (lisibilité) */
.wpgb-card-media-content-bottom{
  background:linear-gradient(180deg,rgba(20,17,14,0),rgba(20,17,14,.8))!important;
  padding:46px 18px 16px!important;
}
/* Titre */
.vcf-card-title, .vcf-card-title a{
  font-family:'Manrope',sans-serif!important; font-size:1.35rem!important; font-weight:600!important;
  color:#fff!important; line-height:1.15; margin:0 0 6px!important; text-decoration:none;
}
/* Specs (couchages + convives) en ligne */
.wpgb-card-media-content-bottom > div:not(.vcf-card-pool){
  display:inline-block; color:rgba(255,255,255,.92); font-family:'Inter',sans-serif; font-size:.8rem; margin:0 14px 0 0;
}
/* Badge Piscine */
.vcf-card-pool{
  display:inline-block!important; margin-top:8px!important;
  font-family:'Inter',sans-serif!important; font-size:.6rem!important; letter-spacing:.12em; text-transform:uppercase;
  border:1px solid rgba(255,255,255,.6); color:#fff!important; padding:3px 9px; border-radius:4px;
}
/* =========================================================
   VCF — Page Carte des châteaux (Divi + WP Grid Builder)
   À coller dans : Divi → Options du thème → CSS personnalisé
   (à la suite du CSS home + module de recherche déjà en place)
   Polices : Manrope (titres) + Inter (corps)
   Valeurs calées sur la maquette "Carte des chateaux".
   Palette : ink #191919 · grey #9a9a9a · line #ececec · stone #f5f5f5
   ========================================================= */

/* ---------- HERO (court, texte en bas, scrim 3 paliers) ---------- */
.vcf-carte-hero{
  position:relative; min-height:440px; display:flex; align-items:flex-end;
  background-size:cover; background-position:center; overflow:hidden;
}
.vcf-carte-hero::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,
    rgba(15,15,15,.55) 0%,
    rgba(15,15,15,.15) 38%,
    rgba(15,15,15,.78) 100%);
}
.vcf-carte-hero .et_pb_row{ position:relative; z-index:2; padding-bottom:46px; }
.vcf-carte-hero .vcf-eyebrow{
  font-family:'Inter',sans-serif; font-size:.7rem; letter-spacing:.28em;
  text-transform:uppercase; color:rgba(255,255,255,.78); margin:0 0 14px;
}
.vcf-carte-hero h1{
  font-family:'Manrope',sans-serif; font-size:clamp(2.1rem,4.4vw,3.4rem);
  font-weight:600; color:#fff; line-height:1.03; margin:0 0 10px;
}
.vcf-carte-hero h1 em{ font-style:normal; font-weight:300; color:rgba(255,255,255,.85); }
.vcf-carte-hero .vcf-lede,
.vcf-carte-hero .vcf-lede p{
  font-family:'Inter',sans-serif; font-weight:300; color:rgba(255,255,255,.82);
  max-width:56ch; line-height:1.6; font-size:1.04rem;
}

/* ---------- SEARCH (barre blanche pleine largeur, collée sous le header) ---------- */
/* 1) décale TOUT le contenu sous le header fixe (70px) ... */
body:has(.vcf-carte-search) #et-main-area{ padding-top:96px !important; }
/* ... + barre d'admin WP (visible seulement connecté ; absente en prod) */
body.admin-bar:has(.vcf-carte-search) #et-main-area{ padding-top:128px !important; }
/* 2) annule le padding-top auto que Divi pose sur la 1re section (fix-page-container) */
body:has(.vcf-carte-search) .vcf-carte-search{ padding-top:0 !important; }
/* MOBILE : header NOIR (barre fixe) sur la page carte → la barre Filtrer tombe nette juste dessous */
@media (max-width:980px){
  body:has(.vcf-carte-search) #main-header{
    background:#191919 !important; position:fixed !important; top:0 !important; left:0 !important; width:100% !important;
    height:60px !important; min-height:60px !important; z-index:1000 !important; box-shadow:0 2px 10px rgba(0,0,0,.2) !important; }
  body.admin-bar:has(.vcf-carte-search) #main-header{ top:32px !important; }
  body:has(.vcf-carte-search) #et-main-area{ padding-top:0px !important; }
  body.admin-bar:has(.vcf-carte-search) #et-main-area{ padding-top:32px !important; }
}

/* 3) la barre (section) reste collée juste sous le header au scroll */
.vcf-carte-search{
  position:sticky!important; top:96px; z-index:40;
  background:#fff; border-bottom:1px solid #e8e6e2; box-shadow:0 4px 14px rgba(0,0,0,.05);
}
body.admin-bar .vcf-carte-search{ top:128px; }
.vcf-carte-search .et_pb_row{
  margin:0!important; width:100%!important; max-width:100%!important;
  padding:12px 40px!important; position:relative; z-index:20;
}
/* sur la page carte, la barre prend toute la largeur (pas le max-width 1180 de la home) */
.vcf-carte-search .vcf-search{ max-width:none!important; margin:0!important; }
/* Desktop : barre pleine largeur SANS radius ; bouton loupe carré ARRONDI qui flotte (façon maquette) */
@media (min-width:769px){
  .vcf-carte-search .vcf-search{ border-radius:0!important; box-shadow:none!important; border-left:0!important; border-right:0!important; border-top:0!important; }
  /* Bouton loupe : il REMPLIT sa cellule, comme sur la page d'accueil.
     Il flottait auparavant — 60 px de haut, centré, coins arrondis — dans une cellule
     de 100 px : l'écart se voyait comme un défaut d'alignement dans la barre de filtres.
     On aligne donc l'archive sur l'accueil : étirement vertical, pas de rayon. */
  .vcf-carte-search .vcf-search .vcf-search-submit{ align-self:stretch!important; align-items:stretch!important; padding:0!important; }
  .vcf-carte-search .vcf-search .vcf-search-submit .wpgb-facet{ display:flex!important; align-items:stretch!important; height:100%!important; }
  .vcf-carte-search .vcf-search .vcf-search-submit .wpgb-button,
  .vcf-carte-search .vcf-search .vcf-search-submit .wpgb-apply{
    align-self:stretch!important; height:100%!important; width:72px!important; min-width:72px!important;
    border-radius:0!important;
  }
  /* Home : barre à angles droits, façon onefinestay */
  body.home .vcf-search{ border-radius:0!important; }
}

/* ---------- barre résultats (compteur + tri) ---------- */
.vcf-carte-resultsbar{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
  padding:18px 40px 4px;
}
.vcf-carte-resultsbar .vcf-count,
.vcf-carte-resultsbar .wpgb-counter{
  font-family:'Manrope',sans-serif!important; font-weight:600!important; font-size:.98rem!important; color:#191919!important; margin:0!important;
}
.vcf-carte-resultsbar .wpgb-facet{ margin:0!important; }
.vcf-carte-resultsbar .wpgb-select{
  border:1px solid #e8e6e2!important; border-radius:8px!important; padding:8px 12px!important;
  background:#fff!important; min-height:0!important;
}
.vcf-carte-resultsbar .wpgb-select input{ font-family:'Inter',sans-serif!important; font-size:.82rem!important; color:#6f6a64!important; }
.vcf-carte-resultsbar .wpgb-select-toggle svg{ fill:#bdb9b2!important; }

/* ---------- SPLIT : liste (gauche) + carte (droite, sticky) ---------- */
/* la ligne du split (.vcf-carte-split) en PLEINE LARGEUR */
.vcf-carte-results, .vcf-carte-split{ background:#fff; }
.vcf-carte-results .et_pb_row,
.vcf-carte-split.et_pb_row{ width:100%!important; max-width:100%!important; }

/* colonne liste */
.vcf-carte-list{ padding:26px 32px 60px!important; }

/* colonne carte : sticky pleine hauteur.
   Marche via la classe .vcf-carte-map OU, à défaut, la dernière colonne du split. */
.vcf-carte-map,
.vcf-carte-results .et_pb_row > .et_pb_column:last-child,
.vcf-carte-split > .et_pb_column:last-child{
  position:sticky!important; top:160px; align-self:flex-start; /* sous le header (70) + la barre (~90) */
}
.vcf-carte-map .wpgb-map,
.vcf-carte-map [class*="wpgb-map"],
.vcf-carte-map .leaflet-container,
.vcf-carte-split > .et_pb_column:last-child .leaflet-container{
  height:calc(100vh - 110px)!important; min-height:560px!important;
  border-radius:0!important;
}

/* espacement entre cartes de la grille (sinon réglé dans WPGB) */
.vcf-carte-list .wpgb-grid .wpgb-layout{ gap:22px!important; }

/* ---------- RESPONSIVE ---------- */
@media (max-width:1080px){
  .vcf-carte-map,
  .vcf-carte-results .et_pb_row > .et_pb_column:last-child,
  .vcf-carte-split > .et_pb_column:last-child{
    position:static!important; top:auto; width:100%;
  }
  .vcf-carte-map .wpgb-map,
  .vcf-carte-map [class*="wpgb-map"],
  .vcf-carte-map .leaflet-container,
  .vcf-carte-split > .et_pb_column:last-child .leaflet-container{
    height:58vh!important; min-height:380px!important;
  }
  .vcf-carte-list{ padding:24px 18px 40px!important; }
  .vcf-carte-search .et_pb_row{ padding:10px 18px!important; }
  .vcf-carte-resultsbar{ padding:14px 18px 2px; }
}
/* popups arrondies facon maquette */
.vcf-carte-map .leaflet-popup-content-wrapper{ border-radius:12px; overflow:hidden; }
.vcf-carte-map .leaflet-popup-content{ margin:0; }

/* (option) forcer le N&B même sur un fond coloré */
.vcf-carte-map .leaflet-tile{ filter:grayscale(1) contrast(1.04); }
/* pin en goutte facon maquette */
.vcf-carte-map .wpgb-map-marker > *{
  border-radius:50% 50% 50% 0!important;
  transform:rotate(-45deg);
}
.vcf-carte-map .wpgb-marker > *{
  width:34px!important;          /* ← agrandis ici : 34, 38, 42… */
  height:34px!important;         /* garde width = height */
  box-sizing:border-box;
  display:flex; align-items:center; justify-content:center;
  font-size:0;
	border:2px solid #ffffff!important;   /* ← bordure blanche */
  border-radius:50% 50% 50% 0!important;
  transform:rotate(-45deg);
}
/* redresse le contenu */
/* pins identiques sans texte visible + forme goutte */
.vcf-carte-map .wpgb-marker > *{
  font-size:0;                         /* masque le texte/chiffre */
  border-radius:50% 50% 50% 0!important;
  transform:rotate(-45deg);            /* goutte facon maquette */
}
/* Marqueur SÉLECTIONNÉ uniquement (parent .wpgb-marker-highlighted, blanc par défaut) → marron de marque
   #7C5C3E + bord blanc. Les autres marqueurs gardent leur couleur d'origine (#191919). */
.wpgb-marker-highlighted .wpgb-marker-content{ background:#7C5C3E!important; border-color:#fff!important; }
.wpgb-card-22{ transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s, border-color .35s; }
.wpgb-card-22:hover{ transform:translateY(-4px); box-shadow:0 26px 44px -28px rgba(0,0,0,.45); border-color:#ddd; }
.wpgb-card-22 .wpgb-card-media img{ transition:transform 1s cubic-bezier(.2,.7,.2,1); }
.wpgb-card-22:hover .wpgb-card-media img{ transform:scale(1.06); }
.wp-grid-builder .wpgb-card-22{
  transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s, border-color .35s !important;
}
.wp-grid-builder .wpgb-card-22:hover{
  transform:translateY(-4px) !important;
  box-shadow:0 26px 44px -28px rgba(0,0,0,.45) !important;
  border-color:#ddd !important;
}
.wp-grid-builder .wpgb-card-22 .wpgb-card-media img{
  transition:transform 1s cubic-bezier(.2,.7,.2,1) !important;
}
.wp-grid-builder .wpgb-card-22:hover .wpgb-card-media img{
  transform:scale(1.06) !important;
}
/* --- Bulle (popup) carte : hauteur FIXE, aucun saut au chargement de l'image --- */
.leaflet-popup-content{ width:300px !important; margin:0 !important; }
.leaflet-popup-content .wpgb-card-22{ width:300px !important; box-shadow:none !important; transform:none !important; }
.leaflet-popup-content .wpgb-card-22:hover{ transform:none !important; box-shadow:none !important; }

.leaflet-popup-content .wpgb-card-media{
  height:175px !important; min-height:175px !important;   /* ← verrouille la zone image */
  aspect-ratio:auto !important; overflow:hidden; position:relative !important; padding:0 !important;
}
/* le spacer SVG (padding-top %) crée le saut → on le neutralise dans le popup */
.leaflet-popup-content .wpgb-card-media > svg{ display:none !important; }
/* la vignette (div à background-image) remplit la zone fixe */
.leaflet-popup-content .wpgb-card-media-thumbnail{ position:absolute !important; inset:0 !important; }
.leaflet-popup-content .wpgb-card-media-thumbnail a,
.leaflet-popup-content .wpgb-card-media-thumbnail a > div,
.leaflet-popup-content .wpgb-card-media-thumbnail > div{
  width:100% !important; height:100% !important; min-height:175px !important;
}
.leaflet-popup-content .wpgb-card-media img{
  width:100% !important; height:100% !important;
  aspect-ratio:auto !important; object-fit:cover; display:block;
}

/* =========================================================
   PAGE CARTE (archive châteaux) — EN-TÊTE NOIR + menu/logo blancs
   Auto-ciblé via :has(.vcf-carte-search) → uniquement cette page.
   En-tête transparent/fixe rendu opaque noir (logo déjà blanc).
   ========================================================= */
/* fond noir opaque dans les 2 états (repos + fixe au scroll)
   spécificité renforcée (.et_transparent_nav / .et_fixed_nav) pour battre Divi */
body.et_transparent_nav:has(.vcf-carte-search) #main-header,
body.et_fixed_nav:has(.vcf-carte-search) #main-header,
body:has(.vcf-carte-search) #main-header.et-fixed-header{
  background-color:#191919 !important;
  background-image:none !important;
  box-shadow:0 1px 0 rgba(255,255,255,.08) !important;
}
/* Carte (template dédié) : header 96px pour voir le logo 80px en entier (padding réduit),
   + on descend la section des vignettes de 46px pour qu'elles ne passent plus sous la barre sticky */
@media (min-width:981px){
  body:has(.vcf-carte-search) #page-container #main-header{ height:96px !important; min-height:96px !important; }
  body:has(.vcf-carte-search) #page-container #main-header .container.et_menu_container{ padding-top:8px !important; padding-bottom:8px !important; }
}
body:has(.vcf-carte-search) .vcf-carte.et_pb_section{ padding-top:46px !important; }
/* liens du menu en blanc (repos + fixe) */
body:has(.vcf-carte-search) #top-menu > li > a,
body:has(.vcf-carte-search) #top-menu > li > a span,
body:has(.vcf-carte-search) .et-fixed-header #top-menu > li > a,
body:has(.vcf-carte-search) .et-fixed-header #top-menu > li > a span{ color:#fff !important; }
/* bouton CTA "Nous contacter" en blanc */
body:has(.vcf-carte-search) #top-menu .dipi-cta-button,
body:has(.vcf-carte-search) #top-menu .dipi-cta-button span{ color:#fff !important; }
/* icônes (recherche, menu mobile) en blanc */
body:has(.vcf-carte-search) #et_top_search .et-search-icon:before,
body:has(.vcf-carte-search) #et_mobile_nav_menu .mobile_menu_bar:before{ color:#fff !important; }
/* logo blanc visible même en mode fixe (le thème le masque via et_hide_fixed_logo) */
body:has(.vcf-carte-search) .et-fixed-header #logo{ display:inline-block !important; opacity:1 !important; }
/* sous-menus déroulants : fond blanc + texte foncé (lisibles) */
body:has(.vcf-carte-search) #top-menu li ul{ background:#fff !important; }
body:has(.vcf-carte-search) #top-menu li ul a,
body:has(.vcf-carte-search) #top-menu li ul a span{ color:#191919 !important; }

/* =========================================================
   FICHE CHÂTEAU — en-tête TRANSPARENT superposé au hero
   (logo + menu blancs sur la photo ; barre foncée au scroll)
   Ciblé via body.single-chateau → n'affecte que les fiches.
   ========================================================= */
/* Header transparent, posé PAR-DESSUS le hero (hors flux) */
body.single-chateau #main-header{
  position:absolute !important; top:0 !important; left:0; right:0;
  background:transparent !important; box-shadow:none !important;
}
body.admin-bar.single-chateau #main-header{ top:32px; }
/* le hero remonte tout en haut (pas de barre blanche au-dessus) */
body.single-chateau #et-main-area{ padding-top:0 !important; }
body.single-chateau .vcf-hero{ margin-top:0 !important; }
/* menu + icônes en blanc sur la photo */
body.single-chateau #top-menu > li > a,
body.single-chateau #top-menu > li > a span,
body.single-chateau #top-menu .dipi-cta-button span,
body.single-chateau #et_top_search .et-search-icon:before,
body.single-chateau #et_mobile_nav_menu .mobile_menu_bar:before{ color:#fff !important; }
/* logo blanc visible (déjà blanc) */
body.single-chateau #logo{ opacity:1 !important; }
/* état FIXE (scroll) : barre foncée opaque, logo réaffiché */
body.single-chateau #main-header.et-fixed-header{
  position:fixed !important; background:#191919 !important;
  box-shadow:0 2px 18px rgba(0,0,0,.15) !important;
}
body.single-chateau .et-fixed-header #logo{ display:inline-block !important; opacity:1 !important; }
/* Header FIXE (scrollé) sur la fiche : assez haut pour le logo entier (3 ids pour battre les règles globales) */
body.single-chateau #page-container #main-header.et-fixed-header{ height:auto !important; min-height:96px !important; overflow:visible !important; }
body.single-chateau #page-container #main-header.et-fixed-header .container.et_menu_container{ padding-top:16px !important; padding-bottom:16px !important; overflow:visible !important; }
body.single-chateau #page-container #main-header.et-fixed-header .logo_container{ overflow:visible !important; height:auto !important; }
body.single-chateau #page-container #main-header.et-fixed-header #logo{ height:60px !important; max-height:60px !important; }
/* sous-menus déroulants lisibles (fond blanc, texte foncé) */
body.single-chateau #top-menu li ul{ background:#fff !important; }
body.single-chateau #top-menu li ul a,
body.single-chateau #top-menu li ul a span{ color:#191919 !important; }

/* ===== EN-TÊTE MOBILE des fiches ([vcf_hero_mobile], posé sous la photo) ===== */
.vcf-hero-m{ display:none; }
@media (max-width:980px){
  .vcf-hero-m{ display:block; background:#fff; padding:22px 20px 26px; }
  .vcf-hero-m .vcf-region-tag{ position:static !important; margin:0 0 13px !important; }
  .vcf-hm-title{ font-family:'Manrope',sans-serif; font-weight:700; font-size:1.7rem; line-height:1.12; letter-spacing:-.02em; color:#191919; margin:0 0 20px; }
  .vcf-hm-btns{ display:flex; gap:28px; }
  /* À trois boutons, l'écart fixe déborde sur les petits écrans : on le rend élastique. */
  .vcf-hm-btns-3{ gap:clamp(14px,7vw,28px); }
  .vcf-hm-btn{ display:flex; flex-direction:column; align-items:center; gap:8px; text-decoration:none; }
  .vcf-hm-btn .ic{ width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; transition:transform .2s ease; }
  .vcf-hm-btn:active .ic{ transform:scale(.94); }
  .vcf-hm-fill .ic{ background:#7C5C3E; color:#fff; }
  .vcf-hm-ghost .ic{ background:#fff; border:1.5px solid #7C5C3E; color:#7C5C3E; }
  .vcf-hm-btn .lbl{ font-family:'Inter',sans-serif; font-size:.8rem; color:#191919; }
  /* masque le titre / étiquette / boutons DU HERO (sur la photo) → photo dégagée sur mobile */
  body.single-chateau .vcf-hero .vcf-h1,
  body.single-chateau .vcf-hero .vcf-region-tag,
  body.single-chateau .vcf-hero .vcf-hero-actions{ display:none !important; }
}

/* =========================================================
   EXPÉRIENCES (blog) — liste + article
   Accent taupe, Manrope/Inter (déjà chargés par Divi).
   ========================================================= */
.vcf-exp{ max-width:1180px; margin:0 auto; padding:0 24px 80px; --acc:#8a7250; }
.vcf-exp-head{ text-align:center; padding:56px 0 30px; }
.vcf-exp-head h1{ font-family:'Manrope',sans-serif; font-weight:600; font-size:clamp(2.6rem,5vw,3.6rem); letter-spacing:-.02em; color:#191919; margin:6px 0 12px; }
.vcf-exp-sub{ max-width:56ch; margin:0 auto; color:#5c554c; font-size:1.05rem; line-height:1.7; font-weight:300; }
.vcf-exp .vcf-eyebrow{ font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; color:var(--acc); font-weight:500; margin:0; }

/* Chips */
.vcf-exp-chips{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center; padding:0 0 40px; }
.vcf-exp .vcf-chip{ font-size:.82rem; padding:8px 18px; border:1px solid #e7e0d5; border-radius:40px; color:#5c554c; background:#fff; text-decoration:none; transition:all .2s; }
.vcf-exp .vcf-chip:hover{ border-color:#191919; color:#191919; }
.vcf-exp .vcf-chip.on{ background:#191919; color:#fff; border-color:#191919; }

/* Carte image (fond) */
.vcf-exp-thumb{ display:block; background:#d8cfc0 center/cover no-repeat; border-radius:10px; }
.vcf-exp-cat{ font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--acc); font-weight:500; margin:0; }
.vcf-exp-meta{ font-size:.78rem; color:#8a8178; letter-spacing:.03em; margin:0; }
.vcf-exp-link{ font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--acc); font-weight:500; border-bottom:1px solid var(--acc); padding-bottom:2px; text-decoration:none; display:inline-block; }

/* À la une */
.vcf-exp-feature{ display:grid; grid-template-columns:1.15fr 1fr; gap:34px; align-items:center; margin:0 0 48px; }
.vcf-exp-feature .vcf-exp-thumb{ aspect-ratio:4/3; }
.vcf-exp-feature h2{ font-family:'Manrope',sans-serif; font-weight:600; font-size:clamp(1.5rem,2.4vw,2rem); line-height:1.14; letter-spacing:-.01em; margin:10px 0 12px; }
.vcf-exp-feature h2 a{ color:#191919; text-decoration:none; }
.vcf-exp-exc{ color:#5c554c; font-size:.98rem; line-height:1.7; font-weight:300; margin:0 0 18px; }
.vcf-exp-feature .vcf-exp-meta{ margin:0 0 18px; }

/* Grille */
.vcf-exp-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.vcf-exp-card{ background:#fff; border:1px solid #ece7de; border-radius:12px; overflow:hidden; transition:transform .25s, box-shadow .25s; }
.vcf-exp-card:hover{ transform:translateY(-4px); box-shadow:0 12px 30px rgba(20,17,14,.08); }
.vcf-exp-card .vcf-exp-thumb{ aspect-ratio:16/11; border-radius:0; }
.vcf-exp-card-txt{ padding:18px 18px 22px; }
.vcf-exp-card h3{ font-family:'Manrope',sans-serif; font-weight:600; font-size:1.05rem; line-height:1.24; margin:8px 0 10px; }
.vcf-exp-card h3 a{ color:#191919; text-decoration:none; }

/* Pagination */
.vcf-exp-pag{ display:flex; justify-content:center; gap:8px; margin-top:50px; }
.vcf-exp-pag .page-numbers{ min-width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; padding:0 12px; border:1px solid #e7e0d5; border-radius:6px; color:#5c554c; text-decoration:none; font-size:.9rem; }
.vcf-exp-pag .page-numbers.current{ background:#191919; color:#fff; border-color:#191919; }
.vcf-exp-pag .page-numbers:hover{ border-color:#191919; }
.vcf-exp-empty{ text-align:center; color:#8a8178; padding:40px 0; }

@media (max-width:860px){ .vcf-exp-feature{ grid-template-columns:1fr; } .vcf-exp-grid{ grid-template-columns:1fr 1fr; gap:20px; } }
@media (max-width:560px){ .vcf-exp-grid{ grid-template-columns:1fr; } }

/* ---------- Article ---------- */
.vcf-article{ --acc:#8a7250; }
/* Barre « retour à l'espace propriétaire » (affichée aux propriétaires connectés) */
.vcf-article-backbar{ background:#141210; }
.vcf-article-backbar a{ display:inline-block; max-width:1180px; width:100%; margin:0 auto; padding:11px 40px; color:#F4E7D5; text-decoration:none; font-family:'Inter',sans-serif; font-size:.9rem; letter-spacing:.01em; }
.vcf-article-backbar a:hover{ color:#fff; }
@media(max-width:600px){ .vcf-article-backbar a{ padding:11px 20px; } }
.vcf-article-hero{ position:relative; min-height:420px; background:#b6ac99 center/cover no-repeat; display:flex; align-items:flex-end; }
.vcf-article-hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(20,17,14,.42) 0%,rgba(20,17,14,.12) 34%,rgba(20,17,14,.7) 100%); }
.vcf-article-hero-in{ position:relative; z-index:2; max-width:900px; margin:0 auto; width:100%; padding:0 24px 46px; }
.vcf-article-crumb{ font-size:.8rem; color:rgba(255,255,255,.85); margin:0 0 12px; letter-spacing:.02em; }
.vcf-article-crumb a{ color:rgba(255,255,255,.85); text-decoration:none; }
.vcf-article-chip{ display:inline-block; font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:#fff; border:1px solid rgba(255,255,255,.6); border-radius:40px; padding:6px 15px; margin:0 0 14px; text-decoration:none; }
.vcf-article-hero h1{ font-family:'Manrope',sans-serif; font-weight:600; font-size:clamp(2rem,4vw,3rem); line-height:1.08; letter-spacing:-.02em; color:#fff; margin:0; max-width:22ch; text-shadow:0 2px 20px rgba(0,0,0,.35); }
.vcf-article-meta{ font-size:.85rem; color:rgba(255,255,255,.9); margin:16px 0 0; letter-spacing:.03em; }

.vcf-article-body{ max-width:820px; margin:0 auto; padding:48px 24px 10px; font-size:1.075rem; line-height:1.85; color:#3a342c; }
.vcf-article-body p{ margin:0 0 22px; }
.vcf-article-body h2{ font-family:'Manrope',sans-serif; font-weight:600; font-size:1.7rem; letter-spacing:-.01em; color:#191919; margin:38px 0 14px; }
.vcf-article-body h3{ font-family:'Manrope',sans-serif; font-weight:600; font-size:1.28rem; color:#191919; margin:30px 0 10px; }
.vcf-article-body img{ max-width:100%; height:auto; border-radius:8px; margin:10px 0; }
.vcf-article-body figcaption,.vcf-article-body .wp-caption-text{ font-size:.85rem; color:#8a8178; font-style:italic; text-align:center; margin-top:6px; }
.vcf-article-body blockquote{ border-left:2px solid var(--acc); margin:30px 0; padding:4px 0 4px 24px; }
.vcf-article-body blockquote p{ font-family:Georgia,'Times New Roman',serif; font-style:italic; font-size:1.5rem; line-height:1.4; color:#191919; margin:0; }
.vcf-article-body a{ color:var(--acc); text-decoration:underline; text-underline-offset:2px; }

/* Château lié */
.vcf-article-chateau{ max-width:820px; margin:34px auto; padding:22px 24px; background:#f6f3ee; border-radius:12px; display:flex; align-items:center; gap:20px; }
.vcf-ac-thumb{ width:110px; height:80px; border-radius:8px; background:#b6ac99 center/cover no-repeat; flex:none; }
.vcf-ac-txt{ flex:1; }
.vcf-ac-name{ font-family:'Manrope',sans-serif; font-weight:600; font-size:1.15rem; color:#191919; margin:4px 0 3px; }
.vcf-ac-btn{ font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; font-weight:500; color:#fff; background:#191919; padding:13px 24px; border-radius:4px; text-decoration:none; white-space:nowrap; }
.vcf-ac-btn:hover{ background:#000; }

/* À lire aussi */
.vcf-article-related{ max-width:1180px; margin:30px auto 70px; padding:0 24px; }
.vcf-article-related .vcf-eyebrow{ font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; color:var(--acc); font-weight:500; margin:0 0 20px; }

@media (max-width:640px){ .vcf-article-chateau{ flex-wrap:wrap; } .vcf-ac-btn{ width:100%; text-align:center; } }

/* ===== EN-TÊTE sur les pages blog =====
   Liste (archives catégories) : barre foncée opaque (menu lisible sur fond clair).
   Article (single post) : en-tête transparent superposé au hero (comme les fiches). */
/* --- Liste : archives de catégories (Expériences + enfants) --- */
body.et_transparent_nav.category #main-header,
body.et_fixed_nav.category #main-header,
body.category #main-header.et-fixed-header{ background:#191919 !important; box-shadow:none !important; }
body.category #et-main-area{ padding-top:70px !important; }
body.admin-bar.category #et-main-area{ padding-top:102px !important; }
body.category #top-menu > li > a, body.category #top-menu > li > a span,
body.category #top-menu .dipi-cta-button span,
body.category #et_top_search .et-search-icon:before,
body.category #et_mobile_nav_menu .mobile_menu_bar:before{ color:#fff !important; }
body.category .et-fixed-header #logo{ display:inline-block !important; opacity:1 !important; }
body.category #top-menu li ul{ background:#fff !important; }
body.category #top-menu li ul a, body.category #top-menu li ul a span{ color:#191919 !important; }

/* --- Article + listing Expériences : en-tête transparent au-dessus du hero --- */
body.single-post #main-header,
body.page-template-blog-masonry #main-header{ position:absolute !important; top:0 !important; left:0; right:0; background:transparent !important; box-shadow:none !important; }
body.admin-bar.single-post #main-header,
body.admin-bar.page-template-blog-masonry #main-header{ top:32px !important; }
body.single-post #et-main-area,
body.page-template-blog-masonry #et-main-area{ padding-top:0 !important; }
body.single-post #top-menu > li > a, body.single-post #top-menu > li > a span,
body.single-post #top-menu .dipi-cta-button span,
body.single-post #et_top_search .et-search-icon:before,
body.single-post #et_mobile_nav_menu .mobile_menu_bar:before,
body.page-template-blog-masonry #top-menu > li > a, body.page-template-blog-masonry #top-menu > li > a span,
body.page-template-blog-masonry #top-menu .dipi-cta-button span,
body.page-template-blog-masonry #et_top_search .et-search-icon:before,
body.page-template-blog-masonry #et_mobile_nav_menu .mobile_menu_bar:before{ color:#fff !important; }
body.single-post #main-header.et-fixed-header,
body.page-template-blog-masonry #main-header.et-fixed-header{ position:fixed !important; background:#191919 !important; box-shadow:0 2px 18px rgba(0,0,0,.15) !important; }
body.single-post .et-fixed-header #logo,
body.page-template-blog-masonry .et-fixed-header #logo{ display:inline-block !important; opacity:1 !important; }

/* ===== Articles : contenu WPBakery (vc_*) hérité — mise en page une colonne ===== */
/* Les colonnes internes (galerie 1/2 + texte 1/2) passent en pleine largeur empilée */
.vcf-article-body .vc_row, .vcf-article-body .vc_row-fluid, .vcf-article-body .wpb_row,
.vcf-article-body .vc_row_inner{ margin:0 !important; width:auto !important; }
.vcf-article-body .vc_column_container, .vcf-article-body .wpb_column,
.vcf-article-body [class*="vc_col-"], .vcf-article-body .vc_column_inner{
  width:100% !important; max-width:100% !important; float:none !important; display:block !important;
  padding-left:0 !important; padding-right:0 !important; margin:0 0 6px !important;
}
.vcf-article-body .wpb_wrapper, .vcf-article-body .wpb_text_column, .vcf-article-body .wpb_content_element{ width:100% !important; }
/* La galerie occupe toute la largeur → plus grande */
.vcf-article-body .wpb_gallery, .vcf-article-body .wpb_gallery_slides,
.vcf-article-body .flexslider, .vcf-article-body .flexslider .slides,
.vcf-article-body .flexslider .slides > li{ width:100% !important; }
.vcf-article-body .flexslider .slides img, .vcf-article-body .wpb_gallery img{ width:100% !important; height:auto !important; border-radius:8px; }
.vcf-article-body .wpb_gallery, .vcf-article-body .wpb_text_column{ margin-bottom:26px !important; }
.vcf-article-body .vc_separator{ margin:8px 0 22px !important; }
.vcf-article-body .wpb_content_element .wpb_wrapper > p{ text-align:left !important; }

/* CTA converti depuis [action] */
.vcf-cta{ background:#191919; border-radius:12px; padding:28px 30px; margin:30px 0; display:flex; align-items:center; justify-content:space-between; gap:22px; flex-wrap:wrap; }
.vcf-cta-text{ font-family:'Manrope',sans-serif; font-weight:600; font-size:1.2rem; color:#fff; margin:0; }
.vcf-cta-btn{ display:inline-block; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; font-weight:500; color:#191919 !important; background:#fff; padding:14px 26px; border-radius:4px; text-decoration:none !important; white-space:nowrap; }
.vcf-cta-btn:hover{ background:#f0ece3; }

/* Anciens CTA déjà en HTML (.call_to_action / .qbutton) */
.vcf-article-body .call_to_action{ background:#f6f3ee; border-radius:12px; padding:24px 28px; margin:30px 0; }
.vcf-article-body .call_to_action .two_columns_75_25{ display:flex; align-items:center; justify-content:space-between; gap:22px; flex-wrap:wrap; }
.vcf-article-body .call_to_action_text{ font-family:'Manrope',sans-serif; font-weight:600; font-size:1.15rem; color:#191919; }
.vcf-article-body .qbutton{ display:inline-block; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; font-weight:500; color:#fff !important; background:#191919; padding:14px 26px; border-radius:4px; text-decoration:none !important; white-space:nowrap; }
.vcf-article-body .qbutton:hover{ background:#000; }

/* Article : le hero colle en haut (sous l'en-tête transparent) — annule le padding de la 1re section/ligne du gabarit Divi */
body.single-post #et-main-area{ padding-top:0 !important; }
body.single-post #main-content .et_builder_inner_content > .et_pb_section:first-child,
body.single-post .et-l--body .et_pb_section:first-child,
body.single-post .et_pb_section.et_pb_section_0{ padding-top:0 !important; }
body.single-post .et-l--body .et_pb_section:first-child .et_pb_row:first-child,
body.single-post .et_pb_section.et_pb_section_0 .et_pb_row:first-child{ padding-top:0 !important; margin-top:0 !important; }
body.single-post .et-l--body .et_pb_section:first-child .et_pb_row:first-child .et_pb_column{ padding-top:0 !important; }

/* =========================================================
   FOOTER
   ========================================================= */
.vcf-footer{ background:#191919; color:#cfc9c0; font-family:'Inter',sans-serif; }
.vcf-footer a{ color:#cfc9c0; text-decoration:none; transition:color .2s; }
.vcf-footer a:hover{ color:#fff; }
.vcf-footer-in{ max-width:1180px; margin:0 auto; padding:64px 24px 40px; display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr 1fr; gap:40px; }
.vcf-foot-logo{ height:54px; width:auto; margin:0 0 18px; display:block; }
.vcf-foot-col h4{ font-family:'Manrope',sans-serif; font-weight:600; font-size:1.15rem; color:#fff; margin:0 0 16px; letter-spacing:.01em; }
.vcf-foot-col h5{ font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:#8a7250; font-weight:500; margin:0 0 18px; }
.vcf-foot-brand p{ font-size:.92rem; line-height:1.75; font-weight:300; color:#b3ada3; margin:0 0 20px; max-width:46ch; }
.vcf-foot-col ul{ list-style:none; margin:0; padding:0; }
.vcf-foot-col ul li{ margin:0 0 12px; }
.vcf-foot-col ul a{ font-size:.95rem; }
.vcf-foot-social{ display:flex; gap:12px; }
.vcf-foot-social a{ width:38px; height:38px; border:1px solid rgba(255,255,255,.22); border-radius:50%; display:inline-flex; align-items:center; justify-content:center; }
.vcf-foot-social a:hover{ background:#8a7250; border-color:#8a7250; color:#fff; }
/* Châteaux (SEO) */
.vcf-foot-chateaux{ border-top:1px solid rgba(255,255,255,.1); max-width:1180px; margin:0 auto; padding:34px 24px; }
.vcf-foot-chateaux h5{ font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:#8a7250; font-weight:500; margin:0 0 16px; }
.vcf-foot-chx-list{ display:flex; flex-wrap:wrap; gap:6px 0; }
.vcf-foot-chx-list a{ font-size:.82rem; color:#9c968c; padding:0 14px; border-right:1px solid rgba(255,255,255,.14); line-height:1.4; }
.vcf-foot-chx-list a:first-child{ padding-left:0; }
.vcf-foot-bottom{ border-top:1px solid rgba(255,255,255,.1); text-align:center; padding:22px 24px; font-size:.8rem; color:#7d776e; }
@media (max-width:860px){ .vcf-footer-in{ grid-template-columns:1fr 1fr; gap:34px; } .vcf-foot-brand{ grid-column:1/-1; } }
@media (max-width:560px){ .vcf-footer-in{ grid-template-columns:1fr; } }

/* =========================================================
   PAGES LÉGALES (CGU, mentions, confidentialité, non discrimination)
   ========================================================= */
.vcf-legal{ --acc:#8a7250; }
.vcf-legal-head{ background:#f6f3ee; padding:56px 24px 40px; text-align:center; border-bottom:1px solid #e7e0d5; }
.vcf-legal-crumb{ font-size:.8rem; color:#8a8178; margin:0 0 12px; }
.vcf-legal-crumb a{ color:#8a7250; text-decoration:none; }
.vcf-legal-head h1{ font-family:'Manrope',sans-serif; font-weight:600; font-size:clamp(2rem,4vw,2.8rem); letter-spacing:-.02em; color:#191919; margin:0; }
.vcf-legal-body{ max-width:820px; margin:0 auto; padding:48px 24px 70px; font-size:1.02rem; line-height:1.8; color:#3a342c; }
.vcf-legal-body h2{ font-family:'Manrope',sans-serif; font-weight:600; font-size:1.5rem; color:#191919; margin:34px 0 12px; }
.vcf-legal-body h3{ font-family:'Manrope',sans-serif; font-weight:600; font-size:1.2rem; color:#191919; margin:26px 0 10px; }
.vcf-legal-body p{ margin:0 0 18px; }
.vcf-legal-body a{ color:var(--acc); text-decoration:underline; text-underline-offset:2px; }
.vcf-legal-body ul,.vcf-legal-body ol{ margin:0 0 18px 1.2em; }
.vcf-legal-body li{ margin:0 0 8px; }
/* contenu WPBakery hérité éventuel → une colonne */
.vcf-legal-body .vc_row, .vcf-legal-body .vc_row-fluid, .vcf-legal-body .wpb_row, .vcf-legal-body .vc_row_inner{ margin:0 !important; width:auto !important; }
.vcf-legal-body .vc_column_container, .vcf-legal-body .wpb_column, .vcf-legal-body [class*="vc_col-"], .vcf-legal-body .vc_column_inner{ width:100% !important; max-width:100% !important; float:none !important; display:block !important; padding:0 !important; }

/* En-tête foncé opaque sur les pages légales (menu lisible sur fond clair) */
body.et_transparent_nav:has(.vcf-legal) #main-header,
body.et_fixed_nav:has(.vcf-legal) #main-header,
body:has(.vcf-legal) #main-header.et-fixed-header{ background:#191919 !important; box-shadow:none !important; }
body:has(.vcf-legal) #et-main-area{ padding-top:70px !important; }
body.admin-bar:has(.vcf-legal) #et-main-area{ padding-top:102px !important; }
body:has(.vcf-legal) #top-menu > li > a, body:has(.vcf-legal) #top-menu > li > a span,
body:has(.vcf-legal) #top-menu .dipi-cta-button span,
body:has(.vcf-legal) #et_top_search .et-search-icon:before,
body:has(.vcf-legal) #et_mobile_nav_menu .mobile_menu_bar:before{ color:#fff !important; }
body:has(.vcf-legal) .et-fixed-header #logo{ display:inline-block !important; opacity:1 !important; }

/* Pages légales : coller le bandeau ivoire sous la barre (supprime le padding de la 1re section/ligne Divi) */
body:has(.vcf-legal) #main-content .et_builder_inner_content > .et_pb_section:first-child,
body:has(.vcf-legal) .et-l--body .et_pb_section:first-child,
body:has(.vcf-legal) .et_pb_section.et_pb_section_0{ padding-top:0 !important; }
body:has(.vcf-legal) .et-l--body .et_pb_section:first-child .et_pb_row:first-child,
body:has(.vcf-legal) .et_pb_section.et_pb_section_0 .et_pb_row:first-child{ padding-top:0 !important; margin-top:0 !important; }
body:has(.vcf-legal) .et-l--body .et_pb_section:first-child .et_pb_column{ padding-top:0 !important; }

/* Slider témoignages home : nom du château sous l'auteur */
.vcf-testi-by .meta .loc{ display:block; font-size:.78rem; color:#8a7250; letter-spacing:.02em; margin-top:2px; }

/* Avis : bouton "Lire plus" */
.vcf-testi-more{ background:none; border:0; padding:0; margin-left:2px; font:inherit; font-size:.85rem; color:#c9a97a; text-decoration:underline; cursor:pointer; }
.vcf-testi-more:hover{ color:#fff; }
.vcf-testi-full[hidden], .vcf-testi-short[hidden]{ display:none; }

/* Carte : forcer le split en 2 colonnes (flex) → la carte reste à droite même si "aucun résultat" */
@media (min-width:1081px){
  .vcf-carte-split.et_pb_row, .vcf-carte-results .et_pb_row{ display:flex!important; align-items:flex-start!important; flex-wrap:nowrap!important; }
  .vcf-carte-split.et_pb_row > .et_pb_column, .vcf-carte-results .et_pb_row > .et_pb_column{ float:none!important; }
  .vcf-carte-list, .vcf-carte-split > .et_pb_column:first-child{ min-height:calc(100vh - 110px); } /* la colonne liste garde sa hauteur → la carte sticky ne saute pas */
}

/* Bulle carte (popup WPGB) : verrouille la zone image → plus d'ouverture "grande puis normale" */
.leaflet-popup-content .wpgb-card-media > svg,
.leaflet-popup-content .wpgb-card-media [data-ratio]{ display:none !important; }
.leaflet-popup-content .wpgb-card-media,
.leaflet-popup-content .wpgb-card-media-thumbnail,
.leaflet-popup-content .wpgb-card-media-thumbnail > a,
.leaflet-popup-content .wpgb-card-media-thumbnail > a > div,
.leaflet-popup-content .wpgb-card-media-thumbnail > div{
  height:175px !important; min-height:175px !important; max-height:175px !important;
  aspect-ratio:auto !important; overflow:hidden;
}
.leaflet-popup-content .wpgb-card-media-thumbnail > a > div,
.leaflet-popup-content .wpgb-card-media-thumbnail > div{ background-size:cover !important; background-position:center !important; }
.leaflet-popup-content .wpgb-card-media img{ width:100% !important; height:175px !important; object-fit:cover !important; display:block; }

/* Bulle carte : couper toute animation/transform des cartes WPGB (cause du "grand puis normal") */
.leaflet-popup .wpgb-card,
.leaflet-popup .wpgb-card *,
.leaflet-popup-content .wpgb-card,
.leaflet-popup-content .wpgb-card *{
  animation:none !important; -webkit-animation:none !important;
  transition:none !important; transform:none !important;
  opacity:1 !important; will-change:auto !important;
}
.leaflet-popup-content{ width:300px !important; }

/* Bulle carte chargée en AJAX : dimensions FIGÉES (vide = chargé) → plus de reflow "grand puis normal" */
.vcf-carte-map .leaflet-popup-content-wrapper{ padding:0 !important; overflow:hidden; border-radius:12px; }
.vcf-carte-map .leaflet-popup-content{ width:300px !important; min-height:288px !important; margin:0 !important; }
.vcf-carte-map .leaflet-popup-content .wpgb-marker-content,
.vcf-carte-map .leaflet-popup-content .wpgb-card,
.vcf-carte-map .leaflet-popup-content .wpgb-card-wrapper,
.vcf-carte-map .leaflet-popup-content .wpgb-card-inner{ width:300px !important; }
/* la zone média garde son ratio 2:1 (150px) réservé dès le départ */
.vcf-carte-map .leaflet-popup-content .wpgb-card-media{ min-height:150px !important; }
/* état "chargement" occupe déjà la même hauteur */
.vcf-carte-map .leaflet-popup-content:empty,
.vcf-carte-map .leaflet-popup-content .wpgb-loader,
.vcf-carte-map .leaflet-popup-content .wpgb-is-loading{ min-height:288px !important; }

/* Bulle carte : média à hauteur FIXE 150px (le spacer SVG %-largeur causait la "grande hauteur") */
.vcf-carte-map .leaflet-popup-content .wpgb-card-media{ height:150px !important; min-height:150px !important; max-height:150px !important; padding:0 !important; position:relative !important; overflow:hidden !important; }
.vcf-carte-map .leaflet-popup-content .wpgb-card-media > svg{ display:none !important; }
.vcf-carte-map .leaflet-popup-content .wpgb-card-media-thumbnail{ position:absolute !important; inset:0 !important; height:150px !important; }
.vcf-carte-map .leaflet-popup-content .wpgb-card-media-thumbnail > a,
.vcf-carte-map .leaflet-popup-content .wpgb-card-media-thumbnail > a > div{ height:150px !important; }

/* ===== BULLE CARTE — règles NON PRÉFIXÉES (la bulle est hors de .vcf-carte-map) ===== */
.leaflet-popup-content-wrapper{ padding:0 !important; overflow:hidden !important; border-radius:12px !important; }
.leaflet-popup-content{ width:300px !important; max-width:300px !important; min-height:288px !important; max-height:312px !important; overflow:hidden !important; margin:0 !important; }
.leaflet-popup-content .wpgb-marker-content,
.leaflet-popup-content .wpgb-card,
.leaflet-popup-content .wpgb-card-wrapper,
.leaflet-popup-content .wpgb-card-inner{ width:300px !important; max-width:300px !important; }
.leaflet-popup-content .wpgb-card-media{ height:150px !important; min-height:150px !important; max-height:150px !important; padding:0 !important; position:relative !important; overflow:hidden !important; }
.leaflet-popup-content .wpgb-card-media > svg,
.leaflet-popup-content .wpgb-card-media [data-ratio]{ display:none !important; }
.leaflet-popup-content .wpgb-card-media-thumbnail{ position:absolute !important; inset:0 !important; height:150px !important; }
.leaflet-popup-content .wpgb-card-media-thumbnail > a,
.leaflet-popup-content .wpgb-card-media-thumbnail > a > div{ height:150px !important; }
/* état chargement (spinner) plafonné aussi */
.leaflet-popup-content:empty{ min-height:288px !important; max-height:312px !important; }

/* Loupe de recherche : toujours cliquable (même sans critère) */
.vcf-search .vcf-search-submit,
.vcf-search .vcf-search-submit .wpgb-button,
.vcf-search .vcf-search-submit button{ pointer-events:auto !important; opacity:1 !important; cursor:pointer !important; }

/* ===== MOBILE — barre de recherche carte repliable (bouton « Filtrer ») ===== */
.vcf-filter-toggle{ display:none; align-items:center; gap:10px; width:100%; padding:15px 20px; background:#fff; border:0; font-family:'Manrope',sans-serif; font-weight:600; font-size:.95rem; color:#191919; letter-spacing:.02em; cursor:pointer; }
.vcf-filter-toggle svg{ color:#8a7250; flex:none; }
.vcf-filter-toggle .chev{ margin-left:auto; transition:transform .25s ease; }
.vcf-search.vcf-open .vcf-filter-toggle .chev{ transform:rotate(180deg); }

@media (max-width:860px){
  /* barre carte : compacte, fixée en haut sous le menu, opaque, pleine largeur */
  /* colle SOUS le header : hauteur réelle mesurée en JS (--vcf-hh) ; repli 119px = header mobile empilé */
  .vcf-carte-search{ position:sticky!important; top:var(--vcf-hh,119px)!important; z-index:60!important; background:#fff!important; box-shadow:0 6px 18px rgba(0,0,0,.10)!important; }
  body.admin-bar .vcf-carte-search{ top:var(--vcf-hh,151px)!important; }
  .vcf-carte-search .et_pb_row{ padding:0!important; margin:0!important; max-width:100%!important; width:100%!important; }
  .vcf-search{ box-shadow:none!important; border-radius:0!important; }
  /* bouton visible ; champs masqués tant que ce n'est pas déplié */
  .vcf-filter-toggle{ display:flex!important; }
  .vcf-search .vcf-search-field,
  .vcf-search .vcf-search-submit{ display:none!important; }
  .vcf-search.vcf-open .vcf-search-field{ display:block!important; }
  .vcf-search.vcf-open .vcf-search-submit{ display:block!important; }
}

/* ===== MOBILE — barre « Filtrer » en carte FLOTTANTE (arrondie, ombrée, marges) ===== */
@media (max-width:860px){
  /* conteneur sticky de la carte : transparent + marge → la barre semble voler au-dessus */
  .vcf-carte-search{ background:transparent!important; box-shadow:none!important; padding:12px 12px 0!important; }
  .vcf-carte-search .et_pb_row{ padding:0!important; margin:0!important; }
  /* la barre elle-même (home hero ET carte) : carte flottante */
  .vcf-search{ border-radius:18px!important; box-shadow:0 16px 38px rgba(20,17,14,.20)!important; background:#fff!important; }
  body.home .vcf-search{ margin:0 12px!important; }
  /* coins nets : replié = pilule 4 coins ; déplié = haut arrondi + bas arrondi */
  .vcf-filter-toggle{ border-radius:18px!important; }
  .vcf-search.vcf-open .vcf-filter-toggle{ border-radius:18px 18px 0 0!important; }
  .vcf-search.vcf-open .vcf-search-submit,
  .vcf-search.vcf-open .vcf-search-submit .wpgb-button,
  .vcf-search.vcf-open .vcf-search-submit .wpgb-apply{ border-radius:0 0 18px 18px!important; }
}

/* ===== MOBILE — nettoyage barre flottante (trait résiduel + zone blanche sous la loupe) ===== */
@media (max-width:860px){
  /* aucun trait/bord/ombre autour de la barre flottante (sur le conteneur, pas la carte) */
  .vcf-carte-search, .vcf-carte-search .et_pb_row, .vcf-carte-search .et_pb_column,
  .vcf-carte-search .et_pb_module, .vcf-carte-search .et_pb_code{ border:0 !important; box-shadow:none !important; }
  /* champs + bouton en hauteur naturelle (le flex:1 causait la zone blanche sous la loupe) */
  .vcf-search .vcf-search-field, .vcf-search .vcf-search-submit{ flex:0 0 auto !important; }
  .vcf-search .vcf-search-field:last-of-type{ border-bottom:0 !important; }
  /* loupe visible SEULEMENT quand déplié (sinon elle apparaît en mode replié) */
  .vcf-search.vcf-open .vcf-search-submit{ display:block !important; }
  .vcf-search.vcf-open .vcf-search-submit .wpgb-facet{ display:block !important; }
  .vcf-search.vcf-open .vcf-search-submit .wpgb-button,
  .vcf-search.vcf-open .vcf-search-submit .wpgb-apply{ display:block !important; width:100% !important; min-width:0 !important; height:58px !important; }
}
/* Loupe : remplit toute la hauteur de la barre → supprime le blanc dessous (desktop + mobile déplié) */
.vcf-search .vcf-search-submit{ align-self:stretch !important; }
.vcf-search .vcf-search-submit .wpgb-facet{ align-self:stretch !important; height:100% !important; }
.vcf-search .vcf-search-submit .wpgb-button,
.vcf-search .vcf-search-submit .wpgb-apply{ height:100% !important; }

/* ===== MOBILE — combler le blanc résiduel sous la loupe (carte + facette à la bonne hauteur) ===== */
@media (max-width:860px){
  .vcf-carte-search, .vcf-carte-search .et_pb_row, .vcf-carte-search .et_pb_column,
  .vcf-carte-search .et_pb_column_inner, .vcf-carte-search .et_pb_module{ min-height:0 !important; height:auto !important; }
  .vcf-search{ height:auto !important; min-height:0 !important; }
  .vcf-search.vcf-open .vcf-search-submit{ display:block !important; height:58px !important; overflow:hidden !important; border-radius:0 0 18px 18px !important; }
  .vcf-search.vcf-open .vcf-search-submit .wpgb-facet{ display:block !important; height:58px !important; }
  .vcf-search.vcf-open .vcf-search-submit .wpgb-button,
  .vcf-search.vcf-open .vcf-search-submit .wpgb-apply{ height:58px !important; min-height:58px !important; border-radius:0 0 18px 18px !important; }
}

/* ===== Hero des archives usages/régions ([vcf_archive_intro]) — image de catégorie en fond ===== */
.vcf-archive-hero{ position:relative; background:#20211c; background-size:cover; background-position:center; color:#fff; padding:78px 24px; text-align:center; }
.vcf-archive-hero-in{ max-width:780px; margin:0 auto; }
.vcf-archive-hero .vcf-archive-eye{ font-family:'Manrope',sans-serif; font-weight:700; font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:#E7C9A8; display:block; margin:0 0 14px; }
.vcf-archive-hero h1{ font-family:'Manrope',sans-serif; font-weight:800; letter-spacing:-.02em; color:#fff; font-size:clamp(30px,4vw,48px); line-height:1.08; margin:0 0 16px; text-shadow:0 2px 18px rgba(0,0,0,.35); }
.vcf-archive-hero .vcf-archive-desc{ font-family:'Inter',sans-serif; color:rgba(255,255,255,.93); font-size:17px; line-height:1.7; text-shadow:0 1px 12px rgba(0,0,0,.3); }
.vcf-archive-hero .vcf-archive-desc > p:first-of-type{ font-size:18.5px; }
.vcf-archive-hero .vcf-archive-desc p{ margin:0 0 14px; }
.vcf-archive-hero .vcf-archive-desc p:last-child{ margin-bottom:0; }
.vcf-archive-hero .vcf-archive-desc h2,.vcf-archive-hero .vcf-archive-desc h3{ font-family:'Manrope',sans-serif; color:#fff; line-height:1.2; margin:22px 0 10px; }
.vcf-archive-hero .vcf-archive-desc h2{ font-size:24px; } .vcf-archive-hero .vcf-archive-desc h3{ font-size:20px; }
@media (max-width:768px){
  .vcf-archive-hero{ padding:44px 18px; }
  .vcf-archive-hero h1{ font-size:30px; }
  .vcf-archive-hero .vcf-archive-desc{ font-size:14.5px; }
  .vcf-archive-hero .vcf-archive-desc > p:first-of-type{ font-size:15.5px; }
}


/* ===== Page « Proposez votre château » ([vcf_proposez]) ===== */
.vcf-pz{ font-family:'Inter',sans-serif; color:#3a3a3a; }
.vcf-pz section{ padding:64px 24px; }
.vcf-pz-eye{ font-family:'Manrope',sans-serif; font-weight:700; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:#7C5C3E; display:block; margin:0 0 14px; }
.vcf-pz-eye.light{ color:#B79A6B; }
.vcf-pz h1{ font-family:'Manrope',sans-serif; font-weight:800; letter-spacing:-.02em; color:#fff; font-size:clamp(30px,4.4vw,46px); line-height:1.08; margin:0 0 18px; }
.vcf-pz h2{ font-family:'Manrope',sans-serif; font-weight:800; letter-spacing:-.02em; color:#191919; font-size:clamp(24px,3vw,32px); line-height:1.12; margin:0 0 10px; }
.vcf-pz-hero{ background:#20211c; color:#fff; background-size:cover; background-position:center; }
.vcf-pz-hero-in{ max-width:1120px; margin:0 auto; }
.vcf-pz-hero p{ font-size:17px; line-height:1.65; color:rgba(255,255,255,.85); max-width:50ch; margin:0 0 26px; }
.vcf-pz-btn{ display:inline-block; font-family:'Manrope',sans-serif; font-weight:700; font-size:13px; letter-spacing:.06em; text-transform:uppercase; background:#7C5C3E; color:#fff !important; padding:16px 30px; border-radius:9px; text-decoration:none; transition:background .2s; }
.vcf-pz-btn:hover{ background:#5E4429; }
.vcf-pz-why{ background:#FAF7F2; text-align:center; }
.vcf-pz-grid{ max-width:1120px; margin:28px auto 0; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; text-align:left; }
.vcf-pz-card{ background:#fff; border:1px solid #eee6da; border-radius:14px; padding:24px 20px; }
.vcf-pz-ic{ width:46px; height:46px; border-radius:12px; background:#F3ECE1; color:#7C5C3E; display:flex; align-items:center; justify-content:center; font-size:24px; margin-bottom:14px; }
.vcf-pz-card h4{ font-family:'Manrope',sans-serif; font-size:16px; color:#191919; margin:0 0 7px; }
.vcf-pz-card p{ font-size:13.5px; line-height:1.6; color:#6a6a6a; margin:0; }
.vcf-pz-steps{ background:#fff; }
.vcf-pz-steps-list{ max-width:620px; margin:28px auto 0; display:flex; flex-direction:column; gap:22px; }
.vcf-pz-step{ display:flex; gap:18px; align-items:flex-start; }
.vcf-pz-step-n{ font-family:'Manrope',sans-serif; font-weight:800; font-size:16px; color:#fff; background:#7C5C3E; width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.vcf-pz-step h4{ font-family:'Manrope',sans-serif; font-size:16px; color:#191919; margin:4px 0 4px; }
.vcf-pz-step p{ font-size:14px; color:#6a6a6a; margin:0; line-height:1.55; }
.vcf-pz-formsec{ background:#FAF7F2; }
.vcf-pz-form-in{ max-width:620px; margin:0 auto; text-align:center; }
.vcf-pz-sub{ font-size:14px; color:#6a6a6a; margin:0 0 26px; }
.vcf-pz-cf7{ text-align:left; }
.vcf-pz-cf7 .vcf-ff-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.vcf-pz-cf7 .vcf-ff-full{ grid-column:1 / -1; }
.vcf-pz-cf7 .vcf-ff label{ display:block; font-family:'Manrope',sans-serif; font-size:12.5px; color:#7a7266; margin:0 0 6px; font-weight:500; }
.vcf-pz-cf7 input[type=text],.vcf-pz-cf7 input[type=email],.vcf-pz-cf7 input[type=tel],.vcf-pz-cf7 input[type=number],.vcf-pz-cf7 select,.vcf-pz-cf7 textarea{ width:100%; background:#fff; border:1px solid #ddd4c6; border-radius:9px; padding:11px 13px; font-size:14px; font-family:'Inter',sans-serif; color:#333; box-sizing:border-box; }
.vcf-pz-cf7 textarea{ min-height:100px; resize:vertical; }
.vcf-pz-cf7 input:focus,.vcf-pz-cf7 select:focus,.vcf-pz-cf7 textarea:focus{ outline:none; border-color:#7C5C3E; box-shadow:0 0 0 3px rgba(124,92,62,.12); }
.vcf-pz-cf7 .wpcf7-checkbox{ display:flex; flex-wrap:wrap; gap:8px; }
.vcf-pz-cf7 .wpcf7-checkbox .wpcf7-list-item{ margin:0; }
.vcf-pz-cf7 .wpcf7-checkbox .wpcf7-list-item label{ display:flex; align-items:center; gap:7px; background:#fff; border:1px solid #ddd4c6; border-radius:999px; padding:8px 14px; font-family:'Inter',sans-serif; font-size:13px; color:#444; cursor:pointer; margin:0; }
.vcf-pz-cf7 .vcf-ff-submit{ text-align:center; margin-top:6px; }
.vcf-pz-cf7 .wpcf7-submit{ font-family:'Manrope',sans-serif; font-weight:700; font-size:13px; letter-spacing:.06em; text-transform:uppercase; background:#7C5C3E; color:#fff; border:none; padding:15px 34px; border-radius:9px; cursor:pointer; }
.vcf-pz-cf7 .wpcf7-submit:hover{ background:#5E4429; }
.vcf-pz-cf7 .wpcf7-acceptance{ font-size:12.5px; color:#8a8378; }
.vcf-pz-cf7 .wpcf7-acceptance .wpcf7-list-item{ margin:0; }
.vcf-pz-trust{ background:#20211c; color:#fff; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; padding:34px 40px; }
.vcf-pz-trust-t{ font-family:'Manrope',sans-serif; font-size:15px; letter-spacing:.02em; }
.vcf-pz-trust-logos{ display:flex; gap:12px; align-items:center; }
.vcf-pz-trust-logos span{ border:1px solid rgba(255,255,255,.3); border-radius:8px; padding:9px 16px; font-family:'Manrope',sans-serif; font-size:13px; }
@media (max-width:900px){ .vcf-pz-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:680px){
  .vcf-pz section{ padding:44px 18px; }
  .vcf-pz-grid{ grid-template-columns:1fr; }
  .vcf-pz-cf7 .vcf-ff-grid{ grid-template-columns:1fr; }
}

/* ===== Icônes équipements (piscine / climatisation / tennis) — hero + vignettes ===== */
.vcf-amenities{ display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.vcf-amenity{ display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.42); color:#fff; border-radius:999px; padding:7px 14px 7px 11px; font-family:'Inter',sans-serif; font-size:.78rem; letter-spacing:.02em; line-height:1; }
.vcf-amenity .ic{ display:inline-flex; }
.vcf-amenity .vcf-am-ic{ display:block; }
.vcf-amenity--icon{ padding:8px; }
/* Sur fond clair (si utilisé hors hero/vignette), variante sombre */
.vcf-amenities.vcf-am-dark .vcf-amenity{ background:#F3ECE1; border-color:#e4d8c6; color:#5E4429; }


/* Badges vignettes climatisation / tennis — meme style que .vcf-badge (piscine) */
.vcf-badge-clim,.vcf-badge-tennis{ width:40px!important; height:40px!important; min-width:0!important; flex:0 0 auto!important; padding:0!important; border-radius:50%!important; font-size:0!important; background-color:#191919!important; background-repeat:no-repeat!important; background-position:center!important; background-size:22px!important; }
.vcf-badge-clim{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23ffffff'%20stroke-width='1.9'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M12%203v18'/%3E%3Cpath%20d='M4.2%207.5%2019.8%2016.5'/%3E%3Cpath%20d='M19.8%207.5%204.2%2016.5'/%3E%3Cpath%20d='M9.4%204.8%2012%206l2.6-1.2M9.4%2019.2%2012%2018l2.6%201.2'/%3E%3C/svg%3E")!important; }
.vcf-badge-tennis{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23ffffff'%20stroke-width='1.9'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='9.5'%20cy='8.5'%20r='5.5'/%3E%3Cpath%20d='M6.2%208.5h6.6M9.5%205.2v6.6'/%3E%3Cpath%20d='M13.4%2012.4%2019.5%2018.5'/%3E%3C/svg%3E")!important; }


/* ---------- MOBILE : bascule Liste / Carte plein écran ---------- */
.vcf-maptoggle{ display:none; }
@media (max-width:768px){
  .vcf-maptoggle{ position:fixed; left:50%; transform:translateX(-50%); bottom:22px; z-index:1400;
    display:inline-flex; align-items:center; gap:8px; background:#191919; color:#fff; border:none;
    border-radius:999px; padding:12px 22px; font-family:'Manrope',sans-serif; font-weight:600;
    font-size:.9rem; box-shadow:0 8px 26px rgba(0,0,0,.28); cursor:pointer; -webkit-tap-highlight-color:transparent; }
  .vcf-maptoggle svg{ display:block; }
  /* Liste par défaut → carte masquée */
  body:not(.vcf-map-view) .vcf-carte-map,
  body:not(.vcf-map-view) .vcf-carte-split > .et_pb_column:last-child,
  body:not(.vcf-map-view) .vcf-carte-results .et_pb_row > .et_pb_column:last-child{ display:none !important; }
  /* Vue carte : liste + barre résultats masquées, barre de recherche fixée au-dessus */
  body.vcf-map-view{ overflow:hidden !important; }
  body.vcf-map-view .vcf-carte-list{ display:none !important; }
  body.vcf-map-view .vcf-carte-resultsbar{ display:none !important; }
  body.vcf-map-view .vcf-carte-search{ z-index:1300 !important; }
  /* la colonne + wrappers ne réservent plus de hauteur (le conteneur Leaflet est fixé) */
  body.vcf-map-view .vcf-carte-map,
  body.vcf-map-view .vcf-carte-split > .et_pb_column:last-child,
  body.vcf-map-view .vcf-carte-results .et_pb_row > .et_pb_column:last-child{
    display:block !important; position:static !important; height:auto !important; min-height:0 !important; margin:0 !important; padding:0 !important; }
  body.vcf-map-view .vcf-carte-map [class*="wpgb-map"],
  body.vcf-map-view .vcf-carte-split > .et_pb_column:last-child [class*="wpgb-map"],
  body.vcf-map-view .vcf-carte-results .et_pb_row > .et_pb_column:last-child [class*="wpgb-map"]{
    height:auto !important; min-height:0 !important; }
  /* le conteneur Leaflet lui-même : plein écran sous la barre */
  body.vcf-map-view .vcf-carte-map .leaflet-container,
  body.vcf-map-view .vcf-carte-split > .et_pb_column:last-child .leaflet-container,
  body.vcf-map-view .vcf-carte-results .et_pb_row > .et_pb_column:last-child .leaflet-container{
    position:fixed !important; top:0 !important; left:0 !important; right:0 !important; bottom:auto !important;
    width:auto !important; min-height:0 !important; max-height:none !important;
    height:100vh !important; height:100lvh !important;   /* hauteur device complète → passe SOUS la barre Safari */
    z-index:100 !important; border-radius:0 !important; margin:0 !important; touch-action:none !important; }
  /* carte plein écran (top:0→bottom:0 = fiable iPhone) ; header + barre + contrôles zoom par-dessus */
  body.vcf-map-view #main-header{ z-index:1000 !important; }
  body.vcf-map-view .leaflet-top{ top:var(--vcf-map-top,120px) !important; }
}



/* ===== HOME MOBILE : recherche « search-first » (pilule en haut, hero réduit) ===== */
@media (max-width:768px){
  body.home .vcf-hero{ display:flex !important; flex-direction:column !important; min-height:0 !important; padding:0 !important; }
  /* Header BLANC sur mobile HOME (uniformise avec la pilule de recherche) — desktop reste transparent */
  body.home #main-header{ background:#fff !important; position:fixed !important; top:0 !important; left:0 !important; width:100% !important;
    height:56px !important; min-height:56px !important; z-index:1000 !important; box-shadow:0 1px 6px rgba(20,17,14,.06) !important; }
  body.admin-bar.home #main-header{ top:32px !important; }
  body.home #main-header #logo{ filter:brightness(0) !important; } /* logo blanc → foncé sur header blanc */
  /* la ligne RECHERCHE remonte en 1er, sur fond blanc */
  body.home .vcf-hero .et_pb_row:has(.vcf-search){
    order:-1 !important; background:#fff !important; position:relative !important; z-index:3 !important;
    margin:0 !important; padding:16px 12px 14px !important; width:100% !important; max-width:100% !important; }
  /* la ligne ACCROCHE : bannière photo courte dessous */
  body.home .vcf-hero .et_pb_row:not(:has(.vcf-search)){
    order:0 !important; min-height:230px !important; display:flex !important; align-items:flex-end !important;
    padding:20px 18px 26px !important; margin:0 !important; }
  /* neutralise le style de barre flottante quand la pilule est présente (home + carte + archives) */
  .vcf-search:has(.vcf-toggle-search){ box-shadow:none !important; border:0 !important; background:transparent !important; }
  body.home .vcf-search{ margin:0 10px !important; }
  /* la pilule de recherche (état fermé) — GÉNÉRALE (toutes les pages liste/carte) */
  .vcf-search .vcf-filter-toggle.vcf-toggle-search{
    display:flex !important; width:100% !important; justify-content:flex-start !important; align-items:center !important; gap:12px !important;
    background:#fff !important; border:1px solid #e4ddd0 !important; border-radius:999px !important;
    box-shadow:0 8px 24px rgba(20,17,14,.12) !important; padding:15px 20px !important;
    font-family:'Manrope',sans-serif !important; font-weight:600 !important; font-size:15px !important; color:#191919 !important; }
  .vcf-toggle-search svg:first-child{ color:#7C5C3E; flex:0 0 auto; }
  .vcf-toggle-search .lbl{ display:flex !important; flex-direction:column !important; line-height:1.15 !important; text-align:left !important; }
  .vcf-toggle-search .lbl em{ font-style:normal; font-family:'Inter',sans-serif; font-weight:400; font-size:11.5px; color:#8a8378; margin-top:2px; }
  .vcf-toggle-search .chev{ margin-left:auto !important; color:#b3a89a; flex:0 0 auto; }
  /* ouverte : coins du haut arrondis pour se raccorder aux champs */
  .vcf-search.vcf-open .vcf-filter-toggle.vcf-toggle-search{ border-radius:20px 20px 0 0 !important; }
  /* pages liste/carte : panneau OUVERT = carte blanche opaque (sinon la liste transparaît derrière) */
  body:has(.vcf-carte-search) .vcf-search.vcf-open{ background:#fff !important; border:1px solid #e4ddd0 !important; border-radius:20px !important; box-shadow:0 18px 40px rgba(20,17,14,.18) !important; overflow:hidden !important; }
  body:has(.vcf-carte-search) .vcf-search.vcf-open .vcf-filter-toggle.vcf-toggle-search{ background:transparent !important; border:0 !important; border-bottom:1px solid #efe9df !important; box-shadow:none !important; border-radius:0 !important; }
}


/* Page « Proposez votre château » : header transparent collé en haut comme les fiches (pas d'offset). */

/* ===== CSS FICHE ===== */
.vcf-wrap{max-width:1180px;margin:0 auto;padding:0 40px}

  /* HERO (modules Divi) */
  .vcf-hero{position:relative;min-height:82vh;overflow:hidden}
  .vcf-hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(20,17,14,.5) 0%,rgba(20,17,14,.05) 35%,rgba(20,17,14,.05) 55%,rgba(20,17,14,.85) 100%)}
  .vcf-hero .et_pb_row{position:relative;z-index:2}
  .vcf-region-tag{display:inline-flex;align-items:center;gap:10px;background:#7C5C3E;color:#fff;font-family:'Manrope',sans-serif;
    font-weight:600;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;padding:9px 18px;
    border-radius:999px;box-shadow:0 6px 20px rgba(124,92,62,.45);margin-bottom:20px}
  .vcf-region-tag svg{flex:0 0 auto;display:block}
  /* Cette regle habille le bandeau des FICHES CHATEAU, ou le H1 est le grand titre.
   Sur l accueil, le H1 est dissocie de l accroche et doit rester discret : on
   exclut donc explicitement les deux classes qui le portent, sans quoi ces
   !important le ramenent en gras a 2,8 rem. */
.vcf-hero h1:not(.vcf-lede):not(.vcf-hero-h1),.vcf-hero .vcf-h1,.vcf-hero .vcf-h1 *{font-family:'Manrope',sans-serif!important;
    font-size:clamp(1.85rem,6vw,2.8rem)!important;font-weight:700!important;color:#fff!important;
    line-height:1.06!important;letter-spacing:-.02em;margin:0;max-width:18ch}
  .vcf-hero .vcf-sub,.vcf-hero .vcf-sub *{font-family:'Inter',sans-serif!important;margin-top:16px;
    font-size:1.05rem!important;color:rgba(255,255,255,.92)!important;max-width:46ch;font-weight:300!important}
  /* BOUTON CTA (vcf-final) — blanc façon maquette ; le hero est libre (boutons Divi stylés à la main) */
  .et_pb_section.vcf-final .et_pb_button{
    font-family:'Manrope',sans-serif!important;font-weight:600!important;font-size:.76rem!important;
    letter-spacing:.12em!important;text-transform:uppercase!important;border-radius:8px!important;
    padding:15px 30px!important;background:#ffffff!important;color:#191919!important;border:none!important;}
  .et_pb_section.vcf-final .et_pb_button:hover{background:#f5f5f5!important;}
  .et_pb_section.vcf-hero .et_pb_button:after,
  .et_pb_section.vcf-final .et_pb_button:after{display:none!important}
  /* Boutons hero (shortcode [vcf_hero_btns]) — accent + ghost côte à côte */
  .vcf-hero-actions{display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:14px;align-items:center;margin-top:28px}
  .vcf-hero-actions p{margin:0!important}
  .vcf-btn{display:inline-flex!important;align-items:center;gap:9px;width:auto!important;
    font-family:'Manrope',sans-serif!important;font-weight:600!important;font-size:.76rem!important;
    letter-spacing:.12em!important;line-height:1!important;text-transform:uppercase!important;
    padding:15px 30px!important;border-radius:8px!important;cursor:pointer;transition:all .3s;
    border:1px solid transparent;text-decoration:none!important}
  .vcf-btn-accent{background:#7C5C3E;color:#fff;border-color:#7C5C3E}
  .vcf-btn-accent:hover{background:#5E4429;border-color:#5E4429;color:#fff}
  .vcf-btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
  .vcf-btn-ghost:hover{background:rgba(255,255,255,.12);color:#fff}

  /* BANDEAU CHIFFRES (section shortcode, flex adaptatif) */
  .vcf-keyfacts{background:#191919}
  .vcf-keyfacts .vcf-wrap{padding:0}
  .vcf-kf-grid{display:flex;flex-wrap:wrap}
  .vcf-kf{flex:1 1 0;min-width:170px;padding:40px 28px;text-align:center;border-right:1px solid rgba(255,255,255,.12);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}
  .vcf-kf:last-child{border-right:none}
  .vcf-kf .ic{color:#fff;opacity:.85;line-height:0}
  .vcf-kf .ic svg{width:26px;height:26px;display:block}
  .vcf-kf .num{font-family:'Manrope',sans-serif!important;font-size:2rem!important;font-weight:700!important;color:#fff!important;line-height:1}
  .vcf-kf .kf-equip{font-family:'Manrope',sans-serif;font-size:1rem;font-weight:600;color:#fff;line-height:1.3}
  .vcf-kf .lbl{font-family:'Inter',sans-serif!important;font-weight:400!important;font-size:.78rem;letter-spacing:.04em;color:rgba(255,255,255,.72)}
  /* Keyfacts cliquables : chaque case renvoie à sa section */
  a.vcf-kf{text-decoration:none;color:inherit;cursor:pointer;transition:background .2s}
  a.vcf-kf:hover{background:rgba(255,255,255,.07)}
  a.vcf-kf:hover .lbl{color:#fff}
  a.vcf-kf:focus-visible{outline:2px solid #fff;outline-offset:-3px}
  /* Ancres de section : décalage sous le header fixe + défilement doux */
  html{scroll-behavior:smooth}
  @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
  #domaine,#reception,#chambres,#galerie{scroll-margin-top:100px}

  /* SECTIONS (shortcodes <section class="vcf-block">) */
  .vcf-block{padding:90px 0}
  .vcf-eyebrow{font-family:'Inter',sans-serif;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:#999;font-weight:400;margin-bottom:14px}
  .vcf-sec-title{font-family:'Manrope',sans-serif;font-size:clamp(1.9rem,3.4vw,2.7rem);font-weight:700;color:#000;line-height:1.08;letter-spacing:-.02em;margin:0 0 26px}
  .vcf-prose{font-family:'Inter',sans-serif;font-weight:300;color:#191919;line-height:1.65;font-size:1.06rem}
  .vcf-prose p{margin-bottom:18px}
  .vcf-prose strong{font-weight:600;color:#000}
  .vcf-prose ul{margin:0 0 18px 1.1em}
  .vcf-prose li{margin-bottom:8px}

  /* DEUX COLONNES (texte + image) */
  .vcf-two-col{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center;margin-bottom:10px}
  .vcf-media{border-radius:20px;overflow:hidden;aspect-ratio:4/3}
  .vcf-media img{width:100%;height:100%;object-fit:cover;display:block}
  .vcf-media-portrait{aspect-ratio:508/677;max-width:508px;width:100%;margin-left:auto}

  /* GALERIE MOSAIQUE */
  .vcf-gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:14px;margin-top:40px}
  .vcf-gallery a{border-radius:14px;overflow:hidden;position:relative;display:block}
  .vcf-gallery img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease}
  .vcf-gallery a:hover img{transform:scale(1.06)}
  .vcf-gallery .big{grid-column:span 2;grid-row:span 2}
  /* Lightbox GLightbox AU-DESSUS du header Divi (9999999) : sinon sur mobile le header couvre le haut
     de la lightbox (la croix ✕) → impossible de fermer. Même famille que le menu/Chatway. */
  .glightbox-container,.gclose,.gnext,.gprev{z-index:10000006!important}

  /* CHAMBRES (répéteur) */
  .vcf-wings{display:flex;flex-direction:column;gap:50px;margin-top:44px}
  .vcf-wing-head{display:flex;align-items:center;gap:16px;margin-bottom:26px}
  .vcf-wing-head h3{font-family:'Manrope',sans-serif;font-size:1.5rem;font-weight:700;color:#000;margin:0}
  .vcf-wing-head .count{background:#7C5C3E;color:#fff;font-family:'Manrope',sans-serif;font-weight:600;font-size:.74rem;letter-spacing:.06em;padding:6px 14px;border-radius:999px}
  .vcf-rooms-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
  .vcf-room{border:1px solid #e8e8e8;border-radius:16px;overflow:hidden;background:#fff;transition:all .3s;display:flex;flex-direction:column}
  .vcf-room:hover{border-color:#7C5C3E;box-shadow:0 10px 30px rgba(124,92,62,.1);transform:translateY(-3px)}
  .vcf-room .ph{height:170px;overflow:hidden;flex:none}
  .vcf-room .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease}
  .vcf-room:hover .ph img{transform:scale(1.05)}
  .vcf-room .bd{padding:20px}
  .vcf-room .floor{font-family:'Manrope',sans-serif;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:#5E4429;font-weight:600;margin-bottom:6px}
  .vcf-room h5{font-family:'Manrope',sans-serif;font-weight:700;font-size:1.05rem;color:#000;margin:0 0 8px}
  .vcf-room .meta{font-size:.84rem;color:#999;font-weight:300}
  .vcf-room .desc{font-size:.88rem;color:#191919;font-weight:300;margin:10px 0 0;line-height:1.55}
  .vcf-room .bath{margin-top:12px;padding-top:12px;border-top:1px solid #e8e8e8;font-size:.8rem;color:#999;font-weight:300}

  /* SALONS (répéteur) — cartes image + nom + capacité + description */
  .vcf-salons{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:44px}
  .vcf-salon{background:#fff;border:1px solid #e8e8e8;border-radius:20px;overflow:hidden;display:flex;flex-direction:column;transition:all .3s}
  .vcf-salon:hover{box-shadow:0 10px 30px rgba(124,92,62,.1);transform:translateY(-3px)}
  .vcf-salon .ph{height:220px;overflow:hidden;flex:none}
  .vcf-salon .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease}
  .vcf-salon:hover .ph img{transform:scale(1.05)}
  .vcf-salon .bd{padding:26px}
  .vcf-salon h4{font-family:'Manrope',sans-serif;font-weight:700;font-size:1.2rem;color:#000;margin:0 0 12px}
  .vcf-salon .cap{display:inline-block;background:#f5f5f5;border-radius:999px;padding:5px 13px;font-family:'Manrope',sans-serif;font-weight:600;font-size:.74rem;color:#5E4429;margin-bottom:12px}
  .vcf-salon p{font-family:'Inter',sans-serif;font-size:.92rem;color:#999;font-weight:300;margin:0;line-height:1.55}

  /* CARROUSEL de carte (chambres & salons) — plusieurs photos par carte, défilement manuel */
  .vcf-cara{position:relative}
  .vcf-cara-track{display:flex;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .vcf-cara-track::-webkit-scrollbar{display:none}
  .vcf-cara-track img{flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:center;display:block}
  .vcf-room:hover .vcf-cara-track img,.vcf-salon:hover .vcf-cara-track img{transform:none} /* pas de zoom sur le carrousel */
  .vcf-cara-nav{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;padding:0;border:none;border-radius:50%;background:rgba(255,255,255,.85);color:#191919;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .2s,background .2s;box-shadow:0 2px 8px rgba(0,0,0,.18);z-index:3}
  .vcf-cara:hover .vcf-cara-nav,.vcf-cara:focus-within .vcf-cara-nav{opacity:1}
  .vcf-cara-nav:hover{background:#fff}
  .vcf-cara-prev{left:8px}
  .vcf-cara-next{right:8px}
  .vcf-cara-dots{position:absolute;bottom:9px;left:0;right:0;display:flex;justify-content:center;gap:5px;z-index:3;pointer-events:none}
  .vcf-cara-dots span{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.55);box-shadow:0 1px 2px rgba(0,0,0,.25);transition:background .2s,transform .2s}
  .vcf-cara-dots span.on{background:#fff;transform:scale(1.25)}
  @media(hover:none){.vcf-cara-nav{opacity:1;background:rgba(255,255,255,.72)}}

  /* HISTOIRE (badge époque + timeline) */
  .vcf-badge{display:inline-flex;align-items:center;gap:8px;background:#f5f5f5;border-radius:999px;padding:8px 16px;
    font-family:'Manrope',sans-serif;font-weight:600;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;
    color:#5E4429;margin-bottom:22px}
  .vcf-timeline{margin-top:30px;border-left:2px solid #e8e8e8;padding-left:26px}
  .vcf-tl{position:relative;padding-bottom:26px}
  .vcf-tl:last-child{padding-bottom:0}
  .vcf-tl::before{content:"";position:absolute;left:-33px;top:4px;width:12px;height:12px;border-radius:50%;
    background:#7C5C3E;border:3px solid #fff;box-shadow:0 0 0 1px #e8e8e8}
  .vcf-tl .yr{font-family:'Manrope',sans-serif;font-weight:700;color:#5E4429;font-size:.95rem;margin-bottom:4px}
  .vcf-tl p{font-family:'Inter',sans-serif;font-size:.95rem;color:#191919;font-weight:300;margin:0;max-width:60ch}

  /* ---------- DISPONIBILITÉS (Booking Calendar restylé) ---------- */
  .vcf-calendar-wrap{background:#f5f5f5;border-radius:20px;padding:40px;margin-top:10px}
  /* légende */
  .vcf-cal-legend{display:flex;gap:22px;flex-wrap:wrap;margin-bottom:28px}
  .vcf-cal-legend span{display:inline-flex;align-items:center;gap:8px;font-family:'Inter',sans-serif;font-size:.84rem;color:#191919}
  .vcf-cal-legend span::before{content:"";width:14px;height:14px;border-radius:4px;display:inline-block}
  .vcf-cal-legend .ok::before{background:#2F6B4F}
  .vcf-cal-legend .busy::before{background:#B23A3A}
  .vcf-cal-legend .partial::before{background:#C7A23E}
  /* 2 mois côte à côte qui REMPLISSENT la largeur de la rubrique (plafond 1100px).
     Aussi injecté en inline par [vcf_dispo] (le « CSS utilisé » de WP Rocket ignore parfois ces règles).
     On retire le plafond 682px de Booking Calendar. Cases ~67px sur une rubrique ~1020px. */
  .vcf-calendar-wrap .wpbc_cal_container,.vcf-calendar-wrap .bk_calendar_frame{width:100%!important;max-width:100%!important}
  .vcf-calendar-wrap .datepick-inline.datepick-multi{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;gap:36px!important;max-width:1100px!important;width:100%!important;margin:0 auto!important;justify-content:center!important;align-items:flex-start!important}
  .vcf-calendar-wrap .datepick-one-month{flex:1 1 260px!important;min-width:260px!important;max-width:none!important;width:auto!important;margin:0!important;display:block!important}
  @media(max-width:600px){.vcf-calendar-wrap .datepick-one-month{flex-basis:100%!important;width:100%!important;max-width:340px!important}}
  /* titre du mois */
  .vcf-calendar-wrap .datepick-header{font-family:'Manrope',sans-serif!important;font-weight:600;font-size:1.05rem;text-align:center;margin-bottom:14px;color:#191919;text-transform:capitalize}
  /* table + en-têtes jours */
  .vcf-calendar-wrap table.datepick{border-collapse:separate!important;border-spacing:5px!important;width:100%}
  .vcf-calendar-wrap .datepick-title-row th{font-family:'Inter',sans-serif!important;font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:#999;font-weight:400;padding:0 0 8px;background:none;border:none}
  /* cellule jour = boîte arrondie */
  .vcf-calendar-wrap td.datepick-days-cell{padding:0!important;background:none!important;border:none!important}
  .vcf-calendar-wrap .wpbc-cell-box{border-radius:8px;background:#fff;aspect-ratio:1;max-width:none;margin:0 auto;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
  .vcf-calendar-wrap .date-cell-content{position:relative;z-index:2}
  .vcf-calendar-wrap .date-cell-content a,.vcf-calendar-wrap .date-cell-content span{font-family:'Inter',sans-serif!important;font-size:.82rem;text-decoration:none;color:#191919}
  .vcf-calendar-wrap .wpbc-diagonal-el{display:none}        /* pas de diagonale parasite par défaut */
  /* hors mois (vide) */
  .vcf-calendar-wrap td.datepick-other-month .wpbc-cell-box{background:transparent}
  /* passé / indisponible */
  .vcf-calendar-wrap td.date_user_unavailable:not(.date_approved) .wpbc-cell-box{background:#ebeeec}
  .vcf-calendar-wrap td.date_user_unavailable:not(.date_approved) span{color:#bcc4c0}
  /* DISPONIBLE (vert) */
  .vcf-calendar-wrap td.date_available .wpbc-cell-box{background:rgba(47,107,79,.12)}
  .vcf-calendar-wrap td.date_available a{color:#2F6B4F;font-weight:500}
  .vcf-calendar-wrap td.date_available:hover .wpbc-cell-box{background:#2F6B4F}
  .vcf-calendar-wrap td.date_available:hover a{color:#fff}
  /* RÉSERVÉ (rouge barré) */
  .vcf-calendar-wrap td.date_approved .wpbc-cell-box{background:rgba(178,58,58,.12)}
  .vcf-calendar-wrap td.date_approved span{color:#B23A3A;text-decoration:line-through;opacity:.85}
  /* PARTIEL (changeover) — coin diagonal ambre */
  .vcf-calendar-wrap td.wpbc_day_part .wpbc-diagonal-el,
  .vcf-calendar-wrap td.date_approved.check_in_time .wpbc-diagonal-el,
  .vcf-calendar-wrap td.date_approved.check_out_time .wpbc-diagonal-el{display:block;position:absolute;inset:0;z-index:1}
  .vcf-calendar-wrap .wpbc-co-in polygon,.vcf-calendar-wrap .wpbc-co-out polygon{fill:rgba(199,162,62,.45)}
  /* aujourd'hui */
  .vcf-calendar-wrap td.datepick-today .wpbc-cell-box{box-shadow:inset 0 0 0 1px #2F6B4F}
  /* CTA bas */
  .vcf-cal-cta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:28px;padding-top:24px;border-top:1px solid #e8e8e8}
  .vcf-cal-cta p{font-family:'Inter',sans-serif;font-size:.95rem;color:#191919;font-weight:300;margin:0}

  /* TARIFS */
  .vcf-price-table{width:100%;border-collapse:collapse;border-radius:20px;overflow:hidden;font-size:.92rem;margin-top:10px}
  .vcf-price-table thead th{background:#191919;color:#fff;font-family:'Manrope',sans-serif;font-weight:600;text-align:left;padding:18px 22px;font-size:.82rem;letter-spacing:.04em}
  .vcf-price-table thead th:last-child{text-align:right}
  .vcf-price-table td{padding:16px 22px;border-bottom:1px solid #e8e8e8;background:#fff}
  .vcf-price-table .num{text-align:right;font-family:'Manrope',sans-serif;font-weight:600;color:#000}

  /* LOCALISATION + INFOS PRATIQUES */
  .vcf-practical{background:#f5f5f5}
  .vcf-loc-stack{display:flex;flex-direction:column;gap:32px;margin-top:10px}
  .vcf-map-card{border-radius:20px;overflow:hidden;height:480px;background:#e8eae9}
  .vcf-map-card iframe{width:100%;height:100%;border:0}
  .vcf-leaflet{width:100%;height:100%}
  .vcf-leaflet .leaflet-tile{filter:none}
  /* marqueur goutte (identique carte de recherche) */
  .vcf-pin{background:#191919;width:34px;height:34px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 4px 10px rgba(0,0,0,.35);border:2px solid #fff}
  .vcf-info-card{background:#fff;border-radius:20px;padding:44px 48px}
  .vcf-info-card .vcf-prose{margin-bottom:18px}
  .vcf-equip{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
  .vcf-equip span{background:#f5f5f5;border-radius:999px;padding:7px 15px;font-size:.8rem;color:#191919}

  /* ---------- TARIFS (intro + tableau) ---------- */
  .vcf-pricing-intro{margin:0 0 48px}
  .vcf-pricing-wrap{border:1px solid #e8e8e8;border-radius:18px;overflow:hidden;margin-top:8px}
  .vcf-pricing{width:100%;border-collapse:collapse;font-family:'Inter',sans-serif}
  .vcf-pricing thead th{background:#191919;color:#fff;font-family:'Manrope',sans-serif;font-weight:600;font-size:.92rem;text-align:left;padding:22px 30px;letter-spacing:.01em}
  .vcf-pricing thead th.vcf-c-price{text-align:right}
  .vcf-pricing td{padding:22px 30px;border-top:1px solid #ededed;color:#191919;font-size:.98rem;font-weight:300;vertical-align:middle}
  .vcf-pricing tr.vcf-season-head td{background:#f6f6f6;padding:18px 30px}
  .vcf-pricing tr.vcf-season-head strong{display:block;font-family:'Manrope',sans-serif;font-weight:700;font-size:1.05rem;color:#000}
  .vcf-pricing tr.vcf-season-head span{display:block;font-size:.85rem;color:#999;font-weight:300;margin-top:4px}
  .vcf-pricing td.vcf-c-season{width:130px}
  .vcf-pricing td.vcf-c-stay{color:#191919}
  .vcf-pricing td.vcf-c-price{text-align:right;font-family:'Manrope',sans-serif;font-weight:700;color:#000;white-space:nowrap}

  /* ---------- QUE FAIRE AUTOUR (cartes) ---------- */
  .vcf-around-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:44px}
  .vcf-around-cat{background:#fff;border:1px solid #e8e8e8;border-radius:20px;padding:34px;display:flex;gap:22px}
  .vcf-around-cat .ic{flex:0 0 auto;width:48px;height:48px;border-radius:12px;background:#f5f5f5;display:flex;align-items:center;justify-content:center;color:#5E4429}
  .vcf-around-cat .ic img{width:24px;height:24px;object-fit:contain}
  .vcf-around-cat .ic svg{width:24px;height:24px}
  .vcf-around-cat .ic .dashicons{font-size:24px;width:24px;height:24px;line-height:24px;color:#5E4429}
  .vcf-around-cat .bd{flex:1 1 auto;min-width:0}
  .vcf-around-cat h4{font-family:'Manrope',sans-serif;font-weight:700;font-size:1.2rem;color:#000;margin:0 0 16px;line-height:1.3}
  .vcf-around-cat .vcf-prose ul{margin:0;padding-left:1.1em;list-style:disc}
  .vcf-around-cat .vcf-prose li{margin:0 0 11px;font-family:'Inter',sans-serif;font-weight:300;font-size:.96rem;color:#191919;line-height:1.5}
  .vcf-around-cat .vcf-prose li:last-child{margin-bottom:0}
  .vcf-around-cat .vcf-prose li::marker{color:#7C5C3E}
  .vcf-around-cat .vcf-prose strong{font-weight:600;color:#000}

  /* ---------- AVIS CLIENTS ---------- */
  .vcf-reviews-sec{background:#f5f5f5}
  .vcf-stars{display:inline-flex;gap:2px;line-height:0;vertical-align:middle}
  .vcf-stars svg{width:16px;height:16px}
  .vcf-stars svg.on path{fill:#7C5C3E}
  .vcf-stars svg.off path{fill:#d8d2ca}
  /* résumé */
  .vcf-rev-summary{display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:center;background:#fff;border:1px solid #e8e8e8;border-radius:20px;padding:38px 44px;margin:0 0 40px}
  .vcf-rev-avg{text-align:center;padding-right:48px;border-right:1px solid #ededed}
  .vcf-rev-avg .big{font-family:'Manrope',sans-serif;font-weight:700;font-size:3.4rem;line-height:1;color:#000}
  .vcf-rev-avg .out{font-family:'Inter',sans-serif;font-size:.8rem;color:#999;margin:2px 0 10px;text-transform:uppercase;letter-spacing:.1em}
  .vcf-rev-avg .vcf-stars svg{width:20px;height:20px}
  .vcf-rev-avg .cnt{font-family:'Inter',sans-serif;font-size:.9rem;color:#191919;margin-top:10px}
  .vcf-rev-hist{display:flex;flex-direction:column;gap:9px}
  .vcf-rev-bar{display:flex;align-items:center;gap:12px}
  .vcf-rev-bar .n{font-family:'Manrope',sans-serif;font-weight:600;font-size:.85rem;color:#191919;width:12px}
  .vcf-rev-bar .track{flex:1;height:8px;background:#eee;border-radius:999px;overflow:hidden}
  .vcf-rev-bar .fill{display:block;height:100%;background:#7C5C3E;border-radius:999px}
  /* liste */
  .vcf-rev-list{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
  .vcf-rev-card{background:#fff;border:1px solid #e8e8e8;border-radius:18px;padding:30px}
  .vcf-rev-card.vcf-rev-hidden{display:none}
  .vcf-rev-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}
  .vcf-rev-card .who{font-family:'Manrope',sans-serif;font-weight:700;font-size:1.05rem;color:#000}
  .vcf-rev-card .when{font-family:'Inter',sans-serif;font-size:.82rem;color:#999;margin-top:2px}
  .vcf-rev-comment{font-family:'Inter',sans-serif;font-weight:300;font-size:.96rem;line-height:1.6;color:#191919}
  .vcf-rev-photos{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
  .vcf-rev-photos a{display:block;width:72px;height:72px;border-radius:10px;overflow:hidden}
  .vcf-rev-photos img{width:100%;height:100%;object-fit:cover;display:block}
  .vcf-rev-response{margin-top:18px;background:#f6f4f1;border-radius:12px;padding:18px 20px}
  .vcf-rev-response .lbl{font-family:'Manrope',sans-serif;font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#5E4429;margin-bottom:6px}
  .vcf-rev-response .txt{font-family:'Inter',sans-serif;font-weight:300;font-size:.9rem;line-height:1.55;color:#191919}
  .vcf-rev-more{display:block;margin:34px auto 0;background:#fff;border:1px solid #191919;color:#191919;border-radius:999px;padding:14px 34px;font-family:'Manrope',sans-serif;font-weight:600;font-size:.82rem;letter-spacing:.06em;cursor:pointer;transition:all .25s}
  .vcf-rev-more:hover{background:#191919;color:#fff}

  /* ---------- TÉMOIGNAGES (slider noir) ---------- */
  .vcf-testi{background:#0e0d0c}
  .vcf-testi .vcf-eyebrow{color:#8a8079}
  .vcf-testi .vcf-sec-title{color:#fff;margin-bottom:22px}
  .vcf-testi-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:40px}
  .vcf-testi-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
  .vcf-testi-summary .big{font-family:'Manrope',sans-serif;font-weight:700;font-size:2.6rem;line-height:1;color:#fff}
  .vcf-testi-summary .out{font-family:'Inter',sans-serif;color:#8a8079;font-size:.95rem;margin-left:-4px}
  .vcf-testi-summary .cap{font-family:'Inter',sans-serif;font-weight:300;font-size:.92rem;color:#9a9590;margin-left:8px}
  .vcf-testi .vcf-stars svg{width:18px;height:18px}
  .vcf-testi .vcf-stars svg.on path{fill:#E3B964}
  .vcf-testi .vcf-stars svg.off path{fill:#444039}
  .vcf-testi-nav{display:flex;gap:10px;flex:0 0 auto}
  .vcf-testi-nav button{width:46px;height:46px;border-radius:999px;border:1px solid #34302b;background:transparent;color:#fff;font-size:1.4rem;line-height:1;cursor:pointer;transition:all .25s;display:flex;align-items:center;justify-content:center}
  .vcf-testi-nav button:hover{background:#fff;color:#0e0d0c;border-color:#fff}
  .vcf-testi-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:4px}
  .vcf-testi-track::-webkit-scrollbar{display:none}
  .vcf-testi-card{flex:0 0 340px;max-width:340px;scroll-snap-align:start;background:#1a1816;border:1px solid #2a2622;border-radius:20px;padding:30px;display:flex;flex-direction:column;gap:18px}
  .vcf-testi-stars{line-height:0}
  .vcf-testi-text{font-family:'Inter',sans-serif;font-weight:300;font-size:1rem;line-height:1.6;color:#d8d4cf;margin:0;flex:1}
  .vcf-testi-by{display:flex;align-items:center;gap:14px;margin-top:4px}
  .vcf-testi-by .ava{flex:0 0 auto;width:44px;height:44px;border-radius:999px;background:linear-gradient(135deg,#7C5C3E,#5E4429);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Manrope',sans-serif;font-weight:700;font-size:1.05rem}
  .vcf-testi-by .meta{display:flex;flex-direction:column}
  .vcf-testi-by .name{font-family:'Manrope',sans-serif;font-weight:700;font-size:.98rem;color:#fff}
  .vcf-testi-by .ctx{font-family:'Inter',sans-serif;font-weight:300;font-size:.82rem;color:#8a8079;margin-top:2px}

  /* ---------- SECTION CONTACT (intro + bénéfices + formulaire CF7) ---------- */
  .vcf-contact{background:#f5f5f5}
  .vcf-contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:start}
  .vcf-benefits{display:flex;flex-direction:column;gap:24px;margin-top:36px}
  .vcf-benefit{display:flex;gap:16px;align-items:flex-start}
  .vcf-benefit .ic{flex:0 0 auto;color:#5E4429;line-height:0;margin-top:2px}
  .vcf-benefit h5{font-family:'Manrope',sans-serif;font-weight:700;font-size:1rem;color:#000;margin:0 0 3px}
  .vcf-benefit p{font-family:'Inter',sans-serif;font-size:.92rem;color:#999;font-weight:300;margin:0}
  .vcf-contact-form{background:#fff;border-radius:20px;padding:40px}
  .vcf-contact-form .vcf-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:16px}
  .vcf-contact-form .f{margin:0 0 16px}
  .vcf-contact-form .vcf-form-grid .f{margin:0}
  .vcf-contact-form label{display:block;font-family:'Manrope',sans-serif;font-weight:600;font-size:.82rem;color:#191919;margin-bottom:6px}
  .vcf-contact-form input,.vcf-contact-form select,.vcf-contact-form textarea{width:100%;border:1px solid #e8e8e8;border-radius:10px;padding:12px 14px;font-family:'Inter',sans-serif;font-size:.95rem;color:#191919;background:#fff;box-sizing:border-box}
  .vcf-contact-form input:focus,.vcf-contact-form select:focus,.vcf-contact-form textarea:focus{outline:none;border-color:#7C5C3E}
  .vcf-contact-form textarea{min-height:120px;resize:vertical}
  .vcf-contact-form .f-check{display:flex;gap:8px;align-items:flex-start;font-family:'Inter',sans-serif;font-size:.85rem;color:#999;font-weight:300;margin:14px 0 0}
  .vcf-contact-form .f-check input{width:auto;margin-top:3px}
  .vcf-contact-form .wpcf7-submit{width:100%;background:#7C5C3E;color:#fff;border:none;border-radius:10px;padding:16px;font-family:'Manrope',sans-serif;font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:.8rem;cursor:pointer;margin-top:18px;transition:background .3s}
  .vcf-contact-form .wpcf7-submit:hover{background:#5E4429}
  /* Champs anti-spam HONEYPOT (CF7 Apps) : doivent être invisibles (bots les remplissent, pas les humains).
     Leur CSS de masquage a sauté (RUCSS) → on les recache ici. Ne PAS supprimer les champs (= protection anti-spam). */
  [data-cf7apps-honeypot],
  .wpcf7-form-control-wrap.website-wrap,
  .wpcf7-form-control-wrap.website-confirm-wrap,
  .wpcf7 .hp-message{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}

  /* CTA FINAL (modules Divi) */
  .vcf-final{position:relative;overflow:hidden;padding:120px 0!important}
  .vcf-final::after{content:"";position:absolute;inset:0;background:rgba(20,17,14,.6);z-index:1}
  .vcf-final .et_pb_row{position:relative;z-index:2;text-align:center}
  .vcf-final .vcf-sec-title,.vcf-final .vcf-sec-title *{color:#fff!important;margin-left:auto;margin-right:auto}
  .vcf-final .vcf-prose,.vcf-final .vcf-prose *{color:rgba(255,255,255,.9)!important;max-width:48ch;margin-left:auto;margin-right:auto;text-align:center}

  /* ---------- BARRE COLLANTE (bas de fiche) ---------- */
  .vcf-stickybar{position:fixed;left:0;right:0;bottom:0;z-index:50;background:#fff;border-top:1px solid #e8e8e8;box-shadow:0 -6px 24px rgba(0,0,0,.06);transform:translateY(100%);transition:transform .3s ease}
  .vcf-stickybar.show{transform:translateY(0)}
  .vcf-stickybar-in{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 40px}
  .vcf-stickybar-info{display:flex;flex-direction:column;min-width:0}
  .vcf-stickybar-info .t{font-family:'Manrope',sans-serif;font-weight:700;font-size:1.05rem;color:#191919;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .vcf-stickybar-info .m{font-family:'Inter',sans-serif;font-weight:300;font-size:.85rem;color:#999;margin-top:2px}
  .vcf-stickybar-btn{flex:0 0 auto;background:#7C5C3E;color:#fff;font-family:'Manrope',sans-serif;font-weight:600;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;padding:14px 30px;border-radius:8px;text-decoration:none;transition:background .25s}
  .vcf-stickybar-btn:hover{background:#5E4429;color:#fff}
  @media (max-width:600px){
    .vcf-stickybar-in{padding:10px 16px;gap:12px}
    .vcf-stickybar-info .m{display:none}
    .vcf-stickybar-btn{padding:12px 18px;font-size:.72rem;letter-spacing:.08em}
  }

  /* RESPONSIVE */
  @media (max-width:980px){
    .vcf-rooms-grid{grid-template-columns:1fr 1fr}
    .vcf-salons{grid-template-columns:1fr 1fr}
    .vcf-two-col{grid-template-columns:1fr;gap:30px}
    .vcf-map-card{height:340px}
    .vcf-info-card{padding:30px}
    .vcf-pricing thead th,.vcf-pricing td{padding:14px 14px;font-size:.85rem}
    .vcf-pricing tr.vcf-season-head td{padding:13px 14px}
    .vcf-pricing td.vcf-c-season{width:14px}
    .vcf-contact-grid{grid-template-columns:1fr;gap:34px}
    .vcf-around-grid{grid-template-columns:1fr}
    .vcf-rev-list{grid-template-columns:1fr}
    .vcf-rev-summary{grid-template-columns:1fr;gap:28px;padding:30px}
    .vcf-rev-avg{padding:0 0 24px;border-right:none;border-bottom:1px solid #ededed}
    .vcf-testi-head{flex-direction:column;align-items:flex-start;gap:22px}
    .vcf-testi-card{flex-basis:82%;max-width:82%}
    .vcf-contact-form .vcf-form-grid{grid-template-columns:1fr}
    .vcf-gallery{grid-template-columns:1fr 1fr;grid-auto-rows:160px}
    .vcf-block{padding:60px 0}
    .vcf-hero{min-height:70vh}
    /* keyfacts sur UNE seule ligne sur mobile (police réduite, cases resserrées) */
    .vcf-kf-grid{flex-wrap:nowrap!important}
    .vcf-kf{min-width:0!important;flex:1 1 0!important;padding:26px 6px!important;border-right:1px solid rgba(255,255,255,.12)!important;border-bottom:none!important}
    .vcf-kf:last-child{border-right:none!important}
    .vcf-kf .num{font-size:1.5rem!important}
    .vcf-kf .lbl{font-size:.66rem!important;letter-spacing:.02em!important;line-height:1.25}
    .vcf-kf .ic svg{width:22px!important;height:22px!important}
    .vcf-kf-n4 .vcf-kf .num{font-size:1.3rem!important} /* si 4 cases : encore un peu plus petit */
  }
  @media (max-width:560px){
    .vcf-rooms-grid{grid-template-columns:1fr}
    .vcf-salons{grid-template-columns:1fr}
    .vcf-gallery{grid-template-columns:1fr}
    .vcf-gallery .big{grid-column:auto;grid-row:auto} /* 1 colonne : pas de span → pas de colonne implicite hors écran */
  }
  /* Tableau tarifs mobile : toutes les colonnes visibles (largeur fixe + texte qui passe à la ligne) */
  @media (max-width:768px){
    .vcf-pricing-wrap{overflow-x:auto!important;-webkit-overflow-scrolling:touch}
    .vcf-pricing{table-layout:fixed!important;width:100%!important;min-width:0!important}
    .vcf-pricing thead th,.vcf-pricing td{padding:10px 7px!important;font-size:.76rem!important;white-space:normal!important;word-break:normal}
    .vcf-pricing thead th{font-size:.72rem!important;line-height:1.2}
    .vcf-pricing td.vcf-c-season{width:24%!important}
    .vcf-pricing td.vcf-c-stay,.vcf-pricing th.vcf-c-stay{width:24%!important}
    .vcf-pricing th.vcf-c-price,.vcf-pricing td.vcf-c-price{width:26%!important}
    .vcf-pricing th.vcf-c-price{white-space:normal!important;font-size:.72rem!important;line-height:1.2}
    .vcf-pricing td.vcf-c-price{white-space:nowrap!important;font-size:.8rem!important}
    .vcf-pricing tr.vcf-season-head strong{font-size:.92rem!important}
    .vcf-pricing tr.vcf-season-head span{font-size:.75rem!important}
  }

/* ============================================================
   MENU MOBILE OFF-CANVAS — tiroir a droite (markup maison .vcf-drawer)
   pilote par js/offcanvas-nav.js (html.vcf-nav-open)
   ============================================================ */
@media (max-width:980px){
  /* on masque le menu mobile natif de Divi : on utilise le notre */
  .et_mobile_menu{ display:none!important; }

  .vcf-drawer{
    position:fixed!important; top:0; right:0; left:auto; bottom:auto;
    width:86%; max-width:360px;
    height:100vh; height:100lvh;
    padding:calc(env(safe-area-inset-top) + 78px) 0 calc(env(safe-area-inset-bottom) + 32px);
    background:#141210;
    box-shadow:-14px 0 44px rgba(0,0,0,.4);
    transform:translateX(100%);
    transition:transform .34s cubic-bezier(.4,0,.2,1);
    overflow-y:auto; -webkit-overflow-scrolling:touch;
    /* > z-index du header Divi transparent des fiches (9999999) sinon il passe DEVANT le tiroir */
    z-index:10000002; visibility:hidden;
  }
  html.vcf-nav-open .vcf-drawer{ transform:translateX(0); visibility:visible; }

  .vcf-drawer-menu, .vcf-drawer-menu ul{ list-style:none!important; margin:0!important; padding:0!important; }
  .vcf-drawer-menu li{ margin:0!important; padding:0!important; border:0!important; position:relative; }
  .vcf-drawer-menu a{
    display:block!important; color:rgba(255,255,255,.92)!important; text-decoration:none!important;
    font-size:17px!important; font-weight:500!important; letter-spacing:.01em!important; opacity:1!important;
    padding:15px 30px!important; border-bottom:1px solid rgba(255,255,255,.08)!important; background:transparent!important;
  }
  .vcf-drawer-menu a:hover{ color:#E7C9A8!important; background:rgba(255,255,255,.04)!important; }

  /* sous-menus : repliés par defaut, dépliés via .vcf-sub-open */
  .vcf-drawer-menu .sub-menu{ display:none!important; background:rgba(0,0,0,.25)!important; }
  .vcf-drawer-menu li.vcf-sub-open > .sub-menu{ display:block!important; }
  .vcf-drawer-menu .sub-menu a{ font-size:15px!important; font-weight:400!important; padding-left:46px!important; color:rgba(255,255,255,.72)!important; }

  /* chevron d'ouverture des sous-menus */
  .vcf-sub-toggle{
    position:absolute!important; top:0; right:0; width:64px; height:52px;
    display:flex!important; align-items:center; justify-content:center; cursor:pointer;
    color:rgba(255,255,255,.6); transition:transform .25s ease, color .2s ease; z-index:2;
  }
  .vcf-drawer-menu li.vcf-sub-open > .vcf-sub-toggle{ transform:rotate(180deg); color:#E7C9A8; }

  /* bouton fermer */
  .vcf-nav-close{
    position:absolute!important; top:calc(env(safe-area-inset-top) + 18px); right:20px;
    width:42px; height:42px; border:0; border-radius:50%;
    background:rgba(255,255,255,.10); color:#fff; cursor:pointer;
    display:flex!important; align-items:center; justify-content:center; padding:0; z-index:3;
  }
  .vcf-nav-close:hover{ background:rgba(255,255,255,.18); }

  /* voile */
  .vcf-nav-backdrop{
    position:fixed!important; inset:0; background:rgba(10,8,6,.55);
    opacity:0; visibility:hidden; transition:opacity .3s ease, visibility .3s ease;
    z-index:10000001; -webkit-tap-highlight-color:transparent;
  }
  html.vcf-nav-open .vcf-nav-backdrop{ opacity:1; visibility:visible; }

  html.vcf-nav-open, html.vcf-nav-open body{ overflow:hidden!important; }
}

/* Widget de chat Chatway : son z-index natif (998) passe SOUS le header Divi (9999999).
   On le remonte au-dessus du header — mais sous le tiroir/backdrop du menu mobile
   (10000001/10000002) pour que le menu ouvert le recouvre proprement. */
.chatway--frame-container,
.chatway--trigger-container{ z-index:10000000 !important; }

/* ============================================================
   CORRECTIFS — off-canvas : masquer le hamburger quand le tiroir est ouvert
   ============================================================ */
@media (max-width:980px){
  html.vcf-nav-open .mobile_menu_bar,
  html.vcf-nav-open .mobile_nav,
  html.vcf-nav-open .et_mobile_nav_menu,
  html.vcf-nav-open .et_pb_menu__mobile-bottom{
    opacity:0!important; visibility:hidden!important; pointer-events:none!important;
  }
}

/* ============================================================
   Espace propriétaire : header solide foncé
   (sinon le menu blanc du header serait invisible sur le fond blanc de l'espace)
   ============================================================ */
body:has(#vcf-esp) #main-header,
body:has(.vcf-esp-gate) #main-header{
  background:#141210 !important;
  box-shadow:0 2px 18px rgba(0,0,0,.14) !important;
}
body:has(#vcf-esp) #top-menu > li > a, body:has(#vcf-esp) #top-menu > li > a span,
body:has(#vcf-esp) #top-menu .dipi-cta-button span,
body:has(#vcf-esp) #et_top_search .et-search-icon:before,
body:has(#vcf-esp) #et_mobile_nav_menu .mobile_menu_bar:before,
body:has(.vcf-esp-gate) #top-menu > li > a, body:has(.vcf-esp-gate) #top-menu > li > a span,
body:has(.vcf-esp-gate) #top-menu .dipi-cta-button span{ color:#fff !important; }
body:has(#vcf-esp) #logo, body:has(.vcf-esp-gate) #logo{ opacity:1 !important; }
/* on dégage le contenu pour qu'il ne passe pas sous le header */
body:has(#vcf-esp) #et-main-area, body:has(.vcf-esp-gate) #et-main-area{ padding-top:100px !important; }
@media (max-width:980px){
  body:has(#vcf-esp) #et-main-area, body:has(.vcf-esp-gate) #et-main-area{ padding-top:74px !important; }
}
/* Ancre 'Toutes les photos' → décalage sous le header fixe */
#galerie-photos,#localisation,#chambres,#dispo,#reception,#domaine{ scroll-margin-top:118px; }
@media (max-width:980px){ #galerie-photos,#localisation,#chambres,#dispo,#reception,#domaine{ scroll-margin-top:80px; } }

/* Étiquette géographique rendue cliquable : garde l'aspect d'un badge, pas d'un lien. */
a.vcf-region-tag--link{ text-decoration:none !important; cursor:pointer; transition:filter .18s ease, transform .18s ease; }
a.vcf-region-tag--link:hover{ filter:brightness(1.08); transform:translateY(-1px); }
a.vcf-region-tag--link span{ text-decoration:none !important; }

/* Espace propriétaire — header assez haut pour le logo (80px), contenu collé juste dessous */
@media (min-width:981px){
  body:has(#vcf-esp) #main-header, body:has(.vcf-esp-gate) #main-header{ min-height:112px !important; }
  body:has(#vcf-esp) #et-main-area, body:has(.vcf-esp-gate) #et-main-area{ padding-top:112px !important; }
}

/* Retirer TOUT padding/marge en haut des conteneurs Divi (section, ligne, colonne ET module Code)
   qui laissaient un grand blanc avant le dashboard. Le module Code portait un padding-top ~92px. */
body:has(#vcf-esp) #et-main-area .et_pb_section, body:has(.vcf-esp-gate) #et-main-area .et_pb_section,
body:has(#vcf-esp) #et-main-area .et_pb_row, body:has(.vcf-esp-gate) #et-main-area .et_pb_row,
body:has(#vcf-esp) #et-main-area .et_pb_row_inner, body:has(.vcf-esp-gate) #et-main-area .et_pb_row_inner,
body:has(#vcf-esp) #et-main-area .et_pb_column, body:has(.vcf-esp-gate) #et-main-area .et_pb_column,
body:has(#vcf-esp) #et-main-area .et_pb_module, body:has(.vcf-esp-gate) #et-main-area .et_pb_module,
body:has(#vcf-esp) #et-main-area .et_pb_code_inner, body:has(.vcf-esp-gate) #et-main-area .et_pb_code_inner{ padding-top:0 !important; margin-top:0 !important; }

/* ============================================================
   Formulaire de connexion de l'espace propriétaire
   (chargé via style.css car ce CSS doit exister AUSSI déconnecté,
   contrairement au bloc <style> du dashboard qui n'apparaît que connecté)
   ============================================================ */
.vcf-esp-gate{min-height:calc(100vh - 340px);display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:100%;margin:0;padding:50px 20px;font-family:'Inter',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.vcf-esp-login{width:100%;max-width:420px;background:#fff;border:1px solid #E7DFD0;border-radius:18px;padding:40px 34px;text-align:center;box-shadow:0 12px 44px rgba(30,24,14,.08)}
.vcf-esp-login .vcf-esp-crest{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:13px;background:#7C5C3E;color:#fff;font-weight:800;letter-spacing:.02em;font-size:15px;margin-bottom:16px}
.vcf-esp-login h2{font-family:'Manrope',"Iowan Old Style",Palatino,Georgia,serif;color:#191919;margin:0 0 6px;font-size:1.5rem;font-weight:700}
.vcf-esp-login>p{color:#6C6252;font-size:.95rem;margin:0 0 22px}
.vcf-esp-login form{text-align:left;display:flex;flex-direction:column;gap:15px}
.vcf-esp-login form p{margin:0}
.vcf-esp-login label{display:block;font-size:.78rem;font-weight:600;letter-spacing:.02em;color:#5E4429;margin-bottom:6px}
.vcf-esp-login input[type=text],.vcf-esp-login input[type=password]{width:100%;font-size:15px;padding:12px 14px;border:1px solid #D8D1C4;border-radius:10px;background:#FBF8F2;color:#191919;box-sizing:border-box}
.vcf-esp-login input[type=text]:focus,.vcf-esp-login input[type=password]:focus{outline:2px solid #7C5C3E;outline-offset:1px;border-color:#7C5C3E}
.vcf-esp-login .login-remember{display:flex;align-items:center;gap:8px}
.vcf-esp-login .login-remember label{margin:0;font-weight:400;color:#6C6252;font-size:.85rem}
.vcf-esp-login .login-remember input{width:auto;margin:0}
.vcf-esp-login .login-submit input,.vcf-esp-login button[type=submit]{width:100%;background:#7C5C3E;color:#fff;border:0;border-radius:10px;padding:13px 18px;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s;font-family:inherit}
.vcf-esp-login .login-submit input:hover,.vcf-esp-login button[type=submit]:hover{background:#5E4429}
.vcf-esp-lost{display:inline-block;margin-top:18px;color:#7C5C3E;font-size:.85rem;text-decoration:none}
.vcf-esp-lost:hover{text-decoration:underline}
.vcf-esp-login-err{background:#F6ECD6;border:1px solid #A9741F;color:#8a5e13;border-radius:9px;padding:11px 14px;font-size:.85rem;margin-bottom:18px;text-align:left}

/* Footer hub (shortcode [vcf_footer_hub]) — hérite des couleurs du footer */
.vcf-footer-hub{ color:inherit; }
.vcf-fh-brand img{ height:52px; width:auto; margin:0 0 18px; }
.vcf-fh-cols{ display:flex; flex-wrap:wrap; gap:44px; }
.vcf-fh-col h4{ font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; margin:0 0 12px; opacity:.85; font-weight:600; }
.vcf-fh-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.vcf-fh-col a{ color:inherit; text-decoration:none; opacity:.72; font-size:14px; transition:opacity .15s; }
.vcf-fh-col a:hover{ opacity:1; }
@media (max-width:600px){ .vcf-fh-cols{ gap:26px 30px; } .vcf-fh-col{ min-width:42%; } }

/* Boutons CTA du formulaire de contact générique (RDV + WhatsApp) */
.vcf-contact-ctas{ display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.vcf-cta{ display:inline-flex; align-items:center; gap:10px; padding:13px 20px; border-radius:11px; font-weight:600; font-size:14px; line-height:1; text-decoration:none; transition:background .18s, transform .18s; }
.vcf-cta svg{ flex:0 0 auto; }
.vcf-cta:hover{ transform:translateY(-1px); }
.vcf-cta-rdv{ background:#7C5C3E; color:#fff !important; }
.vcf-cta-rdv:hover{ background:#5E4429; }
.vcf-cta-wa{ background:#25D366; color:#fff !important; }
.vcf-cta-wa:hover{ background:#1EBE5A; }
@media (max-width:600px){ .vcf-contact-ctas{ flex-direction:column; } .vcf-cta{ justify-content:center; } }

/* ---------- Carte : contrôle « Rechercher quand je déplace la carte » ----------
   WP Grid Builder pose ce contrôle en position absolue dans la facette carte, sans
   lui donner de dimensions : le <label> et sa case s'étiraient sur toute la hauteur
   de la carte (790 px mesurés), produisant un grand rectangle blanc par-dessus les
   marqueurs, libellé en haut et case en bas. On le ramène à une pastille compacte,
   centrée en haut de la carte, dans le style des autres contrôles du site. */
.wpgb-facet .wpgb-map-pan-to-search{
  position:absolute !important;
  top:14px !important; left:50% !important; transform:translateX(-50%) !important;
  right:auto !important; bottom:auto !important;
  width:auto !important; height:auto !important; max-width:calc(100% - 28px);
  display:inline-flex !important; align-items:center !important; gap:9px;
  padding:9px 15px !important;
  background:#fff !important;
  border:1px solid rgba(0,0,0,.10) !important;
  border-radius:999px !important;
  box-shadow:0 2px 12px rgba(0,0,0,.16) !important;
  font-size:13px; line-height:1.2; color:#1E1B18;
  white-space:nowrap; cursor:pointer; z-index:400;
}
.wpgb-facet .wpgb-map-pan-to-search:hover{ border-color:rgba(0,0,0,.22) !important; }
.wpgb-facet .wpgb-map-pan-to-search input[type="checkbox"]{
  position:static !important;
  width:16px !important; height:16px !important; min-width:16px !important;
  margin:0 !important; flex:0 0 auto; cursor:pointer;
}
.wpgb-facet .wpgb-map-pan-label{
  display:inline !important; width:auto !important; height:auto !important;
  position:static !important; margin:0 !important;
}
@media (max-width:768px){
  .wpgb-facet .wpgb-map-pan-to-search{ font-size:12px; padding:7px 12px !important; top:10px !important; }
}

/* La photo d'ouverture de section est un lien vers la visionneuse : il doit remplir
   son conteneur, sinon l'image perd son recadrage en `cover`. Règle doublée en ligne
   dans le shortcode de galerie, le « CSS utilisé » de WP Rocket ayant déjà supprimé
   des règles de ce fichier par le passé. */
.vcf-media > a{ display:block; width:100%; height:100%; position:relative; cursor:zoom-in; }

/* Rapprochement des deux premières sections de la fiche.
   « Le domaine » se termine souvent sur un texte court ; avec 90 px de marge basse
   puis 90 px de marge haute sur « Le domaine en images », près de 200 px de blanc
   séparaient deux blocs qui parlent du même sujet. On resserre ces deux-là seulement :
   le rythme des autres sections reste inchangé. */
#domaine{ padding-bottom:34px !important; }
#galerie{ padding-top:34px !important; }
@media (max-width:980px){
  #domaine{ padding-bottom:24px !important; }
  #galerie{ padding-top:24px !important; }
}

/* ---------- Timeline de la section Histoire : pleine largeur ----------
   Les entrées étaient bridées à 60ch, soit environ la moitié de la colonne : la frise
   paraissait étroite alors que la section, elle, est pleine largeur. On lève le plafond.
   Sur écran large, les textes longs se répartissent en deux colonnes plutôt que de
   s'étirer sur 1200 px — au-delà d'une centaine de caractères, l'œil perd la ligne
   suivante en revenant à la marge. La frise reste verticale, avec son rail à gauche. */
.vcf-timeline{ max-width:none !important; }
.vcf-tl p{ max-width:none !important; }

@media (min-width:1100px){
  .vcf-timeline{
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:56px;
    border-left:0;
    padding-left:0;
  }
  .vcf-tl{
    border-left:2px solid #e8e8e8;
    padding-left:26px;
    padding-bottom:30px;
  }
  .vcf-tl::before{ left:-7px; }
  .vcf-tl p{ max-width:62ch; }
}


/* ------------------------------------------------------------------
 * SEO — titres retrogrades en H2 (voir vcf-seo-titres.php)
 * Divi ne donne aucune taille propre a ses modules « Titre » : ils heritent
 * des styles de balise, ou h1 vaut 26 px et h2 23 px. Un titre passe de H1 a
 * H2 rapetisserait donc a l ecran. On lui rend sa taille d origine.
 * ------------------------------------------------------------------ */
h2.vcf-ex-h1{ font-size:26px; }
.et_pb_column_1_4 h2.vcf-ex-h1,
.et_pb_column_1_5 h2.vcf-ex-h1,
.et_pb_column_1_6 h2.vcf-ex-h1,
.et_pb_column_2_5 h2.vcf-ex-h1{ font-size:26px; }


/* ------------------------------------------------------------------
 * VISIONNEUSE — légende des photos
 * GLightbox est initialisé avec descPosition:'bottom' et son habillage clair
 * pose un bandeau blanc sous l'image, texte gris foncé aligné à gauche. Sur le
 * voile sombre de la visionneuse, ce bloc blanc coupe la photo en deux.
 * On le rend transparent, texte blanc et centré ; l'ombre portée garde la
 * légende lisible même quand le bas de l'image est clair.
 * Les !important sont nécessaires : la feuille de GLightbox est chargée après.
 * ------------------------------------------------------------------ */
.glightbox-container .gslide-description,
.glightbox-clean .gslide-description{
  background:transparent !important;
  text-align:center !important;
}
.glightbox-container .gdesc-inner{ padding:18px 26px 26px !important; }
.glightbox-container .gslide-title,
.glightbox-container .gslide-desc,
.glightbox-clean .gslide-title,
.glightbox-clean .gslide-desc{
  color:#fff !important;
  text-align:center !important;
  text-shadow:0 1px 14px rgba(0,0,0,.75);
}
.glightbox-container .gslide-desc a{ color:#fff !important; text-decoration:underline; }


/* ------------------------------------------------------------------
 * GALERIES D'ARTICLES — mise au même format que celles des fiches
 * Les galeries natives de WordPress respectent les proportions de chaque
 * image : un portrait glissé entre deux paysages laisse un trou dans la
 * grille. On impose un cadre 4/3 et l'image le remplit, comme le fait
 * déjà .vcf-gallery sur les fiches château.
 * Recadrage VISUEL uniquement : les fichiers ne sont pas touchés, le
 * réglage se défait en retirant ce bloc.
 * ------------------------------------------------------------------ */
.entry-content .gallery,
#left-area .gallery{
  display:grid !important;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin:30px 0 34px;
}
.entry-content .gallery-item,
#left-area .gallery-item{
  margin:0 !important; width:auto !important; float:none !important; padding:0 !important;
}
.entry-content .gallery-icon,
#left-area .gallery-icon{ margin:0 !important; }
.entry-content .gallery-item a,
.entry-content .gallery-icon a,
#left-area .gallery-item a{
  display:block; aspect-ratio:4/3; overflow:hidden; border-radius:12px;
}
.entry-content .gallery img,
#left-area .gallery img{
  width:100% !important; height:100% !important;
  object-fit:cover !important; object-position:center !important;
  display:block; border:0 !important; padding:0 !important;
  transition:transform 1s ease;
}
.entry-content .gallery a:hover img,
#left-area .gallery a:hover img{ transform:scale(1.05); }
/* La légende de WordPress double souvent le texte de l'article : on la masque. */
.entry-content .gallery-caption,
#left-area .gallery-caption{ display:none !important; }

@media (max-width:900px){
  .entry-content .gallery, #left-area .gallery{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:560px){
  .entry-content .gallery, #left-area .gallery{ grid-template-columns:1fr; }
}
