:root {
  --cm-ink: #1a2437;
  --cm-accent: #d73f50;
  --cm-paper: #fffaf5;
  --cm-shadow: 0 12px 30px rgba(26, 36, 55, 0.22);
}

.cm-floating-tools {
  position: relative;
  z-index: 2147483000;
}

.cm-tool-button {
  position: fixed;
  bottom: clamp(16px, 2vw, 24px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(48px, 4vw, 54px);
  height: clamp(48px, 4vw, 54px);
  padding: 0;
  border: 1px solid rgba(26, 36, 55, 0.14);
  border-radius: 50%;
  box-shadow: var(--cm-shadow);
  cursor: pointer;
  font-size: 20px;
  line-height: 1;
  transition: transform .2s ease, background-color .2s ease, color .2s ease, opacity .2s ease;
}

.cm-tool-button:hover,
.cm-tool-button:focus-visible {
  transform: translateY(-2px);
}

.cm-tool-button:focus-visible,
._access-icon._access:focus-visible,
._access-menu._access button:focus-visible,
._access-menu._access li:focus-visible {
  outline: 3px solid #ffb7c0 !important;
  outline-offset: 3px !important;
}

.cm-cookie-button {
  right: clamp(16px, 2vw, 24px);
  background: var(--cm-ink);
  color: #fff;
}

.cm-cookie-button:hover,
.cm-cookie-button:focus-visible {
  background: var(--cm-paper);
  color: var(--cm-accent);
}

.cm-scroll-top {
  left: 50%;
  background: var(--cm-paper);
  color: var(--cm-ink);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 8px);
}

.cm-scroll-top:hover,
.cm-scroll-top:focus-visible { color: var(--cm-accent); }

.cm-scroll-top.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

.cm-scroll-top.is-visible:hover,
.cm-scroll-top.is-visible:focus-visible { transform: translate(-50%, -2px); }

/* Plugin Joomla : Système - Fonctionnalités d’accessibilité supplémentaires */
._access-icon._access {
  position: fixed !important;
  left: clamp(16px, 2vw, 24px) !important;
  bottom: clamp(16px, 2vw, 24px) !important;
  z-index: 2147483000 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: clamp(48px, 4vw, 54px) !important;
  height: clamp(48px, 4vw, 54px) !important;
  overflow: hidden !important;
  border: 1px solid rgba(26, 36, 55, .14) !important;
  border-radius: 50% !important;
  background: var(--cm-accent) !important;
  color: transparent !important;
  box-shadow: var(--cm-shadow) !important;
  font-size: 0 !important;
  line-height: 1 !important;
  text-indent: 0 !important;
  transform: none !important;
  transition: transform .2s ease, background-color .2s ease !important;
}

._access-icon._access::before {
  content: "\f29a";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: "Font Awesome 5 Free", "Font Awesome 6 Free";
  font-size: 22px;
  font-weight: 900;
  line-height: 1;
}

._access-icon._access:hover,
._access-icon._access:focus-visible {
  background: var(--cm-paper) !important;
  transform: translateY(-2px) !important;
}

._access-icon._access:hover::before,
._access-icon._access:focus-visible::before { color: var(--cm-accent); }

._access-menu._access {
  left: clamp(16px, 2vw, 24px) !important;
  bottom: calc(clamp(16px, 2vw, 24px) + 66px) !important;
  width: min(350px, calc(100vw - 32px)) !important;
  overflow: hidden !important;
  border: 1px solid rgba(26, 36, 55, .14) !important;
  border-radius: 14px !important;
  background: rgba(255, 250, 245, .98) !important;
  color: var(--cm-ink) !important;
  box-shadow: var(--cm-shadow) !important;
  font-family: 'Noto Sans', sans-serif !important;
}

._access-menu._access h3 {
  min-height: 58px !important;
  margin: 0 !important;
  padding: 18px 52px 14px !important;
  background: var(--cm-ink) !important;
  color: #fff !important;
  font-family: 'DM Serif Display', serif !important;
  font-size: 22px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
}

._access-menu ._menu-btn {
  top: 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 34px !important;
  height: 34px !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, .12) !important;
  color: transparent !important;
  font-size: 0 !important;
}

._access-menu ._menu-close-btn { left: 12px !important; }
._access-menu ._menu-reset-btn { right: 12px !important; }
._access-menu ._menu-close-btn::before,
._access-menu ._menu-reset-btn::before {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: "Font Awesome 5 Free", "Font Awesome 6 Free";
  font-size: 15px;
  font-weight: 900;
}
._access-menu ._menu-close-btn::before { content: "\f00d"; }
._access-menu ._menu-reset-btn::before { content: "\f2f1"; }

._access-menu ._access-scrollbar {
  width: auto !important;
  max-height: min(450px, calc(100dvh - 145px)) !important;
  margin: 0 !important;
  padding: 12px !important;
  color: var(--cm-ink) !important;
}

._access-menu ._access-scrollbar li {
  min-height: 44px !important;
  margin: 0 0 7px !important;
  padding: 11px 44px 11px 14px !important;
  border: 1px solid rgba(26, 36, 55, .12) !important;
  border-radius: 9px !important;
  background: #fff !important;
  color: var(--cm-ink) !important;
  font-family: 'Noto Sans', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.3 !important;
}

._access-menu ._access-scrollbar li:hover,
._access-menu ._access-scrollbar li:focus-visible {
  border-color: var(--cm-accent) !important;
  background: #fff0f2 !important;
  color: #a7192a !important;
}

._access-menu ._access-scrollbar li::before,
._access-menu svg { color: var(--cm-accent) !important; fill: currentColor !important; }

#tarteaucitronAlertBig {
  right: clamp(16px, 2vw, 24px) !important;
  bottom: calc(clamp(16px, 2vw, 24px) + 66px) !important;
  left: auto !important;
  width: min(620px, calc(100vw - 32px)) !important;
  padding: 16px !important;
  border-radius: 14px !important;
  background: rgba(255, 250, 245, .98) !important;
  color: var(--cm-ink) !important;
  box-shadow: var(--cm-shadow) !important;
  text-align: left !important;
}

#tarteaucitronAlertBig button,
#tarteaucitronAlertBig a { border-radius: 999px !important; font-weight: 700 !important; }
#tarteaucitronAlertBig .tarteaucitronAllow,
#tarteaucitronAllAllowed,
#tarteaucitronPersonalize2 { background: var(--cm-accent) !important; color: #fff !important; }
#tarteaucitronAlertBig .tarteaucitronDeny,
#tarteaucitronAllDenied,
#tarteaucitronAllDenied2 { background: var(--cm-ink) !important; color: #fff !important; }
#tarteaucitronClosePanel { background: var(--cm-ink) !important; color: #fff !important; }

@media (max-width: 767px) {
  .cm-tool-button { bottom: 14px; }
  .cm-cookie-button { right: 14px; }
  ._access-icon._access { left: 14px !important; bottom: 14px !important; }
  ._access-menu._access { left: 12px !important; bottom: 76px !important; width: calc(100vw - 24px) !important; }
  #tarteaucitronAlertBig { right: 12px !important; bottom: 76px !important; width: calc(100vw - 24px) !important; }
}

@media (prefers-reduced-motion: reduce) { .cm-tool-button, ._access-icon._access { transition: none !important; } }
@media print { .cm-floating-tools, ._access-icon._access, ._access-menu._access, #tarteaucitronAlertBig { display: none !important; } }
