/*
 * Ferme des Vallons — Consentement cookies : habillage de tarteaucitron aux couleurs du thème fdv-hummingbird.
 * Chargé après tarteaucitron.min.css. Sélecteurs préfixés « html body #tarteaucitronRoot » pour passer devant les
 * règles d'origine (très spécifiques, nombreux !important).
 *
 * Variables : reprises du thème (--fdv-green-dark…) avec repli si le module est utilisé sur un autre thème.
 * Boutons « Tout accepter » et « Tout refuser » volontairement identiques (même poids visuel : exigence CNIL).
 */
#tarteaucitronRoot {
  --fdvc-green: var(--fdv-green-dark, #2d5335);
  --fdvc-green-hover: var(--fdv-green-darker, #23422a);
  --fdvc-green-subtle: var(--fdv-green-subtle, #e6efe3);
  --fdvc-text: var(--bs-body-color, #212529);
  --fdvc-muted: var(--bs-secondary-color, #5c636a);
  --fdvc-border: var(--bs-border-color, #dee2e6);
  --fdvc-radius: var(--bs-border-radius-lg, .5rem);
  --fdvc-font: var(--bs-body-font-family, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);
}

html body #tarteaucitronRoot,
html body #tarteaucitronRoot * {
  font-family: var(--fdvc-font) !important;
}

/* ---------------------------------------------------------------- */
/* Bandeau (carte flottante)                                         */
/* ---------------------------------------------------------------- */

html body #tarteaucitronRoot #tarteaucitronAlertBig {
  box-sizing: border-box;
  background: #fff;
  color: var(--fdvc-text);
  border: 1px solid var(--fdvc-border);
  border-top: .25rem solid var(--fdvc-green);
  border-radius: var(--fdvc-radius);
  box-shadow: 0 .75rem 2.5rem rgba(0, 0, 0, .18);
  text-align: left;
  font-size: .9375rem !important;
  line-height: 1.5;
}

/* Bandeau compact (retour client du 06/10 : moins de frein, plus d'accords) : carte en bas à gauche sur grand écran,
   en bas sur mobile, sans titre, message court, « Tout refuser » et « Tout accepter » côte à côte et de même taille
   (exigence CNIL : refuser aussi simple qu'accepter), liens « Personnaliser » / « En savoir plus » en dessous.
   Hauteur mobile ≈ 150 px (263 px avant). */
html body #tarteaucitronRoot.tarteaucitronSize-bottom #tarteaucitronAlertBig {
  left: 1rem;
  right: auto;
  bottom: 1rem;
  transform: none;
  width: min(calc(100% - 2rem), 27rem);
  padding: 1rem 1.125rem .75rem;
  margin: 0;
}

html body #tarteaucitronRoot.tarteaucitronSize-bottom #tarteaucitronAlertBig[style*="block"] {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: .625rem .75rem;
}

html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert {
  order: 0;
  flex: 1 1 100%;
  display: block;
  padding: 0;
  max-height: 30vh;
  overflow-y: auto;
  color: var(--fdvc-text);
  font-size: .875rem !important;
  line-height: 1.45;
}
html body #tarteaucitronRoot .fdv-consent__msg { display: block; }

/* boutons principaux */
html body #tarteaucitronRoot #tarteaucitronAlertBig button.tarteaucitronCTAButton,
html body #tarteaucitronRoot #tarteaucitron button#tarteaucitronAllAllowed,
html body #tarteaucitronRoot #tarteaucitron button#tarteaucitronAllDenied,
html body #tarteaucitronRoot #tarteaucitron button#tarteaucitronSaveButton {
  margin: 0 !important;
  padding: .625rem 1rem;
  min-height: 2.75rem;
  border: 1px solid var(--fdvc-green) !important;
  border-radius: var(--bs-border-radius, .375rem);
  background: var(--fdvc-green) !important;
  color: #fff !important;
  font-size: .9375rem !important;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  opacity: 1 !important;
  transition: background-color .15s ease-in-out;
}
html body #tarteaucitronRoot #tarteaucitronAlertBig button.tarteaucitronCTAButton:hover,
html body #tarteaucitronRoot #tarteaucitron button#tarteaucitronAllAllowed:hover,
html body #tarteaucitronRoot #tarteaucitron button#tarteaucitronAllDenied:hover,
html body #tarteaucitronRoot #tarteaucitron button#tarteaucitronSaveButton:hover {
  background: var(--fdvc-green-hover) !important;
  border-color: var(--fdvc-green-hover) !important;
}
/* les deux boutons du bandeau : même largeur, « Tout refuser » à gauche en contour, « Tout accepter » à droite */
html body #tarteaucitronRoot #tarteaucitronAlertBig button#tarteaucitronAllDenied2,
html body #tarteaucitronRoot #tarteaucitronAlertBig button#tarteaucitronPersonalize2 {
  flex: 1 1 calc(50% - .5rem); /* les deux boutons occupent la rangée : les liens passent dessous */
  min-width: 0;
  max-width: calc(50% - .375rem);
  box-sizing: border-box !important; /* tarteaucitron : content-box, padding et bordure s'ajoutaient à la largeur */
  padding: .5rem .75rem !important;
  min-height: 2.75rem !important;
  height: auto !important;
}
/* liens sur leur propre rangée, sous les boutons */
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert { margin-right: 1rem !important; }
html body #tarteaucitronRoot #tarteaucitronAlertBig button#tarteaucitronAllDenied2 {
  order: 1;
  background: #fff !important;
  color: var(--fdvc-green) !important;
}
html body #tarteaucitronRoot #tarteaucitronAlertBig button#tarteaucitronAllDenied2:hover {
  background: var(--fdvc-green-subtle) !important;
  color: var(--fdvc-green-hover) !important;
}
html body #tarteaucitronRoot #tarteaucitronAlertBig button#tarteaucitronPersonalize2 { order: 2; }

/* liens secondaires sous les boutons : Personnaliser, En savoir plus */
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert,
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl {
  order: 3;
  margin: 0 !important;
  padding: .375rem 0;
  min-height: 1.5rem;
  border: 0;
  background: none !important;
  color: var(--fdvc-green) !important;
  font-size: .8125rem !important;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: .2em;
}
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl { order: 4; }
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert:hover,
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl:hover {
  color: var(--fdvc-green-hover) !important;
}

html body #tarteaucitronRoot button:focus-visible,
html body #tarteaucitronRoot a:focus-visible {
  outline: .125rem solid var(--fdvc-green) !important;
  outline-offset: .125rem;
}

/* mobile : pleine largeur, collé en bas */
@media (max-width: 767.98px) {
  html body #tarteaucitronRoot.tarteaucitronSize-bottom #tarteaucitronAlertBig {
    left: .5rem;
    bottom: .5rem;
    width: calc(100% - 1rem);
    padding: .875rem 1rem .5rem;
  }
}

/* fenêtre centrale / petite carte : mêmes couleurs, boutons empilés */
html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig,
html body #tarteaucitronRoot.tarteaucitronSize-popup #tarteaucitronAlertBig {
  padding: 1.5rem;
  box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .35), 0 .75rem 2.5rem rgba(0, 0, 0, .25);
}
html body #tarteaucitronRoot.tarteaucitronSize-popup #tarteaucitronAlertBig {
  box-shadow: 0 .75rem 2.5rem rgba(0, 0, 0, .25);
  max-width: 22rem !important;
  border-radius: var(--fdvc-radius) !important;
  bottom: 1rem;
  left: 1rem !important;
}
html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig::before,
html body #tarteaucitronRoot.tarteaucitronSize-popup #tarteaucitronAlertBig::before {
  content: none;
}
html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronDisclaimerAlert,
html body #tarteaucitronRoot.tarteaucitronSize-popup #tarteaucitronDisclaimerAlert {
  margin: 0 0 1.25rem;
  text-align: left;
  font-size: .9375rem !important;
}
html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig button,
html body #tarteaucitronRoot.tarteaucitronSize-popup #tarteaucitronAlertBig button {
  display: block !important;
  width: 100%;
  margin: 0 0 .5rem !important;
  text-align: center;
}
html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig #tarteaucitronPrivacyUrl,
html body #tarteaucitronRoot.tarteaucitronSize-popup #tarteaucitronAlertBig #tarteaucitronPrivacyUrl {
  margin-left: 0 !important;
}
html body #tarteaucitronRoot.tarteaucitronSize-middle.tarteaucitronBeforeVisible::before {
  background: #000;
  opacity: .35;
}

/* ---------------------------------------------------------------- */
/* Panneau de personnalisation                                       */
/* ---------------------------------------------------------------- */

html body #tarteaucitronRoot #tarteaucitron {
  border-radius: var(--fdvc-radius);
  overflow: hidden;
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, .3);
}
html body #tarteaucitronRoot #tarteaucitronBack {
  background: #000 !important;
  opacity: .45 !important;
}
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronClosePanel {
  background: var(--fdvc-green) !important;
  color: #fff !important;
  border-radius: 0 0 0 var(--bs-border-radius, .375rem);
  font-size: .875rem;
  padding: .5rem .875rem;
  z-index: 1;
}
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices {
  background: #fff !important;
  box-shadow: none;
}
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine.tarteaucitronMainLine {
  background: var(--fdvc-green) !important;
  border: 0 !important;
  padding: 1.25rem 1.5rem;
}
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine.tarteaucitronMainLine .tarteaucitronH1,
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine.tarteaucitronMainLine .tarteaucitronName,
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine.tarteaucitronMainLine .tarteaucitronName * {
  color: #fff !important;
}
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronInfo {
  background: transparent !important;
  color: #fff !important;
  border: 0 !important;
  padding: .5rem 0 0 !important;
  margin: 0 !important;
  max-width: none !important;
  font-size: .9375rem !important;
  line-height: 1.5;
}
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronInfo * {
  color: #fff !important;
}
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronPrivacyUrlDialog {
  background: none !important;
  border: 0;
  margin: 0;
  padding: 0;
  color: #fff !important;
  font-size: .9375rem !important;
  text-decoration: underline;
  text-underline-offset: .2em;
}
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronAsk button#tarteaucitronAllAllowed,
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronAsk button#tarteaucitronAllDenied {
  background: #fff !important;
  color: var(--fdvc-green) !important;
  border-color: #fff !important;
  margin: .25rem 0 0 .5rem !important;
}
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronAsk button[aria-pressed="true"] {
  box-shadow: inset 0 0 0 .125rem var(--fdvc-green);
  text-shadow: none;
  font-weight: 600;
}

html body #tarteaucitronRoot #tarteaucitron .tarteaucitronTitle button,
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronHidden,
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine {
  background: #fff !important;
  color: var(--fdvc-text) !important;
}
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronTitle button {
  background: var(--fdvc-green-subtle) !important;
  color: var(--fdvc-green) !important;
  font-weight: 600;
}
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine {
  border-bottom: 1px solid var(--fdvc-border) !important;
  padding: .875rem 1.5rem;
}
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronH3 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--fdvc-text) !important;
}
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronServiceDescription,
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronStatusInfo,
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronListCookies,
html body #tarteaucitronRoot #tarteaucitron .tacCurrentStatus,
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronReadmoreSeparator {
  color: var(--fdvc-muted) !important;
  font-size: .875rem !important;
}
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronServiceDescription {
  display: block;
  margin: .25rem 0;
}
html body #tarteaucitronRoot #tarteaucitron a.tarteaucitronReadmoreInfo,
html body #tarteaucitronRoot #tarteaucitron a.tarteaucitronReadmoreOfficial {
  color: var(--fdvc-green) !important;
  font-size: .875rem !important;
  text-decoration: underline;
}
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronLine .tarteaucitronAsk button.tarteaucitronAllow,
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronLine .tarteaucitronAsk button.tarteaucitronDeny {
  background: #fff !important;
  color: var(--fdvc-green) !important;
  border: 1px solid var(--fdvc-green) !important;
  border-radius: var(--bs-border-radius, .375rem);
  padding: .4rem .875rem;
  font-size: .875rem !important;
  opacity: 1 !important;
}
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronLine.tarteaucitronIsAllowed .tarteaucitronAsk button.tarteaucitronAllow,
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronLine.tarteaucitronIsDenied .tarteaucitronAsk button.tarteaucitronDeny {
  background: var(--fdvc-green) !important;
  color: #fff !important;
}
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronLine.tarteaucitronIsAllowed {
  border-left: .25rem solid var(--fdvc-green) !important;
}
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronLine.tarteaucitronIsDenied {
  border-left: .25rem solid #b02a37 !important;
}
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronSave {
  background: #fff;
  padding: 1rem 1.5rem;
  text-align: right;
}

/* pas de cases ☐ / ☒ dans les boutons : l'état est rendu par la couleur */
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronCheck,
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronCross {
  display: none !important;
}

/* icône flottante (option) */
html body #tarteaucitronIcon #tarteaucitronManager {
  background: var(--fdv-green-dark, #2d5335);
  border-radius: 50%;
  padding: .5rem;
  box-shadow: 0 .25rem 1rem rgba(0, 0, 0, .25);
}

/* ---------------------------------------------------------------- */
/* Lien du pied de page                                              */
/* ---------------------------------------------------------------- */

.fdv-consent-footer {
  margin: .25rem 0 .5rem;
  text-align: center;
  font-size: .875rem;
}
.fdv-consent-footer a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: .2em;
}
