/* GANTRY5 DEVELOPMENT MODE ENABLED.
 *
 * WARNING: This file is automatically generated by Gantry5. Any modifications to this file will be lost!
 *
 * For more information on modifying CSS, please read:
 *
 * http://docs.gantry.org/gantry5/configure/styles
 * http://docs.gantry.org/gantry5/tutorials/adding-a-custom-style-sheet
 */

@charset "UTF-8";
/* ==========================================================================
   GÎTE DE L'HUBERTIÈRE - CSS MAISON (point d'entrée), créé le 2026-10-25
   ==========================================================================
   Compilé par Gantry5 (scssphp, PAS dart-sass) dans
   custom/css-compiled/custom_<outline>.css, chargé après le CSS de Spirit.

   Conventions (voir CLAUDE.md, mêmes que sastipensana) :
   - 1 fichier partiel par extension/module, importé ici ;
   - couleurs et breakpoints dans _variables.scss (charte validée par Olivier le 2026-10-26) ;
   - après modification : vider cache/gantry5/jl_spirit (ou Gantry -> « Recompile CSS »),
     puis vérifier le CSS réellement compilé ;
   - pas de « *\/ » dans un commentaire.
   ========================================================================== */
.g-content {
  margin: 0.625rem;
  padding: 1.5rem;
}
.g-flushed .g-content {
  margin: 0;
  padding: 0;
}
body {
  font-size: 1rem;
  line-height: 1.5;
}
h1 {
  font-size: 2.25rem;
}
h2 {
  font-size: 1.9rem;
}
h3 {
  font-size: 1.5rem;
}
h4 {
  font-size: 1.15rem;
}
h5 {
  font-size: 1rem;
}
h6 {
  font-size: 0.85rem;
}
small {
  font-size: 0.875rem;
}
cite {
  font-size: 0.875rem;
}
sub, sup {
  font-size: 0.75rem;
}
code, kbd, pre, samp {
  font-size: 1rem;
  font-family: "Menlo", "Monaco", monospace;
}
textarea, select[multiple=multiple], input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="email"], input[type="month"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="time"], input[type="url"], input[type="week"], input:not([type]) {
  border-radius: 0.1875rem;
}
/* Charte (2026-10-26) */
/* ==========================================================================
   CHARTE DU GÎTE DE L'HUBERTIÈRE (validée par Olivier le 2026-10-26)
   ==========================================================================
   Couleurs tirées du logo « L'Hubertière » (vert du lettrage, rouge du H),
   de l'étang (sauge) et de la maison (lin, chêne). Une variable par RÔLE :
   changer une couleur ici la change partout (SCSS et variables CSS --hub-…,
   lues aussi par le plugin maison, voir _hubertiere.scss).
   Les mêmes valeurs sont reportées dans les styles Gantry
   (custom/config/default/styles.yaml) pour les zones gérées par Spirit.

   Contrastes vérifiés (WCAG 2.1, texte normal ≥ 4,5:1) : voir CLAUDE.md.
   ========================================================================== */
/* ==========================================================================
   POLICE DES TITRES HÉBERGÉE SUR LE SITE (2026-10-26, comme sastipensana)
   ==========================================================================
   Playfair Display était chargée depuis Google Fonts (@import ajouté par
   Gantry quand le nom de police commence par « family= ») : adresse IP des
   visiteurs transmise à Google sans consentement, à éviter (RGPD).
   Réglage Gantry : styles.yaml > font > family-title = un simple nom.
   Roboto (texte) est déjà servie par le template (fonts/roboto_*).

   Fichiers : custom/fonts/hubertiere/, version VARIABLE (graisses 400 à 900),
   woff2, sous-ensembles latin + latin-ext, paquet npm
   @fontsource-variable/playfair-display 5.3.0, licence SIL OFL 1.1 (jointe).
   Pas d'italique : le navigateur penche la police droite.
   ========================================================================== */
@font-face {
  font-family: "Playfair Display";
  font-style: normal;
  font-display: swap;
  font-weight: 400 900;
  src: url('../fonts/hubertiere/playfair-display-latin-ext-wght-normal.woff2') format("woff2-variations"), url('../fonts/hubertiere/playfair-display-latin-ext-wght-normal.woff2') format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Playfair Display";
  font-style: normal;
  font-display: swap;
  font-weight: 400 900;
  src: url('../fonts/hubertiere/playfair-display-latin-wght-normal.woff2') format("woff2-variations"), url('../fonts/hubertiere/playfair-display-latin-wght-normal.woff2') format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* En-tête */
/* ==========================================================================
   LIGNE DU HAUT (module « Ligne du haut », position top-a)
   ==========================================================================
   Téléphones et e-mail, comme la ligne du haut de l'ancien site (2026-10-25).
   Couleurs : bande « top » de Gantry (styles.yaml : vert forêt, texte clair).
   Sur téléphone (2026-10-26) : icônes seules, sur une ligne avec « Partager »
   (avant : 4 lignes, 144 px). Le texte reste lu par les lecteurs d'écran.
   ========================================================================== */
.hub-haut {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.3rem 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.95rem;
}
.hub-haut a {
  color: inherit;
  text-decoration: none;
  white-space: nowrap;
}
.hub-haut a:hover, .hub-haut a:focus {
  text-decoration: underline;
}
.hub-haut span {
  margin-right: 0.35rem;
}
@media (max-width: 639.98px) {
  .hub-haut {
    justify-content: center;
    gap: 0.25rem;
  }
  .hub-haut a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    /* zone de toucher confortable */
    min-height: 36px;
    font-size: 0;
    /* numéros et adresse masqués à l'écran, gardés pour les lecteurs d'écran */
  }
  .hub-haut span {
    margin: 0;
    font-size: 1.15rem;
  }
}
/* Particule « JL Social Share » (Partager cette adresse), à droite de la ligne du haut : titre et boutons sur une seule ligne
   (Spirit met le titre au-dessus et double la hauteur de la bande). Id renuméroté par Gantry : sélecteur générique. */
#g-top [id^="jlsocialshare-"][id$="-particle"] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.3rem 0.75rem;
}
#g-top [id^="jlsocialshare-"][id$="-particle"] .g5-title {
  margin: 0;
  font-size: 0.85rem;
  color: #DCE6E0;
}
#g-top .tm-share-icon .jl-icon-button {
  width: 30px;
  height: 30px;
  font-size: 0.85rem;
}
@media (max-width: 639.98px) {
  /* Ligne du haut et partage sur une seule ligne (les deux colonnes de Gantry restent côte à côte) */
  #g-top [id^="jlsocialshare-"][id$="-particle"] {
    justify-content: center;
  }
  #g-top .g-grid {
    flex-wrap: nowrap;
    align-items: center;
  }
  #g-top .g-block {
    flex: 0 1 auto;
    width: auto;
  }
  #g-top .g-content {
    margin: 0.15rem 0.25rem;
    padding: 0;
  }
  #g-top .g5-title {
    display: none;
    /* « Partager cette adresse » : les boutons ont leur propre libellé */
  }
}
/* ==========================================================================
   MENU PRINCIPAL (barre de navigation JoomLead « JL Navbar »)
   ==========================================================================
   Spirit dessine l'onglet actif / survolé comme un fanion biseauté qui
   dépasse de 15 px sous la barre (scss/spirit/sections/_navigation.scss :
   height: calc(100% + 15px) + clip-path). Il est GARDÉ (2026-10-26, Olivier :
   « comme sur sastipen ») : c'est le contenu sous la barre (bandeau de
   l'accueil, bandeau des pages) qui commence sous sa pointe,
   voir _accueil.scss et _bandeau.scss.
   Pas de fanion sous le seuil du menu burger (Gantry, styles :
   mobile-menu-breakpoint = 960px).
   Version d'avant (fanion supprimé, 2026-10-25) :
   hubertiere-archive/sauvegardes/_navigation-fanion-masque-2026-10-25.scss
   ========================================================================== */
/* --------------------------------------------------------------------------
   « Réservation » (élément de menu n°172, menus.php) en bouton brique
   (charte du 2026-10-26 : la brique ne sert qu'aux boutons « Réserver »).
   Pas de fanion sur ce bouton. !important : Spirit écrit la couleur des
   liens du menu dans un style lié à l'id de la particule (plus précis).
   -------------------------------------------------------------------------- */
#g-navigation .jl-navbar-nav > li.item-172 {
  display: flex;
  align-items: center;
  margin-left: 0.5rem;
}
#g-navigation .jl-navbar-nav > li.item-172 > a {
  min-height: 0;
  height: 2.6rem;
  padding: 0 1.1rem;
  border-radius: 8px;
  background: #A8232E;
  color: #fff !important;
}
#g-navigation .jl-navbar-nav > li.item-172 > a::before {
  display: none;
}
#g-navigation .jl-navbar-nav > li.item-172 > a:hover, #g-navigation .jl-navbar-nav > li.item-172 > a:focus {
  background: #8A1C25;
}
/* --------------------------------------------------------------------------
   Loupe (recherche) et burger du téléphone : Spirit les met en blanc au survol
   et au focus (pensé pour sa barre de démo foncée) -> invisibles sur notre
   barre blanche. Vert forêt au survol, comme les liens actifs. (2026-11-09)
   -------------------------------------------------------------------------- */
#g-navigation .jl-search-toggle:hover, #g-navigation .jl-search-toggle:focus, #g-navigation .jl-search-toggle.jl-open, #g-navigation .jl-search-toggle[aria-expanded="true"], #g-navigation .jl-navbar-toggle:hover, #g-navigation .jl-navbar-toggle:focus, #g-navigation .jl-navbar-toggle.jl-open, #g-navigation .jl-navbar-toggle[aria-expanded="true"] {
  color: #1F3D2E;
}
/* Pages */
/* ==========================================================================
   CONTENU DES ARTICLES (toutes les pages), charte du 2026-10-26
   ==========================================================================
   Titres verts avec un filet sauge, liens verts soulignés, listes aérées,
   photos aux coins arrondis, boutons « Réserver » en brique (seul usage
   de la brique sur le site, pour qu'on les repère tout de suite).
   ========================================================================== */
.com-content-article__body {
  /* Galeries des pages (Uikit) */
}
.com-content-article__body h2 {
  margin-top: 2.5rem;
  /* Titre centré (ex. titre du formulaire de réservation ConvertForms, classe text-center) : filet centré aussi */
}
.com-content-article__body h2::after {
  content: "";
  display: block;
  width: 48px;
  height: 3px;
  margin-top: 0.6rem;
  background: #90B0A0;
}
.com-content-article__body h2:first-of-type {
  margin-top: 0.5rem;
}
.com-content-article__body h2.text-center::after, .com-content-article__body h2[style*="center"]::after {
  margin-left: auto;
  margin-right: auto;
}
.com-content-article__body h3 {
  margin-top: 1.75rem;
}
.com-content-article__body a:not(.jl-button) {
  color: #1F3D2E;
  text-decoration: underline;
  text-decoration-color: #90B0A0;
  text-underline-offset: 0.2em;
}
.com-content-article__body a:not(.jl-button):hover, .com-content-article__body a:not(.jl-button):focus {
  text-decoration-color: currentColor;
}
.com-content-article__body ul:not([class]) li {
  margin-bottom: 0.35rem;
}
.com-content-article__body .hub-galerie img {
  border-radius: 8px;
}
/* Boutons « Réserver » : « Réservez au Gîte de l'Hubertière ! », « Demande de réservation » */
.hub-cta {
  margin: 2rem 0;
}
.hub-cta .jl-button-primary {
  background: #A8232E;
  border-color: #A8232E;
  color: #fff;
  border-radius: 8px;
}
.hub-cta .jl-button-primary:hover, .hub-cta .jl-button-primary:focus {
  background: #8A1C25;
  border-color: #8A1C25;
  color: #fff;
}
/* Galerie « Aperçu des lieux » de l'accueil (particule Gantry) */
#g-expanded img {
  border-radius: 8px;
}
/* Titres sur téléphone (2026-10-26, demande d'Olivier) : Spirit met les h2 à 1,9 rem (30 px), plus gros que le h1
   du bandeau (26 px) ; un titre de formulaire tenait sur 5 lignes. Hiérarchie rétablie : h1 > h2 > h3. */
@media (max-width: 639.98px) {
  h2 {
    font-size: 1.45rem;
    line-height: 1.25;
  }
  h3 {
    font-size: 1.2rem;
    line-height: 1.3;
  }
}
/* reCAPTCHA v3 (plugin de captcha Joomla) dans les formulaires Joomla (avis JoomTestimonials, mot de passe oublié…) : il est invisible,
   mais Joomla affiche quand même son libellé « Anti-spam * » au-dessus d'un blanc (2026-10-26) → libellé masqué, bloc resserré */
:has(> input.plg-captcha-recaptcha-v3-hidden) > label {
  display: none;
}
.predefined-field-captcha:has(> input.plg-captcha-recaptcha-v3-hidden) {
  margin: 0 !important;
}
/* Tableau de la politique de confidentialité (données collectées), 2026-10-27 : lignes alternées ; sur téléphone,
   une fiche par ligne (les 4 colonnes seraient illisibles), avec le nom de la colonne devant chaque valeur */
.hub-tableau {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
}
.hub-tableau th, .hub-tableau td {
  padding: 0.6rem 0.75rem;
  border-bottom: 1px solid #E6DDCD;
  text-align: left;
  vertical-align: top;
}
.hub-tableau th {
  background: #F6F1E8;
  color: #1F3D2E;
  font-weight: 500;
}
.hub-tableau td:first-child {
  font-weight: 500;
  color: #1F3D2E;
}
@media (max-width: 639.98px) {
  .hub-tableau thead {
    display: none;
  }
  .hub-tableau tr, .hub-tableau td {
    display: block;
  }
  .hub-tableau tr {
    margin-bottom: 0.75rem;
    border: 1px solid #E6DDCD;
    border-radius: 8px;
  }
  .hub-tableau td {
    border-bottom: 0;
    padding: 0.35rem 0.75rem;
  }
  .hub-tableau td:first-child {
    background: #F6F1E8;
  }
  .hub-tableau td:nth-child(2)::before {
    content: "Données : ";
    font-weight: 500;
  }
  .hub-tableau td:nth-child(3)::before {
    content: "Pour quoi faire : ";
    font-weight: 500;
  }
  .hub-tableau td:nth-child(4)::before {
    content: "Base légale : ";
    font-weight: 500;
  }
}
/* titres, liens, boutons « Réserver » de tous les articles */
/* ==========================================================================
   PARTIES DES ARTICLES EN BLOCS SÉPARÉS (2026-10-26)
   ==========================================================================
   Remarque d'Olivier : « 3 blocs réels mais un affichage continu ».
   Chaque partie (titre h2/h3 et sa suite) est enveloppée dans
   <section class="hub-partie"> par scripts/reprise/parties.php.
   Quand un article a des parties, sa carte blanche (Spirit) devient
   transparente et chaque partie devient un bloc blanc sur le fond lin.
   Articles sans parties (Réservation, Mentions légales, Espace
   propriétaire) : carte blanche inchangée.
   ========================================================================== */
.jl-article:has(.hub-partie) {
  background: transparent;
  padding-left: 0;
  padding-right: 0;
}
.hub-partie {
  margin: 0 0 1.5rem;
  padding: 2.25rem 2.75rem;
  border: 1px solid #E6DDCD;
  border-radius: 12px;
  background: #fff;
  /* le titre ouvre le bloc : pas de marge au-dessus */
}
.hub-partie > h2:first-child, .hub-partie > h3:first-child {
  margin-top: 0;
}
.hub-partie > :last-child {
  margin-bottom: 0;
}
@media (max-width: 639.98px) {
  .hub-partie {
    margin-bottom: 1rem;
    padding: 1.5rem 1.15rem;
  }
}
/* Le h3 qui ouvre un bloc a le même filet que les h2 (il joue le rôle d'un titre de partie) */
.com-content-article__body .hub-partie > h3:first-child::after {
  content: "";
  display: block;
  width: 36px;
  height: 3px;
  margin-top: 0.5rem;
  background: #90B0A0;
}
/* parties des articles en blocs séparés */
/* ==========================================================================
   ACCUEIL - bandeau (diaporama Gantry « Bandeau accueil », outline 14)
   ==========================================================================
   « Gîte de l'Hubertière » sur une seule ligne (demande d'Olivier du 2026-10-25) :
   taille qui suit la largeur de l'écran, sans retour à la ligne.
   Ombre légère pour la lisibilité sur les photos claires.
   ========================================================================== */
#g-slideshow .tm-title.jl-heading-large {
  white-space: nowrap;
  font-size: clamp(1.9rem, 7vw, 5.5rem);
  line-height: 1.1;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
}
#g-slideshow .tm-content {
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}
/* Le fanion de l'entrée active du menu déborde de 15 px sous la barre :
   le diaporama commence sous sa pointe (comme sastipensana, _navigation.scss) */
@media (min-width: 960px) {
  #g-slideshow {
    margin-top: 1.25rem !important;
  }
}
/* --------------------------------------------------------------------------
   Atouts de l'accueil (ul.hub-atouts : « Free WIFI », « Piscine »,
   « 1 chambre accessible », textes de l'ancien site) en pastilles
   (charte du 2026-10-26)
   -------------------------------------------------------------------------- */
.hub-atouts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin: 1.25rem 0 1.5rem;
  padding: 0;
  list-style: none;
}
.hub-atouts li {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  padding: 0.55rem 1rem;
  border-radius: 999px;
  background: #DCE8E1;
  color: #1F3D2E;
  font-weight: 500;
}
.hub-atouts span {
  font-size: 1.1rem;
}
/* Titres des zones Gantry de l'accueil (galerie, avis, carte) : même filet que les titres d'article */
#g-expanded .g5-title, #g-extension .hub-avis > h2, #g-bottom .g5-title {
  color: #1F3D2E;
}
#g-expanded .g5-title::after, #g-extension .hub-avis > h2::after, #g-bottom .g5-title::after {
  content: "";
  display: block;
  width: 48px;
  height: 3px;
  margin-top: 0.6rem;
  background: #90B0A0;
}
/* ==========================================================================
   BANDEAU DES PAGES INTÉRIEURES (mise en page d'article « bandeau », 2026-10-25)
   ==========================================================================
   templates/jl_spirit/html/com_content/article/bandeau.php : image de l'article
   complet en pleine largeur, en-tête de page du menu en h1 par-dessus
   (textes des anciens bandeaux Smart Slider). L'article est dans la colonne
   centrale (1200 px) : le bandeau en sort pour prendre toute la largeur.
   ========================================================================== */
/* Le bandeau pleine largeur (100vw) ne doit pas créer de défilement horizontal */
html, body {
  overflow-x: clip;
}
/* Pas de marge blanche entre le menu et le bandeau : section, cadre Gantry et carte blanche de l'article (Spirit) */
#g-container-main:has(.hub-bandeau) {
  padding-top: 0;
  /* Le fanion de l'entrée active du menu déborde de 15 px sous la barre :
       le bandeau commence sous sa pointe (comme sastipensana, _navigation.scss).
       Padding de la section : Uikit retire la marge du 1er élément de l'article. */
}
@media (min-width: 960px) {
  #g-container-main:has(.hub-bandeau) {
    padding-top: 1.25rem;
  }
}
#g-container-main .g-content:has(> .platform-content .hub-bandeau), #g-container-main .g-content:has(.hub-bandeau) {
  margin-top: 0;
  padding-top: 0;
}
.jl-article:has(> .hub-bandeau) {
  padding-top: 0;
}
.hub-bandeau {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  height: clamp(220px, 45vh, 480px);
  overflow: hidden;
  margin-bottom: 2.5rem;
}
.hub-bandeau-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* Voile + titre centré, lisible sur toutes les photos */
.hub-bandeau-texte {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 1.5rem;
  background: rgba(0, 0, 0, 0.32);
  text-align: center;
}
.hub-bandeau-texte h1 {
  margin: 0;
  max-width: 22ch;
  color: #fff;
  font-size: clamp(1.6rem, 4.5vw, 3.6rem);
  line-height: 1.15;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
}
/* Charte (2026-10-26) : voile vert forêt plutôt que noir */
.hub-bandeau-texte {
  background: rgba(22, 45, 34, 0.42);
}
/* bandeau des pages intérieures (mise en page d'article « bandeau ») */
/* Extensions et modules */
/* ==========================================================================
   JOOMTESTIMONIALS (avis) - accueil (module n°121) et page des avis
   ==========================================================================
   La mise en page « default » de JoomTestimonials met text-center sur tout
   le bloc .testiItem. Un paragraphe centré se lit mal (le début de chaque
   ligne bouge) : le texte de l'avis est aligné à gauche, le reste (photo,
   nom, date, étoiles) reste centré. Demande d'Olivier du 2026-10-25.
   ========================================================================== */
.testiItem .testimonialText {
  text-align: left;
}
/* --------------------------------------------------------------------------
   Cartes des avis (charte du 2026-10-26) : carte blanche sur fond lin,
   guillemet en filigrane, étoiles couleur chêne
   -------------------------------------------------------------------------- */
.testiItem {
  position: relative;
  height: 100%;
  border-radius: 12px;
  background: #fff;
  border: 1px solid #E6DDCD;
  /* « Témoignages » (nom de la catégorie) sous chaque avis : sans intérêt pour le visiteur */
  /* étoiles : caractère ★ en ::after, couleur écrite par JoomTestimonials dans la page */
}
.testiItem::before {
  content: "“";
  /* “ */
  position: absolute;
  top: 0.25rem;
  left: 0.9rem;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 4rem;
  line-height: 1;
  color: #DCE8E1;
  pointer-events: none;
}
.testiItem .testimonialText {
  position: relative;
  /* au-dessus du guillemet */
}
.testiItem .testi-name {
  font-weight: 500;
  color: #1F3D2E;
}
.testiItem .testi-date, .testiItem .testi-date em {
  color: #57534E;
}
.testiItem .jt-item-category {
  display: none;
}
.testiItem span.joomstar.joomactivestar::after {
  color: #7A4E33;
}
/* --------------------------------------------------------------------------
   Bouton « Donnez votre avis » de la page des avis (2026-10-26) : couleurs de
   la charte (au lieu du vert Bootstrap) et texte visible aussi sur téléphone
   (JoomTestimonials n'y affiche que le « + », classe d-none d-sm-inline) ;
   placé SOUS le titre (il flottait à droite et coupait « Vos avis » en deux lignes)
   -------------------------------------------------------------------------- */
.jtHeader .page-header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
}
.jtHeader .page-header h1 {
  order: 1;
  margin: 0;
}
.jtHeader .page-header .jtModal {
  order: 2;
  float: none !important;
}
.jtHeader .jtModal {
  background: #1F3D2E;
  border-color: #1F3D2E;
  color: #fff;
  border-radius: 8px;
  padding: 0.5rem 1rem;
  font-size: 0.95rem;
}
.jtHeader .jtModal:hover, .jtHeader .jtModal:focus {
  background: #162D22;
  border-color: #162D22;
  color: #fff;
}
.jtHeader .jtModal .d-none {
  display: inline !important;
  margin-left: 0.25rem;
}
/* ==========================================================================
   PLUGIN MAISON plg_system_hubertiere : calendrier, tarifs (2026-10-26)
   ==========================================================================
   Le plugin lit ses couleurs dans des variables CSS --hub-… (media/
   plg_system_hubertiere/css/hubertiere.css) : on les redéfinit ici avec la
   charte. Jours libres = sauge clair, jours réservés = chêne (la brique
   reste réservée aux boutons « Réserver »).
   L'Espace propriétaire garde ses couleurs très contrastées (bleu, rouge
   d'alerte) : pensé pour Michelle, il n'est pas concerné.
   ========================================================================== */
:root {
  --hub-libre: #DCE8E1;
  --hub-libre-texte: #1F3D2E;
  --hub-pris: #7A4E33;
  --hub-pris-texte: #fff;
  --hub-bord: #E6DDCD;
}
/* ---- Calendrier ---- */
.hub-calendrier:not(.hub-calendrier--saisie) .hub-mois caption {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 500;
  color: #1F3D2E;
}
.hub-calendrier:not(.hub-calendrier--saisie) .hub-mois th {
  color: #57534E;
  font-weight: 500;
}
/* Tableaux de Spirit (fond gris des en-têtes, bordures) : retirés du calendrier, saisie comprise */
.hub-mois, .hub-mois th, .hub-mois td {
  border: 0;
  background: none;
}
.hub-mois abbr[title] {
  text-decoration: none;
  border: 0;
  cursor: default;
}
.hub-legende {
  font-size: 0.9rem;
  color: #57534E;
}
/* ---- Tarifs : une carte par tarif ---- */
.hub-tarifs {
  gap: 0.75rem;
}
.hub-tarif {
  display: flex;
  flex-direction: column;
  border-top: 0;
  border-radius: 8px;
  padding: 1rem 1rem 0.9rem;
  background: #F6F1E8;
}
.hub-tarif .hub-tarif-libelle {
  font-weight: 500;
  line-height: 1.35;
}
.hub-tarif .hub-tarif-mention {
  font-size: 0.85rem;
  color: #57534E;
}
.hub-tarif .hub-tarif-prix {
  margin-top: auto;
  padding-top: 0.4rem;
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 500;
  color: #1F3D2E;
}
.hub-avertissement {
  font-size: 0.9rem;
  font-style: italic;
  color: #57534E;
}
/* « Informations complémentaires » : encadré « à savoir » */
.hub-tarifs-infos {
  margin: 1rem 0;
  padding: 1rem 1.25rem 1rem 2.25rem;
  border-left: 4px solid #90B0A0;
  background: #F6F1E8;
}
.hub-tarifs-infos li {
  margin-bottom: 0.4rem;
}
.hub-tarifs-infos .hub-important {
  color: #7A4E33;
  font-weight: 500;
}
/* plugin maison : calendrier, tarifs */
/* ==========================================================================
   CONVERTFORMS (formulaires 1 Contact et 2 Demande de réservation), 2026-10-26
   ==========================================================================
   Couleurs de base (police, libellés, champs, boutons) réglées dans les
   formulaires eux-mêmes (scripts/reprise/formulaires_apparence.php) ; ici,
   ce que ConvertForms ne règle pas : icônes des libellés, focus, message
   de remerciement.
   ========================================================================== */
/* Icônes des libellés du formulaire de contact (n°1) : décor, en sauge foncée.
   Avant le 2026-10-28 elles étaient écrites en HTML dans les libellés (<i class="fas fa-user"></i>&nbsp;Nom:),
   que ConvertForms recopiait tel quel dans ses messages d'erreur : libellés nettoyés par formulaires_apparence.php,
   icônes remises ici (Font Awesome 6 de Joomla, codes de media/system/css/joomla-fontawesome.css). */
#cf_1 [data-name="nom"] > .cf-control-label > .cf-label::before, #cf_1 [data-name="nom"] > legend.cf-label::before {
  content: "";
  font: var(--fa-font-solid);
  margin-right: 0.4rem;
  color: #6F8F80;
}
#cf_1 [data-name="prenom"] > .cf-control-label > .cf-label::before, #cf_1 [data-name="prenom"] > legend.cf-label::before {
  content: "";
  font: var(--fa-font-solid);
  margin-right: 0.4rem;
  color: #6F8F80;
}
#cf_1 [data-name="tel"] > .cf-control-label > .cf-label::before, #cf_1 [data-name="tel"] > legend.cf-label::before {
  content: "";
  font: var(--fa-font-solid);
  margin-right: 0.4rem;
  color: #6F8F80;
}
#cf_1 [data-name="mail"] > .cf-control-label > .cf-label::before, #cf_1 [data-name="mail"] > legend.cf-label::before {
  content: "@";
  font: var(--fa-font-solid);
  margin-right: 0.4rem;
  color: #6F8F80;
}
#cf_1 [data-name="confirm_mail"] > .cf-control-label > .cf-label::before, #cf_1 [data-name="confirm_mail"] > legend.cf-label::before {
  content: "@";
  font: var(--fa-font-solid);
  margin-right: 0.4rem;
  color: #6F8F80;
}
#cf_1 [data-name="feedback"] > .cf-control-label > .cf-label::before, #cf_1 [data-name="feedback"] > legend.cf-label::before {
  content: "";
  font: var(--fa-font-solid);
  margin-right: 0.4rem;
  color: #6F8F80;
}
#cf_1 [data-name="fileupload"] > .cf-control-label > .cf-label::before, #cf_1 [data-name="fileupload"] > legend.cf-label::before {
  content: "";
  font: var(--fa-font-solid);
  margin-right: 0.4rem;
  color: #6F8F80;
}
#cf_1 [data-name="checkbox_11"] > .cf-control-label > .cf-label::before, #cf_1 [data-name="checkbox_11"] > legend.cf-label::before {
  content: "";
  font: var(--fa-font-solid);
  margin-right: 0.4rem;
  color: #6F8F80;
}
/* Champ actif bien visible */
.convertforms .cf-input:focus, .convertforms textarea.cf-input:focus {
  border-color: #1F3D2E;
  box-shadow: 0 0 0 3px rgba(144, 176, 160, 0.45);
  outline: none;
}
/* Titre du formulaire de contact dans la fenêtre */
.eb-inst .convertforms h2 {
  margin-top: 0;
  color: #1F3D2E;
}
/* --------------------------------------------------------------------------
   Message de remerciement (textes inchangés) : centré, coche verte,
   « Michelle LOIZEAU » en signature. La coche s'affiche aussi sur les
   messages d'erreur (fond rouge de ConvertForms) : gardé, Olivier 2026-10-28.
   -------------------------------------------------------------------------- */
.convertforms .cf-response {
  padding: 1.5rem 1rem 1rem;
  text-align: center;
  color: #2B2B2B;
}
.convertforms .cf-response:not(:empty)::before {
  content: "✓";
  /* ✓ */
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.5rem;
  height: 3.5rem;
  margin: 0 auto 1rem;
  border-radius: 50%;
  background: #DCE8E1;
  color: #1F3D2E;
  font-size: 1.8rem;
  font-weight: 700;
}
.convertforms .cf-response h2 {
  margin: 0 0 0.75rem;
  color: #1F3D2E;
}
.convertforms .cf-response p {
  margin: 0 0 1rem;
  line-height: 1.6;
}
.convertforms .cf-response h3 {
  margin: 1.25rem 0 0;
  font-style: italic;
  font-size: 1.15rem;
  color: #1F3D2E;
}
.convertforms .cf-response a {
  color: #1F3D2E;
  text-decoration: underline;
}
/* ConvertForms pose le message sur son vert « succès » (#0f9d58, texte blanc) : fond lin, texte de la charte */
.convertforms.cf-success .cf-response {
  background-color: #F6F1E8;
  border-radius: 8px;
}
/* Message d'erreur (classe cf-error) : une croix au lieu de la coche (Olivier, 2026-10-28). Le rouge de ConvertForms (#D73E31)
   avec du texte blanc ne fait que 4,0:1 : rouge plus foncé #B3261E (6,5:1), texte blanc. */
.convertforms.cf-error .cf-response {
  border-radius: 8px;
  background-color: #B3261E;
  color: #fff;
}
.convertforms.cf-error .cf-response:not(:empty)::before {
  content: "✕";
  /* ✕ */
  background: #fff;
  color: #B3261E;
}
/* --------------------------------------------------------------------------
   Calendrier de choix des dates du formulaire 2 (flatpickr) : jours choisis
   en vert forêt (avant : bleu de flatpickr). Jours réservés et période :
   CSS personnalisé du formulaire (formulaires_apparence.php).
   -------------------------------------------------------------------------- */
.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover {
  background: #1F3D2E;
  border-color: #1F3D2E;
  color: #fff;
}
/* Calendrier en ligne : largeur fixe de flatpickr (307 px) plus large que la carte sur téléphone → il suit la largeur disponible */
.convertforms .flatpickr-calendar.inline {
  width: 100% !important;
  max-width: 22rem;
}
.convertforms .flatpickr-calendar.inline .flatpickr-days, .convertforms .flatpickr-calendar.inline .dayContainer {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
}
/* Curseurs (nombre d'adultes et d'enfants) : curseur du Tassos Framework, réglé par ses variables (avant : bleu #1976d2) */
.convertforms .nrf-slider-wrapper {
  --base-color: #DCE8E1;
  --progress-color: #1F3D2E;
  --thumb-shadow-color: rgba(144, 176, 160, 0.35);
}
/* En-tête du calendrier (mois, jours de la semaine) : vert forêt (avant : bleu #42a5f5 du thème flatpickr de ConvertForms) */
.convertforms .flatpickr-calendar .flatpickr-month, .convertforms .flatpickr-calendar .flatpickr-monthDropdown-months, .convertforms .flatpickr-calendar .flatpickr-monthDropdown-month, .convertforms .flatpickr-calendar .flatpickr-weekdays, .convertforms .flatpickr-calendar span.flatpickr-weekday {
  background: #1F3D2E;
  color: #fff;
  fill: #fff;
}
.convertforms .flatpickr-calendar .flatpickr-prev-month svg, .convertforms .flatpickr-calendar .flatpickr-next-month svg {
  fill: #fff;
}
/* ==========================================================================
   ENGAGEBOX (fenêtres), charte du 2026-10-26
   ==========================================================================
   Fenêtre n°1 « Contact » ({convertforms 1}, ouverte par « par formulaire »
   dans la ligne du haut). Le voile vert foncé derrière la fenêtre est réglé
   dans EngageBox (scripts/reprise/formulaires_apparence.php).
   ========================================================================== */
.eb-inst .eb-dialog {
  border-radius: 12px;
}
.eb-inst .eb-close {
  color: #1F3D2E;
}
.eb-inst .eb-close:hover, .eb-inst .eb-close:focus {
  color: #A8232E;
}
/* --------------------------------------------------------------------------
   n3tCookieConsent (bandeau de cookies), 2026-10-27
   Couleurs réglées dans le plugin (scripts/reprise/cookies_n3t.php) ; ici seulement
   le bouton « Paramètres » en second plan : « Accepter » et « Refuser » gardent le même
   poids (refuser doit être aussi simple qu'accepter, CNIL).
   -------------------------------------------------------------------------- */
#cc--main #cm #c-t-bn {
  background: #F6F1E8;
  color: #1F3D2E;
  box-shadow: inset 0 0 0 1px #E6DDCD;
}
#cc--main #cm #c-t-bn:hover, #cc--main #cm #c-t-bn:focus-visible {
  background: #E6DDCD;
}
/* Vignettes des vidéos (gestionnaire d’iframes). Le plugin impose 300 × 150 px au minimum (débordait sur
   téléphone, texte coupé) : pleine largeur du bloc, au moins 16/9 (unité cqw : largeur du bloc .hub-iframe),
   et l’avertissement dans le flux pour que le bloc grandisse sur téléphone. Pas d’overflow: hidden (il
   empêcherait de grandir) : coins arrondis sur les enfants. Le 16/9 du plugin (::before en padding-top: 56.25 %) est sorti
   du flux et remplacé par le min-height. */
.hub-iframe {
  container-type: inline-size;
}
.hub-iframe > div[data-service] {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  min-height: 56.25cqw;
  border-radius: 8px;
}
.hub-iframe > div[data-service]::before {
  position: absolute;
}
.hub-iframe > div[data-service] .c-nt {
  position: relative;
  height: auto;
  flex: 1 0 auto;
  display: flex;
  align-items: center;
}
.hub-iframe > div[data-service] .c-n-c {
  height: auto;
}
.hub-iframe > div[data-service].c-h-n .c-nt {
  position: absolute;
}
.hub-iframe > div[data-service] .c-bg, .hub-iframe > div[data-service] .c-bg-i, .hub-iframe > div[data-service] .c-bg::before, .hub-iframe > div[data-service] iframe {
  border-radius: 8px;
}
/* bandeau de cookies, vignettes des vidéos */
/* Pied de page */
/* ==========================================================================
   PIED DE PAGE (outline default, 2026-10-26)
   ==========================================================================
   Repris de l'ancien site : coordonnées « Propriétaire » / « Le site »
   (module mod_custom n°124, position footer-b), menu « Mentions légales »
   (footer-a), logo GO! Challans GOis, ©, retour en haut.
   Charte (2026-10-26) : fond vert forêt, texte clair (couleurs de la section
   dans les styles Gantry), logo partenaire sur une pastille blanche.
   ========================================================================== */
/* Coordonnées : 2 blocs côte à côte (« Propriétaire », « Le site » avec l'hébergeur), l'un sous l'autre sur téléphone */
.hub-pied-coord {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 2.5rem;
  font-size: 0.875rem;
  line-height: 1.5;
}
.hub-pied-coord h3 {
  margin: 0 0 0.4rem;
  font-size: 1.05rem;
  font-style: italic;
  color: #fff;
  /* les titres sont verts partout ailleurs : invisibles sur ce fond */
}
.hub-pied-coord p {
  margin: 0 0 0.75rem;
}
.hub-pied-bloc {
  flex: 0 1 auto;
}
/* Logo GO! Challans GOis centré */
#g-footer .hub-pied-partenaire {
  display: block;
  width: fit-content;
  margin: 1rem auto 0;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  background: #fff;
}
#g-footer .hub-pied-partenaire img {
  display: block;
  max-width: 100%;
  height: auto;
}
/* Ligne du bas : © et « Haut » (« Propulsé par » retiré le 2026-10-26, accord d'Olivier) */
#g-copyright {
  font-size: 0.85rem;
}
#g-copyright .g-totop {
  text-align: right;
}
@media (max-width: 639.98px) {
  #g-copyright .g-block {
    text-align: center;
  }
  #g-copyright .g-totop {
    text-align: center;
  }
}
/* Espaces resserrés (Spirit : grande section + marges de chaque bloc Gantry) */
#g-footer {
  padding-top: 2.5rem;
  padding-bottom: 1.5rem;
}
#g-footer .g-content {
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
#g-footer a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
#g-footer .mod-menu {
  margin: 0;
  padding: 0;
  list-style: none;
}
#g-copyright .g-content {
  padding-top: 0.6rem;
  padding-bottom: 0.6rem;
}
/*# sourceMappingURL=custom_14.css.map */