/* Compléments au thème Fortuna : accessibilité (WCAG 2.1 AA), consentement cookies,
   remplacements statiques des modules dynamiques WordPress. */

/* ---------- utilitaires */
.sr-only {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link {
  position: absolute; left: 8px; top: -60px; z-index: 100000;
  background: #b72827; color: #fff !important; padding: 10px 16px; font-weight: 700;
  border-radius: 3px; text-decoration: none; transition: top .15s;
}
.skip-link:focus { top: 8px; }
main.content_body { display: block; }
main.content_body:focus { outline: none; }

/* Focus visible sur tous les éléments interactifs (2.4.7) */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible, iframe:focus-visible {
  outline: 3px solid #1a73e8 !important;
  outline-offset: 2px;
  box-shadow: 0 0 0 5px #fff;
}
#header a:focus-visible { outline-color: #b72827 !important; }

/* ---------- en-tête / menus */
button#mobile_menu_toggler {
  background: none; border: 0; padding: 0; margin: 0; cursor: pointer; color: inherit; font: inherit;
}
button#mobile_menu_toggler .m_nav, button#mobile_menu_toggler .m_nav_ham { display: block; }
#mobile_menu { display: none; }
#menu a.menu-toggle-parent { cursor: default; }
/* sous-menus accessibles au clavier */
#menu > ul > li:focus-within > div,
#menu > ul > li:focus-within > .sub-menu { visibility: visible; opacity: 1; }

/* ---------- bouton « Cookie settings » dans le pied de page */
.cookie-settings-link {
  background: none; border: 0; padding: 0; font: inherit; color: inherit;
  text-decoration: underline; cursor: pointer;
}

/* ---------- bandeau cookies (reprend l'aspect du plugin d'origine) */
.cc-bar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 99999;
  background: #b72827; color: #fff; font: 14px/1.4 Helvetica, Arial, sans-serif;
  box-shadow: 0 -1px 10px rgba(0, 0, 0, .2);
}
.cc-bar[hidden] { display: none; }
.cc-bar-inner {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 14px 20px; flex-wrap: wrap;
}
.cc-bar-text { margin: 0; flex: 1 1 480px; color: #fff; font-size: 14px; line-height: 1.4; }
.cc-bar-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.cc-btn {
  font: 13px/1 Helvetica, Arial, sans-serif; padding: 9px 12px; border-radius: 2px;
  cursor: pointer; border: 1px solid transparent; min-height: 36px; min-width: 44px;
}
.cc-btn-primary { background: #000; color: #fff; border-color: #000; text-transform: uppercase; }
.cc-btn-primary:hover { background: #333; }
.cc-btn-secondary { background: transparent; color: #fff; border-color: #fff; text-transform: uppercase; }
.cc-btn-secondary:hover { background: rgba(255, 255, 255, .15); }
.cc-btn-link { background: transparent; color: #fff; text-decoration: underline; padding-left: 4px; padding-right: 4px; }
.cc-bar .cc-btn:focus-visible { outline-color: #fff !important; box-shadow: 0 0 0 5px #000; }

.cc-modal {
  border: 0; padding: 0; max-width: 640px; width: calc(100% - 32px); max-height: calc(100vh - 40px);
  border-radius: 4px; box-shadow: 0 10px 40px rgba(0, 0, 0, .35); color: #333;
  font: 14px/1.6 Helvetica, Arial, sans-serif;
}
.cc-modal::backdrop { background: rgba(0, 0, 0, .55); }
.cc-modal-content { position: relative; padding: 28px 28px 20px; margin: 0; }
.cc-modal h2 { font-size: 20px; margin: 0 0 12px; color: #333; }
.cc-modal-close {
  position: absolute; top: 8px; right: 8px; width: 44px; height: 44px;
  background: none; border: 0; cursor: pointer; fill: #333;
}
.cc-category { border: 1px solid #ddd; border-radius: 3px; padding: 12px 16px; margin: 14px 0; }
.cc-category legend { font-weight: 700; padding: 0 6px; }
.cc-category p { margin: 6px 0; }
.cc-switch-row { display: flex; align-items: center; gap: 10px; font-weight: 600; }
.cc-switch-row input { width: 20px; height: 20px; accent-color: #b72827; margin: 0; }
.cc-modal-footer { text-align: right; margin-top: 16px; }

/* ---------- contenus tiers bloqués avant consentement */
.consent-embed {
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  min-height: min(var(--embed-h, 300px), 420px); background: #f2f2f2; border: 1px solid #ddd;
  padding: 20px; box-sizing: border-box; margin: 0 0 20px; color: #333;
}
.consent-embed p { margin: 6px 0; }
.consent-embed a { color: #8f1e1d; text-decoration: underline; }
.consent-twitter { color: inherit; text-decoration: underline; }

/* ---------- PDF (remplace le plugin PDF Embedder) */
.pdf-embed iframe { width: 100%; height: 800px; max-height: 85vh; border: 1px solid #ddd; }

/* ---------- fonds « Ultimate VC Addons » convertis en CSS */
.upb-stretch { position: relative; }
.upb-stretch-bg {
  position: absolute; top: 0; bottom: 0; left: 50%; width: 100vw; margin-left: -50vw; z-index: -1;
}
.content_body { position: relative; z-index: 0; overflow-x: clip; }

/* ---------- liste d'événements de l'accueil (shortcode non interprété sur WordPress) */
.geniors-events-widget ol { list-style: none; margin: 0; padding: 0; }
.geniors-events-widget li { margin: 0 0 18px; padding: 0 0 14px; border-bottom: 1px solid #eee; }
.geniors-events-widget .tribe-event-title { font-size: 15px; margin: 0 0 4px; line-height: 1.4; }
.geniors-events-widget .tribe-event-title a { color: #333; }
.geniors-events-widget .tribe-event-title a:hover { color: #b72827; }
.geniors-events-widget .tribe-event-duration { font-size: 13px; color: #666; }
.geniors-events-widget .tribe-events-widget-link a { color: #b72827; font-weight: 600; }

/* ---------- événements : pagination statique */
.tribe-events-sub-nav li { list-style: none; }

/* ---------- contrastes (1.4.3) : teintes du thème légèrement assombries */
#footer .boc_latest_posts p.date { color: #9a9a9a; }
#footer, #footer p, #footer .textwidget { color: #a6a6a6; }
.footer_btm #powered { color: #a6a6a6; }
#sidebar .boc_latest_posts p.date, .boc_latest_posts p.date { color: #717171; }
.post_item_desc .small_post_date, .small_post_date { color: #717171; }
.post_content blockquote, .post_content blockquote p { color: #595959; }
.tribe-events-notices, .tribe-events-notices li { color: #245269; }
.tribe-events-list .type-tribe_events.tribe-event-featured { background: #0a73a0; }
.tribe-events-list .tribe-event-featured .tribe-events-event-meta,
.tribe-events-list .tribe-event-featured .tribe-events-event-meta * ,
.tribe-events-list .tribe-event-featured .tribe-events-content,
.tribe-events-list .tribe-event-featured .tribe-events-content * { color: #fff; }

/* ---------- réduction des animations (2.3.3) */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  .wpb_animate_when_almost_visible { opacity: 1 !important; }
}

@media (max-width: 767px) {
  .cc-bar-inner { padding: 12px 16px; }
  .cc-bar-actions { width: 100%; justify-content: flex-end; }
}

/* ---------- liens dans le texte : soulignés (1.4.1, la couleur seule ne suffit pas) */
.post_description p a:not(.button):not(.more-link2),
.post_description li a:not(.button),
.wpb_text_column p a:not(.button), .wpb_text_column li a:not(.button),
.boc_list_item_text a, .tribe-events-content a:not([class]), .accordion_content a,
.event-title p a, .post_description a:not([class]), .wpb_text_column a:not([class]) { text-decoration: underline; text-underline-offset: 2px; }

/* titres rouges posés sur une colonne à fond gris */
.vc_col-has-fill h4.boc_heading[style*="#b72827"],
.vc_custom_1504598887559 .boc_heading { color: #9c1f1e !important; } /* page Background */

/* événement mis en avant : lien « Find out more » */
.tribe-events-list .tribe-event-featured .tribe-events-read-more { color: #fff !important; text-decoration: underline; }
/* The Events Calendar retire le soulignement via #tribe-events-content a */
#tribe-events-content .tribe-events-content a:not([class]),
#tribe-events-content .tribe-events-meta-group dd a { text-decoration: underline; text-underline-offset: 2px; }
