/*
 * Jonction 2027 : compléments WordPress. Jamais de retouche à bja-v3.css (copie fidèle de la maquette).
 * Tout ce qui est propre au passage en thème vit ici.
 */

/* Fond de carte : OpenStreetMap passé en gris clair, comme la maquette. */
.leaflet-tile-pane { filter: grayscale(1) contrast(.92) brightness(1.04); }

/* Municipalité sans photo : le panneau occupe toute la largeur. */
.une.une--sans-photo { grid-template-columns: minmax(0, 1fr); min-height: 0; }
@media (min-width: 1024px) {
  .une.une--sans-photo { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .une.une--sans-photo .une__contenu { padding: var(--s-8) var(--bord-gauche, var(--gouttiere)) var(--s-8); }
}

/* Pagination (au-delà de 300 fiches). */
.pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--s-3) var(--s-5); margin-top: var(--s-6); }
.pagination__etat { font-size: var(--t-sm); color: var(--texte-2); }

/* Recherche sans résultat et 404 : le formulaire sur fond clair. */
.vide--recherche { padding-bottom: var(--s-8); }
.vide__recherche { margin-top: var(--s-5); max-width: 760px; }
.vide__recherche .recherche { box-shadow: 0 0 0 1px var(--bordure); }

/* Contenu de page WordPress (à propos, etc.) */
.wp-contenu { padding-block: var(--s-7) var(--s-8); max-width: calc(780px + 2 * var(--gouttiere)); }
.wp-contenu > * + * { margin-top: var(--s-4); }
.wp-contenu p, .wp-contenu li { font-size: var(--t-md); line-height: 1.65; color: var(--texte-2); max-width: 70ch; }
.wp-contenu h2 { margin-top: var(--s-7); font-size: var(--t-2xl); font-weight: 700; font-stretch: var(--chasse-titre); line-height: 1.1; color: var(--texte); }
.wp-contenu h3 { margin-top: var(--s-6); font-size: var(--t-xl); font-weight: 700; font-stretch: var(--chasse-titre); line-height: 1.15; color: var(--texte); }
.wp-contenu h4, .wp-contenu h5, .wp-contenu h6 { margin-top: var(--s-5); font-size: var(--t-lg); font-weight: 650; color: var(--texte); }
.wp-contenu ul, .wp-contenu ol { padding-left: 1.4em; }
.wp-contenu ul { list-style: disc; }
.wp-contenu ol { list-style: decimal; }
.wp-contenu li + li { margin-top: var(--s-2); }
.wp-contenu a { color: var(--texte); text-decoration: underline; text-underline-offset: 3px; }
.wp-contenu a:hover { text-decoration-thickness: 2px; }
.wp-contenu img, .wp-contenu video, .wp-contenu iframe { max-width: 100%; height: auto; border-radius: var(--r-2); }
.wp-contenu figure { margin: var(--s-5) 0; }
.wp-contenu figcaption, .wp-contenu .wp-caption-text { margin-top: var(--s-2); font-size: var(--t-sm); color: var(--muted); }
.wp-contenu blockquote { padding-left: var(--s-4); border-left: 4px solid var(--c-jaune); color: var(--texte-2); }
.wp-contenu table { width: 100%; border-collapse: collapse; font-size: var(--t-base); display: block; overflow-x: auto; }
.wp-contenu th, .wp-contenu td { padding: var(--s-2) var(--s-3); border-bottom: 1px solid var(--bordure); text-align: left; vertical-align: top; }
.wp-contenu th { font-weight: 650; color: var(--texte); }
.wp-contenu .button, .wp-contenu .wp-block-button__link, .wp-contenu input[type="submit"] {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 var(--s-5);
  background: var(--action); color: var(--action-texte); border: 1px solid transparent; border-radius: var(--r-2);
  font: inherit; font-weight: 600; text-decoration: none; cursor: pointer;
}
.wp-contenu input[type="text"], .wp-contenu input[type="email"], .wp-contenu input[type="tel"], .wp-contenu textarea, .wp-contenu select {
  width: 100%; min-height: 44px; padding: var(--s-2) var(--s-3); font: inherit; color: var(--texte);
  background: var(--surface); border: 1px solid var(--bordure-forte); border-radius: var(--r-2);
}
.wp-contenu .vc_row, .wp-contenu .wpb_row { margin-inline: 0; }
.wp-contenu .vc_col-sm-1, .wp-contenu [class*="vc_col-"] { float: none; width: 100%; padding-inline: 0; }
.wp-contenu .alignleft { float: left; margin: 0 var(--s-4) var(--s-3) 0; }
.wp-contenu .alignright { float: right; margin: 0 0 var(--s-3) var(--s-4); }
.wp-contenu .aligncenter { display: block; margin-inline: auto; }
.wp-contenu::after { content: ""; display: table; clear: both; }
.wp-contenu article h2 a { text-decoration: none; }
.wp-contenu .nav-links { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-6); }
.wp-contenu .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 var(--s-3); border: 1px solid var(--bordure); border-radius: var(--r-2); text-decoration: none; }
.wp-contenu .page-numbers.current { background: var(--c-graphite); color: var(--c-blanc); border-color: var(--c-graphite); }

/* Barre d'administration WordPress (connecté) : les barres collantes se décalent. */
body.admin-bar .entete { top: 32px; }
body.admin-bar .outils { top: calc(32px + var(--h-entete)); }
@media (max-width: 782px) {
  body.admin-bar .entete { top: 46px; }
  body.admin-bar .outils { top: calc(46px + var(--h-entete)); }
}

/* Contenu hérité de l'éditeur : couleurs de texte en ligne (vert, orange, turquoise) sous le seuil AA. */
.wp-contenu [style*="color"] { color: var(--texte) !important; }
.wp-contenu a[style*="color"] { text-decoration: underline; }

/* Les deux sections suivantes ne visent que le gabarit « pleine largeur » (conditions, vie privée, forfaits) :
   la page « À propos » et les autres pages WordPress gardent leur rendu. */
/* ---------- Texte juridique et pages de lecture (conditions, vie privée) ---------- */
.page-template-template-page-full-width .wp-contenu > :first-child { margin-top: 0; }
.wp-contenu--large { max-width: calc(var(--largeur) + 2 * var(--gouttiere)); }
/* Alignement centré saisi dans l'éditeur (align="center", text-align) : lecture à gauche, comme le reste du site. */
.page-template-template-page-full-width .wp-contenu [align], .page-template-template-page-full-width .wp-contenu [style*="text-align"] { text-align: left !important; }
/* Le premier h1 du contenu répète le titre de la page : il devient un bloc d'identification du document. */
.page-template-template-page-full-width .wp-contenu h1 {
  margin: 0 0 var(--s-5); padding: var(--s-3) var(--s-4);
  border-left: 4px solid var(--c-graphite); background: var(--surface);
  font-size: var(--t-base); font-weight: 550; font-stretch: 100%; line-height: 1.5; letter-spacing: 0; text-transform: none;
  color: var(--texte-2);
}
.page-template-template-page-full-width .wp-contenu strong, .page-template-template-page-full-width .wp-contenu b { font-weight: 650; color: var(--texte); }
.page-template-template-page-full-width .wp-contenu li > ol, .page-template-template-page-full-width .wp-contenu li > ul { margin-top: var(--s-2); }

/* ---------- Contenu WPBakery (forfaits publicitaires) ---------- */
/* Polices et tailles saisies en ligne ramenées aux jetons du thème. */
.page-template-template-page-full-width .wp-contenu [style*="font-family"] { font-family: inherit !important; }
.page-template-template-page-full-width .wp-contenu :is([style*="font-size: 12pt"], [style*="font-size:12pt"], [style*="font-size: 14pt"], [style*="font-size:14pt"]) { font-weight: 400; font-stretch: 100%; line-height: 1.5; }
.page-template-template-page-full-width .wp-contenu :is([style*="font-size: 12pt"], [style*="font-size:12pt"]) { font-size: var(--t-base) !important; }
.page-template-template-page-full-width .wp-contenu :is([style*="font-size: 14pt"], [style*="font-size:14pt"]) { font-size: var(--t-md) !important; }
.page-template-template-page-full-width .wp-contenu :is([style*="font-size: 18pt"], [style*="font-size:18pt"], [style*="font-size: 24pt"], [style*="font-size:24pt"]) { font-weight: 700; font-stretch: var(--chasse-titre); line-height: 1.15; }
.page-template-template-page-full-width .wp-contenu :is([style*="font-size: 18pt"], [style*="font-size:18pt"]) { font-size: var(--t-xl) !important; }
.page-template-template-page-full-width .wp-contenu :is([style*="font-size: 24pt"], [style*="font-size:24pt"]) { font-size: var(--t-2xl) !important; }
.page-template-template-page-full-width .wp-contenu .vc_empty_space { height: var(--s-4) !important; }
.page-template-template-page-full-width .wp-contenu .wpb_content_element, .page-template-template-page-full-width .wp-contenu .wpb_single_image { margin-bottom: 0; }
.page-template-template-page-full-width .wp-contenu .wpb_wrapper > * + * { margin-top: var(--s-4); }
.page-template-template-page-full-width .wp-contenu .vc_column_container > .vc_column-inner { padding: 0; }
.page-template-template-page-full-width .wp-contenu .vc_figure { display: block; margin: 0; }
.page-template-template-page-full-width .wp-contenu .vc_single_image-wrapper { display: block; max-width: 100%; padding: 0; border: 0; }
.page-template-template-page-full-width .wp-contenu .vc_single_image-img { display: block; width: 100%; height: auto; }
.page-template-template-page-full-width .wp-contenu .lp_section_inner { padding: 0; background: none; }
.page-template-template-page-full-width .wp-contenu .lp-section-row + .lp-section-row { margin-top: var(--s-8); }

/* Rangées et colonnes : une colonne sur mobile, grille de 12 colonnes dès 768 px. */
.page-template-template-page-full-width .wp-contenu :is(.vc_row, .lp-section-content) { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-4); width: 100%; }
.page-template-template-page-full-width .wp-contenu :is(.vc_row, .lp-section-content)::before, .page-template-template-page-full-width .wp-contenu :is(.vc_row, .lp-section-content)::after { content: none; display: none; }
.page-template-template-page-full-width .wp-contenu .vc_row + .vc_row, .page-template-template-page-full-width .wp-contenu .vc_row + .vc_empty_space + .vc_row { margin-top: var(--s-4); }
/* Rangée à fond personnalisé : l'encadré bleu saisi dans l'éditeur devient un filet du thème. */
.page-template-template-page-full-width .wp-contenu [class*="vc_custom_"] {
  padding: var(--s-5) !important; background: var(--surface) !important;
  border: 1px solid var(--bordure) !important; border-radius: var(--r-3) !important; box-shadow: none !important;
}
@media (min-width: 768px) {
  .page-template-template-page-full-width .wp-contenu :is(.vc_row, .lp-section-content) { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--s-5); align-items: center; }
  .page-template-template-page-full-width .wp-contenu .vc_col-sm-1 { grid-column: span 1; }
  .page-template-template-page-full-width .wp-contenu .vc_col-sm-2 { grid-column: span 2; }
  .page-template-template-page-full-width .wp-contenu .vc_col-sm-3 { grid-column: span 3; }
  .page-template-template-page-full-width .wp-contenu .vc_col-sm-4 { grid-column: span 4; }
  .page-template-template-page-full-width .wp-contenu .vc_col-sm-5 { grid-column: span 5; }
  .page-template-template-page-full-width .wp-contenu .vc_col-sm-6 { grid-column: span 6; }
  .page-template-template-page-full-width .wp-contenu .vc_col-sm-7 { grid-column: span 7; }
  .page-template-template-page-full-width .wp-contenu .vc_col-sm-8 { grid-column: span 8; }
  .page-template-template-page-full-width .wp-contenu .vc_col-sm-9 { grid-column: span 9; }
  .page-template-template-page-full-width .wp-contenu .vc_col-sm-10 { grid-column: span 10; }
  .page-template-template-page-full-width .wp-contenu .vc_col-sm-11 { grid-column: span 11; }
  .page-template-template-page-full-width .wp-contenu .vc_col-sm-12 { grid-column: span 12; }
  .page-template-template-page-full-width .wp-contenu .vc_row .vc_btn3-container { justify-content: flex-end; }
}

/* Boutons WPBakery : le gabarit .btn--contour du thème ; le grand bouton est l'action (jaune). */
.page-template-template-page-full-width .wp-contenu .vc_btn3-container { display: flex; margin: 0; }
.page-template-template-page-full-width .wp-contenu .vc_row p { max-width: none; }
.page-template-template-page-full-width .wp-contenu a.vc_btn3.vc_btn3-style-modern.vc_btn3-color-black {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--s-2);
  min-height: 48px; padding: 0 var(--s-5); margin: 0;
  background: var(--surface) !important; background-image: none !important; color: var(--texte) !important;
  border: 1px solid var(--bordure-forte) !important; border-radius: var(--r-2) !important; box-shadow: none !important; text-shadow: none;
  font-size: var(--t-base); font-weight: 600; line-height: 1.1; text-decoration: none; white-space: normal; text-align: center;
}
.page-template-template-page-full-width .wp-contenu a.vc_btn3.vc_btn3-style-modern.vc_btn3-color-black:hover,
.page-template-template-page-full-width .wp-contenu a.vc_btn3.vc_btn3-style-modern.vc_btn3-color-black:focus {
  background: var(--surface-2) !important; color: var(--texte) !important; border-color: var(--texte) !important; text-decoration: none;
}
.page-template-template-page-full-width .wp-contenu a.vc_btn3.vc_btn3-style-modern.vc_btn3-color-black:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.page-template-template-page-full-width .wp-contenu a.vc_btn3.vc_btn3-style-modern.vc_btn3-color-black.vc_btn3-size-lg { min-height: 56px; padding: 0 var(--s-6); font-size: var(--t-md); }
.page-template-template-page-full-width .wp-contenu a.vc_btn3.vc_btn3-style-modern.vc_btn3-color-black.vc_btn3-size-lg,
.page-template-template-page-full-width .wp-contenu a.vc_btn3.vc_btn3-style-modern.vc_btn3-color-black.vc_btn3-size-lg:focus {
  background: var(--action) !important; color: var(--action-texte) !important; border-color: transparent !important;
}
.page-template-template-page-full-width .wp-contenu a.vc_btn3.vc_btn3-style-modern.vc_btn3-color-black.vc_btn3-size-lg:hover {
  background: var(--action-survol) !important; color: var(--action-texte) !important; border-color: transparent !important;
}

/* ---------- Page « Nous joindre » (template-contact.php) ---------- */
.contact { padding-block: var(--s-7) var(--s-9); }
.contact__grille { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s-8); align-items: start; }
.contact__grille--seul { grid-template-columns: minmax(0, 1fr); max-width: calc(720px + 2 * var(--gouttiere)); }
.contact__carte { margin-top: var(--s-6); }
@media (max-width: 899px) {
  .contact { padding-block: var(--s-6) var(--s-8); }
  .contact__grille { grid-template-columns: minmax(0, 1fr); gap: var(--s-7); }
  .contact__formulaire { order: -1; }
}

.formulaire { display: grid; gap: var(--s-4); }
.formulaire__note { margin-bottom: var(--s-4); font-size: var(--t-sm); color: var(--muted); }
.formulaire__rangee { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-4); }
@media (max-width: 599px) { .formulaire__rangee { grid-template-columns: minmax(0, 1fr); } }
.formulaire__groupe { display: grid; gap: var(--s-2); min-width: 0; }
.formulaire__groupe > label { font-size: var(--t-sm); font-weight: 600; color: var(--texte); }
.formulaire .champ--texte { height: auto; min-height: 168px; padding: var(--s-3); line-height: 1.5; resize: vertical; }
.formulaire__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3) var(--s-4); }
.formulaire__accord { display: flex; align-items: center; gap: var(--s-3); }
.formulaire__accord input { width: 20px; height: 20px; flex: none; accent-color: var(--c-graphite); }
.formulaire__accord label { font-size: var(--t-base); font-weight: 500; }
input.btn { appearance: none; -webkit-appearance: none; cursor: pointer; }
.btn:disabled, .btn[disabled] { background: var(--bordure-douce); color: var(--muted); border-color: var(--bordure); cursor: not-allowed; }
.btn:disabled:hover, .btn[disabled]:hover { background: var(--bordure-douce); }
.formulaire__envoi { font-size: var(--t-sm); color: var(--muted); }
.formulaire__retour { padding: var(--s-3) var(--s-4); background: var(--surface); border: 1px solid var(--bordure); border-left-width: 4px; border-radius: var(--r-2); }
.formulaire__retour p { margin: 0; font-size: var(--t-base); line-height: 1.5; color: var(--texte); }
.formulaire__retour--ok { border-left-color: var(--f-communaute); }
.formulaire__retour--erreur { border-left-color: var(--f-manger); }

/* ---------- Forfaits web (page forfaits publicitaires) ---------- */
.wp-contenu a.btn { text-decoration: none; }
.wp-contenu a.btn--contour { color: var(--texte); }
.wp-contenu .forfaits {
  display: grid; gap: var(--s-4); margin-block: var(--s-6) var(--s-7); padding: 0; list-style: none;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
}
.wp-contenu .forfaits > li { display: flex; flex-direction: column; gap: var(--s-3); max-width: none; margin: 0; padding: var(--s-5); background: var(--surface); border: 1px solid var(--bordure); border-top: 3px solid var(--texte); border-radius: var(--r-3); }
.wp-contenu .forfait > * { margin: 0; max-width: none; }
.wp-contenu .forfait__nom { font-size: var(--t-xl); font-weight: 700; font-stretch: var(--chasse-titre); line-height: 1.1; color: var(--texte); }
.wp-contenu .forfait__prix { font-size: var(--t-base); color: var(--texte-2); }
.wp-contenu .forfait__montant { font-size: var(--t-3xl); font-weight: 700; font-stretch: var(--chasse-titre); line-height: 1; color: var(--texte); font-variant-numeric: tabular-nums; }
.wp-contenu .forfait__annuel { font-size: var(--t-sm); line-height: 1.4; color: var(--texte-2); }
.wp-contenu .forfait__inclus { flex: 1; padding-top: var(--s-3); border-top: 1px solid var(--bordure); font-size: var(--t-base); line-height: 1.5; color: var(--texte); }
.wp-contenu .forfait__action .btn { width: 100%; white-space: normal; text-align: center; }
.wp-contenu .forfait__accroche { font-size: var(--t-base); line-height: 1.4; color: var(--texte-2); }
.wp-contenu .forfait__inclus > p { margin: 0 0 var(--s-2); max-width: none; font-size: var(--t-base); font-weight: 600; line-height: 1.4; color: var(--texte); }
.wp-contenu .forfait__inclus ul { margin: 0; padding-left: 1.2em; }
.wp-contenu .forfait__inclus li { max-width: none; font-size: var(--t-base); line-height: 1.45; color: var(--texte); }
.wp-contenu .forfait__inclus li + li { margin-top: var(--s-1); }

/* ---------- Fiche : contenus des forfaits payants (logo, slogan, photos, vidéos) ---------- */
.fiche-logo { margin-top: var(--s-4); }
.fiche-logo img { width: auto; height: 56px; max-width: 100%; object-fit: contain; object-position: left center; }
.fiche-slogan { max-width: 46ch; margin-top: var(--s-3); font-size: var(--t-lg); font-weight: 500; line-height: 1.4; color: var(--texte-2); text-wrap: balance; }
@media (min-width: 900px) {
  .fiche-logo img { height: 72px; }
}

.galerie { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 160px), 1fr)); gap: var(--s-3); margin: 0; padding: 0; list-style: none; }
.galerie__item { min-width: 0; }
.galerie__lien { display: block; overflow: hidden; background: var(--surface-2); border: 1px solid var(--bordure); border-radius: var(--r-2); }
.galerie__lien:hover { border-color: var(--bordure-forte); }
.galerie__lien img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }

.videos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: var(--s-4); }
.video { position: relative; min-width: 0; aspect-ratio: 16 / 9; overflow: hidden; background: var(--inv-bg); border-radius: var(--r-2); }
.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
