:root {
  --cbrs-blue: #0a3273;
  --cbrs-blue-light: #1e4b99;
  --cbrs-teal: #145c75;
  --cbrs-green: #437c14;
  --cbrs-green-dark: #3b6e11;
  /* Teinte du bandeau : bleu d'origine. cms-client.js remplace c1/c2/c3 et l'opacité
     selon l'Apparence du CMS (teinteEnTete, intensiteTeinte). */
  --cbrs-hero-c1: 10, 50, 115;
  --cbrs-hero-c2: 30, 75, 153;
  --cbrs-hero-c3: 20, 92, 117;
  --cbrs-hero-o: .78;
  --cbrs-surface: #f5f7fa;
  --cbrs-shell-radius: 28px;
  --cbrs-nav-radius: 22px;
  --cbrs-item-radius: 14px;
  --cbrs-font-body: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --cbrs-font-heading: "Manrope", var(--cbrs-font-body);
  --cbrs-font-accent: "Playfair Display", Georgia, serif;
  --cbrs-shell-shadow: 0 18px 50px rgba(15, 23, 42, 0.07);
  --cbrs-nav-shadow: 0 14px 32px rgba(15, 23, 42, 0.09);
  --cbrs-focus: 0 0 0 3px rgba(88, 160, 26, .42);
  --cbrs-shell-top: 12px;
  --cbrs-sidebar-left: 20px;
  --cbrs-sidebar-width: 216px;
  --cbrs-sidebar-collapsed-width: 68px;
  --cbrs-layout-gap: 20px;
  --cbrs-nav-inset: 12px;
  --cbrs-nav-gap: 4px;
  --cbrs-nav-row: 45px;
  --cbrs-content-offset: calc(var(--cbrs-sidebar-left) + var(--cbrs-sidebar-width) + var(--cbrs-layout-gap));
}

@view-transition {
  navigation: auto;
}

html {
  background: var(--cbrs-surface);
  scroll-behavior: smooth;
  view-transition-name: root;
}

/* Fondu enchaîné : l'ancienne page reste visible pendant que la nouvelle apparaît
   (plus de passage par un écran vide), et le menu latéral ne bouge pas. */
#sidebar {
  view-transition-name: cbrs-sidebar;
}

@media (prefers-reduced-motion: no-preference) {
  ::view-transition-group(root) {
    animation-duration: .45s;
  }

  /* L'ancienne page reste opaque dessous : pas de fond blanc qui transparaît. */
  ::view-transition-old(root) {
    animation: none;
  }

  ::view-transition-new(root) {
    animation: cbrs-page-in .45s cubic-bezier(.25, .8, .3, 1) both;
  }

  ::view-transition-group(cbrs-sidebar),
  ::view-transition-new(cbrs-sidebar) {
    animation: none;
  }
}

/* Par défaut les deux captures sont fusionnées en « plus-lighter » : deux images opaques
   superposées s'additionnent et virent au blanc (encadré blanc derrière le menu). */
::view-transition-old(root),
::view-transition-new(root),
::view-transition-new(cbrs-sidebar) {
  mix-blend-mode: normal;
}

::view-transition-old(cbrs-sidebar) {
  display: none;
}

@keyframes cbrs-page-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes cbrs-page-fallback-enter {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

body.cbrs-ui {
  background: var(--cbrs-surface);
  font-family: var(--cbrs-font-body);
  overflow-x: hidden;
}

@supports not (view-transition-name: none) {
  @media (prefers-reduced-motion: no-preference) {
    body.cbrs-ui {
      animation: cbrs-page-fallback-enter .3s ease both;
    }
  }
}

body.cbrs-ui :where(h1, h2, h3, h4, h5, h6) {
  font-family: var(--cbrs-font-heading);
}

/* Polices choisies dans l'Apparence du CMS (variables posées par cms-client.js). */
body.cbrs-ui h1 {
  font-family: var(--cbrs-font-h1, var(--cbrs-font-heading));
}

body.cbrs-ui :where(h2, h3) {
  font-family: var(--cbrs-font-h2, var(--cbrs-font-heading));
}

body.cbrs-ui :where(button, input, textarea, select, optgroup) {
  font-family: inherit;
}

body.cbrs-ui .font-serif-italic {
  font-family: var(--cbrs-font-accent);
  font-style: italic;
  font-weight: 600;
}

html.a11y-readable body.cbrs-ui,
html.a11y-readable body.cbrs-ui :where(h1, h2, h3, h4, h5, h6, .font-serif-italic) {
  font-family: Arial, Helvetica, sans-serif !important;
}

html.a11y-readable body.cbrs-ui .font-serif-italic {
  font-style: normal;
}

body.cbrs-ui a:focus-visible,
body.cbrs-ui button:focus-visible,
body.cbrs-ui input:focus-visible,
body.cbrs-ui textarea:focus-visible,
body.cbrs-ui select:focus-visible,
body.cbrs-ui summary:focus-visible,
body.cbrs-ui [tabindex="0"]:focus-visible {
  outline: 0;
  box-shadow: var(--cbrs-focus);
}

body.cbrs-ui > .cbrs-hero {
  position: relative;
  z-index: 1;
  margin: var(--cbrs-shell-top) 12px 0 var(--cbrs-content-offset);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: var(--cbrs-shell-radius);
  box-shadow: var(--cbrs-shell-shadow);
  isolation: isolate;
}

body.cbrs-ui.sidebar-collapsed > .cbrs-hero {
  margin-left: calc(var(--cbrs-sidebar-left) + var(--cbrs-sidebar-collapsed-width) + var(--cbrs-layout-gap));
}

body.cbrs-ui > .cbrs-hero .header-wave-svg {
  display: none !important;
}

body.cbrs-ui .cbrs-logo-frame {
  position: absolute;
  z-index: 3;
  top: clamp(.75rem, 2vw, 1.35rem);
  right: clamp(.75rem, 2.5vw, 2.5rem);
  width: clamp(180px, 20vw, 260px);
  padding: 0;
  border: 0;
  background: transparent;
}

body.cbrs-ui .cbrs-logo-image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 8px 10px rgba(15, 23, 42, 0.07));
}


body.cbrs-ui .cbrs-home-hero-bg {
  object-position: center 52%;
}

body.cbrs-ui .cbrs-outings-hero-bg {
  object-position: center 26%;
  transform: scale(1.06);
  transform-origin: center center;
}

@media (min-width: 1024px) {
  body.cbrs-ui > .cbrs-hero > img.absolute.inset-0.object-cover {
    object-position: center 22%;
  }

  body.cbrs-ui .cbrs-home-hero-bg {
    object-position: center 22%;
  }

  body.cbrs-ui .cbrs-outings-hero-bg {
    object-position: center 24%;
    transform: scale(1.08);
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  body.cbrs-ui > .cbrs-hero > img.absolute.inset-0.object-cover {
    object-position: center 28%;
  }

  body.cbrs-ui .cbrs-outings-hero-bg {
    object-position: center 22%;
    transform: scale(1.06);
  }
}

body.cbrs-ui > .cbrs-layout {
  gap: var(--cbrs-layout-gap);
  margin-top: 0 !important;
  padding-right: 16px;
  align-items: flex-start;
}

body.cbrs-ui #sidebar.cbrs-sidebar {
  z-index: 20;
  width: var(--cbrs-sidebar-width);
  height: calc(100vh - 40px);
  margin: 0 0 24px var(--cbrs-sidebar-left);
  padding-top: 0 !important;
  top: var(--cbrs-shell-top);
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: var(--cbrs-shell-radius);
  background: linear-gradient(165deg, var(--cbrs-blue) 0%, var(--cbrs-blue-light) 54%, var(--cbrs-teal) 100%) !important;
  box-shadow: var(--cbrs-nav-shadow);
}

body.cbrs-ui #sidebar.cbrs-sidebar .sidebar-toggle {
  min-height: 44px;
  margin: 10px var(--cbrs-nav-inset);
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, .12) !important;
  border-radius: var(--cbrs-item-radius);
  background: rgba(255, 255, 255, .06);
}

body.cbrs-ui #sidebar.cbrs-sidebar .sidebar-toggle svg {
  transition: transform .25s ease;
}

body.cbrs-ui #sidebar.cbrs-sidebar.collapsed .sidebar-toggle svg {
  transform: rotate(180deg);
}

body.cbrs-ui #sidebar.cbrs-sidebar nav {
  display: flex;
  flex-direction: column;
  gap: var(--cbrs-nav-gap);
  padding: 8px 0 10px;
}

body.cbrs-ui #sidebar.cbrs-sidebar .sidebar-link {
  min-height: var(--cbrs-nav-row);
  margin: 0 var(--cbrs-nav-inset) !important;
  padding-right: 14px;
  padding-left: 14px;
  border: 0 !important;
  border-radius: var(--cbrs-item-radius) !important;
}

body.cbrs-ui #sidebar.cbrs-sidebar .sidebar-link:not(.bg-cbrs-green):hover,
body.cbrs-ui #sidebar.cbrs-sidebar .sidebar-link:not(.bg-cbrs-green):focus-visible {
  background: rgba(255, 255, 255, .1) !important;
}

body.cbrs-ui #sidebar.cbrs-sidebar .sidebar-link.bg-cbrs-green {
  background: linear-gradient(135deg, #4f8f1a, var(--cbrs-green)) !important;
  box-shadow: 0 8px 18px rgba(30, 91, 28, .24);
}

body.cbrs-ui #sidebar.cbrs-sidebar .sidebar-divider {
  width: auto;
  margin: 8px 24px !important;
}

body.cbrs-ui #sidebar.cbrs-sidebar.collapsed {
  width: var(--cbrs-sidebar-collapsed-width);
}

body.cbrs-ui #sidebar.cbrs-sidebar.collapsed .sidebar-link {
  margin: 0 8px !important;
}

body.cbrs-ui #sidebar.cbrs-sidebar .sidebar-quote {
  padding: .8rem .9rem !important;
}

body.cbrs-ui #sidebar.cbrs-sidebar.collapsed .sidebar-toggle {
  justify-content: center;
  padding: 0;
}

body.cbrs-ui #contenu.cbrs-content {
  min-width: 0;
  padding-top: 0 !important;
}

body.cbrs-ui .cbrs-mobile-header {
  top: 8px !important;
  right: 8px !important;
  left: 8px !important;
  border: 1px solid rgba(10, 50, 115, .1);
  border-radius: 16px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

body.cbrs-ui .cbrs-mobile-header button[aria-controls="mobile-menu"] {
  min-width: 44px;
  min-height: 44px;
  border-radius: 12px;
}

body.cbrs-ui .cbrs-mobile-header > div {
  min-height: 60px;
  gap: .75rem !important;
  padding: .2rem .8rem !important;
}

body.cbrs-ui .cbrs-mobile-header #mobile-menu:not(.hidden) {
  display: grid;
  gap: .35rem;
  padding: .8rem !important;
}

body.cbrs-ui .cbrs-mobile-header #mobile-menu.hidden {
  display: none !important;
}

body.cbrs-ui .cbrs-mobile-header #mobile-menu > a {
  min-height: 48px;
  margin: 0 !important;
  padding: .75rem .9rem !important;
  border-radius: var(--cbrs-item-radius) !important;
}

body.cbrs-ui .cbrs-mobile-header button[aria-expanded="true"] svg {
  transform: rotate(90deg);
}

body.cbrs-ui #mobile-menu {
  top: calc(100% + 8px) !important;
  right: 0 !important;
  left: 0 !important;
  max-height: calc(100vh - 88px) !important;
  padding: 10px !important;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 0 0 18px 18px;
  background: linear-gradient(165deg, rgba(10, 50, 115, .98), rgba(20, 92, 117, .98)) !important;
  box-shadow: 0 18px 36px rgba(15, 23, 42, 0.11);
}

body.cbrs-ui #mobile-menu a {
  min-height: 44px;
  border-radius: 12px;
}

body.cbrs-ui #mobile-menu a[aria-current="page"],
body.cbrs-ui #mobile-menu a.cbrs-nav-active {
  background: rgba(88, 160, 26, .9) !important;
  color: #fff !important;
}

body.cbrs-ui .accessibility-fab {
  right: 16px !important;
  bottom: 16px !important;
  top: auto !important;
  z-index: 70;
  min-height: 44px;
  border: 1px solid rgba(255, 255, 255, .18) !important;
  border-radius: 999px !important;
  background: var(--cbrs-blue) !important;
  color: #fff !important;
  padding: .7rem 1rem !important;
  font-size: .8rem !important;
  font-weight: 700 !important;
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.12);
}

body.cbrs-ui .accessibility-fab:hover {
  background: var(--cbrs-blue-light) !important;
}

body.cbrs-ui .accessibility-panel {
  right: 16px !important;
  bottom: 72px !important;
  top: auto !important;
  z-index: 70;
  max-height: min(75vh, 42rem);
  overflow-y: auto;
}

body.cbrs-ui .accessibility-panel .a11y-intro {
  margin: -.35rem 0 .85rem;
  color: #4b5563;
  font-size: .78rem;
  line-height: 1.45;
}

body.cbrs-ui .accessibility-panel > button[data-a11y-toggle],
body.cbrs-ui .accessibility-panel > .close {
  min-height: 44px;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}

body.cbrs-ui .accessibility-panel > button[data-a11y-toggle]:hover,
body.cbrs-ui .accessibility-panel > .close:hover {
  transform: translateY(-1px);
}

body.cbrs-ui .a11y-audio {
  margin: .75rem 0;
  padding: .85rem;
  border: 1px solid #cbd5e1;
  border-radius: 14px;
  background: #eef4fb;
}

body.cbrs-ui .a11y-audio-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .25rem;
  color: var(--cbrs-blue);
  font-size: .9rem;
  font-weight: 800;
}

body.cbrs-ui .a11y-audio-heading small {
  color: #64748b;
  font-size: .68rem;
  font-weight: 600;
}

body.cbrs-ui .a11y-audio-description,
body.cbrs-ui .a11y-audio-status {
  margin: 0 0 .65rem;
  color: #475569;
  font-size: .75rem;
  line-height: 1.4;
}

body.cbrs-ui .a11y-audio-status {
  min-height: 1.1em;
  margin: .55rem 0 0;
  color: var(--cbrs-blue);
  font-weight: 700;
}

body.cbrs-ui .a11y-audio-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .5rem;
}

body.cbrs-ui .a11y-audio-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  min-height: 44px;
  margin: 0;
  padding: .65rem .7rem;
  text-align: center;
}

body.cbrs-ui .a11y-audio-actions svg {
  width: 1rem;
  height: 1rem;
  fill: currentColor;
}

body.cbrs-ui .a11y-audio-actions button[data-a11y-audio="read"] {
  border-color: var(--cbrs-blue);
  background: var(--cbrs-blue);
  color: #fff;
}

body.cbrs-ui .a11y-audio-actions button[data-a11y-audio="stop"] {
  border-color: #94a3b8;
  background: #fff;
  color: var(--cbrs-blue);
}

body.cbrs-ui .a11y-audio-actions button:disabled {
  cursor: not-allowed;
  opacity: .5;
  transform: none;
}








body.cbrs-ui #mobile-menu {
  max-height: min(calc(100vh - 4.75rem), 700px) !important;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scroll-behavior: smooth;
}

body.cbrs-ui #mobile-menu.open {
  max-height: min(calc(100vh - 4.75rem), 700px) !important;
}

body.cbrs-ui.cbrs-mobile-menu-open {
  overflow: hidden;
}

body.cbrs-ui #sidebar.cbrs-sidebar {
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: var(--cbrs-shell-radius) !important;
  background-clip: padding-box;
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.10), inset 0 1px 0 rgba(255, 255, 255, .08);
}

body.cbrs-ui > .cbrs-hero.cbrs-activities-index-hero .cbrs-logo-frame {
  top: clamp(1rem, 2vw, 1.5rem);
  right: clamp(1rem, 2.5vw, 2rem);
  bottom: auto;
  width: clamp(190px, 20vw, 220px);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

body.cbrs-ui > .cbrs-hero.cbrs-activities-index-hero .cbrs-logo-image {
  filter: drop-shadow(0 5px 8px rgba(0, 0, 0, .2));
}

body.cbrs-ui .cbrs-cookie-banner,
body.cbrs-ui .cbrs-cookie-dialog-card,
body.cbrs-ui .cbrs-external-placeholder {
  font-family: var(--cbrs-font-body);
}

body.cbrs-ui .cbrs-cookie-banner {
  position: fixed;
  left: 50%;
  bottom: 1rem;
  z-index: 71;
  display: flex;
  width: min(760px, calc(100vw - 2rem));
  gap: 1.25rem;
  align-items: end;
  justify-content: space-between;
  padding: 1rem 1.1rem;
  transform: translateX(-50%);
  border: 1px solid rgba(10, 50, 115, .12);
  border-radius: 22px;
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 22px 55px rgba(8, 34, 75, .24);
  backdrop-filter: blur(14px);
}

body.cbrs-ui .cbrs-cookie-banner[hidden],
body.cbrs-ui .cbrs-cookie-manage[hidden],
body.cbrs-ui .cbrs-cookie-dialog[hidden],
body.cbrs-ui .cbrs-external-placeholder[hidden] {
  display: none !important;
}

body.cbrs-ui .cbrs-cookie-copy {
  min-width: 0;
}

body.cbrs-ui .cbrs-cookie-eyebrow {
  margin: 0 0 .2rem;
  color: var(--cbrs-green);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

body.cbrs-ui .cbrs-cookie-banner h2,
body.cbrs-ui .cbrs-cookie-dialog h2 {
  margin: 0;
  color: var(--cbrs-blue);
  font-family: var(--cbrs-font-heading);
  font-size: 1.15rem;
  font-weight: 800;
}

body.cbrs-ui .cbrs-cookie-banner p:not(.cbrs-cookie-eyebrow),
body.cbrs-ui .cbrs-cookie-dialog-intro,
body.cbrs-ui .cbrs-cookie-note {
  margin: .35rem 0 0;
  color: #526176;
  font-size: .78rem;
  line-height: 1.5;
}

body.cbrs-ui .cbrs-cookie-banner a {
  display: inline-block;
  margin-top: .35rem;
  color: var(--cbrs-blue);
  font-size: .76rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

body.cbrs-ui .cbrs-cookie-actions,
body.cbrs-ui .cbrs-cookie-dialog-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: end;
}

body.cbrs-ui .cbrs-cookie-button {
  min-height: 2.55rem;
  padding: .6rem .9rem;
  border: 1px solid transparent;
  border-radius: 999px;
  cursor: pointer;
  font-size: .78rem;
  font-weight: 800;
  transition: transform .2s ease, background-color .2s ease, border-color .2s ease;
}

body.cbrs-ui .cbrs-cookie-button:hover {
  transform: translateY(-1px);
}

body.cbrs-ui .cbrs-cookie-button-primary {
  background: var(--cbrs-green);
  color: #fff;
}

body.cbrs-ui .cbrs-cookie-button-primary:hover {
  background: var(--cbrs-green-dark);
}

body.cbrs-ui .cbrs-cookie-button-secondary {
  border-color: rgba(10, 50, 115, .3);
  background: #fff;
  color: var(--cbrs-blue);
}

body.cbrs-ui .cbrs-cookie-button-quiet {
  border-color: transparent;
  background: #eef3fb;
  color: var(--cbrs-blue);
}

body.cbrs-ui .cbrs-cookie-dialog {
  position: fixed;
  inset: 0;
  z-index: 72;
  display: grid;
  place-items: center;
  padding: 1rem;
  background: rgba(8, 24, 52, .5);
  backdrop-filter: blur(5px);
}

body.cbrs-ui .cbrs-cookie-dialog-card {
  width: min(560px, 100%);
  max-height: min(720px, calc(100dvh - 2rem));
  overflow-y: auto;
  padding: 1.25rem;
  border: 1px solid rgba(255, 255, 255, .65);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 28px 70px rgba(0, 0, 0, .28);
}

body.cbrs-ui .cbrs-cookie-dialog-header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 1rem;
}

body.cbrs-ui .cbrs-cookie-close {
  display: grid;
  width: 2.25rem;
  height: 2.25rem;
  place-items: center;
  border: 1px solid #d8e0eb;
  border-radius: 50%;
  background: #f7f9fc;
  color: var(--cbrs-blue);
  cursor: pointer;
  font-size: 1.4rem;
  line-height: 1;
}

body.cbrs-ui .cbrs-cookie-options {
  display: grid;
  gap: .65rem;
  margin: 1rem 0;
}

body.cbrs-ui .cbrs-cookie-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem;
  border: 1px solid #dce4ef;
  border-radius: 16px;
  background: #f9fbfe;
}

body.cbrs-ui .cbrs-cookie-option strong,
body.cbrs-ui .cbrs-cookie-option small {
  display: block;
}

body.cbrs-ui .cbrs-cookie-option strong {
  color: #17263e;
  font-size: .86rem;
}

body.cbrs-ui .cbrs-cookie-option small {
  margin-top: .2rem;
  color: #66758b;
  font-size: .72rem;
  line-height: 1.45;
}

body.cbrs-ui .cbrs-cookie-status {
  flex: 0 0 auto;
  color: var(--cbrs-green-dark);
  font-size: .7rem;
  font-weight: 800;
  white-space: nowrap;
}

body.cbrs-ui .cbrs-cookie-option-toggle {
  position: relative;
  cursor: pointer;
}

body.cbrs-ui .cbrs-cookie-option-toggle input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

body.cbrs-ui .cbrs-cookie-switch {
  position: relative;
  width: 2.7rem;
  height: 1.55rem;
  flex: 0 0 auto;
  border-radius: 999px;
  background: #cbd5e1;
  transition: background-color .2s ease;
}

body.cbrs-ui .cbrs-cookie-switch::after {
  content: '';
  position: absolute;
  top: .2rem;
  left: .2rem;
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, .16);
  transition: transform .2s ease;
}

body.cbrs-ui .cbrs-cookie-option-toggle input:checked + .cbrs-cookie-switch {
  background: var(--cbrs-green);
}

body.cbrs-ui .cbrs-cookie-option-toggle input:checked + .cbrs-cookie-switch::after {
  transform: translateX(1.15rem);
}

body.cbrs-ui .cbrs-cookie-manage {
  position: fixed;
  left: 1rem;
  bottom: 1rem;
  z-index: 69;
  padding: .55rem .8rem;
  border: 1px solid rgba(10, 50, 115, .25);
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.08);
  color: var(--cbrs-blue);
  cursor: pointer;
  font-size: .72rem;
  font-weight: 800;
}

body.cbrs-ui .cbrs-external-placeholder {
  display: flex;
  min-height: 14rem;
  height: 100%;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  padding: 1.25rem;
  text-align: center;
  border-radius: 1rem;
  background: linear-gradient(145deg, #edf3fb, #f8fafc);
  color: #526176;
}

body.cbrs-ui .cbrs-external-placeholder strong {
  color: var(--cbrs-blue);
  font-size: .9rem;
}

body.cbrs-ui .cbrs-external-placeholder span {
  max-width: 18rem;
  font-size: .76rem;
  line-height: 1.45;
}

/* Conteneur carte + encart : tant que la carte est bloquée, le conteneur
   s'allonge et l'encart réserve en bas la place de la carte d'adresse en
   surimpression (info utile conservée, aucun chevauchement). */
body.cbrs-ui .cbrs-map-with-overlay:has(.cbrs-external-placeholder:not([hidden])) {
  height: auto;
}

body.cbrs-ui .cbrs-map-with-overlay:has(.cbrs-external-placeholder:not([hidden])) > .cbrs-external-placeholder {
  justify-content: flex-start;
  padding-top: 1.25rem;
}

body.cbrs-ui .cbrs-external-placeholder .cbrs-cookie-button {
  min-height: 2.75rem;
}

body.cbrs-ui .cbrs-external-placeholder .cbrs-cookie-button:focus-visible,
body.cbrs-ui .cbrs-external-placeholder .cbrs-cookie-link:focus-visible {
  outline: 3px solid var(--cbrs-green);
  outline-offset: 2px;
}

body.cbrs-ui .cbrs-cookie-link {
  padding: .2rem .4rem;
  border: 0;
  background: none;
  color: var(--cbrs-blue);
  cursor: pointer;
  font-size: .74rem;
  font-weight: 600;
  text-decoration: underline;
}

body.cbrs-ui .cbrs-external-status {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

html.a11y-contrast body.cbrs-ui .cbrs-cookie-banner,
html.a11y-contrast body.cbrs-ui .cbrs-cookie-dialog-card,
html.a11y-contrast body.cbrs-ui .cbrs-cookie-manage {
  border: 2px solid #000;
  background: #fff;
  color: #000;
}

html.a11y-contrast body.cbrs-ui .cbrs-cookie-button-primary {
  background: #000;
  color: #fff;
}

body.cbrs-ui .cbrs-nav-active {
  color: #fff !important;
}

body.cbrs-ui .gallery-item {
  cursor: pointer;
}

body.cbrs-ui .gallery-item:focus-visible {
  outline: 0;
  box-shadow: var(--cbrs-focus);
}

body.cbrs-ui .lightbox[role="dialog"] {
  z-index: 80;
}

body.cbrs-ui .lightbox-close {
  min-width: 44px;
  min-height: 44px;
}

body.cbrs-ui footer a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

html.a11y-contrast body.cbrs-ui :where(.text-gray-400, .text-gray-500, .text-gray-600, .text-gray-700) {
  color: #111 !important;
}

html.a11y-contrast body.cbrs-ui :where(input, textarea, select) {
  border: 2px solid #000 !important;
  background: #fff !important;
  color: #000 !important;
}

html.a11y-contrast body.cbrs-ui a:not(#sidebar a):not(.accessibility-fab):not(.bg-cbrs-green):not(.bg-cbrs-blue):not(.cbrs-activity-cta) {
  color: #003f9e !important;
  text-decoration: underline !important;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

html.a11y-contrast body.cbrs-ui a.bg-cbrs-green,
html.a11y-contrast body.cbrs-ui a.bg-cbrs-blue,
html.a11y-contrast body.cbrs-ui a.cbrs-activity-cta {
  border-color: #000 !important;
  background: #000 !important;
  color: #fff !important;
  text-decoration: none !important;
}

html.a11y-contrast body.cbrs-ui .cbrs-activity-showcase {
  border: 2px solid #000;
  background: #fff !important;
  box-shadow: none;
}

html.a11y-contrast body.cbrs-ui .cbrs-activity-showcase::before,
html.a11y-contrast body.cbrs-ui .cbrs-activity-showcase::after {
  display: none;
}

html.a11y-contrast body.cbrs-ui .cbrs-activity-showcase :where(h2, p, span, strong, small) {
  color: #000 !important;
}

html.a11y-contrast body.cbrs-ui .cbrs-activity-showcase .cbrs-activity-stat {
  border-color: #000;
}

html.a11y-contrast body.cbrs-ui .accessibility-panel {
  border: 2px solid #000 !important;
  background: #fff !important;
  color: #000 !important;
}

html.a11y-contrast body.cbrs-ui .accessibility-panel .a11y-intro,
html.a11y-contrast body.cbrs-ui .a11y-audio-description,
html.a11y-contrast body.cbrs-ui .a11y-audio-heading small {
  color: #111 !important;
}

html.a11y-contrast body.cbrs-ui .accessibility-panel button {
  border: 2px solid #000 !important;
  background: #fff !important;
  color: #000 !important;
}

html.a11y-contrast body.cbrs-ui .accessibility-panel button[aria-pressed="true"],
html.a11y-contrast body.cbrs-ui .a11y-audio-actions button[data-a11y-audio="read"] {
  background: #000 !important;
  color: #fff !important;
}

html.a11y-contrast body.cbrs-ui .a11y-audio {
  border: 2px solid #000 !important;
  background: #fff !important;
}

body.cbrs-ui .cbrs-feature-grid {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

body.cbrs-ui .cbrs-feature-image {
  height: auto;
  aspect-ratio: 16 / 9;
}

body.cbrs-ui .cbrs-activities-grid {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

body.cbrs-ui .cbrs-activities-grid > a {
  min-width: 0;
}

body.cbrs-ui .cbrs-activity-card {
  display: flex;
  min-width: 0;
  align-items: center;
  flex-direction: column;
  padding: .25rem;
  border-radius: 2rem;
  color: var(--cbrs-blue);
  text-align: center;
  transition: transform .3s ease;
}

body.cbrs-ui .cbrs-activity-card:hover,
body.cbrs-ui .cbrs-activity-card:focus-visible {
  transform: translateY(-4px);
}

body.cbrs-ui .cbrs-activity-icon {
  display: grid;
  width: min(100%, 10rem);
  place-items: center;
  overflow: hidden;
  padding: .5rem;
  border-radius: 2rem;
  aspect-ratio: 1;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
  transition: box-shadow .3s ease, transform .3s ease;
}

body.cbrs-ui .cbrs-activity-card:hover .cbrs-activity-icon,
body.cbrs-ui .cbrs-activity-card:focus-visible .cbrs-activity-icon {
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.06);
  transform: scale(1.03);
}

body.cbrs-ui .cbrs-activity-icon img {
  object-fit: contain;
  transform: scale(1);
  transition: transform .45s cubic-bezier(.2, .75, .25, 1);
  will-change: transform;
}

body.cbrs-ui .cbrs-activity-card:hover .cbrs-activity-icon img,
body.cbrs-ui .cbrs-activity-card:focus-visible .cbrs-activity-icon img {
  transform: scale(1.04);
}

body.cbrs-ui .cbrs-activity-tag {
  display: inline-flex;
  margin-top: .85rem;
  padding: .35rem .75rem;
  border-radius: 999px;
  background: rgba(88, 160, 26, .13);
  color: var(--cbrs-green-dark);
  font-size: .75rem;
  font-weight: 700;
  line-height: 1.1;
}

@media (prefers-reduced-motion: reduce) {
  body.cbrs-ui .cbrs-activity-card,
  body.cbrs-ui .cbrs-activity-icon,
  body.cbrs-ui .cbrs-activity-icon img {
    transition-duration: .01ms;
    animation-duration: .01ms;
  }

  body.cbrs-ui .cbrs-activity-card:hover,
  body.cbrs-ui .cbrs-activity-card:focus-visible,
  body.cbrs-ui .cbrs-activity-card:hover .cbrs-activity-icon,
  body.cbrs-ui .cbrs-activity-card:focus-visible .cbrs-activity-icon,
  body.cbrs-ui .cbrs-activity-card:hover .cbrs-activity-icon img,
  body.cbrs-ui .cbrs-activity-card:focus-visible .cbrs-activity-icon img {
    transform: none;
  }
}

@media (min-width: 640px) {
  body.cbrs-ui .cbrs-feature-grid,
  body.cbrs-ui .cbrs-activities-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  body.cbrs-ui .cbrs-feature-grid,
  body.cbrs-ui .cbrs-activities-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1280px) {
  body.cbrs-ui .cbrs-feature-grid,
  body.cbrs-ui .cbrs-activities-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  body.cbrs-ui > .cbrs-hero > .relative.z-10 {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }

  body.cbrs-ui > .cbrs-hero.cbrs-activity-hero > .relative.z-10 {
    padding-right: clamp(9rem, 20vw, 11rem);
  }

  body.cbrs-ui > .cbrs-hero > .relative.z-10 > .text-center {
    padding-right: clamp(9rem, 20vw, 13rem) !important;
  }

  body.cbrs-ui > .cbrs-hero .cbrs-logo-frame {
    top: 50%;
    right: 1rem;
    width: clamp(160px, 22vw, 190px);
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    transform: translateY(-50%);
  }

  body.cbrs-ui > .cbrs-hero > .relative.z-10 > .text-center {
    padding-right: clamp(12rem, 22vw, 15rem) !important;
  }

  body.cbrs-ui > .cbrs-hero .header-title {
    font-size: clamp(1.85rem, 4.4vw, 2.25rem);
  }

  body.cbrs-ui .cbrs-logo-frame {
    right: 12px;
    width: clamp(170px, 24vw, 210px);
  }

  body.cbrs-ui > .cbrs-hero.cbrs-activities-index-hero .cbrs-logo-frame {
    top: 1rem;
    right: 1rem;
    bottom: auto;
    width: clamp(140px, 20vw, 165px);
    transform: none;
  }

  body.cbrs-ui > .cbrs-hero.cbrs-activity-hero .cbrs-logo-frame {
    top: .75rem;
    right: .75rem;
    width: clamp(132px, 18vw, 158px);
    transform: none;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  body.cbrs-ui > .cbrs-hero.cbrs-activities-index-hero > .relative.z-10 > .text-center {
    padding-right: clamp(13rem, 25vw, 16rem) !important;
  }
}

@media (min-width: 1024px) {
  body.cbrs-ui > .cbrs-hero > .relative.z-10 > .text-center {
    padding-right: clamp(12rem, 18vw, 16rem) !important;
  }

  body.cbrs-ui > .cbrs-hero .cbrs-logo-frame {
    top: 50%;
    right: clamp(1.25rem, 2vw, 2.25rem);
    width: clamp(210px, 18vw, 250px);
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    transform: translateY(-50%);
  }

  body.cbrs-ui > .cbrs-hero .cbrs-logo-image {
    filter: drop-shadow(0 5px 8px rgba(0, 0, 0, .2));
  }

  body.cbrs-ui > .cbrs-hero > .relative.z-10 > .text-center {
    padding-right: clamp(16rem, 22vw, 20rem) !important;
  }

  body.cbrs-ui > .cbrs-hero.cbrs-activities-index-hero .cbrs-logo-frame {
    top: 50%;
    right: clamp(1.25rem, 2vw, 2.25rem);
    width: clamp(240px, 20vw, 285px);
    transform: translateY(-50%);
  }

  body.cbrs-ui > .cbrs-hero.cbrs-activities-index-hero > .relative.z-10 > .text-center {
    padding-right: clamp(18rem, 25vw, 22rem) !important;
  }
}

@media (max-width: 767px) {
  body.cbrs-ui .cbrs-cookie-banner {
    left: .75rem;
    right: .75rem;
    bottom: .75rem;
    width: auto;
    flex-direction: column;
    align-items: stretch;
    gap: .75rem;
    padding: .9rem;
    transform: none;
    border-radius: 20px;
  }

  body.cbrs-ui .cbrs-cookie-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: stretch;
  }

  body.cbrs-ui .cbrs-cookie-actions .cbrs-cookie-button-primary {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  body.cbrs-ui .cbrs-cookie-actions .cbrs-cookie-button-secondary {
    grid-column: 1;
    grid-row: 2;
  }

  body.cbrs-ui .cbrs-cookie-actions .cbrs-cookie-button-quiet {
    grid-column: 2;
    grid-row: 2;
  }

  body.cbrs-ui .cbrs-cookie-dialog-card {
    padding: 1rem;
  }

  body.cbrs-ui > .cbrs-hero {
    margin: 84px 8px 0;
    min-height: 300px;
    border-radius: 20px;
  }

  body.cbrs-ui .cbrs-logo-frame {
    display: block !important;
    top: .75rem;
    right: .75rem;
    width: clamp(118px, 36vw, 150px);
    padding: .2rem;
    border-radius: 18px;
  }

  body.cbrs-ui > .cbrs-hero.cbrs-activity-hero {
    min-height: 350px;
  }

  body.cbrs-ui > .cbrs-hero > .relative.z-10 {
    padding-top: 2.5rem;
    padding-right: 1rem;
    padding-bottom: 2.5rem;
    padding-left: 1rem;
  }

  body.cbrs-ui > .cbrs-hero.cbrs-activity-hero .cbrs-logo-frame {
    width: clamp(112px, 32vw, 136px);
  }

  body.cbrs-ui > .cbrs-hero > .relative.z-10 > .text-center {
    padding-right: 0 !important;
  }

  body.cbrs-ui > .cbrs-hero .cbrs-logo-frame {
    transform: none;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }

  body.cbrs-ui > .cbrs-hero .cbrs-logo-image {
    filter: drop-shadow(0 5px 8px rgba(0, 0, 0, .2));
  }

  body.cbrs-ui > .cbrs-layout {
    display: block;
    padding-right: 0;
  }

  body.cbrs-ui #contenu.cbrs-content {
    padding-top: 0 !important;
  }

  body.cbrs-ui .cbrs-home-hero-bg {
    object-position: 28% center;
  }





  body.cbrs-ui > .cbrs-hero.cbrs-activities-index-hero .cbrs-logo-frame {
    top: .75rem;
    right: .75rem;
    bottom: auto;
    width: clamp(96px, 25vw, 116px);
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }

  body.cbrs-ui > .cbrs-hero.cbrs-activities-index-hero > .relative.z-10 {
    padding-top: 2.5rem;
  }

  body.cbrs-ui > .cbrs-hero.cbrs-activities-index-hero > .relative.z-10 > .text-center {
    padding-right: 0 !important;
  }

  body.cbrs-ui > .cbrs-hero.cbrs-activity-hero .cbrs-logo-frame {
    border-radius: 0;
  }

  body.cbrs-ui #mobile-menu {
    max-height: min(calc(100vh - 4.75rem), 700px) !important;
    max-height: min(calc(100dvh - 4.75rem), 700px) !important;
    border-bottom-right-radius: 22px;
    border-bottom-left-radius: 22px;
  }

  body.cbrs-ui.cbrs-mobile-menu-open .cbrs-mobile-header {
    position: relative !important;
    inset: auto !important;
    width: auto;
    margin: 8px;
  }

  body.cbrs-ui.cbrs-mobile-menu-open .cbrs-mobile-header #mobile-menu:not(.hidden) {
    position: relative !important;
    inset: auto !important;
    max-height: min(calc(100vh - 4.75rem), 700px) !important;
    max-height: min(calc(100dvh - 4.75rem), 700px) !important;
  }

  body.cbrs-ui.cbrs-mobile-menu-open > .cbrs-hero {
    margin-top: 0 !important;
  }

  body.cbrs-ui .accessibility-fab {
    right: 12px !important;
    bottom: 12px !important;
  }

  body.cbrs-ui .accessibility-panel {
    right: 12px !important;
    bottom: 68px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  body.cbrs-ui *,
  body.cbrs-ui *::before,
  body.cbrs-ui *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}

/* Retours client 2026-09 : bandeau commun, logo, sections Qui sommes-nous / bureau */
body.cbrs-ui > .cbrs-hero > img.cbrs-shared-hero-bg {
  object-position: center 58% !important;
  transform: none !important;
}

body.cbrs-ui > .cbrs-hero > .absolute.inset-0.bg-gradient-to-br {
  background: linear-gradient(120deg, rgba(var(--cbrs-hero-c1), calc(var(--cbrs-hero-o) * 1)), rgba(var(--cbrs-hero-c2), calc(var(--cbrs-hero-o) * .641)) 55%, rgba(var(--cbrs-hero-c3), calc(var(--cbrs-hero-o) * .744))) !important;
}

body.cbrs-ui .cbrs-hero-since {
  color: #fff;
  font-style: italic;
}

body.cbrs-ui .cbrs-hero-credit {
  position: absolute;
  z-index: 3;
  right: 14px;
  bottom: 8px;
  color: rgba(255, 255, 255, .5);
  font-size: .6rem;
  line-height: 1.2;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .45);
  transition: color .2s ease;
}

body.cbrs-ui .cbrs-hero:hover .cbrs-hero-credit {
  color: rgba(255, 255, 255, .85);
}

body.cbrs-ui .cbrs-hero-credit a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

@media (min-width: 768px) {
  body.cbrs-ui > .cbrs-hero .cbrs-logo-frame {
    top: 50% !important;
    right: clamp(1rem, 2.5vw, 2.25rem) !important;
    bottom: auto !important;
    width: clamp(220px, 23vw, 340px) !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    transform: translateY(-50%) !important;
  }

  body.cbrs-ui > .cbrs-hero .cbrs-logo-image {
    filter: drop-shadow(0 6px 12px rgba(0, 0, 0, .28));
  }

  body.cbrs-ui > .cbrs-hero > .relative.z-10 > .text-center {
    padding-right: clamp(14rem, 25vw, 22rem) !important;
  }
}

body.cbrs-ui .cbrs-key-figures {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.75rem 0 0;
}

body.cbrs-ui .cbrs-key-figures > div {
  padding: .9rem 1rem;
  border-left: 3px solid var(--cbrs-green);
  border-radius: 0 var(--cbrs-item-radius) var(--cbrs-item-radius) 0;
  background: var(--cbrs-surface);
}

body.cbrs-ui .cbrs-key-figures dt {
  color: #5e7897;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.cbrs-ui .cbrs-key-figures dd {
  margin: .2rem 0 0;
  color: var(--cbrs-blue);
  font-family: var(--cbrs-font-heading);
  font-size: clamp(1.25rem, 2.4vw, 1.6rem);
  font-weight: 800;
}

body.cbrs-ui .cbrs-board-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 1.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.cbrs-ui .cbrs-board-card {
  padding: 1.25rem;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.04);
  text-align: center;
}

body.cbrs-ui .cbrs-board-photo {
  width: 112px;
  height: 112px;
  margin: 0 auto .9rem;
  overflow: hidden;
  border: 3px solid rgba(88, 160, 26, .35);
  border-radius: 50%;
  background: var(--cbrs-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23a7b6c8'%3E%3Cpath d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10zm0 2c-4.4 0-9 2.2-9 5v3h18v-3c0-2.8-4.6-5-9-5z'/%3E%3C/svg%3E") center 70% / 70% no-repeat;
}

body.cbrs-ui .cbrs-board-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.cbrs-ui .cbrs-board-name {
  color: var(--cbrs-blue);
  font-weight: 700;
}

body.cbrs-ui .cbrs-board-role {
  margin-top: .15rem;
  color: #5e7897;
  font-size: .85rem;
}

@media (max-width: 640px) {
  body.cbrs-ui .cbrs-key-figures {
    grid-template-columns: 1fr;
  }
}

body.cbrs-ui .cbrs-doc-callout {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem 1.25rem;
  border: 1px solid rgba(10, 50, 115, .12);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.03);
  text-align: left;
}

body.cbrs-ui .cbrs-doc-callout-title {
  color: var(--cbrs-blue);
  font-weight: 800;
}

body.cbrs-ui .cbrs-doc-callout-text {
  max-width: 34rem;
  color: #4b5563;
  font-size: .9rem;
}

body.cbrs-ui .cbrs-doc-link {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .65rem 1.2rem;
  border-radius: 999px;
  background: var(--cbrs-green);
  color: #fff;
  font-size: .9rem;
  font-weight: 700;
  transition: background .2s ease;
}

body.cbrs-ui .cbrs-doc-link:hover {
  background: var(--cbrs-green-dark);
}

body.cbrs-ui .cbrs-doc-link.is-pending {
  background: #e5e7eb;
  color: #4b5563;
  cursor: not-allowed;
}

body.cbrs-ui .cbrs-price-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  max-width: 40rem;
  margin-right: auto;
  margin-left: auto;
  padding: 0;
  list-style: none;
}

body.cbrs-ui .cbrs-price-grid li {
  display: grid;
  gap: .25rem;
  padding: 1rem;
  border: 1px solid rgba(10, 50, 115, .1);
  border-radius: 18px;
  background: var(--cbrs-surface);
}

body.cbrs-ui .cbrs-price-grid strong {
  color: var(--cbrs-blue);
  font-family: var(--cbrs-font-heading);
  font-size: 1.6rem;
  font-weight: 800;
}

body.cbrs-ui .cbrs-price-grid span {
  color: #5e7897;
  font-size: .85rem;
}

@media (max-width: 640px) {
  body.cbrs-ui .cbrs-price-grid {
    grid-template-columns: 1fr;
  }
}

/* Barre latérale fixe : ne dépend plus de la hauteur du bandeau mesurée en JS (évite le saut au chargement). */
@media (min-width: 768px) {
  body.cbrs-ui #sidebar.cbrs-sidebar {
    position: fixed;
    top: var(--cbrs-shell-top);
    left: var(--cbrs-sidebar-left);
    height: calc(100vh - 2 * var(--cbrs-shell-top));
    margin: 0;
  }

  body.cbrs-ui > .cbrs-layout {
    padding-left: var(--cbrs-content-offset);
  }

  body.cbrs-ui.sidebar-collapsed > .cbrs-layout {
    padding-left: calc(var(--cbrs-sidebar-left) + var(--cbrs-sidebar-collapsed-width) + var(--cbrs-layout-gap));
  }
}

/* Fiche activité : réserver la place du logo agrandi à droite du texte. */
@media (min-width: 768px) {
  body.cbrs-ui > .cbrs-hero.cbrs-activity-hero > .relative.z-10 {
    padding-right: calc(clamp(220px, 23vw, 340px) + clamp(1.5rem, 3vw, 3rem)) !important;
  }
}

/* Flash info : une seule bannière (badge + message défilant + pause). */
body.cbrs-ui .cbrs-flash {
  --flash-height: 64px;
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  min-height: var(--flash-height);
  margin: 12px 0 2rem;
  border-radius: 20px;
  background: var(--cbrs-blue);
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.09);
}

body.cbrs-ui .cbrs-flash-badge {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: .6rem;
  align-self: stretch;
  justify-content: center;
  padding: 0 2.3rem 0 1.1rem;
  border-radius: 20px 0 0 20px;
  background: #fff;
  clip-path: polygon(0 0, 100% 0, calc(100% - 1.4rem) 100%, 0 100%);
}

body.cbrs-ui .cbrs-flash-emblem {
  width: auto;
  height: 48px;
  object-fit: contain;
  filter: hue-rotate(58deg) saturate(1.15) drop-shadow(0 6px 8px rgba(15, 23, 42, 0.12));
  transform-origin: 50% 50%;
  animation: cbrs-flash-pulse 4s ease-in-out infinite;
}

body.cbrs-ui .cbrs-flash.is-paused .cbrs-flash-emblem {
  animation-play-state: paused;
}

@keyframes cbrs-flash-pulse {
  0%, 62%, 100% {
    transform: scale(1) rotate(0);
  }
  70% {
    transform: scale(1.1) rotate(-6deg);
  }
  78% {
    transform: scale(1.04) rotate(4deg);
  }
  86% {
    transform: scale(1.07) rotate(-2deg);
  }
}


body.cbrs-ui .cbrs-flash-track {
  min-width: 0;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 2.5rem, #000 calc(100% - 2.5rem), transparent);
  mask-image: linear-gradient(90deg, transparent, #000 2.5rem, #000 calc(100% - 2.5rem), transparent);
}

body.cbrs-ui .cbrs-flash-marquee {
  display: flex;
  width: max-content;
  animation: cbrs-flash-scroll 30s linear infinite;
}

body.cbrs-ui .cbrs-flash:hover .cbrs-flash-marquee,
body.cbrs-ui .cbrs-flash:focus-within .cbrs-flash-marquee,
body.cbrs-ui .cbrs-flash.is-paused .cbrs-flash-marquee {
  animation-play-state: paused;
}

body.cbrs-ui .cbrs-flash-text {
  display: flex;
  align-items: center;
  margin: 0;
  padding-right: 5rem;
  color: #fff;
  font-size: 1.075rem;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}

body.cbrs-ui .cbrs-flash-text::after {
  content: '';
  width: 8px;
  height: 8px;
  margin-left: 5rem;
  margin-right: -5rem;
  border-radius: 50%;
  background: var(--cbrs-green);
  transform: translateX(-2.5rem);
}

body.cbrs-ui .cbrs-flash-toggle {
  display: grid;
  width: 40px;
  height: 40px;
  margin: 0 12px 0 4px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 50%;
  background: rgba(255, 255, 255, .08);
  color: #fff;
  transition: background .2s ease;
}

body.cbrs-ui .cbrs-flash-toggle:hover {
  background: var(--cbrs-green);
}

body.cbrs-ui .cbrs-flash-toggle:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 2px;
}

body.cbrs-ui .cbrs-flash-toggle svg {
  width: 16px;
  height: 16px;
  fill: currentColor;
}

@keyframes cbrs-flash-scroll {
  to {
    transform: translateX(-50%);
  }
}

@media (max-width: 640px) {
  body.cbrs-ui .cbrs-flash {
    --flash-height: 56px;
    border-radius: 16px;
  }

  body.cbrs-ui .cbrs-flash-badge {
    padding: 0 1.6rem 0 .5rem;
    border-radius: 16px 0 0 16px;
  }

  body.cbrs-ui .cbrs-flash-emblem {
    height: 40px;
  }


  body.cbrs-ui .cbrs-flash-text {
    font-size: 1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.cbrs-ui .cbrs-flash-emblem {
    animation: none;
  }

  body.cbrs-ui .cbrs-flash-marquee {
    width: auto;
    animation: none;
  }

  body.cbrs-ui .cbrs-flash-text {
    padding: .7rem 1rem;
    white-space: normal;
  }

  body.cbrs-ui .cbrs-flash-text::after,
  body.cbrs-ui .cbrs-flash-text[data-flash-clone],
  body.cbrs-ui .cbrs-flash-toggle {
    display: none;
  }
}

html.a11y-motion body.cbrs-ui .cbrs-flash-emblem,
html.a11y-motion body.cbrs-ui .cbrs-flash-marquee {
  width: auto;
  animation: none;
}

html.a11y-motion body.cbrs-ui .cbrs-flash-text {
  padding: .7rem 1rem;
  white-space: normal;
}

html.a11y-motion body.cbrs-ui .cbrs-flash-text::after,
html.a11y-motion body.cbrs-ui .cbrs-flash-text[data-flash-clone],
html.a11y-motion body.cbrs-ui .cbrs-flash-toggle {
  display: none;
}

/* Mobile : le logo est déjà dans l'en-tête, pas de doublon dans le bandeau. */
@media (max-width: 767px) {
  body.cbrs-ui > .cbrs-hero .cbrs-logo-frame {
    display: none !important;
  }

  body.cbrs-ui > .cbrs-hero.cbrs-activities-index-hero > .relative.z-10,
  body.cbrs-ui > .cbrs-hero.cbrs-activity-hero > .relative.z-10 {
    padding-top: 2rem;
  }
}

/* Accents verts posés sur fond bleu (bandeaux, barre latérale) : vert clair lisible. */
body.cbrs-ui > .cbrs-hero .text-cbrs-green,
body.cbrs-ui #sidebar .text-cbrs-green {
  color: #8fd158 !important;
}

/* Cartes « Vie du club » : carte entière cliquable, crédit photo discret. */
body.cbrs-ui .cbrs-card-link {
  color: inherit;
}

body.cbrs-ui .cbrs-card-link::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
}

body.cbrs-ui .cbrs-card-link:focus-visible {
  outline: none;
}

body.cbrs-ui article:has(.cbrs-card-link:focus-visible) {
  box-shadow: var(--cbrs-focus);
}

body.cbrs-ui .cbrs-card-credit {
  position: absolute;
  right: 8px;
  bottom: 6px;
  color: rgba(255, 255, 255, .6);
  font-size: .58rem;
  line-height: 1.2;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
  transition: color .2s ease;
}

body.cbrs-ui article:hover .cbrs-card-credit {
  color: rgba(255, 255, 255, .92);
}

body.cbrs-ui .cbrs-card-placeholder {
  display: flex;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--cbrs-blue), var(--cbrs-teal));
}

body.cbrs-ui .cbrs-card-placeholder img {
  width: auto;
  height: 60%;
  object-fit: contain;
}

/* Boutons et CTA : fond, bordure et survol suivent la couleur secondaire du CMS (vert d'origine).
   Toutes les familles employées dans les pages sont reprises (bg-cbrs-blue, bg-cbrs-green et leurs
   variantes translucides ou de survol) pour éviter d'avoir à retoucher chaque fichier HTML.
   Exclus : liens de menu et de navigation, onglets, filtres de galerie (filter-btn, year-btn). */
body.cbrs-ui :is(a, button):not(.sidebar-link, .cbrs-nav-active, .tab-btn, .filter-btn, .year-btn):is([class*="bg-cbrs-blue"], [class*="bg-cbrs-green"]) {
  border-color: var(--cbrs-green);
  background: var(--cbrs-green);
  color: #fff;
}

body.cbrs-ui :is(a, button):not(.sidebar-link, .cbrs-nav-active, .tab-btn, .filter-btn, .year-btn):is([class*="bg-cbrs-blue"], [class*="bg-cbrs-green"]):is(:hover, :focus-visible) {
  border-color: var(--cbrs-green-dark);
  background: var(--cbrs-green-dark);
}

/* Fiche activité : photos à gauche de la présentation */
.cbrs-presentation-layout { display: flex; flex-direction: column; gap: 2rem; }
.cbrs-presentation-text { flex: 1; min-width: 0; }
body.cbrs-ui .cbrs-presentation-body { margin-top: 1.25rem; font-size: 1rem; line-height: 1.6; color: #374151; font-weight: 400; text-align: left; hyphens: manual; text-wrap: pretty; max-width: 62ch; }
body.cbrs-ui .cbrs-presentation-body p + p { margin-top: 0.85rem; }
.cbrs-presentation-photos { margin-top: 1.5rem; max-width: 20rem; }
.cbrs-presentation-main { aspect-ratio: 16 / 9; overflow: hidden; border-radius: 1rem; background: #f3f5f8; margin: 0; }
.cbrs-presentation-main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cbrs-presentation-thumbs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .75rem; margin-top: .75rem; }
.cbrs-presentation-thumbs:empty { display: none; }
.cbrs-presentation-thumb { aspect-ratio: 1; overflow: hidden; border-radius: .75rem; padding: 0; border: 0; cursor: pointer; opacity: .75; box-shadow: 0 0 0 2px transparent; transition: opacity .2s ease, box-shadow .2s ease; }
.cbrs-presentation-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cbrs-presentation-thumb:hover, .cbrs-presentation-thumb[aria-pressed="true"] { opacity: 1; }
.cbrs-presentation-thumb[aria-pressed="true"], .cbrs-presentation-thumb:focus-visible { box-shadow: 0 0 0 2px rgb(var(--cbrs-green-rgb, 67 124 20)); outline: none; }
@media (min-width: 1024px) {
  .cbrs-presentation-layout { flex-direction: row; align-items: flex-start; }
  .cbrs-bon-a-savoir { width: 15.5rem; flex-shrink: 0; }
}

/* Encadré « Bon à savoir » de la fiche activité. */
.cbrs-bon-a-savoir { border-radius: 1.25rem; background: rgb(var(--cbrs-green-rgb, 67 124 20) / .07); border: 1px solid rgb(var(--cbrs-green-rgb, 67 124 20) / .18); padding: 1.25rem 1.35rem; }
.cbrs-bon-a-savoir.hidden { display: none; }
.cbrs-bon-a-savoir-title { margin: 0 0 .9rem; font-size: .75rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: rgb(var(--cbrs-green-rgb, 67 124 20)); }
.cbrs-bon-a-savoir dl { display: grid; gap: .85rem; margin: 0; }
.cbrs-bon-a-savoir dt { font-size: .8rem; font-weight: 600; color: #6b7280; }
.cbrs-bon-a-savoir dd { margin: .15rem 0 0; font-size: .95rem; font-weight: 600; color: var(--cbrs-text, #1f2937); display: flex; align-items: center; gap: .5rem; }
.cbrs-effort { display: inline-flex; gap: .25rem; }
.cbrs-effort i { width: .6rem; height: .6rem; border-radius: 50%; background: rgb(var(--cbrs-green-rgb, 67 124 20) / .2); }
.cbrs-effort i.on { background: rgb(var(--cbrs-green-rgb, 67 124 20)); }

/* Logo du club : l'image source est coupée en bas à gauche ; fondu pour que la coupe ne se voie pas. */
body.cbrs-ui .cbrs-logo-image {
  -webkit-mask-image: linear-gradient(to bottom, #000 80%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 80%, transparent 100%);
}

/* Boutons flottants discrets : pastilles 28 px avec pictogramme, même couleur, dans les coins bas.
   Le texte reste dans le bouton (lu par les lecteurs d'écran) mais n'est plus affiché. */
body.cbrs-ui .cbrs-cookie-manage,
body.cbrs-ui .accessibility-fab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  min-height: 0 !important;
  padding: 0 !important;
  border: 1px solid rgba(255, 255, 255, .35) !important;
  border-radius: 50% !important;
  background: var(--cbrs-blue) !important;
  color: #fff !important;
  font-size: 0 !important;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.11);
  opacity: .8;
  transition: opacity .15s ease, transform .15s ease;
}
body.cbrs-ui .cbrs-cookie-manage { left: 3px; bottom: 3px; }
body.cbrs-ui .accessibility-fab { right: 4px !important; bottom: 4px !important; }
body.cbrs-ui .cbrs-cookie-manage:hover,
body.cbrs-ui .cbrs-cookie-manage:focus-visible,
body.cbrs-ui .accessibility-fab:hover,
body.cbrs-ui .accessibility-fab:focus-visible,
body.cbrs-ui .accessibility-fab[aria-expanded="true"] {
  opacity: 1;
  transform: scale(1.08);
}
body.cbrs-ui .cbrs-cookie-manage::before,
body.cbrs-ui .accessibility-fab::before {
  content: "";
  width: 15px;
  height: 15px;
  background: currentColor;
  -webkit-mask: var(--cbrs-fab-icon) center / contain no-repeat;
  mask: var(--cbrs-fab-icon) center / contain no-repeat;
}
body.cbrs-ui .cbrs-cookie-manage {
  --cbrs-fab-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5zm-3.5 7a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm6 5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm-7 3a1 1 0 1 1 0 2 1 1 0 0 1 0-2z'/%3E%3C/svg%3E");
}
body.cbrs-ui .accessibility-fab {
  --cbrs-fab-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='4' r='2'/%3E%3Cpath d='M20 8.5l-5.5 1V13l2 8h-2.2L12.6 15h-1.2l-1.7 6H7.5l2-8V9.5L4 8.5l.4-2L12 7.8l7.6-1.3z'/%3E%3C/svg%3E");
}
body.cbrs-ui .accessibility-panel { right: 4px !important; bottom: 40px !important; }
html.a11y-contrast body.cbrs-ui .cbrs-cookie-manage,
html.a11y-contrast body.cbrs-ui .accessibility-fab {
  border: 2px solid #000 !important;
  background: #000 !important;
  color: #fff !important;
  opacity: 1;
}

/* Cartes OpenStreetMap : bandeau d'attribution intégré (« Signaler un problème »…) rogné.
   L'iframe est plus large que son cadre (centrée sur le marqueur) pour que le bandeau tienne
   sur une ligne, puis ses 22 px du bas sont masqués. La mention © OpenStreetMap, exigée par
   la licence, est reprise sous la carte (.cbrs-map-credit). */
body.cbrs-ui .cbrs-map-clip {
  position: relative;
  overflow: hidden;
}
body.cbrs-ui .cbrs-map-clip > iframe,
body.cbrs-ui #map-frame {
  display: block;
  width: max(100%, 420px) !important;
  max-width: none;
  margin-left: calc((100% - max(100%, 420px)) / 2);
  margin-bottom: -80px;
}
body.cbrs-ui .cbrs-map-with-overlay iframe { height: calc(100% + 80px); }
body.cbrs-ui .cbrs-map-clip:has(> iframe[hidden]),
body.cbrs-ui .cbrs-map-clip:has(> iframe[hidden]) + .cbrs-map-credit { display: none; }
body.cbrs-ui .cbrs-map-credit {
  margin: .35rem 0 .75rem;
  font-size: .7rem;
  color: #9ca3af;
}
body.cbrs-ui .cbrs-map-credit a { color: inherit; text-decoration: underline; }
/* Cartes plus hautes : la zone visible garde ~16-18rem après le rognage du bandeau OSM. */
body.cbrs-ui #map-frame { height: calc(18rem + 80px); }
body.cbrs-ui .detail-map-frame { height: calc(17rem + 80px); }

/* Contenu des pages aligné sur la largeur du bandeau (grands écrans) */
body.cbrs-ui #contenu > section[class*="max-w-"],
body.cbrs-ui #contenu > div[class*="max-w-"],
body.cbrs-ui #contenu > section > div.max-w-7xl:not(.text-center),
body.cbrs-ui #adhesion > div {
  max-width: none;
}

/* Bandeau et contenu : même écart que celui entre le menu et le bord de la fenêtre (20 px) */
@media (min-width: 768px) {
  body.cbrs-ui > .cbrs-hero { margin-right: var(--cbrs-sidebar-left); }
  body.cbrs-ui > .cbrs-layout { padding-right: var(--cbrs-sidebar-left); }
  body.cbrs-ui #contenu > section[class*="max-w-"],
  body.cbrs-ui #contenu > div[class*="max-w-"],
  body.cbrs-ui #contenu > section > div.max-w-7xl:not(.text-center),
  body.cbrs-ui #contenu > div > section.max-w-6xl,
  body.cbrs-ui #adhesion > div { padding-left: 0; padding-right: 0; }
}
body.cbrs-ui #contenu > div > section.max-w-6xl { max-width: none; }

/* Toutes les pages : titre sur le fond de page, contenu dans une carte blanche (comme Sorties & voyages) */
body.cbrs-ui main#contenu .cbrs-carte.cbrs-carte {
  background: #fff;
  border: 0;
  border-radius: 1rem;
  box-shadow: 0 4px 6px -1px rgba(0,0,0,.05), 0 2px 4px -1px rgba(0,0,0,.03);
  padding: 24px;
  margin: 0 0 40px;
  max-width: none;
}
body.cbrs-ui main#contenu .cbrs-carte.cbrs-carte:last-child { margin-bottom: 0; }
/* Carte posée directement sur la page (sans titre au-dessus) : même respiration que les sections */
body.cbrs-ui main#contenu > .cbrs-carte.cbrs-carte:first-child,
body.cbrs-ui main#contenu > #planning-loading.cbrs-carte { margin-top: 48px; }
body.cbrs-ui main#contenu > .cbrs-carte.cbrs-carte + .cbrs-carte,
body.cbrs-ui main#contenu > div + .cbrs-carte.cbrs-carte { margin-top: 40px; }
body.cbrs-ui main#contenu > .cbrs-carte.cbrs-carte:has(+ footer) { margin-bottom: 48px; }
@media (min-width: 768px) {
  body.cbrs-ui main#contenu .cbrs-carte.cbrs-carte { padding: 32px; }
}
/* Section à titre sur le fond de page : bords alignés sur le contenu (sans marge latérale) dès la tablette */
@media (min-width: 768px) { body.cbrs-ui main#contenu .cbrs-section { padding-left: 0; padding-right: 0; } }
/* Activités : icônes plus petites, grille plus serrée */
body.cbrs-ui .cbrs-activities-grid.cbrs-activities-grid { grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr)); column-gap: 1rem; row-gap: 1.25rem; }
body.cbrs-ui .cbrs-activities-grid .cbrs-activity-icon { width: min(100%, 7.5rem); border-radius: 1.5rem; }
/* Petite marge intérieure : le contenu ne touche plus les bords du bandeau (toutes les pages) */
@media (min-width: 768px) { body.cbrs-ui main#contenu { padding-left: 20px; padding-right: 20px; } }
/* Logo CBRS du bandeau : sans ombre portée (elle formait un halo autour du logo) */
body.cbrs-ui .cbrs-logo-frame .cbrs-logo-image { filter: none !important; }

/* Titres de section : un cran sous les titres du header (h1 30/36/48 px) */
h2.text-3xl { font-size: 1.625rem; line-height: 2rem; }
@media (min-width: 768px) {
  h2.text-3xl { font-size: 2rem; line-height: 2.5rem; }
}

/* Contact (2 colonnes) : la carte « Coordonnées » descend jusqu'au bas de la carte OSM
   (la ligne © OpenStreetMap, ~1,5rem, reste sous la carte). */
@media (min-width: 1024px) {
  body.cbrs-ui div:has(> .contact-panel-card) { display: flex; flex-direction: column; }
  body.cbrs-ui .contact-panel-card { flex: 1 1 auto; margin-bottom: 1.5rem; }
}

/* Respiration autour des titres (tour du site 2026-10-10) */
body.cbrs-ui main h2.text-3xl + p { margin-top: 1rem; }
body.cbrs-ui main .cbrs-carte-titre,
body.cbrs-ui main > section > div.mb-6:has(> h2.text-3xl) { margin-bottom: 2rem; }
body.cbrs-ui main h3:not([class*="mb-"]):has(+ p) { margin-bottom: .25rem; }

/* Bureau : deux membres par ligne sur mobile (2026-10-10) */
@media (max-width: 639px) {
  body.cbrs-ui .cbrs-board-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
  body.cbrs-ui .cbrs-board-card { padding: 1rem .6rem; }
  body.cbrs-ui .cbrs-board-photo { width: 84px; height: 84px; margin-bottom: .6rem; }
  body.cbrs-ui .cbrs-board-name { font-size: .9rem; }
  body.cbrs-ui .cbrs-board-role { font-size: .78rem; }
}
/* Lecteur PDF commun (ui-shell.js : setupPdfViewer) */
  .pdf-lightbox { display: none; position: fixed; inset: 0; z-index: 1000; background: rgba(10, 20, 40, 0.72); backdrop-filter: blur(3px); justify-content: center; align-items: center; padding: 1rem; }
  .pdf-lightbox.active { display: flex; }
  .pdf-lightbox-card { display: flex; flex-direction: column; width: min(92vw, 60rem); height: min(92vh, 52rem); background: #fff; border-radius: 1rem; box-shadow: 0 24px 70px rgba(0,0,0,0.45); overflow: hidden; }
  .pdf-lightbox-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .6rem .9rem; background: #0a3273; color: #fff; }
  .pdf-lightbox-toolbar-title { flex: 1 1 auto; min-width: 0; font-size: .85rem; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .pdf-lightbox-tool { display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .7rem; border: 1px solid rgba(255,255,255,.28); border-radius: .6rem; background: rgba(255,255,255,.08); color: #fff; font-size: .78rem; font-weight: 600; cursor: pointer; transition: background-color .15s, border-color .15s; }
  .pdf-lightbox-tool:hover, .pdf-lightbox-tool:focus-visible { background: var(--cbrs-green); border-color: var(--cbrs-green); outline: none; }
  .pdf-lightbox-tool svg { width: 1rem; height: 1rem; fill: currentColor; }
  .pdf-lightbox-body { position: relative; flex: 1 1 auto; min-height: 0; overflow: hidden; background: #525659; }
  .pdf-lightbox-body iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
  .pdf-lightbox-close { position: absolute; top: 1rem; right: 1.25rem; z-index: 2; display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: 999px; background: rgba(10, 20, 40, .55); color: #fff; font-size: 1.6rem; line-height: 1; cursor: pointer; border: 1px solid rgba(255,255,255,.3); transition: background-color .15s; }
  .pdf-lightbox-close:hover, .pdf-lightbox-close:focus-visible { background: #8f1d27; outline: none; }

/* Formation : ligne verticale au centre des pastilles numérotées (h-10, dans un p-4 / md:p-5). */
.cbrs-etapes-ligne { left: 2.25rem; }
@media (min-width: 768px) { .cbrs-etapes-ligne { left: 2.5rem; } }

/* Introductions modifiables dans le CMS : les retours à la ligne saisis sont conservés. */
[data-cbrs-titre-intro] { white-space: pre-line; }

/* « Planning du moment » (PDF déposé dans le CMS) : fiche activité et page Planning. */
.cbrs-planning-pdf{display:flex;align-items:center;gap:.75rem;width:100%;margin-top:.5rem;padding:.75rem 1rem;border-radius:.75rem;background:var(--cbrs-blue);color:#fff;text-decoration:none;transition:background-color .15s}
.cbrs-planning-pdf:hover,.cbrs-planning-pdf:focus-visible{background:var(--cbrs-blue-light)}
.cbrs-planning-pdf.hidden{display:none}
.cbrs-planning-pdf-icon{width:1.5rem;height:1.5rem;flex-shrink:0}
.cbrs-planning-pdf-title{display:block;font-weight:600;font-size:.875rem;line-height:1.3}
.cbrs-planning-pdf-sub{display:block;font-size:.75rem;opacity:.85;margin-top:.125rem}
.cbrs-current-plannings{margin-bottom:1.5rem;padding:1rem 1.25rem;border-radius:1rem;background:#fff;border-left:4px solid var(--cbrs-green);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.cbrs-current-plannings.hidden{display:none}
.cbrs-current-plannings-title{font-size:1rem;font-weight:700;color:var(--cbrs-blue);margin-bottom:.5rem}
.cbrs-current-plannings ul{display:grid;gap:.375rem}
.cbrs-current-plannings a{color:var(--cbrs-blue);text-decoration:underline;text-underline-offset:2px;font-size:.875rem}
.cbrs-current-plannings-name{font-weight:600}
.cbrs-current-plannings small{color:#6b7280;font-size:.75rem}
.cbrs-planning-slot-link{font-size:.75rem;color:var(--cbrs-blue);text-decoration:underline;text-underline-offset:2px;white-space:nowrap}

/* Pages des animateurs : cartes cliquables de la fiche activité, prochaines randonnées, page /animateur. */
.cbrs-animator-link{position:relative;display:flex;align-items:center;gap:.75rem;padding:.75rem;border:2px solid #b9c6dc;border-radius:.75rem;background:#fff;color:inherit;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s}
.cbrs-animator-link:hover{transform:translateY(-2px);border-color:var(--cbrs-blue);box-shadow:0 8px 20px rgba(10,50,115,.14)}
.cbrs-animator-link:focus-visible{outline:3px solid var(--cbrs-green);outline-offset:3px;border-color:var(--cbrs-blue)}
.cbrs-animator-link-cta{display:block;white-space:nowrap;margin-top:.25rem;font-size:.8125rem;font-weight:600;color:var(--cbrs-blue);text-decoration:underline;text-underline-offset:2px}
.cbrs-animator-link:hover .cbrs-level{display:inline-block;padding:.125rem .5rem;border-radius:.375rem;font-size:.75rem;font-weight:700;line-height:1.4;border:1px solid}
.cbrs-level--facile{background:#e8f5e0;color:#2f5f0d;border-color:#9cc77d}
.cbrs-level--moyen{background:#fff4dc;color:#7a4a00;border-color:#e8b75a}
.cbrs-level--soutenu{background:#fde8e8;color:#9b1c1c;border-color:#f0a3a3}
.cbrs-upcoming{margin-bottom:1.25rem}
.cbrs-upcoming-list{display:grid;gap:.5rem}
.cbrs-upcoming-item{padding:.625rem .75rem;border-radius:.75rem;background:#f3f6fa;font-size:.875rem;color:#374151}
.cbrs-upcoming-when{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-weight:700;color:#111827}
.cbrs-upcoming-place{margin-top:.125rem}
.cbrs-upcoming-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.25rem .75rem;margin-top:.25rem;font-size:.8125rem;color:#4b5563}
.cbrs-upcoming-meta a{color:var(--cbrs-blue);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.cbrs-upcoming-details{display:inline-flex;align-items:center;gap:.5rem}
.cbrs-upcoming-cancelled{display:inline-block;padding:.0625rem .5rem;border-radius:.375rem;background:#b91c1c;color:#fff;font-size:.75rem;font-weight:700;text-decoration:none}
.is-cancelled .cbrs-upcoming-date,.is-cancelled .cbrs-upcoming-place,.is-cancelled .cbrs-hike-date>span:first-child,.is-cancelled .cbrs-hike-facts{text-decoration:line-through;text-decoration-color:#b91c1c}
.cbrs-upcoming-more{display:inline-block;margin-top:.625rem;font-size:.875rem;font-weight:600;color:var(--cbrs-blue);text-decoration:underline;text-underline-offset:2px}
.cbrs-animateur-photo{flex-shrink:0;width:clamp(6rem,12vw,9rem);aspect-ratio:1/1;border-radius:1.25rem;overflow:hidden;border:3px solid rgba(255,255,255,.85);box-shadow:0 8px 24px rgba(0,0,0,.25);background:#fff}
.cbrs-animateur-photo.hidden{display:none}
.cbrs-animateur-photo img{width:100%;height:100%;object-fit:cover}
.cbrs-animateur-side{display:grid;gap:2rem;align-content:start}
.cbrs-animateur-side.hidden{display:none}
@media (min-width:1024px){.cbrs-animateur-side{grid-column-start:3;grid-row:1 / span 2}}
.cbrs-hikes{display:grid;gap:1rem}
.cbrs-hike{padding:1rem 1.25rem;border:1px solid #e5e7eb;border-left:4px solid var(--cbrs-green);border-radius:.75rem;background:#fff}
.cbrs-hike.is-cancelled{border-left-color:#b91c1c;background:#fffafa}
.cbrs-hike-date{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:700;color:#111827}
.cbrs-hike-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.5rem 1rem;margin-top:.625rem}
.cbrs-hike-facts dt{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#6b7280}
.cbrs-hike-facts dd{font-size:1rem;color:#1f2937}
.cbrs-hike-desc{margin-top:.625rem;color:#374151;line-height:1.6}
.cbrs-hike-links{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem}
.cbrs-hike-link{display:inline-flex;align-items:center;padding:.5rem .875rem;border-radius:.625rem;background:rgba(10,50,115,.08);color:var(--cbrs-blue);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.cbrs-hike-link:hover,.cbrs-hike-link:focus-visible{background:rgba(10,50,115,.15)}
.cbrs-album{display:grid;grid-template-columns:repeat(auto-fill,minmax(8rem,1fr));gap:.75rem}
.cbrs-album-item{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:.75rem;background:#f3f4f6;cursor:zoom-in}
.cbrs-album-item img{width:100%;height:100%;object-fit:cover;transition:transform .2s}
.cbrs-album-item:hover img{transform:scale(1.04)}
.cbrs-album-item:focus-visible{outline:3px solid var(--cbrs-green);outline-offset:2px}
.cbrs-photo-dialog{max-width:94vw;max-height:94vh;padding:0;border:0;border-radius:.75rem;background:transparent}
.cbrs-photo-dialog::backdrop{background:rgba(0,0,0,.82)}
.cbrs-photo-dialog img{display:block;max-width:94vw;max-height:88vh;border-radius:.75rem}
.cbrs-photo-dialog-close{position:absolute;top:.5rem;right:.5rem;width:2.75rem;height:2.75rem;border-radius:.625rem;background:rgba(0,0,0,.6);color:#fff;font-size:1.75rem;line-height:1}
.a11y-motion .cbrs-animator-link,.a11y-motion .cbrs-album-item img{transition:none}
.cbrs-span-full{grid-column:1 / -1}
