/* Source: /react-source/design-system/fonts.css */
/*
 * Manjari — métriques corrigées à la source.
 *
 * La fonte native (script malayalam) a un ascent typo ~73% et un descent ~37%.
 * Les glyphes latins se retrouvent trop haut dans l’em-box, ce qui décale
 * icônes, pills et align-items:center partout dans l’UI.
 *
 * On aligne donc la line-box sur des proportions type Inter (~97% / ~24%),
 * pour un centrage optique stable sans rustines de padding par composant.
 */

@font-face {
  font-family: "Manjari";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/manjari-malayalam-400.woff2?v=62adeabd1685d33e") format("woff2");
  unicode-range: U+0307, U+0323, U+0951-0952, U+0964-0965, U+0D00-0D7F, U+1CDA,
    U+1CF2, U+200C-200D, U+20B9, U+25CC, U+A830-A832;
  ascent-override: 90%;
  descent-override: 25%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Manjari";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/manjari-latin-ext-400.woff2?v=5b25108435f33f20") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  ascent-override: 90%;
  descent-override: 25%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Manjari";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/manjari-latin-400.woff2?v=3a37ceb9b139948b") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
  ascent-override: 90%;
  descent-override: 25%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Manjari";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/manjari-malayalam-700.woff2?v=cd5d85e114bf2bc4") format("woff2");
  unicode-range: U+0307, U+0323, U+0951-0952, U+0964-0965, U+0D00-0D7F, U+1CDA,
    U+1CF2, U+200C-200D, U+20B9, U+25CC, U+A830-A832;
  ascent-override: 90%;
  descent-override: 25%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Manjari";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/manjari-latin-ext-700.woff2?v=c05da95306a451df") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  ascent-override: 90%;
  descent-override: 25%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Manjari";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/manjari-latin-700.woff2?v=fd7f4f57021e0776") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
  ascent-override: 90%;
  descent-override: 25%;
  line-gap-override: 0%;
}

/* Source: /react-source/design-system/tokens.css */
/* Palette Elementor kit Remire-Montjoly (elementor-kit-15429) */
:root {
  /* Core kit (console / legacy) */
  --rm-primary: #077b3a;
  --rm-secondary: #171717;
  --rm-text: #696b7e;
  --rm-accent: #61ce70;
  --rm-lime: #b2ff59;
  --rm-red: #d63516;
  --rm-yellow: #f8e818;
  --rm-gold: #f9bd67;
  --rm-gold-soft: #fbd29d;
  --rm-amber: #ffcf03;
  --rm-ink: #1d1d1b;
  --rm-surface: #ffffff;
  --rm-surface-muted: #f7f8f7;

  /* Cartes services Remire — Mes démarches / Ma Ville / Mon Quotidien / Culture·Sport·Asso */
  --rm-peach: #fbd6a2;
  --rm-peach-deep: #e9a85c;
  --rm-teal: #50bac7;
  --rm-teal-deep: #007f8b;
  --rm-rose: #ffc4ca;
  --rm-rose-deep: #fb626b;
  --rm-mint: #b6e5df;
  --rm-mint-deep: #3ebbc8;
  --rm-coral: #fb626b;
  --rm-pink-soft: #ffc5c9;
  --rm-cyan: #3ebbc8;
  --rm-aqua: #48b8c2;
  --rm-aqua-soft: #a7f6ff;

  /* Alias design-system */
  --ds-color-primary: var(--rm-primary);
  --ds-color-primary-hover: #056832;
  --ds-color-primary-soft: color-mix(in srgb, var(--rm-primary) 12%, #fff);
  --ds-color-accent: var(--rm-accent);
  --ds-color-danger: var(--rm-red);
  --ds-color-danger-hover: #b82c12;
  --ds-color-yellow: var(--rm-yellow);
  --ds-color-yellow-ink: #6b6400;
  --ds-color-red: var(--rm-red);
  --ds-color-gold: var(--rm-gold);

  --ds-color-text: var(--rm-secondary);
  --ds-color-text-muted: var(--rm-text);
  --ds-color-label: #3a3c4a;
  --ds-color-border: #d8dbe3;
  --ds-color-border-strong: #e8eaef;
  --ds-color-surface: var(--rm-surface);
  --ds-color-surface-muted: var(--rm-surface-muted);

  --ds-focus-ring: rgb(7 123 58 / 0.22);

  --ds-radius-control: 0.75rem;
  --ds-radius-panel: 1rem;
  --ds-radius-pill: 30px;

  /* Typo Elementor Remire : primary=Inter, text=Manjari, accent=Poppins.
     Manjari est self-hostée avec ascent/descent normalisés (fonts.css). */
  --ds-font-display: "Inter", "Poppins", sans-serif;
  --ds-font-sans: "Manjari", "Inter", sans-serif;
  --ds-font-accent: "Poppins", "Inter", sans-serif;
  --ds-font-button: var(--ds-font-accent);
  --ds-font-tag: var(--ds-font-display);

  --ds-font-size-label: 0.875rem;
  --ds-font-size-control: 0.9375rem;
  --ds-font-size-hint: 0.8125rem;

  --ds-control-padding-y: 0.75rem;
  --ds-control-padding-x: 1rem;
  --ds-button-padding-y: 0.625rem;
  --ds-button-padding-x: 1rem;
  --ds-button-line-height: 1.2;
  --ds-button-min-height: 2.5rem;
  --rm-btn-min-height: 3.5rem;

  --rm-gradient-bar: linear-gradient(
    to right,
    #f8e818,
    #d63516
  );
  --rm-gradient-nav: linear-gradient(
    50deg,
    #077b3a,
    #61ce70
  );
  /* Bordures / cards type site Remire */
  --rm-gradient-separator: linear-gradient(
    50deg,
    #d63516,
    #f8e818,
    #d63516,
    #f8e818,
    #d63516,
    #f8e818
  );
}

/* Partie publique / landing : palette 4 couleurs Remire (plus de R/V/J) */
body:not(.admin-ui) {
  --rm-primary: var(--rm-teal-deep);
  --rm-gold: var(--rm-peach);
  --rm-gold-soft: #fbe6cc;
  --rm-yellow: var(--rm-peach);
  --rm-amber: var(--rm-peach-deep);
  --rm-red: var(--rm-rose-deep);
  --rm-accent: var(--rm-teal);

  --ds-color-primary: var(--rm-teal-deep);
  --ds-color-primary-hover: #006670;
  --ds-color-primary-soft: color-mix(in srgb, var(--rm-teal-deep) 12%, #fff);
  --ds-color-accent: var(--rm-teal);
  --ds-color-danger: var(--rm-rose-deep);
  --ds-color-danger-hover: #e04e58;
  --ds-color-yellow: var(--rm-peach);
  --ds-color-yellow-ink: #8a5a20;
  --ds-color-red: var(--rm-rose-deep);
  --ds-color-gold: var(--rm-peach-deep);
  --ds-focus-ring: rgb(0 127 139 / 0.22);

  /* Chrome UI (header / séparateurs) : dégradés exacts remire-montjoly.fr */
  --rm-gradient-bar: linear-gradient(to right, #f8e818, #d63516);
  --rm-gradient-nav: linear-gradient(50deg, #077b3a, #61ce70);
  --rm-gradient-separator: linear-gradient(
    50deg,
    #d63516,
    #f8e818,
    #d63516,
    #f8e818,
    #d63516,
    #f8e818
  );
}

/* Source: /react-source/design-system/public.css */
/* Public surface — composants alignés sur remire-montjoly.fr */

:root {
  --public-space-page: clamp(1.25rem, 4vw, 3rem);
  --public-space-section: clamp(1.5rem, 3vw, 2.5rem);
  --public-radius-card: 15px;
  --public-surface: #ffffff;
  --public-surface-soft: rgb(255 255 255 / 0.86);
  --public-shadow: 0 2px 8px rgb(0 0 0 / 0.05);
  --public-shadow-hover: 0 10px 28px rgb(0 127 139 / 0.12);
}

body:not(.admin-ui) {
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--rm-secondary);
  background:
    radial-gradient(
      ellipse 50% 40% at 92% 8%,
      rgb(251 214 162 / 0.18),
      transparent 55%
    ),
    radial-gradient(
      ellipse 45% 35% at 6% 70%,
      rgb(0 127 139 / 0.08),
      transparent 50%
    ),
    var(--rm-surface-muted);
}

body:not(.admin-ui) :is(p, li, dd) {
  text-rendering: optimizeLegibility;
}

body:not(.admin-ui)
  :is(
    .public-page-lead,
    .public-news__lead,
    .public-volunteers__lead,
    .public-list__lead
  ) {
  font-size: clamp(1.05rem, 1.5vw, 1.2rem);
}

body:not(.admin-ui) .app__viewport {
  position: relative;
}

.public-page-title,
.public-news__title,
.public-volunteers__title,
.public-list__title {
  font-family: var(--ds-font-display);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--rm-secondary);
}

.public-page-lead,
.public-news__lead,
.public-volunteers__lead,
.public-list__lead {
  color: var(--rm-text);
  line-height: 1.55;
}

/* Cards — coin 15px + ombre légère du site */
.public-surface-card,
.rm-card {
  position: relative;
  overflow: hidden;
  border: none;
  border-radius: var(--public-radius-card);
  background: var(--public-surface);
  box-shadow: var(--public-shadow);
}

.rm-card--bar::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 10px;
  width: 100%;
  background: var(--rm-gradient-bar);
  border-radius: 10px 10px 0 0;
}

.public-link {
  color: var(--rm-primary);
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s ease;
}

.public-link:hover {
  color: var(--rm-red);
}

/* Séparateur dégradé jaune → rouge (header / footer / sections Remire) */
.public-accent-bar,
.rm-divider {
  display: block;
  height: 6px;
  width: 100%;
  border: none;
  border-radius: 0;
  background: var(--rm-gradient-bar);
}

.rm-divider--thick {
  height: 10px;
  border-radius: 5px 5px 0 0;
}

.rm-divider--title {
  width: 50px;
  height: 3px;
  margin-top: 0.65rem;
  border-radius: 0;
  background: #f8e818;
}

/* Bordure dégradée rouge/jaune (cartes Remire — border-box) */
.rm-separator-border {
  border: 2px solid transparent;
  background:
    linear-gradient(#fff, #fff) padding-box,
    var(--rm-gradient-separator) border-box;
}

/* Inputs publics (kit + arrondi souple) */
body:not(.admin-ui) .ds-input,
body:not(.admin-ui)
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not(
    [type="file"]
  ),
body:not(.admin-ui) select,
body:not(.admin-ui) textarea {
  border: 1px solid var(--ds-color-border);
  border-radius: var(--ds-radius-control);
  color: var(--rm-secondary);
  background: #fff;
  box-shadow: 0 1px 2px rgb(0 0 0 / 0.03);
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

body:not(.admin-ui) .ds-input:focus,
body:not(.admin-ui) input:not([type="checkbox"]):not([type="radio"]):focus,
body:not(.admin-ui) select:focus,
body:not(.admin-ui) textarea:focus {
  outline: none;
  border-color: var(--rm-primary);
  box-shadow: 0 0 0 3px var(--ds-focus-ring);
}

body:not(.admin-ui) ::placeholder {
  color: color-mix(in srgb, var(--rm-text) 80%, #fff);
}

/* Source: /react-source/index.css */
*,
*::before,
*::after {
  box-sizing: border-box;
}

.place-nowrap {
  white-space: nowrap;
}

body {
  margin: 0;
  height: 100%;
  font-family: var(--ds-font-sans);
  font-weight: 400;
  line-height: 1.5;
  color: #1a1a1a;
  background: #f8f9fa;
}

#root {
  height: 100%;
}

.app {
  display: flex;
  flex-direction: column;
  height: 100vh;
  height: 100dvh;
  min-height: 0;
  overflow: hidden;
}

.app__viewport,
.app__stage {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.app__viewport {
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}

html.is-scroll-locked,
html.is-scroll-locked body {
  overflow: hidden !important;
}

html.is-scroll-locked .app__viewport,
html.is-scroll-locked .background--scrollable,
html.is-scroll-locked .admin-page.manager-feed,
html.is-scroll-locked .association-posts-panel__feed,
html.is-scroll-locked .admin-access-detail__publication,
html.is-scroll-locked .admin-access-detail__body-content {
  overflow: hidden !important;
}

.app--admin > .app__stage {
  overflow: hidden;
}

.page {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  min-width: 0;
}

.app__viewport > .page-transition > .public-footer {
  margin-top: 0;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  box-sizing: border-box;
  min-height: var(--ds-button-min-height, 2.5rem);
  border: 1px solid transparent;
  border-radius: 0.375rem;
  padding: var(--ds-button-padding-y, 0.625rem) var(--ds-button-padding-x, 1rem);
  font-family: var(--ds-font-button, var(--ds-font-accent, "Poppins", sans-serif));
  font-size: 0.875rem;
  font-weight: 600;
  line-height: var(--ds-button-line-height, 1.2);
  color: #fff;
  background: var(--ds-color-primary);
  cursor: pointer;
  text-decoration: none;
  vertical-align: middle;
}

.button--compact {
  min-height: 2.1rem;
  padding: 0.4rem 0.7rem;
  font-size: 0.8125rem;
}

/* CTAs / boutons UI : Poppins (accent Remire), line-height stable */
:is(
  .button,
  .rm-btn,
  .public-hero__cta,
  .public-hero__cta-secondary,
  .login__cta,
  .manager-topbar__back,
  .admin-content__back,
  .volunteer-offer-card__cta,
  .header__link
) {
  font-family: var(--ds-font-button, var(--ds-font-accent, "Poppins", sans-serif));
  line-height: var(--ds-button-line-height, 1.2);
}

.button:hover:not(:disabled) {
  background: var(--ds-color-primary-hover);
}

.button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.button--secondary {
  color: #111827;
  background: #f3f4f6;
}

.button--secondary:hover:not(:disabled) {
  background: #e5e7eb;
}

.button--danger {
  background: #b52f41;
  color: #fff;
}

.button--danger:hover:not(:disabled) {
  background: #9d2637;
}

.button--accept {
  background: #4169e1;
}

.button--accept:hover:not(:disabled) {
  background: #3558c4;
}

.button--blue {
  background: #2563eb;
}

.button--blue:hover:not(:disabled) {
  background: #1d4ed8;
}

.button--black {
  background: #111827;
  color: #fff;
}

.button--black:hover:not(:disabled) {
  background: #030712;
}

.button--yellow {
  background: #eab308;
  color: #422006;
}

.button--yellow:hover:not(:disabled) {
  background: #ca8a04;
  color: #422006;
}

.config-warning {
  padding: 0.75rem 1.5rem;
  background: #fff7ed;
  border-bottom: 1px solid #fdba74;
  color: #9a3412;
  font-size: 0.875rem;
}

/* Source: /react-source/layouts/page-transition.css */
.page-transition {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  min-width: 0;
  animation: page-enter 480ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.page-transition > .page {
  flex: 1 0 auto;
  min-height: auto;
}

.page-transition > .public-footer {
  margin-top: auto;
}

@keyframes page-enter {
  from {
    opacity: 0;
    transform: translateY(0.85rem);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-transition {
    animation: none;
  }
}
.skip-link {
  position: fixed;
  z-index: 10000;
  top: 0.5rem;
  left: 0.5rem;
  padding: 0.65rem 0.9rem;
  color: #fff;
  background: #063c22;
  transform: translateY(-150%);
}

.skip-link:focus {
  transform: translateY(0);
}

/* Source: /react-source/components/header.css */
/* Navigation publique — pastilles .custom-nav-color (remire-montjoly.fr) */

.header {
  --header-ink: #171717;
  --header-muted: #696b7e;
  --header-green: #077b3a;
  --header-green-soft: #61ce70;
  --header-yellow: #f8e818;
  --header-red: #d63516;
  --header-gold: #f9bd67;
  --header-control-height: 2.35rem;
  --header-control-height-expanded: 3.2rem;
  position: relative;
  z-index: 40;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, auto) minmax(0, 1fr);
  align-items: center;
  gap: 1.75rem;
  flex-shrink: 0;
  height: 4.75rem;
  box-sizing: border-box;
  padding: 10px clamp(1.15rem, 3vw, 2.25rem) 0;
  overflow: visible;
  background: #fff;
  border-bottom: none;
  box-shadow: 0 8px 24px rgb(0 0 0 / 0.04);
}

/* Barre séparateur jaune → rouge (identique #custom-header::before) */
.header::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 10px;
  width: 100%;
  background: var(--rm-gradient-bar);
  border-radius: 0;
}

.header::after {
  display: none;
}

.header__glow {
  display: none;
}

.header__brand {
  z-index: 1;
  display: flex;
  align-items: center;
  height: var(--header-control-height-expanded);
  min-width: 0;
  text-decoration: none;
  color: inherit;
}

.header__brand-name {
  display: block;
  font-family: var(--ds-font-accent, "Poppins", sans-serif);
  font-weight: 600;
  font-size: 1.15rem;
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--header-ink);
  transition: color 240ms ease;
}

.header__brand:hover .header__brand-name {
  color: var(--header-green);
}

.header__nav {
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.45rem;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  line-height: 1;
  height: var(--header-control-height-expanded);
  overflow: visible;
}

/* Liens nav — texte sans pastille (point jaune actif conservé) */
.header__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: var(--header-control-height);
  min-height: var(--header-control-height);
  box-sizing: border-box;
  padding: 0 0.95rem;
  border-radius: 30px;
  overflow: visible;
  color: var(--header-ink);
  font-family: var(--ds-font-accent, "Poppins", sans-serif);
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: -0.01em;
  text-decoration: none;
  background: transparent;
  transform-origin: center;
  transition:
    height 240ms cubic-bezier(0.22, 1, 0.36, 1),
    color 0.2s ease;
}

.header__link:hover,
.header__link--active {
  height: var(--header-control-height-expanded);
}

.header__link:hover,
.header__link--active {
  color: var(--header-green);
}

.header__link--active {
  color: var(--header-ink);
}

.header__link-label {
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

/*
 * Le point participe au flux : son apparition agrandit le groupe texte + point.
 * Comme ce groupe reste centré dans le lien, le libellé remonte naturellement.
 */
.header__link-label::after {
  content: "";
  width: 10px;
  height: 0;
  margin-top: 0;
  flex: 0 0 auto;
  border-radius: 50%;
  background-color: transparent;
  opacity: 0;
  transform: scale(0.35);
  transition:
    height 220ms cubic-bezier(0.22, 1, 0.36, 1),
    margin-top 220ms cubic-bezier(0.22, 1, 0.36, 1),
    background-color 160ms ease,
    opacity 160ms ease,
    transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
}

.header__link:hover .header__link-label::after,
.header__link--active .header__link-label::after {
  height: 10px;
  margin-top: 0.35rem;
  background-color: var(--header-yellow);
  opacity: 1;
  transform: scale(1);
}

.header__link--console {
  color: var(--header-ink);
}

.header__link--console:hover,
.header__link--console.header__link--active {
  color: var(--header-red);
}

.header__social {
  display: flex;
  align-items: center;
  height: var(--header-control-height-expanded);
  gap: 0.45rem;
  margin-left: 0.35rem;
  line-height: 0;
}

.header__social.rm-social--sm .rm-social__link svg {
  width: 1.2rem;
  height: 1.2rem;
}

@media (max-width: 820px) {
  .header {
    display: flex;
    flex-wrap: wrap;
    height: auto;
    min-height: 4.75rem;
    gap: 0.85rem;
    padding-top: 1.15rem;
  }

  .header__nav {
    width: 100%;
    height: auto;
    justify-content: flex-start;
  }

  .header__social {
    margin-left: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .header__link,
  .header__link-label::after {
    transition: none;
  }
}

/* Source: /react-source/components/rm-button.css */
/**
 * Boutons « Mes démarches » / « Projet urbain » —
 * CSS hello-elementor-child (remire-montjoly.fr).
 *
 * Contraste : le texte / icônes utilisent --rm-btn-label (jamais jaune sur blanc,
 * jamais blanc sur jaune). Les coins L restent --rm-btn-corner (accent décoratif).
 */
.rm-btn {
  --rm-btn-fill: #f9bd67;
  --rm-btn-corner: #f9bd67;
  --rm-btn-corner-hover: #fff;
  --rm-btn-label: #1d1d1b;
  --rm-btn-label-hover: #1d1d1b;
  --rm-btn-ink: #1d1d1b;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: var(--rm-btn-min-height, 3.5rem);
  padding: 0.85rem 1.25rem;
  overflow: hidden;
  /* Bordure transparente : même hauteur que les variantes « ghost » avec contour */
  border: 1px solid transparent;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 2px 8px rgb(0 0 0 / 0.05);
  color: var(--rm-btn-label);
  font-family: var(--ds-font-button, var(--ds-font-accent, "Poppins", sans-serif));
  font-size: 14px;
  font-weight: 600;
  line-height: var(--ds-button-line-height, 1.2);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  z-index: 1;
  transition: box-shadow 0.3s ease;
}

.rm-btn::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 0%;
  height: 100%;
  background-color: var(--rm-btn-fill);
  z-index: -1;
  transition: width 0.4s ease;
}

/* Apply text and fill together, including buttons with a direct text node.
   An animated fill under a changing label briefly creates unreadable text. */
.rm-btn:hover,
.rm-btn:focus-visible {
  background-color: var(--rm-btn-fill);
  color: var(--rm-btn-label-hover);
}

.rm-btn:hover::before,
.rm-btn:focus-visible::before {
  width: 100%;
  left: 0;
  right: auto;
}

.rm-btn:focus-visible {
  outline: 2px solid var(--rm-btn-fill);
  outline-offset: 3px;
}

.rm-btn__label {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  color: inherit;
  font-family: inherit;
  line-height: inherit;
  transition: none;
}

.rm-btn:hover .rm-btn__label,
.rm-btn:focus-visible .rm-btn__label {
  color: var(--rm-btn-label-hover);
}

.rm-btn__icon {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.rm-btn__icon svg {
  width: 35px;
  height: 35px;
  fill: currentColor;
}

.rm-btn:hover .rm-btn__icon svg,
.rm-btn:focus-visible .rm-btn__icon svg {
  fill: var(--rm-btn-label-hover);
}

.rm-btn__text {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: inherit;
  line-height: inherit;
}

.rm-btn__corner {
  position: absolute;
  z-index: 0;
  width: 30px;
  height: 30px;
  pointer-events: none;
  color: var(--rm-btn-corner);
  transition: color 0.3s ease;
}

.rm-btn:hover .rm-btn__corner,
.rm-btn:focus-visible .rm-btn__corner {
  color: var(--rm-btn-corner-hover);
}

.rm-btn__corner-path {
  fill: none;
  stroke: currentColor;
  stroke-width: 2px;
  stroke-miterlimit: 10;
}

.rm-btn__corner--bl {
  bottom: 5px;
  left: 5px;
}

.rm-btn__corner--tr {
  top: 5px;
  right: 5px;
  transform: rotate(180deg);
}

/* Mes démarches — accent or / gold : texte toujours encre sombre */
.rm-btn--gold {
  --rm-btn-fill: #f9bd67;
  --rm-btn-corner: #f9bd67;
  --rm-btn-label: #1d1d1b;
  --rm-btn-label-hover: #1d1d1b;
}

/* Projet urbain */
.rm-btn--green {
  --rm-btn-fill: #077b3a;
  --rm-btn-corner: #077b3a;
  --rm-btn-label: #077b3a;
  --rm-btn-label-hover: #fff;
}

.rm-btn--red {
  --rm-btn-fill: var(--rm-rose-deep, #fb626b);
  --rm-btn-corner: var(--rm-rose-deep, #fb626b);
  --rm-btn-label: #b52f41;
  --rm-btn-label-hover: #1d1d1b;
}

.rm-btn--sky {
  --rm-btn-fill: var(--rm-mint-deep, #3ebbc8);
  --rm-btn-corner: var(--rm-mint-deep, #3ebbc8);
  --rm-btn-label: var(--rm-teal-deep, #007f8b);
  --rm-btn-label-hover: #1d1d1b;
}

@media screen and (max-width: 1340px) {
  .rm-btn {
    padding: 0.85rem 0.7rem;
    font-size: 13px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rm-btn,
  .rm-btn::before,
  .rm-btn__label,
  .rm-btn__icon svg,
  .rm-btn__corner {
    transition: none;
  }
}

/* Source: /react-source/components/news-card.css */
.news-list {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  display: grid;
  gap: 1rem;
  width: min(100%, 40rem);
}

.news-list--grid {
  width: min(100%, 72rem);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.15rem 1.25rem;
}

@media (max-width: 980px) {
  .news-list--grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .news-list--grid {
    grid-template-columns: 1fr;
  }
}

.news-card-item {
  list-style: none;
}

.news-card-item--preview {
  list-style: none;
}

.news-card {
  display: grid;
  gap: 0.75rem;
  padding: 1rem 1.1rem 1.05rem;
  border: none;
  border-radius: 15px;
  background: #fff;
  color: inherit;
  box-shadow: 0 2px 8px rgb(0 0 0 / 0.05);
  cursor: pointer;
  transition:
    box-shadow 160ms ease,
    transform 160ms ease;
}

.news-card:hover,
.news-card:focus-visible {
  border-color: transparent;
  box-shadow: 0 10px 28px rgb(7 123 58 / 0.12);
  transform: translateY(-1px);
  outline: none;
}

.news-card--preview {
  cursor: default;
  box-shadow: 0 10px 30px rgb(15 23 42 / 0.07);
}

.news-card--preview:hover {
  transform: none;
}

.news-card--manage {
  cursor: default;
  box-shadow: 0 6px 20px rgb(15 23 42 / 0.06);
}

.news-card--manage:hover,
.news-card--manage:focus-visible {
  transform: none;
  border-color: #e5e7eb;
  box-shadow: 0 6px 20px rgb(15 23 42 / 0.06);
}

.news-card--draft {
  border-color: #e5d4a8;
  background: linear-gradient(180deg, #fffbeb 0%, #fff 2.75rem);
}

.news-card--draft:hover,
.news-card--draft:focus-visible {
  border-color: #e5d4a8;
}

.news-card__draft-banner {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.75rem;
  margin: -1rem -1.1rem 0.15rem;
  padding: 0.55rem 1.1rem;
  border-radius: 0.9rem 0.9rem 0 0;
  background: #fef3c7;
  border-bottom: 1px solid #f3e2a8;
}

.news-card__draft-banner-label {
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #92400e;
}

.news-card__draft-banner-hint {
  font-size: 0.8125rem;
  font-weight: 550;
  color: #a16207;
}

.news-card__status {
  font-weight: 700;
  color: #6b7280;
}

.news-card__status--published {
  color: #067b3a;
}

.news-card__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.15rem;
  padding-top: 0.75rem;
  border-top: 1px solid #eef2f0;
}

.news-card__actions .button {
  min-height: 2rem;
  padding: 0.3rem 0.7rem;
  font-size: 0.75rem;
}

.news-card__header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.news-card__avatar {
  width: 2.65rem;
  height: 2.65rem;
  border-radius: 999px;
  object-fit: cover;
  object-position: center top;
  background: #ecfdf3;
  flex-shrink: 0;
}

.news-card__avatar--fallback {
  display: grid;
  place-items: center;
  font-weight: 750;
  color: #067b3a;
  background: #ecfdf3;
}

.news-card__identity {
  min-width: 0;
}

.news-card__author {
  margin: 0;
  display: inline-block;
  font-size: 0.95rem;
  font-weight: 750;
  line-height: 1.25;
  color: #111827;
  text-decoration: none;
}

a.news-card__author:hover {
  color: #067b3a;
  text-decoration: underline;
}

.news-card__time {
  margin: 0.15rem 0 0;
  font-size: 0.78rem;
  color: #6b7280;
}

.news-card__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 750;
  line-height: 1.35;
  color: #111827;
}

.news-card__text {
  display: grid;
  gap: 0.55rem;
  font-size: 0.95rem;
  line-height: 1.55;
  color: #374151;
}

.news-card__text p {
  margin: 0;
  white-space: pre-wrap;
}

.news-card__text a {
  color: #067b3a;
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.news-card__photo {
  display: block;
  width: calc(100% + 2.2rem);
  max-width: none;
  margin: 0.15rem -1.1rem 0;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  object-position: center top;
  background: #ecfdf3;
}

.news-card__more,
.news-card__preview-label {
  margin: 0.15rem 0 0;
  font-size: 0.8125rem;
  font-weight: 700;
}

.news-card__more {
  color: #067b3a;
}

.news-card__preview-label {
  color: #9ca3af;
}

.news-card--public {
  position: relative;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  min-width: 0;
  min-height: 21rem;
  padding: 0;
  gap: 0;
  overflow: hidden;
  border: 1px solid rgb(16 35 26 / 0.08);
  border-radius: 1.35rem;
  background: #fff;
}

.news-card__public-header {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  gap: 0.8rem;
  min-height: 7.5rem;
  padding: 1.25rem 1.35rem;
  overflow: hidden;
  border-bottom: 1px solid rgb(16 35 26 / 0.08);
  color: #10231a;
  background: var(--news-card-brand, #077b3a);
}

.news-card__public-header::after {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(
    90deg,
    rgb(0 0 0 / 0.5),
    rgb(0 0 0 / 0.18) 72%,
    transparent
  );
  content: "";
  opacity: 0;
}

.news-card__public-header--photo::after {
  opacity: 1;
}

.news-card__public-header-photo {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 350ms ease;
}

.news-card--public:hover .news-card__public-header-photo,
.news-card--public:focus-visible .news-card__public-header-photo {
  transform: scale(1.025);
}

.news-card__public-avatar {
  position: relative;
  z-index: 1;
  display: block;
  flex: 0 0 auto;
  width: 3rem;
  height: 3rem;
  border: 1px solid rgb(7 123 58 / 0.12);
  border-radius: 0.8rem;
  object-fit: contain;
  background: #fff;
  box-shadow: 0 5px 14px rgb(16 35 26 / 0.07);
}

.news-card__public-avatar--fallback {
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(145deg, #123e2c, #08763d);
  font-size: 1rem;
  font-weight: 800;
}

.news-card__public-identity {
  position: relative;
  z-index: 1;
  display: grid;
  align-items: center;
  min-width: 0;
}

.news-card__public-author {
  display: block;
  margin: 0;
  overflow: hidden;
  color: #10231a;
  font-size: 1rem;
  font-weight: 750;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.news-card__public-header--light-ink .news-card__public-author {
  color: #fff;
  text-shadow: 0 2px 12px rgb(0 0 0 / 0.3);
}

a.news-card__public-author:hover {
  color: currentcolor;
  text-decoration: underline;
}

.news-card__public-copy {
  display: grid;
  align-content: start;
  gap: 0.8rem;
  padding: 1.35rem 1.4rem 1.5rem;
  text-align: left;
}

.news-card__public-title {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: #10231a;
  font-family: var(--ds-font-display);
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  font-weight: 750;
  line-height: 1.2;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.news-card__public-excerpt {
  display: -webkit-box;
  overflow: hidden;
  color: #5b6b63;
  font-size: 0.92rem;
  line-height: 1.6;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.news-card__public-excerpt p,
.news-card__public-excerpt ul,
.news-card__public-excerpt ol {
  display: inline;
  margin: 0;
  padding: 0;
}

.news-card__public-more {
  align-self: end;
  margin-top: auto;
  color: #067b3a;
  font-size: 0.82rem;
  font-weight: 750;
}

.news-card--public:hover .news-card__public-more,
.news-card--public:focus-within .news-card__public-more {
  text-decoration: underline !important;
  text-decoration-thickness: 0.08em !important;
  text-underline-offset: 0.2em;
}

.news-card__public-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 2.8rem;
  padding: 0.55rem 1.15rem;
  color: #5c5d7b;
  font-size: 0.82rem;
  background: #fbfbfc;
}

.news-card__public-meta span {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  white-space: nowrap;
}

.news-card__public-meta svg {
  width: 1.45rem;
  height: 1.45rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.1;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (max-width: 480px) {
  .news-card--public {
    min-height: 19rem;
    border-radius: 1.15rem;
  }
}

/* Source: /react-source/components/public-association-tile.css */
.public-asso-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.public-asso-tile {
  --asso-tile-brand: var(--rm-green, #077b3a);
  min-width: 0;
  animation: public-asso-rise 700ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.public-asso-tile__card {
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr;
  height: 100%;
  min-height: 22rem;
  overflow: hidden;
  border: 1px solid rgb(16 35 26 / 0.08);
  border-radius: 1.25rem;
  background: #fff;
  box-shadow:
    0 1px 2px rgb(16 35 26 / 0.04),
    0 14px 36px rgb(16 35 26 / 0.05);
  cursor: pointer;
  transition:
    transform 280ms cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 280ms ease,
    border-color 220ms ease;
}

.public-asso-tile__card:hover,
.public-asso-tile__card:focus-visible {
  transform: translateY(-4px);
  border-color: rgb(0 127 139 / 0.28);
  box-shadow:
    0 8px 18px rgb(16 35 26 / 0.06),
    0 24px 48px rgb(0 127 139 / 0.12);
  outline: none;
}

.public-asso-tile__media {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 8.5rem;
  padding: 1.35rem;
  background:
    linear-gradient(160deg, rgb(0 127 139 / 0.12), rgb(249 189 103 / 0.16)),
    linear-gradient(180deg, #f4faf6, #eef6f1);
  overflow: hidden;
}

.public-asso-tile__card--branded .public-asso-tile__media {
  background:
    radial-gradient(
      120% 90% at 12% 18%,
      color-mix(in srgb, var(--asso-tile-brand) 28%, #fff) 0%,
      transparent 55%
    ),
    radial-gradient(
      90% 80% at 92% 20%,
      color-mix(in srgb, var(--asso-tile-brand) 22%, #fff) 0%,
      transparent 50%
    ),
    linear-gradient(
      155deg,
      color-mix(in srgb, var(--asso-tile-brand) 18%, #fff) 0%,
      color-mix(in srgb, var(--asso-tile-brand) 10%, #f7faf8) 55%,
      color-mix(in srgb, var(--asso-tile-brand) 14%, #eef4f1) 100%
    );
}

.public-asso-tile__media::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 3px;
  background: linear-gradient(90deg, var(--rm-teal-deep, #007f8b), var(--rm-peach, #fbd6a2), var(--rm-rose-deep, #fb626b));
  opacity: 0.85;
}

.public-asso-tile__card--branded .public-asso-tile__media::after {
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--asso-tile-brand) 75%, #000),
    var(--asso-tile-brand),
    color-mix(in srgb, var(--asso-tile-brand) 55%, #fff)
  );
}

.public-asso-tile__card--branded:hover,
.public-asso-tile__card--branded:focus-visible {
  border-color: color-mix(in srgb, var(--asso-tile-brand) 40%, transparent);
  box-shadow:
    0 8px 18px rgb(16 35 26 / 0.06),
    0 24px 48px color-mix(in srgb, var(--asso-tile-brand) 22%, transparent);
}

.public-asso-tile__logo {
  position: relative;
  z-index: 1;
  width: 5.25rem;
  height: 5.25rem;
  object-fit: contain;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 8px 24px rgb(16 35 26 / 0.08);
}

.public-asso-tile__monogram {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 5.25rem;
  height: 5.25rem;
  border-radius: 1rem;
  background: var(--asso-tile-brand, var(--rm-teal-deep, #007f8b));
  color: #fff;
  font-family: var(--ds-font-display);
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  box-shadow: 0 10px 28px
    color-mix(in srgb, var(--asso-tile-brand, #007f8b) 35%, transparent);
}

.public-asso-tile__corner {
  position: absolute;
  width: 1.25rem;
  height: 1.25rem;
  border-color: var(--asso-tile-brand, var(--rm-teal-deep, #007f8b));
  border-style: solid;
  opacity: 0.55;
  transition: opacity 220ms ease;
}

.public-asso-tile__card:hover .public-asso-tile__corner,
.public-asso-tile__card:focus-visible .public-asso-tile__corner {
  opacity: 1;
}

.public-asso-tile__corner--tl {
  top: 0.75rem;
  left: 0.75rem;
  border-width: 2px 0 0 2px;
}

.public-asso-tile__corner--br {
  right: 0.75rem;
  bottom: 0.75rem;
  border-width: 0 2px 2px 0;
}

.public-asso-tile__body {
  display: grid;
  gap: 0.75rem;
  align-content: start;
  padding: 1.15rem 1.2rem 1.25rem;
}

.public-asso-tile__title {
  margin: 0;
  font-family: var(--ds-font-display);
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.025em;
  color: #10231a;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.public-asso-tile__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.public-asso-tile__description {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.5;
  color: #5b6b63;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.public-asso-tile__meta {
  display: grid;
  gap: 0.55rem;
  margin: 0.15rem 0 0;
  padding: 0.75rem 0 0;
  border-top: 1px solid rgb(16 35 26 / 0.08);
}

.public-asso-tile__meta > div {
  display: grid;
  gap: 0.1rem;
}

.public-asso-tile__meta dt {
  font-size: 0.68rem;
  font-weight: 750;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #8a9690;
}

.public-asso-tile__meta dd {
  margin: 0;
  font-size: 0.84rem;
  font-weight: 600;
  color: #374151;
}

.public-asso-tile__cta {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  justify-self: end;
  gap: 0.4rem;
  margin-top: auto;
  margin-left: auto;
  padding-top: 0.35rem;
  font-size: 0.9rem;
  font-weight: 750;
  text-align: right;
  color: var(--asso-tile-brand, var(--rm-teal-deep, #007f8b));
}

.public-asso-tile__card:hover .public-asso-tile__cta,
.public-asso-tile__card:focus-within .public-asso-tile__cta {
  text-decoration: underline !important;
  text-decoration-thickness: 0.08em !important;
  text-underline-offset: 0.2em;
}

.public-asso-tile__cta svg {
  transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.public-asso-tile__card:hover .public-asso-tile__cta svg,
.public-asso-tile__card:focus-visible .public-asso-tile__cta svg {
  transform: translateX(4px);
}

@keyframes public-asso-rise {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .public-asso-tile {
    animation: none;
  }

  .public-asso-tile__card,
  .public-asso-tile__cta svg {
    transition: none;
  }
}

@media (max-width: 980px) {
  .public-asso-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .public-asso-list {
    grid-template-columns: 1fr;
  }

  .public-asso-tile__card {
    min-height: 0;
  }
}

/* Source: /react-source/components/public-hero.css */
.public-hero {
  position: relative;
  display: grid;
  justify-items: stretch;
  align-content: end;
  gap: 0;
  min-height: calc(100dvh - 3.5rem);
  padding: 0;
  overflow: hidden;
  color: #10231a;
  isolation: isolate;
  animation: public-hero-in 700ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.public-hero:not(.public-hero--photo) {
  background:
    radial-gradient(
      ellipse 70% 55% at 88% 12%,
      rgb(247 232 22 / 0.32),
      transparent 58%
    ),
    radial-gradient(
      ellipse 65% 50% at 8% 88%,
      rgb(6 123 58 / 0.26),
      transparent 52%
    ),
    linear-gradient(
      145deg,
      rgb(248 250 248 / 0.92),
      rgb(236 253 243 / 0.78) 48%,
      rgb(255 248 220 / 0.62)
    ),
    url("/logo/remire-montjoly.svg");
  background-size: auto, auto, auto, min(58vw, 34rem);
  background-repeat: no-repeat;
  background-position:
    center,
    center,
    center,
    right -2% bottom -12%;
}

.public-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.public-hero__media--slot {
  object-fit: unset;
  overflow: hidden;
}

.public-hero--banner .public-hero__media {
  object-position: center top;
}

.public-hero__scrim {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(
      105deg,
      rgb(4 45 24 / 0.78) 0%,
      rgb(4 45 24 / 0.55) 38%,
      rgb(4 45 24 / 0.22) 68%,
      rgb(4 45 24 / 0.12) 100%
    ),
    linear-gradient(0deg, rgb(4 45 24 / 0.45) 0%, transparent 42%);
}

.public-hero:not(.public-hero--photo) .public-hero__scrim {
  display: none;
}

.public-hero__content {
  position: relative;
  z-index: 3;
  display: grid;
  justify-items: start;
  gap: 1rem;
  padding: clamp(1.75rem, 4vw, 3.25rem) clamp(1.25rem, 4vw, 3.5rem)
    clamp(2rem, 5vw, 3.75rem);
}

.public-hero--photo .public-hero__content {
  color: #fff;
}

.public-hero__logo {
  position: absolute;
  z-index: 4;
  top: clamp(1rem, 2.5vw, 1.75rem);
  right: clamp(1rem, 3vw, 2rem);
  width: min(100%, 10.5rem);
}

.public-hero__logo--start {
  position: relative;
  top: auto;
  right: auto;
  width: clamp(4.75rem, 12vw, 6.75rem);
  height: clamp(4.75rem, 12vw, 6.75rem);
  flex-shrink: 0;
  align-self: start;
}

.public-hero__logo--pathway {
  display: grid;
  place-items: center;
  padding: 0.85rem;
  border-radius: 1rem;
  background: rgb(255 255 255 / 0.22);
  box-shadow:
    0 0 0 1px rgb(255 255 255 / 0.28),
    0 10px 24px rgb(0 0 0 / 0.22);
}

.public-hero__pathway-icon {
  display: block;
  width: 100%;
  height: 100%;
  background: #fff;
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: contain;
  -webkit-mask-position: center;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: contain;
}

.public-hero--photo .public-hero__logo--pathway {
  background: rgb(255 255 255 / 0.24);
}

.public-hero--photo .public-hero__logo--pathway .public-hero__pathway-icon {
  /* Override photo logo img treatment */
  filter: none;
  background: #fff;
  border-radius: 0;
  padding: 0;
}

.public-hero__content--logo-start {
  display: grid;
  justify-items: start;
  align-content: end;
  gap: 0.75rem;
}

.public-hero__identity {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(0.95rem, 2.5vw, 1.5rem);
  align-items: start;
  width: 100%;
}

.public-hero__copy {
  display: grid;
  gap: 1rem;
  min-width: 0;
  align-content: start;
}

.public-hero--banner .public-hero__copy {
  gap: 0.55rem;
}

.public-hero--banner .public-hero__content--logo-start {
  gap: 0.7rem;
}

.public-hero__back {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  width: fit-content;
  margin: 0;
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgb(249 189 103 / 0.95);
  text-decoration: none;
  transition:
    color 180ms ease,
    transform 180ms ease;
}

.public-hero__back:hover {
  color: #fff;
}

.public-hero__back:hover .public-hero__back-icon {
  transform: translateX(-2px);
}

.public-hero__back-icon {
  width: 0.95rem;
  height: 0.95rem;
  transition: transform 180ms ease;
}

.public-hero__chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.15rem;
}

.public-hero__logo .village-logo,
.public-hero__logo img {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 8px 18px rgb(15 23 42 / 0.12));
}

.public-hero__logo--start img,
.public-hero__logo--start .public-asso-detail__hero-monogram {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 0.85rem;
}

.public-hero--photo .public-hero__logo .village-logo,
.public-hero--photo .public-hero__logo img {
  filter: drop-shadow(0 8px 20px rgb(0 0 0 / 0.35));
  background: rgb(255 255 255 / 0.92);
  border-radius: 0.55rem;
  padding: 0.4rem 0.55rem;
}

.public-hero--photo .public-hero__logo--start img {
  height: 100%;
  padding: 0.35rem;
  border-radius: 0.85rem;
}

.public-hero__brand {
  margin: 0;
  max-width: 12em;
  font-family: var(--ds-font-display);
  font-size: clamp(2.75rem, 8vw, 5rem);
  font-weight: 700;
  line-height: 0.94;
  letter-spacing: -0.045em;
  color: var(--ds-color-primary);
  text-shadow: none;
}

.public-hero--photo .public-hero__brand {
  color: #fff;
  text-shadow: 0 2px 24px rgb(0 0 0 / 0.35);
}

.public-hero__lead {
  margin: 0;
  max-width: 34rem;
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  line-height: 1.55;
  white-space: pre-line;
  color: var(--ds-color-label);
}

.public-hero--photo .public-hero__lead {
  color: rgb(255 255 255 / 0.92);
  text-shadow: 0 1px 12px rgb(0 0 0 / 0.3);
}

.public-hero__cta-group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.35rem;
}

.public-hero__cta,
.public-hero__cta-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 2.85rem;
  padding: 0.7rem 1.25rem;
  border: 1px solid transparent;
  border-radius: 0.55rem;
  font-family: var(
    --ds-font-button,
    var(--ds-font-accent, "Poppins", sans-serif)
  );
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: var(--ds-button-line-height, 1.2);
  text-decoration: none;
  transition:
    transform 180ms ease,
    background-color 180ms ease,
    border-color 180ms ease,
    color 180ms ease;
}

.public-hero__cta {
  color: #fff;
  background: var(--ds-color-primary);
}

.public-hero--photo .public-hero__cta {
  color: #10231a;
  background: var(--ds-color-yellow);
}

.public-hero__cta:hover {
  background: var(--ds-color-primary-hover);
  transform: translateY(-1px);
}

.public-hero--photo .public-hero__cta:hover {
  background: #fff;
}

.public-hero__cta-secondary {
  color: var(--ds-color-primary);
  border-color: rgb(6 123 58 / 0.35);
  background: rgb(255 255 255 / 0.72);
}

.public-hero--photo .public-hero__cta-secondary {
  color: #fff;
  border-color: rgb(255 255 255 / 0.55);
  background: rgb(255 255 255 / 0.12);
}

.public-hero__cta-secondary:hover {
  border-color: var(--ds-color-primary);
  background: #fff;
  transform: translateY(-1px);
}

.public-hero--photo .public-hero__cta-secondary:hover {
  color: #10231a;
  border-color: #fff;
  background: #fff;
}

.public-hero__caption {
  --caption-gold: #e8c78a;
  --caption-gold-soft: rgb(232 199 138 / 0.45);
  position: absolute;
  z-index: 3;
  right: clamp(0.85rem, 2.8vw, 2rem);
  bottom: clamp(0.85rem, 2.4vw, 1.65rem);
  width: min(22.5rem, calc(100vw - 2rem));
  margin: 0;
  pointer-events: none;
  animation: public-hero-caption-in 900ms cubic-bezier(0.22, 1, 0.36, 1) 280ms
    both;
}

.public-hero__caption-frame {
  position: absolute;
  inset: 0;
  border-radius: 0.2rem;
  border: 1px solid var(--caption-gold-soft);
  background:
    linear-gradient(
      155deg,
      rgb(255 255 255 / 0.16) 0%,
      rgb(18 42 30 / 0.88) 48%,
      rgb(6 22 14 / 0.94) 100%
    ),
    rgb(6 22 14 / 0.92);
  box-shadow:
    0 1px 0 rgb(255 255 255 / 0.12) inset,
    0 18px 40px rgb(0 0 0 / 0.28);
}

.public-hero__caption-frame::before,
.public-hero__caption-frame::after {
  content: "";
  position: absolute;
  width: 1.15rem;
  height: 1.15rem;
  border-color: var(--caption-gold);
  border-style: solid;
  opacity: 0.9;
}

.public-hero__caption-frame::before {
  top: 0.45rem;
  left: 0.45rem;
  border-width: 1px 0 0 1px;
}

.public-hero__caption-frame::after {
  right: 0.45rem;
  bottom: 0.45rem;
  border-width: 0 1px 1px 0;
}

.public-hero__caption-inner {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 0.45rem;
  padding: 1.15rem 1.25rem 1.2rem;
}

.public-hero__caption-eyebrow {
  margin: 0;
  font-size: 0.625rem;
  font-weight: 750;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--caption-gold);
}

.public-hero__caption-title {
  margin: 0;
  font-family: var(--ds-font-display);
  font-size: clamp(1.35rem, 2.4vw, 1.7rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: #fffef8;
  text-shadow: 0 1px 12px rgb(0 0 0 / 0.28);
}

.public-hero__caption-text {
  margin: 0.15rem 0 0;
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1.55;
  color: rgb(255 252 245 / 0.86);
}

.public-hero__caption-title + .public-hero__caption-text {
  padding-top: 0.55rem;
  border-top: 1px solid rgb(232 199 138 / 0.28);
}

.public-hero__caption-detail {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 450;
  letter-spacing: 0.01em;
  line-height: 1.5;
  color: rgb(255 252 245 / 0.68);
  padding-top: 0.35rem;
  border-top: 1px solid rgb(232 199 138 / 0.14);
}

.public-hero:not(.public-hero--photo) .public-hero__caption-detail {
  color: rgb(16 35 26 / 0.55);
  border-top-color: rgb(196 163 90 / 0.2);
}

.public-hero:not(.public-hero--photo) .public-hero__caption-frame {
  background: linear-gradient(155deg, #ffffff, #f8faf8);
  border-color: rgb(16 35 26 / 0.12);
  box-shadow: 0 12px 28px rgb(16 35 26 / 0.08);
}

.public-hero:not(.public-hero--photo) .public-hero__caption-frame::before,
.public-hero:not(.public-hero--photo) .public-hero__caption-frame::after {
  border-color: #c4a35a;
}

.public-hero:not(.public-hero--photo) .public-hero__caption-eyebrow {
  color: #9a7a3a;
}

.public-hero:not(.public-hero--photo) .public-hero__caption-title {
  color: #10231a;
  text-shadow: none;
}

.public-hero:not(.public-hero--photo) .public-hero__caption-text {
  color: rgb(16 35 26 / 0.72);
}

.public-hero:not(.public-hero--photo)
  .public-hero__caption-title
  + .public-hero__caption-text {
  border-top-color: rgb(196 163 90 / 0.35);
}

@keyframes public-hero-caption-in {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.985);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

/* Banner variant for inner public pages */
.public-hero.public-hero--banner {
  min-height: clamp(17rem, 46vw, 22.5rem);
  align-content: end;
}

.public-hero--banner .public-hero__content {
  gap: 0.55rem;
  width: min(100%, 72rem);
  margin-inline: auto;
  padding: clamp(2.4rem, 5vw, 3.5rem) clamp(1.25rem, 4vw, 2.5rem)
    clamp(1.85rem, 3.8vw, 2.6rem);
}

.public-hero--banner .public-hero__eyebrow {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgb(249 189 103 / 0.95);
}

.public-hero--banner .public-hero__brand {
  max-width: 14em;
  font-size: clamp(2.35rem, 6vw, 3.6rem);
  line-height: 0.98;
  letter-spacing: -0.04em;
}

.public-hero--banner .public-hero__lead {
  max-width: 36rem;
  font-size: clamp(1rem, 1.8vw, 1.15rem);
  line-height: 1.5;
  opacity: 0.95;
}

.public-hero__stats-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.65rem 1.25rem;
  margin-top: 0.55rem;
  min-height: 2.85rem;
}

.public-hero__stats {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
  min-height: 2.85rem;
}

.public-hero__stats-period {
  margin: 0 0 0.15rem;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  border: 1px solid rgb(255 255 255 / 0.28);
  background: rgb(255 255 255 / 0.1);
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgb(255 255 255 / 0.88);
  line-height: 1;
}

.public-hero:not(.public-hero--photo) .public-hero__stats-period {
  border-color: rgb(16 35 26 / 0.12);
  background: rgb(0 127 139 / 0.08);
  color: var(--ds-color-primary);
}

.public-hero__stat {
  display: grid;
  gap: 0.15rem;
  align-content: start;
  min-width: 5.5rem;
  min-height: 2.85rem;
}

.public-hero__stat-value {
  display: block;
  min-height: 1.55rem;
  font-family: var(--ds-font-display);
  font-size: clamp(1.45rem, 2.6vw, 1.85rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1;
  color: #fff;
}

.public-hero:not(.public-hero--photo) .public-hero__stat-value {
  color: var(--ds-color-primary);
}

.public-hero__stat-label {
  display: block;
  min-height: 1rem;
  font-size: 0.75rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  color: rgb(255 255 255 / 0.78);
}

.public-hero:not(.public-hero--photo) .public-hero__stat-label {
  color: var(--ds-color-label);
}

.public-hero__stat-skeleton-value,
.public-hero__stat-skeleton-label {
  display: block;
  opacity: 0.55;
}

.public-hero--photo .public-hero__stat-skeleton-value,
.public-hero--photo .public-hero__stat-skeleton-label {
  background: linear-gradient(
    90deg,
    rgb(255 255 255 / 0.22) 25%,
    rgb(255 255 255 / 0.38) 50%,
    rgb(255 255 255 / 0.22) 75%
  );
  background-size: 200% 100%;
}

.public-hero--banner .public-hero__cta-group {
  margin-top: 0.55rem;
}

.public-hero--banner .public-hero__cta,
.public-hero--banner .public-hero__cta-secondary {
  padding: 0.7rem 1.1rem;
  font-size: 0.875rem;
}

.public-hero--banner .public-hero__caption {
  bottom: clamp(1.1rem, 2.8vw, 1.85rem);
}

.public-hero--banner .public-hero__media {
  object-position: center top;
}

.public-hero--banner .public-hero__scrim {
  background:
    linear-gradient(
      105deg,
      rgb(4 45 24 / 0.88) 0%,
      rgb(4 45 24 / 0.62) 42%,
      rgb(4 45 24 / 0.28) 100%
    ),
    linear-gradient(0deg, rgb(4 45 24 / 0.35) 0%, transparent 48%);
}

@media (max-width: 720px) {
  .public-hero.public-hero--banner {
    min-height: clamp(15rem, 68vw, 19rem);
  }

  .public-hero--banner .public-hero__caption {
    display: none;
  }
}

@keyframes public-hero-in {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 820px) {
  .public-hero:not(.public-hero--photo) {
    background-position:
      center,
      center,
      center,
      right -18% bottom -18%;
    background-size: auto, auto, auto, min(78vw, 24rem);
  }
}

@media (max-width: 560px) {
  .public-hero:not(.public-hero--banner) {
    align-content: center;
  }

  .public-hero__cta,
  .public-hero__cta-secondary {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .public-hero,
  .public-hero__caption,
  .public-hero__cta,
  .public-hero__cta-secondary {
    animation: none;
    transition: none;
  }

  .public-hero__cta:hover,
  .public-hero__cta-secondary:hover {
    transform: none;
  }
}

/* List pages: sticky banner, content scrolls over it */
.public-sticky-banner {
  position: relative;
}

.public-sticky-banner > .public-hero.public-hero--banner {
  position: sticky;
  top: 0;
  z-index: 1;
}

.public-sticky-banner > .public-sticky-banner__body {
  --public-sheet-radius: 1.35rem;
  position: relative;
  z-index: 2;
  width: min(100%, 72rem);
  max-width: 72rem;
  margin: 0.75rem auto 0;
  box-sizing: border-box;
  background: transparent;
  border-radius: var(--public-sheet-radius) var(--public-sheet-radius) 0 0;
}

.public-sticky-banner--solid-body > .public-sticky-banner__body {
  background: #fff;
  border-top: 1px solid rgb(16 35 26 / 0.06);
  box-shadow: 0 -18px 40px rgb(16 35 26 / 0.08);
}

/* Source: /react-source/components/public-breadcrumb.css */
.rm-breadcrumb {
  min-width: 0;
}

.rm-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.2rem 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.rm-breadcrumb__item {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  max-width: 100%;
  font-family: var(--ds-font-display, "Inter", sans-serif);
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.35;
}

.rm-breadcrumb__sep {
  margin: 0 0.45rem;
  color: #9aa5a0;
  font-weight: 500;
}

.rm-breadcrumb__link {
  color: var(--rm-teal-deep, #007f8b);
  text-decoration: none;
  transition: color 160ms ease;
}

.rm-breadcrumb__link:hover {
  color: #006670;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.rm-breadcrumb__current {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #5b6b63;
  font-weight: 500;
}

/* Source: /react-source/components/public-sticky-banner-layout.css */
.public-sticky-banner__breadcrumb {
  position: sticky;
  top: 0;
  z-index: 6;
  min-width: 0;
  padding: 0.55rem clamp(1.15rem, 3.5vw, 2.5rem) 0.55rem;
  border-radius: var(--public-sheet-radius, 1.35rem);
  background: rgb(255 255 255 / 0.86);
  border-bottom: 1px solid rgb(16 35 26 / 0.06);
  box-shadow: 0 10px 22px rgb(16 35 26 / 0.04);
  backdrop-filter: blur(12px);
}

.public-sticky-banner__breadcrumb--stuck {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.public-sticky-banner--solid-body .public-sticky-banner__breadcrumb {
  border-radius: var(--public-sheet-radius, 1.35rem)
    var(--public-sheet-radius, 1.35rem) 0 0;
  background: #fff;
  backdrop-filter: none;
}

.public-sticky-banner--solid-body
  .public-sticky-banner__breadcrumb--stuck {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

/* Content below the sticky breadcrumb keeps page-specific paddings. */
.public-sticky-banner__content {
  min-width: 0;
}

/* Shared sticky offset under the breadcrumb — do not reuse feed/header styles here. */
.public-sticky-below-breadcrumb {
  position: sticky;
  top: var(--public-sticky-top, var(--public-breadcrumb-height, 0px));
  align-self: start;
  z-index: 4;
}

.public-sticky-below-breadcrumb--constrain {
  max-height: var(--public-sticky-max-height, none);
  overflow: auto;
  overscroll-behavior: contain;
}

@media (max-width: 640px) {
  .public-sticky-banner__breadcrumb {
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
  }
}

/* Source: /react-source/components/public-association-profile.css */
.rm-asso {
  --rm-green: var(--rm-teal-deep, #007f8b);
  --rm-ink: #10231a;
  --rm-muted: #5b6b63;
  --rm-gold: var(--rm-peach, #fbd6a2);
  width: min(100%, 72rem);
  margin: 0 auto;
  padding: clamp(1.25rem, 3vw, 2rem) clamp(1.15rem, 3.5vw, 2.5rem)
    clamp(2.5rem, 6vw, 4rem);
  display: grid;
  gap: 1.25rem;
}

.rm-asso__practical-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.75rem 1rem;
}

.rm-asso__practical-head .rm-asso__section-title {
  margin-bottom: 0;
}

.rm-asso__info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.15rem 1.5rem;
  align-items: stretch;
}

.rm-asso__info-block {
  display: grid;
  gap: 0.7rem;
  align-content: start;
  min-height: 100%;
  padding: 1.05rem 1.1rem 1.15rem;
  border: 1px solid rgb(16 35 26 / 0.08);
  border-radius: 1rem;
  background:
    linear-gradient(165deg, rgb(0 127 139 / 0.04), rgb(251 214 162 / 0.05)),
    #fff;
}

.rm-asso__info-heading {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--rm-green);
}

.rm-asso__info-value {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.55;
  color: var(--rm-ink);
}

.rm-asso__info-facts {
  display: grid;
  gap: 0.7rem;
  margin: 0;
}

.rm-asso__info-facts dt {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #8a9690;
}

.rm-asso__info-facts dt .rm-contact-icon {
  --rm-contact-icon-color: var(--rm-green, #007f8b);
}

.rm-asso__info-facts dd {
  margin: 0.2rem 0 0;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--rm-ink);
  overflow-wrap: anywhere;
}

.rm-asso__info-facts a {
  color: var(--rm-green);
  font-weight: 700;
  text-decoration: none;
}

.rm-asso__info-facts a:hover {
  text-decoration: underline;
}

.rm-asso__info-block--contact {
  grid-column: 1 / -1;
}

.rm-asso__contact-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem 2.25rem;
}

.rm-asso__contact-facts {
  gap: 1.1rem;
  align-content: start;
  align-self: start;
}

.rm-asso__contact-digital {
  display: grid;
  gap: 0.9rem;
  align-content: start;
  padding-left: 1.5rem;
  border-left: 1px solid rgb(16 35 26 / 0.08);
}

.rm-asso__contact-socials {
  display: grid;
  gap: 0.55rem;
  grid-column: 1 / -1;
  padding-top: 0.85rem;
  border-top: 1px solid rgb(16 35 26 / 0.08);
}

.rm-asso__contact-socials .social-media-links {
  gap: 0.4rem;
}

.rm-asso__contact-socials h4 {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #8a9690;
}

.rm-asso__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(16rem, 0.85fr);
  gap: 1.5rem 1.75rem;
  align-items: start;
}

.rm-asso__main {
  display: grid;
  gap: 1.15rem;
}

.rm-asso__section {
  padding: 1.25rem 1.3rem 1.35rem;
  border: 1px solid rgb(16 35 26 / 0.08);
  border-radius: 1.15rem;
  background: #fff;
  box-shadow: 0 10px 28px rgb(16 35 26 / 0.04);
  animation: rm-asso-rise 680ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.rm-asso__section--plain {
  padding: 1.05rem 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.rm-asso__section--plain .rm-asso__story-heading {
  margin-bottom: 0.65rem;
}

.rm-asso__story {
  padding: 0;
  animation: rm-asso-rise 680ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.rm-asso__story .rm-asso__section-title {
  margin-bottom: 1rem;
}

.rm-asso__story-lead {
  font-size: 1.08rem;
  line-height: 1.7;
  color: var(--rm-ink);
}

.rm-asso__story-heading {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--rm-green);
}

.rm-asso__section-eyebrow {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--rm-green);
}

.rm-asso__section-title {
  margin: 0.35rem 0 0.85rem;
  font-family: var(--ds-font-display);
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--rm-ink);
}

.rm-asso__text--pre {
  white-space: pre-wrap;
}

.rm-asso__board {
  display: grid;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rm-asso__board-card {
  padding: 0.9rem 1rem;
  border-radius: 0.9rem;
  background: #f4faf6;
  border: 1px solid rgb(0 127 139 / 0.12);
}

.rm-asso__board-name {
  margin: 0;
  font-weight: 750;
  color: var(--rm-ink);
}

.rm-asso__board-role {
  margin: 0.25rem 0 0;
  font-size: 0.875rem;
  font-weight: 650;
  color: var(--rm-green);
}

.rm-asso__board-contact {
  display: grid;
  gap: 0.15rem;
  margin-top: 0.55rem;
  font-size: 0.84rem;
  color: var(--rm-muted);
}

.rm-asso__videos {
  display: grid;
  gap: 1rem;
}

.rm-asso__video-title {
  margin: 0 0 0.55rem;
  font-size: 1rem;
  font-weight: 700;
}

.rm-asso__video-frame,
.rm-asso__video-player {
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: 0.85rem;
  background: #10231a;
}

.rm-asso__video-frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 0.85rem;
}

.rm-asso__video-consent {
  display: grid;
  gap: 0.75rem;
  padding: 1rem;
  border-radius: 0.85rem;
  background: #f4faf6;
}

.rm-asso__reports {
  display: grid;
  gap: 0.55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.rm-asso__report {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 0.9rem;
  border-radius: 0.85rem;
  background: #f4faf6;
  color: var(--rm-ink);
  text-decoration: none;
  font-weight: 600;
  transition: background 180ms ease;
}

.rm-asso__report:hover {
  background: #e7f5ec;
}

.rm-asso__report-year {
  display: inline-grid;
  place-items: center;
  min-width: 3.25rem;
  padding: 0.35rem 0.5rem;
  border-radius: 0.55rem;
  background: var(--rm-green);
  color: #fff;
  font-size: 0.85rem;
  font-weight: 750;
}

/* Layout only — stickiness comes from PublicStickyBelowBreadcrumb, not here. */
.rm-asso__aside {
  display: grid;
  gap: 1rem;
  align-content: start;
}

.rm-asso__missions {
  display: grid;
  gap: 0.75rem;
  margin-top: 0.35rem;
  padding: 1.2rem 1.2rem 1.3rem;
  border-radius: 1.15rem;
  background:
    radial-gradient(90% 80% at 100% 0%, rgb(251 214 162 / 0.12), transparent 48%),
    linear-gradient(165deg, #163528 0%, #10231a 55%, #0c1a13 100%);
  border: 1px solid rgb(255 255 255 / 0.08);
  box-shadow: 0 16px 40px rgb(16 35 26 / 0.18);
  color: #fff;
}

.rm-asso__missions-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem 1rem;
}

.rm-asso__missions .rm-asso__section-eyebrow {
  color: var(--rm-peach, #fbd6a2);
}

.rm-asso__missions-title {
  margin: 0.2rem 0 0;
  font-family: var(--ds-font-display);
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #fff;
}

.rm-asso__missions-lead {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: rgb(255 255 255 / 0.72);
}

.rm-asso__missions-link {
  color: var(--rm-peach, #fbd6a2);
  font-size: 0.88rem;
  font-weight: 700;
  text-decoration: none;
}

.rm-asso__missions-link:hover {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.rm-asso__missions .rm-asso__muted {
  color: rgb(255 255 255 / 0.62);
}

.rm-asso__missions-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 1.15rem;
  margin: 0;
  padding: 0.2rem 0 0;
  list-style: none;
}

.rm-asso__missions-grid > :only-child {
  grid-column: 1 / -1;
}

.rm-asso__missions-grid
  > :only-child
  > .volunteer-offer-card--stay {
  grid-template-columns: minmax(12rem, 40%) minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) auto;
  grid-template-areas:
    "media body"
    "media footer";
  gap: 0;
  min-height: 16rem;
  overflow: hidden;
  border: 1px solid rgb(255 255 255 / 0.1);
  border-radius: 1rem;
  background: rgb(255 255 255 / 0.045);
}

.rm-asso__missions-grid
  > :only-child
  .volunteer-offer-card__media {
  grid-area: media;
  aspect-ratio: auto;
  min-height: 16rem;
  border-radius: 0;
}

.rm-asso__missions-grid
  > :only-child
  .volunteer-offer-card__cover {
  /* Keep the source image's intrinsic height out of the grid track sizing. */
  position: absolute;
  inset: 0;
  height: 100%;
  min-height: 0;
  aspect-ratio: auto;
  object-position: center;
}

.rm-asso__missions-grid
  > :only-child
  .volunteer-offer-card__body {
  grid-area: body;
  align-content: center;
  gap: 0.55rem;
  padding: 1.25rem 1.35rem 0.8rem;
}

.rm-asso__missions-grid
  > :only-child
  .volunteer-offer-card__title {
  font-size: 1.15rem;
}

.rm-asso__missions-grid
  > :only-child
  .volunteer-offer-card__footer {
  grid-area: footer;
  width: auto;
  margin: 0 1.35rem;
  padding: 0.65rem 0 0.85rem;
}

.rm-asso__missions .volunteer-offer-card--stay .volunteer-offer-card__title {
  color: #fff;
}

.rm-asso__missions .volunteer-offer-card--stay .volunteer-offer-card__stay-meta {
  color: rgb(255 255 255 / 0.62);
}

.rm-asso__missions .volunteer-offer-card--stay .volunteer-offer-card__media {
  box-shadow: 0 10px 24px rgb(0 0 0 / 0.28);
  background: #1a3328;
}

.rm-asso__rail {
  display: grid;
  gap: 0.9rem;
  padding: 1.1rem 1.1rem 1.2rem;
  border-radius: 1.15rem;
  background:
    linear-gradient(165deg, rgb(0 127 139 / 0.08), rgb(251 214 162 / 0.1)),
    #fff;
  border: 1px solid rgb(16 35 26 / 0.08);
  box-shadow: none;
}

.rm-asso__rail-eyebrow {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--rm-green);
}

.rm-asso__rail-block {
  display: grid;
  gap: 0.65rem;
  padding-top: 0.7rem;
  border-top: 1px solid rgb(16 35 26 / 0.08);
}

.rm-asso__rail-block--first {
  padding-top: 0;
  border-top: 0;
}

.rm-asso__rail-label {
  margin: 0 0 0.3rem;
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #8a9690;
}

.rm-asso__facts {
  display: grid;
  gap: 0.5rem;
  margin: 0;
}

.rm-asso__facts--cols {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem 0.85rem;
}

.rm-asso__facts--cols > .rm-asso__facts-item--full {
  grid-column: 1 / -1;
}

.rm-asso__facts-key {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem;
  min-height: 1.7rem;
}

.rm-asso__facts dt {
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #8a9690;
}

.rm-asso__facts dd {
  margin: 0.1rem 0 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--rm-ink);
  overflow-wrap: anywhere;
}

.copy-value-btn {
  flex-shrink: 0;
  display: inline-grid;
  place-items: center;
  width: 1.7rem;
  height: 1.7rem;
  padding: 0;
  border: 1px solid rgb(16 35 26 / 0.1);
  border-radius: 0.45rem;
  background: #fff;
  color: var(--rm-green, var(--rm-teal-deep, #007f8b));
  cursor: pointer;
  transition:
    background 140ms ease,
    border-color 140ms ease,
    color 140ms ease;
}

.copy-value-btn:hover {
  border-color: rgb(0 127 139 / 0.35);
  background: rgb(0 127 139 / 0.06);
}

.copy-value-btn:focus-visible {
  outline: 2px solid rgb(0 127 139 / 0.45);
  outline-offset: 2px;
}

.rm-asso__facts a {
  color: var(--rm-green);
  font-weight: 700;
  text-decoration: none;
}

.rm-asso__facts a:hover {
  text-decoration: underline;
}

.rm-asso__muted {
  margin: 0;
  font-size: 0.9rem;
  color: var(--rm-muted);
}

.rm-asso__feed-block {
  display: grid;
  gap: 1rem;
  padding: 0 1.3rem 1.35rem;
  border: 1px solid rgb(16 35 26 / 0.08);
  border-radius: 1.15rem;
  background: #fff;
  box-shadow: 0 10px 28px rgb(16 35 26 / 0.04);
}

.rm-asso__feed-block .rm-asso-feed__title {
  font-size: clamp(1.25rem, 2.4vw, 1.55rem);
}

.rm-asso__feed-block .news-list--grid {
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rm-asso__feed-block .news-list--grid > :only-child {
  grid-column: 1 / -1;
}

.rm-asso__feed-block
  .news-list--grid
  > :only-child
  .news-card--public {
  grid-template-columns: minmax(12rem, 40%) minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) auto;
  min-height: 17rem;
}

.rm-asso__feed-block
  .news-list--grid
  > :only-child
  .news-card__public-header {
  grid-column: 1;
  grid-row: 1 / 3;
  min-height: 100%;
  border-right: 1px solid rgb(16 35 26 / 0.08);
  border-bottom: 0;
}

.rm-asso__feed-block
  .news-list--grid
  > :only-child
  .news-card__public-copy {
  grid-column: 2;
  grid-row: 1;
  justify-content: center;
}

.rm-asso__feed-block
  .news-list--grid
  > :only-child
  .news-card__public-meta {
  grid-column: 2;
  grid-row: 2;
}

/* Feed title bar — static, never sticky (sticky lives on PublicStickyBelowBreadcrumb). */
.rm-asso-feed__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin: 0 -1.3rem;
  padding: 1.15rem 1.3rem 0.85rem;
  background: linear-gradient(180deg, #ffffff 0%, #fafcfb 100%);
  border-radius: 1.15rem 1.15rem 0 0;
  box-shadow: 0 10px 24px rgb(16 35 26 / 0.04);
}

.rm-asso-feed__eyebrow {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--rm-green, var(--rm-teal-deep, #007f8b));
}

.rm-asso-feed__title {
  margin: 0.3rem 0 0;
  font-family: var(--ds-font-display);
  font-size: clamp(1.4rem, 2.8vw, 1.85rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: #10231a;
}

.rm-asso-feed__link {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--rm-teal-deep, #007f8b);
  text-decoration: none;
}

.rm-asso-feed__link:hover {
  text-decoration: underline;
}

@keyframes rm-asso-rise {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .rm-asso__section,
  .rm-asso__story {
    animation: none;
  }
}

@media (max-width: 900px) {
  .rm-asso__layout {
    grid-template-columns: 1fr;
  }

  .rm-asso__aside.public-sticky-below-breadcrumb {
    position: static;
    max-height: none;
    overflow: visible;
  }

  .rm-asso__missions-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
  }

  .rm-asso__board {
    grid-template-columns: 1fr;
  }

  .rm-asso__info-grid {
    grid-template-columns: 1fr;
    gap: 0.85rem;
  }

  .rm-asso__contact-columns {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .rm-asso__contact-digital {
    padding: 1rem 0 0;
    border-top: 1px solid rgb(16 35 26 / 0.08);
    border-left: 0;
  }
}

@media (max-width: 720px) {
  .rm-asso__feed-block .news-list--grid,
  .rm-asso__missions-grid {
    grid-template-columns: 1fr;
  }

  .rm-asso__missions-grid
    > :only-child
    > .volunteer-offer-card--stay {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    grid-template-areas:
      "media"
      "body"
      "footer";
  }

  .rm-asso__missions-grid
    > :only-child
    .volunteer-offer-card__media {
    min-height: 0;
    aspect-ratio: 16 / 10;
  }

  .rm-asso__feed-block
    .news-list--grid
    > :only-child
    .news-card--public {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(0, 1fr) auto;
    min-height: 21rem;
  }

  .rm-asso__feed-block
    .news-list--grid
    > :only-child
    .news-card__public-header {
    grid-column: 1;
    grid-row: 1;
    min-height: 8.25rem;
    border-right: 0;
    border-bottom: 1px solid rgb(16 35 26 / 0.08);
  }

  .rm-asso__feed-block
    .news-list--grid
    > :only-child
    .news-card__public-copy {
    grid-column: 1;
    grid-row: 2;
  }

  .rm-asso__feed-block
    .news-list--grid
    > :only-child
    .news-card__public-meta {
    grid-column: 1;
    grid-row: 3;
  }
}

@media (max-width: 640px) {

  .rm-asso__practical-head {
    flex-direction: column;
    align-items: flex-start;
  }

  .public-hero__identity {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.85rem;
  }
}

/* Source: /react-source/components/association-profile-feeds.css */
/* Actualités - fil chronologique éditorial */
.asso-news-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
}

.asso-news-timeline__item {
  display: grid;
  grid-template-columns: 1.5rem minmax(0, 1fr);
  gap: 0.85rem;
  opacity: 0;
  transform: translateY(0.85rem);
  transition:
    opacity 480ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 480ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--asso-news-delay, 0ms);
}

.asso-news-timeline__item.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .asso-news-timeline__item {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

.asso-news-timeline__rail {
  position: relative;
  display: flex;
  justify-content: center;
}

.asso-news-timeline__rail::before {
  content: "";
  position: absolute;
  top: 0.35rem;
  bottom: -0.35rem;
  left: 50%;
  width: 2px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, var(--rm-teal-deep, #007f8b), rgb(0 127 139 / 0.15));
}

.asso-news-timeline__item:last-child .asso-news-timeline__rail::before {
  bottom: 1.5rem;
}

.asso-news-timeline__dot {
  position: relative;
  z-index: 1;
  width: 0.75rem;
  height: 0.75rem;
  margin-top: 1.15rem;
  border-radius: 999px;
  background: var(--rm-teal-deep, #007f8b);
  box-shadow: 0 0 0 4px rgb(0 127 139 / 0.15);
}

.asso-news-timeline__card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(7rem, 11rem);
  gap: 1rem;
  align-items: stretch;
  margin-bottom: 0.85rem;
  padding: 1rem 1.1rem;
  border-radius: 1rem;
  background: #fff;
  border: 1px solid rgb(16 35 26 / 0.08);
  text-decoration: none;
  color: inherit;
  box-shadow: 0 8px 24px rgb(16 35 26 / 0.04);
  transition:
    transform 220ms ease,
    border-color 220ms ease,
    box-shadow 220ms ease;
}

.asso-news-timeline__card:hover {
  transform: translateX(4px);
  border-color: rgb(0 127 139 / 0.28);
  box-shadow: 0 14px 32px rgb(0 127 139 / 0.1);
}

.asso-news-timeline__copy {
  display: grid;
  gap: 0;
  min-width: 0;
  align-content: start;
}

.asso-news-timeline__time {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 750;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--rm-teal-deep, #007f8b);
}

.asso-news-timeline__title {
  margin: 0.35rem 0 0;
  font-family: var(--ds-font-display);
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: #10231a;
}

.asso-news-timeline__excerpt {
  margin: 0.55rem 0 0;
  font-size: 0.92rem;
  line-height: 1.5;
  color: #5b6b63;
}

.asso-news-timeline__cta {
  display: inline-block;
  margin-top: 0.75rem;
  font-size: 0.875rem;
  font-weight: 750;
  color: var(--rm-teal-deep, #007f8b);
}

.asso-news-timeline__photo,
.asso-news-timeline__photo-fallback {
  width: 100%;
  height: 100%;
  min-height: 7.5rem;
  align-self: stretch;
  border-radius: 0.75rem;
  object-fit: cover;
  object-position: center top;
}

.asso-news-timeline__photo-fallback {
  background:
    linear-gradient(145deg, rgb(0 127 139 / 0.12), rgb(249 189 103 / 0.18)),
    #eef6f1;
  display: grid;
  place-items: center;
}

.asso-news-timeline__photo-fallback span {
  width: 2.5rem;
  height: 2px;
  background: var(--rm-teal-deep, #007f8b);
  opacity: 0.45;
}

/* Bénévolat - tableau de missions / cartes action */
.asso-volunteer-board {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
}

.asso-volunteer-board__item {
  opacity: 0;
  transform: translateY(1.35rem);
}

.asso-volunteer-board.is-revealed .asso-volunteer-board__item {
  animation: asso-volunteer-slide-up 620ms cubic-bezier(0.22, 1, 0.36, 1)
    var(--reveal-delay, 0ms) both;
}

@keyframes asso-volunteer-slide-up {
  from {
    opacity: 0;
    transform: translateY(1.35rem);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .asso-volunteer-board__item,
  .asso-volunteer-board.is-revealed .asso-volunteer-board__item {
    animation: none !important;
    opacity: 1;
    transform: none;
  }
}

.asso-volunteer-board--compact {
  gap: 0.7rem;
}

.asso-volunteer-board--compact .asso-volunteer-board__card {
  grid-template-columns: 1fr;
  min-height: 0;
  border-radius: 0.9rem;
}

.asso-volunteer-board--compact .asso-volunteer-board__media {
  height: 7.5rem;
  min-height: 7.5rem;
}

.asso-volunteer-board--compact .asso-volunteer-board__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.asso-volunteer-board--compact .asso-volunteer-board__media-fallback {
  height: 7.5rem;
  min-height: 7.5rem;
}

.asso-volunteer-board--compact .asso-volunteer-board__body {
  padding: 0.85rem 0.9rem 1rem;
  gap: 0.35rem;
}

.asso-volunteer-board--compact .asso-volunteer-board__title {
  font-size: 1.05rem;
}

.asso-volunteer-board--compact .asso-volunteer-board__excerpt {
  font-size: 0.82rem;
}

.asso-volunteer-board--compact .asso-volunteer-board__cta {
  margin-top: 0.25rem;
  font-size: 0.82rem;
}

.asso-volunteer-board__card {
  display: grid;
  grid-template-columns: minmax(9rem, 14rem) minmax(0, 1fr);
  min-height: 11.5rem;
  overflow: hidden;
  border-radius: 1.15rem;
  background: #10231a;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 16px 36px rgb(16 35 26 / 0.16);
  transition:
    transform 240ms cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 240ms ease;
}

.asso-volunteer-board__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 44px rgb(16 35 26 / 0.22);
}

.asso-volunteer-board__media {
  position: relative;
  min-height: 100%;
  overflow: hidden;
}

.asso-volunteer-board__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.asso-volunteer-board__media-fallback {
  display: grid;
  place-items: center;
  height: 100%;
  min-height: 11.5rem;
  background:
    linear-gradient(
      160deg,
      color-mix(in srgb, var(--offer-accent, var(--rm-peach, #fbd6a2)) 70%, #10231a),
      #10231a
    );
  font-family: var(--ds-font-display);
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.asso-volunteer-board__badge {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  background: var(--offer-accent, var(--rm-peach, #fbd6a2));
  color: var(--offer-ink, #10231a);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.asso-volunteer-board__body {
  display: grid;
  align-content: start;
  gap: 0.45rem;
  padding: 1.1rem 1.15rem 1.15rem;
  background:
    linear-gradient(
      135deg,
      rgb(16 35 26 / 0.92),
      color-mix(in srgb, var(--offer-accent, var(--rm-peach, #fbd6a2)) 18%, #10231a)
    );
}

.asso-volunteer-board__eyebrow {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--offer-accent, var(--rm-peach, #fbd6a2));
}

.asso-volunteer-board__title {
  margin: 0;
  font-family: var(--ds-font-display);
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.2;
  color: #fff;
}

.asso-volunteer-board__excerpt {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: rgb(255 255 255 / 0.78);
}

.asso-volunteer-board__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.85rem;
  margin-top: 0.15rem;
  font-size: 0.78rem;
  color: rgb(255 255 255 / 0.65);
}

.asso-volunteer-board__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.45rem;
  font-size: 0.9rem;
  font-weight: 750;
  color: var(--offer-accent, var(--rm-peach, #fbd6a2));
}

.asso-volunteer-board__card:hover .asso-volunteer-board__cta svg {
  transform: translateX(4px);
}

.asso-volunteer-board__cta svg {
  transition: transform 220ms ease;
}

.rm-asso-feed__section--news .rm-asso-feed__eyebrow {
  color: var(--rm-teal-deep, #007f8b);
}

.rm-asso-feed__section--volunteer .rm-asso-feed__eyebrow {
  color: #b45309;
}

.rm-asso-feed__section--volunteer .rm-asso-feed__title {
  color: #10231a;
}

@media (max-width: 720px) {
  .asso-news-timeline__card {
    grid-template-columns: 1fr;
  }

  .asso-news-timeline__photo,
  .asso-news-timeline__photo-fallback {
    min-height: 9rem;
    max-height: 11rem;
  }

  .asso-volunteer-board__card {
    grid-template-columns: 1fr;
  }

  .asso-volunteer-board__media,
  .asso-volunteer-board__media-fallback {
    min-height: 9.5rem;
  }
}

/* Source: /react-source/pages/public-association-detail.css */
.public-asso-detail {
  --asso-detail-cyan-deep: #007f8b;
  --asso-detail-ink: #0b1b14;
  --asso-detail-muted: #53665e;
  width: 100%;
  margin: 0 auto;
  padding: 0.85rem clamp(1.15rem, 3.5vw, 2.5rem) clamp(2.5rem, 6vw, 4rem);
}

/* Profile already pads itself; neutralize so sheet + breadcrumb share one inset. */
.public-asso-detail .rm-asso {
  width: 100%;
  padding-top: 0.35rem;
  padding-left: 0;
  padding-right: 0;
}

.public-asso-detail-banner .public-hero__brand {
  max-width: none;
  width: 100%;
}

.public-asso-detail-banner .public-hero__copy {
  width: 100%;
}

.public-asso-detail-banner .public-hero__chips {
  display: block;
  width: 100%;
}

/*
 * Hero sized to its content (title / lead / chips) so the sheet’s initial
 * position tracks the header. Sticky scroll-over behavior is unchanged.
 */
.public-asso-detail-banner > .public-hero.public-hero--banner {
  min-height: 0;
}

.public-asso-detail-banner .public-hero--banner .public-hero__content {
  padding-bottom: clamp(2.6rem, 5vw, 3.4rem);
}

.public-asso-detail-banner .public-hero__logo--start {
  width: clamp(5rem, 12vw, 6.5rem);
  height: clamp(5rem, 12vw, 6.5rem);
  align-self: start;
}

.public-asso-detail-banner .public-hero__identity {
  align-items: start;
}

.public-asso-detail__hero-monogram {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border-radius: 0.85rem;
  color: #fff;
  background: var(--rm-teal-deep, #007f8b);
  font-family: var(--ds-font-display);
  font-size: clamp(1.5rem, 4vw, 2rem);
  font-weight: 700;
}

.public-asso-detail__skeleton {
  width: 100%;
  margin: 0;
  padding: 0.85rem 0 0;
}

.public-asso-detail__themes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.public-asso-detail__hero-details {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(14rem, 0.55fr);
  gap: 1.25rem 2rem;
  align-items: start;
}

.public-asso-detail__hero-facts {
  display: grid;
  gap: 0.8rem;
  margin: 0;
  padding-left: 1.15rem;
  border-left: 1px solid rgb(255 255 255 / 0.35);
}

.public-asso-detail__hero-facts > div {
  display: grid;
  gap: 0.15rem;
}

.public-asso-detail__hero-facts dt {
  font-size: 0.625rem;
  font-weight: 750;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgb(255 255 255 / 0.68);
}

.public-asso-detail__hero-facts dd {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 750;
  line-height: 1.35;
  color: #fff;
}

@media (max-width: 760px) {
  .public-asso-detail__hero-details {
    grid-template-columns: 1fr;
    gap: 0.85rem;
  }

  .public-asso-detail__hero-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem 1rem;
    padding: 0.75rem 0 0;
    border-top: 1px solid rgb(255 255 255 / 0.3);
    border-left: 0;
  }
}

@media (max-width: 480px) {
  .public-asso-detail__hero-facts {
    grid-template-columns: 1fr;
  }
}

/* Same typographic language as the Mission / Association detail labels. */
.public-asso-detail .rm-asso__section-eyebrow,
.public-asso-detail .rm-asso__info-heading,
.public-asso-detail .rm-asso__story-heading,
.public-asso-detail .rm-asso__rail-eyebrow,
.public-asso-detail .rm-asso-feed__eyebrow {
  font-size: 0.625rem;
  font-weight: 750;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #007f8b;
}

.public-asso-detail .rm-asso__section-title,
.public-asso-detail .rm-asso-feed__title {
  font-weight: 800;
  color: #0b1b14;
}

.public-asso-detail .rm-asso__missions-title {
  font-weight: 800;
  color: #fff;
}

.public-asso-detail .rm-asso__story-lead,
.public-asso-detail .rm-asso__info-value,
.public-asso-detail .rm-asso__info-facts dd,
.public-asso-detail .rm-asso__facts dd {
  color: #2c4037;
  line-height: 1.58;
}

.public-asso-detail .rm-asso__info-facts dd.rm-asso__muted,
.public-asso-detail .rm-asso__facts dd.rm-asso__muted {
  color: #87968f;
  font-weight: 500;
}

.public-asso-detail .rm-asso__info-facts dt,
.public-asso-detail .rm-asso__facts dt,
.public-asso-detail .rm-asso__rail-label {
  font-size: 0.625rem;
  font-weight: 750;
  letter-spacing: 0.06em;
  color: #87968f;
}

/* Source: /react-source/pages/public-post-detail.css */
.public-post-detail {
  width: 100%;
}

.rm-post {
  --rm-green: var(--rm-teal-deep, #007f8b);
  --rm-ink: #10231a;
  --rm-muted: #5b6b63;
  --rm-gold: var(--rm-peach, #fbd6a2);
  --rm-post-breadcrumb-height: 0px;
  --rm-post-gap: 1.25rem;
  --rm-post-sticky-gap: var(--rm-post-gap);
  --rm-post-sticky-top: calc(
    var(--rm-post-breadcrumb-height) + var(--rm-post-sticky-gap)
  );
  --rm-post-card-pad: 1.2rem 1.3rem 1.3rem;
  --rm-post-radius: 1.1rem;
  --rm-post-breadcrumb-bleed: clamp(0.85rem, 2.8vw, 1.65rem);
  width: min(100%, 72rem);
  margin: 0 auto;
  padding: 0 clamp(1.15rem, 3.5vw, 2.5rem) clamp(2.5rem, 6vw, 4rem);
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(16.5rem, 0.78fr);
  gap: var(--rm-post-gap);
  align-items: start;
}

.rm-post__primary {
  display: grid;
  gap: var(--rm-post-gap);
  min-width: 0;
  grid-column: 1;
  grid-row: 2;
}

.rm-post__breadcrumb {
  position: sticky;
  top: 0;
  z-index: 12;
  grid-column: 1 / -1;
  grid-row: 1;
  margin: 0 calc(-1 * var(--rm-post-breadcrumb-bleed));
  padding: 0.7rem 1.05rem;
  border-radius: calc(var(--rm-post-radius) - 0.15rem);
  background: #fff;
  border: 1px solid rgb(16 35 26 / 0.08);
  border-top: 0;
  box-shadow: 0 10px 28px rgb(16 35 26 / 0.04);
}

.rm-post__breadcrumb--stuck {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.rm-post__chrome {
  display: grid;
  gap: var(--rm-post-gap);
}

.rm-post__back {
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--rm-green);
  text-decoration: none;
  cursor: pointer;
}

.rm-post__back:hover {
  text-decoration: underline;
}

.rm-post__hero {
  position: relative;
  padding: 0.9rem 1.05rem;
  border-radius: var(--rm-post-radius);
  background:
    linear-gradient(145deg, rgb(0 127 139 / 0.08), rgb(249 189 103 / 0.1)), #fff;
  box-shadow:
    0 1px 2px rgb(16 35 26 / 0.04),
    0 10px 28px rgb(16 35 26 / 0.05);
  overflow: hidden;
}

.rm-post__hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 2px;
  background: linear-gradient(
    90deg,
    var(--rm-teal-deep, #007f8b),
    var(--rm-peach, #fbd6a2),
    var(--rm-rose-deep, #fb626b)
  );
}

.rm-post--offer .rm-post__hero::after {
  display: none;
}

.rm-post__identity {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.75rem 0.9rem;
  align-items: center;
}

.rm-post__identity--with-apply {
  grid-template-columns: auto minmax(0, 1fr) auto;
}

.rm-post__thumb {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 0.7rem;
  overflow: hidden;
  background: #eef6f1;
  border: 1px solid rgb(16 35 26 / 0.08);
  flex-shrink: 0;
}

.rm-post__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.rm-post__thumb--logo {
  padding: 0.3rem;
  background: #fff;
}

.rm-post__thumb--logo img {
  object-fit: contain;
}

.rm-post__thumb--fallback {
  display: grid;
  place-items: center;
}

.rm-post__thumb--fallback span {
  font-family: var(--ds-font-display);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--rm-green);
}

.rm-post__hero-copy {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
}

.rm-post__eyebrow,
.rm-post__section-eyebrow {
  margin: 0;
  font-size: 0.625rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rm-green);
}

.rm-post__eyebrow--back {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: 0.625rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rm-green);
  cursor: pointer;
  transition: color 180ms ease;
}

.rm-post__eyebrow--back:hover {
  color: #055c2c;
}

.rm-post__eyebrow-icon {
  width: 0.85rem;
  height: 0.85rem;
  flex-shrink: 0;
  transition: transform 220ms ease;
}

.rm-post__eyebrow--back:hover .rm-post__eyebrow-icon {
  transform: translateX(-2px);
}

.rm-post__title {
  margin: 0;
  font-family: var(--ds-font-display);
  font-size: clamp(1.25rem, 2.4vw, 1.7rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.18;
  color: var(--rm-ink);
}

.rm-post__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem 0.35rem;
  margin: 0.05rem 0 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--rm-muted);
}

.rm-post__meta-sep {
  opacity: 0.55;
}

.rm-post__apply {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

.rm-post__apply--hero {
  margin: 0;
  justify-self: end;
  align-self: center;
}

@media (max-width: 560px) {
  .rm-post__identity--with-apply {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .rm-post__identity--with-apply .rm-post__apply--hero {
    grid-column: 1 / -1;
    justify-self: end;
  }
}

.rm-post__apply--story {
  margin-top: 1.25rem;
}

.rm-post__apply--nearby {
  margin-bottom: 1.15rem;
}

.rm-post__apply--aside {
  margin-bottom: 0.85rem;
}

.rm-post__apply .rm-btn {
  width: auto;
  min-width: 9.5rem;
  justify-content: center;
}

.rm-post__main {
  display: grid;
  gap: var(--rm-post-gap);
  min-width: 0;
}

.rm-post__aside {
  position: sticky;
  top: var(--rm-post-sticky-top);
  z-index: 8;
  align-self: start;
  grid-column: 2;
  grid-row: 2;
  width: 100%;
  min-width: 0;
}

.rm-post__story-cover {
  display: block;
  width: 100%;
  max-height: 20rem;
  margin: 0 0 1.1rem;
  border-radius: 0.85rem;
  object-fit: cover;
  object-position: center top;
  background: #eef6f1;
}

.rm-post__story,
.rm-post__nearby,
.rm-post__asso-card {
  padding: var(--rm-post-card-pad);
  border-radius: var(--rm-post-radius);
  background: #fff;
  border: 1px solid rgb(16 35 26 / 0.08);
  box-shadow: 0 10px 28px rgb(16 35 26 / 0.04);
}

.rm-post__asso-card {
  overflow: visible;
}

.rm-post__section-title {
  margin: 0.3rem 0 0.85rem;
  font-family: var(--ds-font-display);
  font-size: clamp(1.25rem, 2.2vw, 1.55rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--rm-ink);
}

.rm-post__body {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.65;
  color: #314039;
  white-space: pre-wrap;
}

.rm-post__body p {
  margin: 0 0 0.9rem;
}

.rm-post__body p:last-child {
  margin-bottom: 0;
}

.rm-post__body a {
  color: var(--rm-green);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.14em;
}

.rm-post__link {
  margin-top: 1.1rem;
}

.rm-post__contact {
  margin: 1.25rem 0 0;
  padding: 0.95rem 1.05rem;
  border-radius: 0.85rem;
  background: rgb(249 189 103 / 0.16);
  font-size: 0.95rem;
  font-weight: 650;
  color: #5a3a0a;
}

.rm-post__contact a {
  color: #8a4b08;
  font-weight: 750;
  text-decoration: none;
}

.rm-post__contact a:hover {
  text-decoration: underline;
}

.rm-post__muted,
.rm-post__empty {
  margin: 0;
  font-size: 0.9375rem;
  color: var(--rm-muted);
}

.rm-post__nearby-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.65rem 1rem;
  margin-bottom: 1rem;
}

.rm-post__nearby-header .rm-post__section-title {
  margin-bottom: 0;
}

.rm-post__nearby-link {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--rm-green);
  text-decoration: none;
}

.rm-post__nearby-link:hover {
  text-decoration: underline;
}

.rm-post__nearby-grid {
  gap: 0.75rem;
  align-items: start;
}

.rm-post__nearby-grid.volunteer-offer-list--grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 720px) {
  .rm-post__nearby-grid.volunteer-offer-list--grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.rm-post__nearby-grid .volunteer-offer-card-wrap--grid,
.rm-post__nearby-grid .volunteer-offer-card--grid {
  height: auto;
  min-height: 0;
  align-self: start;
}

.rm-post__nearby-grid .volunteer-offer-card--grid {
  align-content: start;
}

.rm-post__nearby-grid .volunteer-offer-card--grid .volunteer-offer-card__cover,
.rm-post__nearby-grid
  .volunteer-offer-card--communique
  .volunteer-offer-card__cover,
.rm-post__nearby-grid
  .volunteer-offer-card--communique
  .volunteer-offer-card__cover--fallback {
  height: 6.25rem;
  aspect-ratio: auto;
}

.rm-post__nearby-grid
  .volunteer-offer-card--communique
  .volunteer-offer-card__body {
  gap: 0.35rem;
  padding: 0.65rem 0.75rem 0.75rem;
  align-content: start;
}

.rm-post__nearby-grid
  .volunteer-offer-card--communique
  .volunteer-offer-card__title {
  min-height: 0;
  font-size: 0.9rem;
  line-height: 1.25;
}

.rm-post__nearby-grid
  .volunteer-offer-card--communique
  .volunteer-offer-card__meta {
  margin-top: 0;
}

.rm-post__nearby-grid .volunteer-offer-card__media-badge {
  top: 0.5rem;
  left: 0.5rem;
  padding: 0.28rem 0.5rem 0.22rem;
  font-size: 0.6rem;
}

.rm-post__nearby-grid .volunteer-offer-card__tag {
  padding: 0.22rem 0.45rem 0.16rem;
  font-size: 0.62rem;
}

.rm-post__nearby-grid .volunteer-offer-card__meta time {
  font-size: 0.72rem;
}

@media (max-width: 520px) {
  .rm-post__nearby-grid
    .volunteer-offer-card--grid
    .volunteer-offer-card__cover,
  .rm-post__nearby-grid
    .volunteer-offer-card--communique
    .volunteer-offer-card__cover,
  .rm-post__nearby-grid
    .volunteer-offer-card--communique
    .volunteer-offer-card__cover--fallback {
    height: 5.25rem;
  }
}

.rm-post__asso-identity {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
  margin: 0.15rem 0 0.75rem;
  text-decoration: none;
  color: inherit;
}

.rm-post__asso-identity:hover .rm-post__asso-name,
.rm-post__asso-identity:hover .rm-post__asso-cta {
  color: var(--rm-green);
}

.rm-post__asso-logo-wrap {
  display: grid;
  place-items: center;
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 0.75rem;
  overflow: hidden;
  background: #eef6f1;
  border: 1px solid rgb(16 35 26 / 0.08);
}

.rm-post__asso-logo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.rm-post__asso-monogram {
  font-family: var(--ds-font-display);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--rm-green);
}

.rm-post__asso-copy {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
  justify-items: start;
  text-align: left;
}

.rm-post__asso-name {
  font-size: 1rem;
  font-weight: 750;
  color: var(--rm-ink);
}

.rm-post__asso-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--rm-muted);
}

.rm-post__asso-cta-icon {
  width: 0.9rem;
  height: 0.9rem;
  flex-shrink: 0;
  transition: transform 220ms ease;
}

.rm-post__asso-identity:hover .rm-post__asso-cta-icon {
  transform: translateX(2px);
}

.rm-post__asso-started {
  margin: 0 0 0.5rem;
  font-size: 0.75rem;
  font-weight: 650;
  color: var(--rm-muted);
}

.rm-post__asso-desc {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #3d4a44;
}

.rm-post__asso-block {
  display: grid;
  gap: 0.3rem;
  margin-top: 0.75rem;
}

.rm-post__asso-label {
  margin: 0;
  font-size: 0.625rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #9aa59e;
}

.rm-post__asso-value {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: var(--rm-ink);
}

.rm-post__themes {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.rm-post__asso-facts {
  display: grid;
  gap: 0.5rem;
  margin: 0.9rem 0 0;
  padding-top: 0.8rem;
  border-top: 1px solid #eef2f0;
}

.rm-post__asso-facts > div {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
}

.rm-post__asso-facts dt {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.625rem;
  font-weight: 750;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #9aa59e;
}

.rm-post__asso-facts dt .rm-contact-icon {
  --rm-contact-icon-color: var(--rm-green, #007f8b);
  width: 0.95rem;
  height: 0.95rem;
}

.rm-post__asso-facts dd {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--rm-ink);
  word-break: break-word;
}

.rm-post__asso-address {
  white-space: pre-wrap;
}

.rm-post__asso-facts a {
  color: var(--rm-green);
  font-weight: 600;
  text-decoration: none;
}

.rm-post__asso-facts a:hover {
  text-decoration: underline;
}

.rm-post__asso-volunteer {
  display: grid;
  gap: 0.5rem;
  margin-top: 0.9rem;
  padding-top: 0.8rem;
  border-top: 1px solid #eef2f0;
}

.rm-post__asso-volunteer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.rm-post__asso-volunteer-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.3rem;
  height: 1.3rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  background: #fff7ed;
  color: #b45309;
  font-size: 0.6875rem;
  font-weight: 750;
}

.rm-post__asso-offers {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.3rem;
}

.rm-post__asso-offer {
  display: grid;
  gap: 0.12rem;
  padding: 0.5rem 0.6rem;
  border-radius: 0.6rem;
  background: #f8faf9;
  border: 1px solid #e5ebe7;
  text-decoration: none;
  color: inherit;
}

.rm-post__asso-offer:hover {
  border-color: #cfe0d5;
  background: #f1f6f3;
}

.rm-post__asso-offer:hover .rm-post__asso-offer-title {
  color: var(--rm-green);
}

.rm-post__asso-offer-title {
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--rm-ink);
}

.rm-post__asso-offer-meta {
  font-size: 0.6875rem;
  color: var(--rm-muted);
}

.rm-post__asso-volunteer-link {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--rm-green);
  text-decoration: none;
}

.rm-post__asso-volunteer-link:hover {
  text-decoration: underline;
}

@media (max-width: 960px) {
  .rm-post {
    display: flex;
    flex-direction: column;
    gap: var(--rm-post-gap);
  }

  .rm-post__breadcrumb {
    order: 0;
  }

  .rm-post__primary {
    display: contents;
    grid-column: auto;
    grid-row: auto;
  }

  .rm-post__chrome {
    order: 1;
  }

  .rm-post__aside {
    order: 3;
    grid-column: auto;
    grid-row: auto;
    position: static;
  }

  .rm-post__main {
    display: contents;
  }

  .rm-post__story {
    order: 2;
  }

  .rm-post__nearby {
    order: 4;
  }

  .rm-post__chrome {
    display: grid;
    gap: var(--rm-post-gap);
  }
}
.rm-post__gallery {
  position: relative;
}

.rm-post__gallery-nav {
  position: absolute;
  right: 0.75rem;
  bottom: 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.3rem;
  border-radius: 999px;
  color: #fff;
  background: rgb(10 17 14 / 0.78);
}

.rm-post__gallery-nav button {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 50%;
  color: inherit;
  background: rgb(255 255 255 / 0.16);
  cursor: pointer;
}

/* Source: /react-source/pages/public-volunteer-offer-detail.css */
/* Mission detail — luminous cyan/green treatment inspired by the login page. */
.volunteer-offer-detail-shell.background--public {
  --offer-cyan: #00a8b8;
  --offer-cyan-deep: #007f8b;
  --offer-green: #077b3a;
  --offer-lime: #b2ff59;
  --offer-ink: #0b1b14;
  --offer-muted: #53665e;
}

.volunteer-offer-detail-shell .public-post-detail {
  position: relative;
  isolation: isolate;
}

.volunteer-offer-detail-shell .rm-post--offer {
  --rm-green: var(--offer-cyan-deep);
  --rm-ink: var(--offer-ink);
  --rm-muted: var(--offer-muted);
  --rm-post-gap: 1.4rem;
  --rm-post-radius: 1.25rem;
  --rm-post-card-pad: clamp(1.25rem, 2.4vw, 1.75rem);
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__hero,
.volunteer-offer-detail-shell .rm-post--offer .rm-post__story,
.volunteer-offer-detail-shell .rm-post--offer .rm-post__nearby,
.volunteer-offer-detail-shell .rm-post--offer .rm-post__asso-card {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
}

.volunteer-offer-detail-shell .rm-post__aside {
  position: static;
}

.volunteer-offer-detail-shell .rm-post__breadcrumb {
  position: sticky;
  top: 0;
  z-index: 12;
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__breadcrumb {
  background: rgb(255 255 255 / 0.9);
  border-color: rgb(7 123 58 / 0.12);
  box-shadow: 0 12px 32px rgb(15 40 30 / 0.07);
  backdrop-filter: blur(14px);
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__hero,
.volunteer-offer-detail-shell .rm-post--offer .rm-post__story,
.volunteer-offer-detail-shell .rm-post--offer .rm-post__nearby,
.volunteer-offer-detail-shell .rm-post--offer .rm-post__asso-card {
  border: 1px solid rgb(7 123 58 / 0.14);
  background: rgb(255 255 255 / 0.96);
  box-shadow:
    0 0 0 1px rgb(255 255 255 / 0.72) inset,
    0 20px 48px rgb(15 40 30 / 0.08),
    0 0 46px rgb(62 187 200 / 0.07);
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__hero {
  padding: clamp(1.2rem, 2.7vw, 1.8rem);
  background:
    radial-gradient(circle at 88% 12%, rgb(178 255 89 / 0.24), transparent 38%),
    linear-gradient(
      145deg,
      rgb(62 187 200 / 0.12),
      rgb(255 255 255 / 0.96) 52%
    ),
    #fff;
  overflow: hidden;
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__identity {
  grid-template-columns: minmax(0, 1fr);
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__identity--with-apply {
  grid-template-columns: minmax(0, 1fr) auto;
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__thumb {
  display: none;
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__eyebrow,
.volunteer-offer-detail-shell .rm-post--offer .rm-post__section-eyebrow {
  color: var(--offer-cyan-deep);
  letter-spacing: 0.15em;
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__title {
  font-size: clamp(1.4rem, 2.7vw, 2.05rem);
  font-weight: 800;
  line-height: 1.08;
  overflow-wrap: anywhere;
  text-wrap: balance;
  background: linear-gradient(
    110deg,
    var(--offer-ink),
    var(--offer-cyan-deep) 54%,
    #2f9e3e
  );
  background-clip: text;
  color: transparent;
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__meta {
  color: var(--offer-muted);
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__story-cover {
  border-radius: 1rem;
  box-shadow: 0 12px 30px rgb(15 40 30 / 0.1);
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__body {
  color: #2c4037;
  line-height: 1.72;
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__section-title,
.volunteer-offer-detail-shell .rm-post--offer .rm-post__asso-name {
  color: var(--offer-ink);
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__nearby-link,
.volunteer-offer-detail-shell .rm-post--offer .rm-post__asso-cta,
.volunteer-offer-detail-shell .rm-post--offer .rm-post__asso-facts a {
  color: var(--offer-cyan-deep);
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__nearby-header {
  align-items: flex-start;
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__nearby-link {
  margin-left: auto;
  align-self: flex-start;
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__asso-logo-wrap {
  border-color: rgb(143 214 58 / 0.38);
  background: #fff;
  box-shadow: 0 8px 22px rgb(0 168 184 / 0.1);
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__asso-card {
  background:
    radial-gradient(circle at 88% 12%, rgb(178 255 89 / 0.24), transparent 38%),
    linear-gradient(
      145deg,
      rgb(62 187 200 / 0.12),
      rgb(255 255 255 / 0.96) 52%
    ),
    #fff;
}

.volunteer-offer-detail-shell
  .rm-post--offer
  .rm-post__asso-card
  > .rm-post__section-title {
  margin-top: 0.35rem;
  font-weight: 800;
  background: linear-gradient(
    110deg,
    var(--offer-ink),
    var(--offer-cyan-deep) 58%,
    #2f9e3e
  );
  background-clip: text;
  color: transparent;
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__asso-identity {
  margin-bottom: 0.75rem;
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__asso-started {
  display: none;
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__asso-desc {
  color: #34483f;
  line-height: 1.58;
}

.volunteer-offer-detail-shell .rm-post--offer .rm-post__asso-facts {
  border-color: rgb(7 123 58 / 0.1);
}

@media (max-width: 960px) {
  .volunteer-offer-detail-shell .rm-post--offer {
    width: 100%;
  }

  .volunteer-offer-detail-shell .rm-post--offer .rm-post__aside {
    position: static;
  }
}

@media (max-width: 560px) {
  .volunteer-offer-detail-shell .rm-post--offer {
    --rm-post-gap: 1rem;
    --rm-post-card-pad: 1.05rem;
    --rm-post-radius: 1rem;
    max-width: 100%;
    padding-inline: 0.85rem;
    overflow-wrap: anywhere;
  }

  .volunteer-offer-detail-shell .rm-post--offer .rm-post__breadcrumb {
    margin-inline: -0.35rem;
    padding-inline: 0.75rem;
  }

  .volunteer-offer-detail-shell .rm-post--offer .rm-post__hero {
    padding: 1.1rem;
  }

  .volunteer-offer-detail-shell .rm-post--offer .rm-post__identity,
  .volunteer-offer-detail-shell .rm-post--offer .rm-post__identity--with-apply {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem;
  }

  .volunteer-offer-detail-shell
    .rm-post--offer
    .rm-post__nearby-grid.volunteer-offer-list--grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .volunteer-offer-detail-shell .rm-post--offer .rm-post__nearby-header {
    align-items: flex-start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .volunteer-offer-detail-shell .rm-post--offer *,
  .volunteer-offer-detail-shell .rm-post--offer *::before,
  .volunteer-offer-detail-shell .rm-post--offer *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

/* Source: /react-source/pages/public-list.css */
.public-list {
  width: 100%;
  margin: 0 auto;
  padding: 0.85rem clamp(1.15rem, 3.5vw, 2.5rem) clamp(2.5rem, 6vw, 4rem);
}

.public-list__loading-search {
  margin-bottom: 1.5rem;
}

.public-list__results-bar {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 0 1.15rem;
}

.public-list__count {
  margin: 0;
  font-family: var(--ds-font-display);
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #10231a;
}

.public-list__empty {
  margin: 0;
  padding: 2rem 1.25rem;
  border: 1px dashed rgb(7 123 58 / 0.28);
  border-radius: 1rem;
  font-size: 0.95rem;
  line-height: 1.5;
  color: #5b6b63;
  background:
    linear-gradient(160deg, rgb(7 123 58 / 0.05), rgb(249 189 103 / 0.08)),
    #fff;
  text-align: center;
}
.public-list__pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin: 1.5rem 0 0;
}

.public-list__pagination span {
  color: #40534a;
  font-size: 0.85rem;
  font-weight: 700;
}

@media (max-width: 560px) {
  .public-list__pagination {
    flex-wrap: wrap;
  }
}

/* Source: /react-source/pages/public-news.css */
.public-news {
  width: 100%;
  margin: 0 auto;
  padding: 0.85rem clamp(1.15rem, 3.5vw, 2.5rem) 3rem;
}

.public-news .news-card {
  border-color: rgb(16 35 26 / 0.08);
  box-shadow:
    0 1px 2px rgb(16 35 26 / 0.04),
    0 10px 28px rgb(16 35 26 / 0.08),
    0 22px 48px rgb(16 35 26 / 0.06);
}

.public-news .news-card:hover,
.public-news .news-card:focus-visible {
  border-color: #cfe8d8;
  box-shadow:
    0 2px 4px rgb(16 35 26 / 0.05),
    0 14px 36px rgb(16 35 26 / 0.12),
    0 28px 56px rgb(16 35 26 / 0.08);
}

.public-news .news-card--public {
  border: 0;
  box-shadow: 0 8px 28px rgb(16 35 26 / 0.1);
}

.public-news__pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin: 1.75rem auto 0;
}

.public-news__pagination p {
  margin: 0;
  font-weight: 700;
  color: #526159;
}

.public-news__back {
  margin: 0 0 1rem;
  font-size: 0.875rem;
}

.public-news__back a,
.public-news__back-btn {
  color: var(--ds-color-primary);
  font-weight: 600;
  text-decoration: none;
}

.public-news__back-btn {
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  cursor: pointer;
}

.public-news__back a:hover,
.public-news__back-btn:hover {
  text-decoration: underline;
}

.news-card--detail {
  cursor: default;
  padding: 1.25rem 1.25rem 1.35rem;
}

.news-card--detail:hover {
  transform: none;
  border-color: #e5e7eb;
  box-shadow: 0 8px 28px rgb(15 23 42 / 0.05);
}

.news-card--detail .news-card__photo {
  width: calc(100% + 2.5rem);
  margin-left: -1.25rem;
  margin-right: -1.25rem;
}

.public-news--embedded {
  width: min(100%, 40rem);
  margin-top: 1.5rem;
  padding-top: 0;
}

.public-news--embedded .public-news__lead a {
  color: var(--ds-color-primary);
  font-weight: 600;
  text-decoration: none;
}

.public-news--embedded .public-news__lead a:hover {
  text-decoration: underline;
}

/* Source: /react-source/pages/public-volunteers.css */
.public-volunteers {
  width: 100%;
  margin: 0 auto;
  padding: 0.85rem clamp(1rem, 3vw, 2rem) 3rem;
}

.public-volunteers__header {
  margin-bottom: 1.25rem;
}

.public-volunteers__title {
  margin: 0;
  font-size: clamp(1.75rem, 3vw, 2.25rem);
}

.public-volunteers__lead {
  margin: 0.5rem 0 0;
  font-size: 1rem;
}

.public-volunteers__loading-search {
  margin-bottom: 1.5rem;
}

.public-volunteers__results-bar {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin: -0.35rem 0 1.15rem;
}

.public-volunteers__count {
  margin: 0;
  font-family: var(--ds-font-display);
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #10231a;
}

.public-volunteers__page-meta {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 650;
  color: #5b6b63;
}

.public-volunteers__pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.75rem 1rem;
  margin-top: 1.75rem;
}

.public-volunteers__pagination-status {
  margin: 0;
  min-width: 4.5rem;
  text-align: center;
  font-size: 0.9rem;
  font-weight: 700;
  color: #314039;
}

.public-volunteers__empty {
  margin: 0;
  padding: 1.5rem 0;
  font-size: 1rem;
  color: #5b6b63;
}

.public-volunteers__empty a {
  color: var(--rm-teal-deep, #007f8b);
  font-weight: 700;
  text-decoration: none;
}

.public-volunteers__empty a:hover {
  text-decoration: underline;
}

.public-volunteers__back {
  margin: 0 0 1rem;
  font-size: 0.875rem;
}

.public-volunteers__back a {
  color: #067b3a;
  font-weight: 600;
  text-decoration: none;
}

.public-volunteers__back a:hover {
  text-decoration: underline;
}

.public-volunteers__article {
  overflow: hidden;
  padding: 1.5rem 1.5rem 2rem;
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
  background: rgb(255 255 255 / 0.94);
  box-shadow: 0 12px 36px rgb(15 23 42 / 0.06);
}

.public-volunteers__cover {
  display: block;
  width: calc(100% + 3rem);
  max-width: none;
  height: auto;
  max-height: 22rem;
  object-fit: cover;
  object-position: center top;
  margin: -1.5rem -1.5rem 1.25rem;
  border-bottom: 1px solid #e5e7eb;
}

.public-volunteers__eyebrow {
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.public-volunteers__eyebrow a {
  color: var(--rm-rose-deep, #fb626b);
  text-decoration: none;
}

.public-volunteers__eyebrow a:hover {
  text-decoration: underline;
}

.public-volunteers__meta {
  margin: 0.4rem 0 0;
  font-size: 0.875rem;
  color: #6b7280;
}

.public-volunteers__body {
  margin-top: 1.5rem;
  display: grid;
  gap: 1rem;
  font-size: 1rem;
  line-height: 1.65;
  color: #1f2937;
}

.public-volunteers__body p {
  margin: 0;
  white-space: pre-wrap;
}

.public-volunteers__contact {
  margin: 1.5rem 0 0;
  padding-top: 1rem;
  border-top: 1px solid #e5e7eb;
  font-size: 0.9375rem;
  font-weight: 600;
}

.public-volunteers__contact a {
  color: #067b3a;
}

.public-volunteers--embedded {
  width: min(100%, 56rem);
  margin-top: 1.5rem;
  padding-top: 0;
}

.public-volunteers--embedded .public-volunteers__lead a {
  color: #067b3a;
  font-weight: 600;
  text-decoration: none;
}

.public-volunteers--detail {
  width: min(100%, 52rem);
  margin: 0 auto;
  padding: 1.5rem 1rem 3rem;
}

/* Source: /react-source/pages/legal-page.css */
.legal-page {
  width: min(100%, 42rem);
  margin: 0 auto;
  padding: 1.5rem 1rem 3rem;
}

.legal-page__back {
  margin: 0 0 1rem;
  font-size: 0.875rem;
}

.legal-page__back a {
  color: var(--ds-color-primary);
  font-weight: 600;
  text-decoration: none;
}

.legal-page__back a:hover {
  text-decoration: underline;
}

.legal-page__title {
  margin: 0;
  font-family: var(--ds-font-display);
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: 750;
  letter-spacing: -0.03em;
  color: var(--ds-color-text);
}

.legal-page__lead {
  margin: 0.65rem 0 1.75rem;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--ds-color-label);
}

.legal-page__updated {
  margin: -1rem 0 1.75rem;
  color: #6b7280;
  font-size: 0.8125rem;
}

.legal-page__notice {
  padding: 0.85rem 1rem;
  border-left: 3px solid #e39b14;
  background: #fff9e9;
}

.legal-page__section {
  margin: 0 0 1.5rem;
}

.legal-page__section h2 {
  margin: 0 0 0.5rem;
  font-size: 1.0625rem;
  font-weight: 750;
  color: var(--ds-color-primary);
}

.legal-page__section p,
.legal-page__section li {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: #1f2937;
}

.legal-page__section ul {
  margin: 0;
  padding-left: 1.2rem;
  display: grid;
  gap: 0.45rem;
}

.legal-page__section a {
  color: var(--ds-color-primary);
  font-weight: 600;
}

.legal-page__section a:hover {
  text-decoration-thickness: 2px;
}

/* Source: /react-source/components/theme/association-theme.css */
.theme-filter-btn {
  --theme-color: var(--rm-teal-deep, #007f8b);
  display: grid;
  grid-template-columns: 0.3rem minmax(0, 1fr);
  align-items: center;
  gap: 0.6rem;
  min-width: 0;
  min-height: 2.7rem;
  padding: 0.5rem 0.7rem 0.5rem 0.5rem;
  border: 1px solid rgb(16 35 26 / 0.1);
  border-radius: 0.7rem;
  background: #fff;
  color: #10231a;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition:
    background 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
}

.theme-filter-btn__mark {
  align-self: stretch;
  width: 0.35rem;
  min-height: 1.35rem;
  border-radius: 999px;
  background: linear-gradient(
    180deg,
    var(--theme-tint, color-mix(in srgb, var(--theme-color) 42%, #fff)) 0%,
    var(--theme-color) 100%
  );
  transition: transform 160ms ease, box-shadow 160ms ease;
}

.theme-filter-btn__label {
  min-width: 0;
  font-size: 0.875rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.theme-filter-btn:hover {
  border-color: color-mix(in srgb, var(--theme-color) 42%, rgb(16 35 26 / 0.12));
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgb(16 35 26 / 0.05);
}

.theme-filter-btn:hover .theme-filter-btn__mark {
  transform: scaleY(1.06);
}

.theme-filter-btn--active {
  border-color: color-mix(in srgb, var(--theme-color) 55%, transparent);
  background: color-mix(in srgb, var(--theme-color) 12%, #fff);
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb, var(--theme-color) 18%, transparent),
    0 8px 18px rgb(16 35 26 / 0.04);
}

.theme-filter-btn--active .theme-filter-btn__mark {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--theme-color) 22%, transparent);
}

.theme-filter-btn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--theme-color) 55%, transparent);
  outline-offset: 2px;
}

.theme-tag {
  --theme-color: var(--rm-teal-deep, #007f8b);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  min-height: 1.7rem;
  padding: 0.28rem 0.65rem;
  border-radius: 0.55rem;
  background: color-mix(in srgb, var(--theme-color) 14%, #fff);
  color: color-mix(in srgb, var(--theme-color) 72%, #10231a);
  font-family: var(--ds-font-display, "Inter", sans-serif);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.15;
  white-space: nowrap;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--theme-color) 22%, transparent);
}

/* Source: /react-source/components/service-tile.css */
.service-tile {
  --service-tile-accent: #077b3a;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 0;
  min-height: clamp(16rem, 28vw, 20rem);
  overflow: hidden;
  border-radius: 1.55rem;
  background: #fff;
  box-shadow: 0 10px 32px rgb(15 23 42 / 0.07);
}

.service-tile--photo-right {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
}

.service-tile--photo-right .service-tile__media {
  order: 2;
}

.service-tile--photo-right .service-tile__body {
  order: 1;
}

.service-tile__media {
  position: relative;
  display: block;
  min-height: 14rem;
  overflow: hidden;
}

.service-tile__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transform: scale(1.02);
  transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
}

.service-tile:hover .service-tile__media img {
  transform: scale(1.08);
}

.service-tile__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    transparent 55%,
    rgb(255 255 255 / 0.08)
  );
  pointer-events: none;
}

.service-tile__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.85rem;
  padding: clamp(1.35rem, 3vw, 2.25rem);
}

.service-tile__title {
  margin: 0;
  font-family: var(--ds-font-display);
  font-size: clamp(1.55rem, 3vw, 2rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.03em;
  color: #10231a;
}

.service-tile__title a {
  color: inherit;
  text-decoration: none;
}

.service-tile__title a:hover {
  color: var(--service-tile-accent);
}

.service-tile__description {
  margin: 0;
  max-width: 28rem;
  font-size: 1rem;
  line-height: 1.55;
  color: #4b5563;
}

.service-tile--green {
  --service-tile-accent: var(--rm-teal-deep, #007f8b);
}

.service-tile--gold {
  --service-tile-accent: var(--rm-peach-deep, #e9a85c);
}

.service-tile--red {
  --service-tile-accent: var(--rm-rose-deep, #fb626b);
}

.service-tile--sky {
  --service-tile-accent: var(--rm-mint-deep, #3ebbc8);
}

.service-tile--compact {
  grid-template-columns: 1fr;
  min-height: 0;
  border-radius: 1rem;
  box-shadow: 0 2px 8px rgb(0 0 0 / 0.05);
}

.service-tile--compact.service-tile--photo-right {
  grid-template-columns: 1fr;
}

.service-tile--compact .service-tile__media,
.service-tile--compact.service-tile--photo-right .service-tile__media {
  order: initial;
  min-height: 7.5rem;
  aspect-ratio: 16 / 9;
}

.service-tile--compact .service-tile__body,
.service-tile--compact.service-tile--photo-right .service-tile__body {
  order: initial;
  gap: 0.55rem;
  padding: 0.95rem 1rem 1.1rem;
}

.service-tile--compact .service-tile__title {
  font-size: 1.15rem;
  letter-spacing: -0.02em;
}

.service-tile--compact .service-tile__description {
  max-width: none;
  font-size: 0.875rem;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.service-tile--compact .service-tile__cta.rm-btn {
  align-self: flex-end;
  margin-top: 0.25rem;
}

.service-tile--compact .service-tile__media::after {
  background: linear-gradient(
    180deg,
    transparent 60%,
    rgb(255 255 255 / 0.1)
  );
}

.service-tile--icon .service-tile__media {
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--service-tile-accent) 14%, #fff);
}

.service-tile--icon .service-tile__media::after {
  display: none;
}

.service-tile--icon .service-tile__icon {
  display: block;
  width: clamp(3.25rem, 8vw, 4.5rem);
  height: clamp(3.25rem, 8vw, 4.5rem);
  background: var(--service-tile-accent);
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: contain;
  -webkit-mask-position: center;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1);
}

.service-tile--icon:hover .service-tile__icon {
  transform: scale(1.08);
}

.service-tile--icon.service-tile--compact .service-tile__media {
  min-height: 6.5rem;
  aspect-ratio: 16 / 7;
}

@media (max-width: 820px) {
  .service-tile,
  .service-tile--photo-right {
    grid-template-columns: 1fr;
  }

  .service-tile--photo-right .service-tile__media,
  .service-tile--photo-right .service-tile__body {
    order: initial;
  }

  .service-tile__media {
    min-height: 12rem;
  }

  .service-tile--compact .service-tile__media {
    min-height: 6.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .service-tile__media img,
  .service-tile--icon .service-tile__icon {
    transition: none;
  }

  .service-tile:hover .service-tile__media img {
    transform: scale(1.02);
  }

  .service-tile--icon:hover .service-tile__icon {
    transform: none;
  }
}

/* Source: /react-source/components/volunteer-apply-modal.css */
.volunteer-apply {
  display: grid;
  gap: 1rem;
}

.volunteer-apply__lead {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: #5b6b63;
}

.volunteer-apply__lead strong {
  color: #10231a;
  font-weight: 650;
}

.volunteer-apply__form {
  display: grid;
  gap: 1rem;
}

.volunteer-apply__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.65rem;
}

.volunteer-apply__message {
  margin: 0;
  padding: 0.65rem 0.8rem;
  border-radius: 0.65rem;
  font-size: 0.875rem;
  line-height: 1.4;
}

.volunteer-apply__message--error {
  color: #b42318;
  background: #fef3f2;
  border: 1px solid rgb(180 35 24 / 0.12);
}

.volunteer-apply__success {
  display: grid;
  justify-items: center;
  gap: 0.65rem;
  padding: 0.5rem 0.25rem;
  text-align: center;
}

.volunteer-apply__eyebrow {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #007f8b;
}

.volunteer-apply__success-title {
  margin: 0;
  font-family: var(--ds-font-display);
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #10231a;
}

.volunteer-apply__success-text {
  margin: 0 0 0.5rem;
  max-width: 28rem;
  font-size: 0.95rem;
  line-height: 1.55;
  color: #5b6b63;
}

/* Source: /react-source/pages/volunteer-application-form.css */
.volunteer-app-form-shell .content-layout {
  width: 100%;
  max-width: 58rem;
  margin: 0 auto;
  padding: 1.5rem 1rem 2.75rem;
  box-sizing: border-box;
}

.volunteer-app-form {
  --vaf-ink: #1d1d1b;
  --vaf-muted: #5c6570;
  --vaf-teal: var(--rm-teal-deep, #007f8b);
  --vaf-teal-soft: color-mix(in srgb, var(--rm-teal, #50bac7) 28%, #fff);
  --vaf-peach: var(--rm-peach, #fbd6a2);
  --vaf-peach-soft: #fff6ea;
  --vaf-mint: var(--rm-mint, #b6e5df);
  --vaf-rose: var(--rm-rose, #ffc4ca);
  --vaf-line: color-mix(in srgb, var(--rm-teal-deep, #007f8b) 12%, #e8ecef);
  width: 100%;
  color: var(--vaf-ink);
  text-align: left;
}

.volunteer-app-form__panel {
  overflow: hidden;
  background:
    linear-gradient(180deg, #fff 0%, #fbfffe 100%);
  border: 1px solid var(--vaf-line);
  border-radius: 1.1rem;
  box-shadow: 0 18px 40px rgb(2 40 46 / 0.08);
}

.volunteer-app-form__panel--narrow {
  max-width: 32rem;
  margin: 0 auto;
  padding: 1.25rem 1.35rem;
}

.volunteer-app-form__panel--narrow .volunteer-app-form__footer {
  margin-top: 1rem;
  padding-top: 0;
  border-top: 0;
  justify-content: flex-start;
}

.volunteer-app-form__header {
  position: relative;
  padding: 1.15rem 1.35rem 1.05rem;
  border-bottom: 1px solid var(--vaf-line);
  background:
    radial-gradient(ellipse 50% 80% at 0% 0%, rgb(80 186 199 / 0.18), transparent 55%),
    radial-gradient(ellipse 45% 70% at 100% 0%, rgb(251 214 162 / 0.28), transparent 50%),
    linear-gradient(180deg, #f4fbfb 0%, #fff 100%);
}

.volunteer-app-form__header::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(
    90deg,
    var(--vaf-peach),
    var(--rm-teal, #50bac7),
    var(--vaf-rose),
    var(--vaf-mint)
  );
}

.volunteer-app-form__brand-dots {
  display: inline-flex;
  gap: 0.35rem;
  margin-bottom: 0.45rem;
}

.volunteer-app-form__brand-dots i {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 999px;
}

.volunteer-app-form__brand-dots .is-peach {
  background: var(--vaf-peach);
}

.volunteer-app-form__brand-dots .is-teal {
  background: var(--rm-teal, #50bac7);
}

.volunteer-app-form__brand-dots .is-rose {
  background: var(--vaf-rose);
}

.volunteer-app-form__brand-dots .is-mint {
  background: var(--vaf-mint);
}

.volunteer-app-form__kicker {
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--vaf-teal);
}

.volunteer-app-form__title {
  margin: 0 0 0.35rem;
  font-family: var(--ds-font-display, "Poppins", sans-serif);
  font-size: clamp(1.2rem, 2.4vw, 1.45rem);
  line-height: 1.25;
  font-weight: 700;
  color: var(--vaf-ink);
}

.volunteer-app-form__muted {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--vaf-muted);
}

.volunteer-app-form__org {
  font-weight: 600;
  color: var(--vaf-teal);
}

.volunteer-app-form__form {
  padding: 1.1rem 1.25rem 1.2rem;
}

.volunteer-app-form__columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.9rem;
  align-items: stretch;
}

.volunteer-app-form__block {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  min-width: 0;
  padding: 0.95rem 1rem;
  border: 1px solid var(--vaf-line);
  border-radius: 0.9rem;
  background:
    linear-gradient(180deg, rgb(255 255 255 / 0.96), rgb(244 251 251 / 0.75));
}

.volunteer-app-form__block--docs {
  background:
    radial-gradient(ellipse 70% 60% at 10% 0%, rgb(80 186 199 / 0.12), transparent 55%),
    radial-gradient(ellipse 60% 50% at 100% 100%, rgb(251 214 162 / 0.2), transparent 50%),
    #fff;
}

.volunteer-app-form__block-title {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--vaf-teal);
}

.volunteer-app-form__optional {
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: #98a2b3;
}

.volunteer-app-form__fields {
  display: grid;
  gap: 0.6rem;
}

.volunteer-app-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem;
}

.volunteer-app-form__block .ds-field,
.volunteer-app-form__fields .ds-field,
.volunteer-app-form__row .ds-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}

.volunteer-app-form .ds-field--full {
  grid-column: auto;
}

.volunteer-app-form .ds-field__label {
  font-size: 0.78rem;
  font-weight: 600;
  color: #344054;
}

.volunteer-app-form .ds-control {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid color-mix(in srgb, var(--vaf-teal) 18%, #d8dde3);
  border-radius: 0.65rem;
  padding: 0.5rem 0.7rem;
  font-size: 0.9rem;
  line-height: 1.4;
  color: var(--vaf-ink);
  background: #fff;
  box-shadow: none;
}

.volunteer-app-form .ds-control:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--vaf-teal) 40%, #d8dde3);
}

.volunteer-app-form .ds-control:focus {
  outline: none;
  border-color: var(--vaf-teal);
  box-shadow: 0 0 0 3px var(--ds-focus-ring, rgb(0 127 139 / 0.22));
}

.volunteer-app-form .ds-control:read-only {
  color: var(--vaf-muted);
  background: color-mix(in srgb, var(--vaf-mint) 22%, #fff);
}

.volunteer-app-form__docs {
  display: grid;
  gap: 0.75rem;
}

.volunteer-app-form__doc {
  position: relative;
  display: grid;
  gap: 0.65rem;
  padding: 0.85rem;
  border: 1px dashed color-mix(in srgb, var(--vaf-teal) 35%, #d8dde3);
  border-radius: 0.95rem;
  background: #fff;
  transition:
    border-color 180ms ease,
    background 180ms ease,
    box-shadow 180ms ease;
}

.volunteer-app-form__doc--peach {
  border-color: color-mix(in srgb, var(--vaf-peach) 70%, #d8dde3);
  background: linear-gradient(180deg, #fffaf2, #fff);
}

.volunteer-app-form__doc--teal {
  border-color: color-mix(in srgb, var(--rm-teal, #50bac7) 45%, #d8dde3);
  background: linear-gradient(180deg, #f3fbfc, #fff);
}

.volunteer-app-form__doc.is-filled {
  border-style: solid;
  box-shadow: 0 8px 20px rgb(2 40 46 / 0.06);
}

.volunteer-app-form__doc-label {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--vaf-teal);
}

.volunteer-app-form__doc--peach .volunteer-app-form__doc-label {
  color: #9a5b16;
}

.volunteer-app-form__doc-cta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  padding: 0.75rem 0.85rem;
  border: 0;
  border-radius: 0.8rem;
  background: color-mix(in srgb, var(--vaf-teal) 8%, #fff);
  color: var(--vaf-ink);
  text-align: left;
  cursor: pointer;
  transition:
    background 180ms ease,
    transform 180ms ease;
}

.volunteer-app-form__doc--peach .volunteer-app-form__doc-cta {
  background: color-mix(in srgb, var(--vaf-peach) 35%, #fff);
}

.volunteer-app-form__doc-cta:hover:not(:disabled) {
  transform: translateY(-1px);
  background: color-mix(in srgb, var(--vaf-teal) 14%, #fff);
}

.volunteer-app-form__doc--peach .volunteer-app-form__doc-cta:hover:not(:disabled) {
  background: color-mix(in srgb, var(--vaf-peach) 55%, #fff);
}

.volunteer-app-form__doc-cta:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.volunteer-app-form__doc-cta-icon {
  display: grid;
  place-items: center;
  flex: 0 0 2.35rem;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 999px;
  background: var(--vaf-teal);
  color: #fff;
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1;
}

.volunteer-app-form__doc--peach .volunteer-app-form__doc-cta-icon {
  background: #e9a85c;
  color: #1d1d1b;
}

.volunteer-app-form__doc-cta-copy {
  display: grid;
  gap: 0.1rem;
  min-width: 0;
}

.volunteer-app-form__doc-cta-copy strong {
  font-family: var(--ds-font-button, "Poppins", sans-serif);
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--vaf-ink);
}

.volunteer-app-form__doc-cta-copy span {
  font-size: 0.75rem;
  color: var(--vaf-muted);
}

.volunteer-app-form__doc-file {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.7rem 0.8rem;
  border-radius: 0.8rem;
  background: color-mix(in srgb, var(--vaf-mint) 35%, #fff);
}

.volunteer-app-form__doc--peach .volunteer-app-form__doc-file {
  background: color-mix(in srgb, var(--vaf-peach) 40%, #fff);
}

.volunteer-app-form__doc-file-meta {
  display: grid;
  gap: 0.1rem;
  min-width: 0;
}

.volunteer-app-form__doc-file-meta strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.875rem;
}

.volunteer-app-form__doc-file-meta span {
  font-size: 0.72rem;
  color: var(--vaf-muted);
}

.volunteer-app-form__doc-actions {
  display: flex;
  flex-shrink: 0;
  gap: 0.4rem;
}

.volunteer-app-form__doc-view,
.volunteer-app-form__doc-change {
  padding: 0.4rem 0.7rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
}

.volunteer-app-form__doc-view {
  border: 1px solid transparent;
  background: var(--vaf-teal);
  color: #fff;
}

.volunteer-app-form__doc--peach .volunteer-app-form__doc-view {
  background: #e9a85c;
  color: #1d1d1b;
}

.volunteer-app-form__doc-view:hover:not(:disabled) {
  filter: brightness(1.05);
}

.volunteer-app-form__doc-change {
  border: 1px solid color-mix(in srgb, var(--vaf-teal) 28%, #d8dde3);
  background: #fff;
  color: var(--vaf-teal);
}

.volunteer-app-form__doc-change:hover:not(:disabled) {
  background: color-mix(in srgb, var(--vaf-teal) 8%, #fff);
}

.volunteer-app-form__doc-view:disabled,
.volunteer-app-form__doc-change:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.volunteer-app-form__doc-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.volunteer-app-form__error {
  margin: 0.9rem 0 0;
  padding: 0.55rem 0.7rem;
  border: 1px solid color-mix(in srgb, var(--rm-rose-deep, #fb626b) 35%, #fff);
  border-left: 3px solid var(--rm-rose-deep, #fb626b);
  border-radius: 0.65rem;
  background: #fff5f6;
  font-size: 0.8125rem;
  color: #b42318;
}

.volunteer-app-form__footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 1rem;
  padding-top: 0.95rem;
  border-top: 1px solid var(--vaf-line);
}

.volunteer-app-form__footer .button {
  min-height: 2.75rem;
  padding: 0.55rem 1.15rem;
  border-radius: 0.85rem;
  font-family: var(--ds-font-button, "Poppins", sans-serif);
  font-size: 0.9rem;
  font-weight: 700;
  background: var(--vaf-teal);
}

.volunteer-app-form__footer .button:hover:not(:disabled) {
  background: #006670;
}

@media (max-width: 760px) {
  .volunteer-app-form__columns,
  .volunteer-app-form__row {
    grid-template-columns: 1fr;
  }

  .volunteer-app-form__footer {
    justify-content: stretch;
  }

  .volunteer-app-form__footer .button {
    width: 100%;
  }
}

/* Source: /react-source/components/volunteer-offer-card.css */
.volunteer-offer-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
}

.volunteer-offer-list--grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.15rem;
}

.volunteer-offer-list--rail {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  padding: 0.15rem 0.1rem 0.85rem;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.volunteer-offer-card-wrap--rail,
.volunteer-offer-card-wrap--grid,
.volunteer-offer-card-wrap--stay {
  min-width: 0;
}

.volunteer-offer-card-wrap--rail {
  flex: 0 0 min(19rem, 82vw);
  scroll-snap-align: start;
}

.volunteer-offer-card-wrap--stay {
  height: 100%;
}

.volunteer-offer-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  height: 100%;
  overflow: hidden;
  padding: 0;
  border: none;
  border-radius: 15px;
  background: #fff;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 2px 8px rgb(0 0 0 / 0.05);
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.volunteer-offer-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgb(0 127 139 / 0.14);
}

.volunteer-offer-card--rail,
.volunteer-offer-card--grid,
.volunteer-offer-card--stay {
  min-height: 100%;
}

.volunteer-offer-card--stay {
  grid-template-rows: auto minmax(0, 1fr) auto;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  gap: 0.7rem;
}

.volunteer-offer-card--stay:hover {
  transform: none;
  box-shadow: none;
}

.volunteer-offer-card--stay .volunteer-offer-card__media {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 0.95rem;
  background: #eef2f0;
}

.volunteer-offer-card--stay .volunteer-offer-card__cover {
  position: absolute;
  inset: 0;
  height: 100%;
  aspect-ratio: auto;
  transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

.volunteer-offer-card--stay:hover .volunteer-offer-card__cover {
  transform: scale(1.04);
}

.volunteer-offer-card--stay .volunteer-offer-card__cover--fallback,
.volunteer-offer-card--stay .volunteer-offer-card__cover--logo {
  aspect-ratio: auto;
  height: 100%;
}

.volunteer-offer-card--stay .volunteer-offer-card__body {
  gap: 0.2rem;
  padding: 0.1rem 0.15rem 0;
}

.volunteer-offer-card--stay .volunteer-offer-card__title {
  font-size: 0.95rem;
  font-weight: 650;
  line-height: 1.3;
  letter-spacing: -0.01em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.volunteer-offer-card__stay-meta {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 500;
  color: #6b7280;
  line-height: 1.3;
}

.volunteer-offer-card__media {
  position: relative;
  display: block;
  overflow: hidden;
  background: #eef6f4;
}

.volunteer-offer-card__cover {
  display: block;
  width: 100%;
  height: 10rem;
  object-fit: cover;
  object-position: center top;
  background: #fff8eb;
}

.volunteer-offer-card--communique .volunteer-offer-card__cover {
  height: auto;
  aspect-ratio: 680 / 350;
}

.volunteer-offer-card--rail .volunteer-offer-card__cover,
.volunteer-offer-card--grid .volunteer-offer-card__cover {
  height: 9rem;
}

.volunteer-offer-card--communique.volunteer-offer-card--rail .volunteer-offer-card__cover,
.volunteer-offer-card--communique.volunteer-offer-card--grid .volunteer-offer-card__cover {
  height: auto;
  aspect-ratio: 680 / 350;
}

.volunteer-offer-card__cover--fallback {
  display: grid;
  place-items: center;
  background:
    linear-gradient(145deg, #e8f6f4 0%, #50bac7 45%, #007f8b 100%);
  color: #fff;
  font-family: var(--ds-font-display, "Inter", sans-serif);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.volunteer-offer-card--communique .volunteer-offer-card__cover--fallback {
  aspect-ratio: 680 / 350;
  height: auto;
}

.volunteer-offer-card__cover--logo {
  display: block;
  padding: 0;
  background: #fff8eb;
}

.volunteer-offer-card__cover--logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.volunteer-offer-card__media-badge {
  position: absolute;
  top: 0.7rem;
  left: 0.7rem;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.65rem 0.28rem;
  border-radius: 999px;
  background: rgb(16 35 26 / 0.9);
  color: #fff;
  font-family: var(--ds-font-display, "Inter", sans-serif);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1;
  text-transform: uppercase;
}

.volunteer-offer-card__body {
  display: grid;
  align-content: start;
  gap: 0.35rem;
  padding: 1.15rem 1.25rem 1.25rem;
}

.volunteer-offer-card--communique .volunteer-offer-card__body {
  gap: 0.7rem;
  padding: 0.95rem 1rem 1.05rem;
}

.volunteer-offer-card__eyebrow {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #b45309;
}

.volunteer-offer-card__title {
  margin: 0;
  font-family: var(--ds-font-display, "Inter", sans-serif);
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.3;
  color: #171717;
}

.volunteer-offer-card--rail .volunteer-offer-card__title,
.volunteer-offer-card--grid .volunteer-offer-card__title {
  font-size: 1rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.volunteer-offer-card--communique .volunteer-offer-card__title {
  font-size: 0.98rem;
  letter-spacing: -0.015em;
}

.volunteer-offer-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.75rem;
  margin-top: auto;
}

.volunteer-offer-card__tag {
  display: inline-flex;
  align-items: center;
  padding: 0.28rem 0.55rem 0.2rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--rm-teal-deep, #007f8b) 12%, #fff);
  color: var(--rm-teal-deep, #007f8b);
  font-family: var(--ds-font-display, "Inter", sans-serif);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1;
  text-transform: uppercase;
}

.volunteer-offer-card__meta time {
  font-size: 0.78rem;
  font-weight: 600;
  color: #696b7e;
  line-height: 1;
}

.volunteer-offer-card__excerpt {
  margin: 0.2rem 0 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #4b5563;
}

.volunteer-offer-card--rail .volunteer-offer-card__excerpt,
.volunteer-offer-card--grid .volunteer-offer-card__excerpt {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.volunteer-offer-card__date {
  margin: 0.35rem 0 0;
  font-size: 0.75rem;
  color: #6b7280;
}

.volunteer-offer-card__cta {
  margin-top: 0.55rem;
  font-family: var(--ds-font-button, var(--ds-font-accent, "Poppins", sans-serif));
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: var(--ds-button-line-height, 1.2);
  color: #b45309;
}

.volunteer-offer-card:hover .volunteer-offer-card__cta {
  text-decoration: underline;
}

@media (prefers-reduced-motion: reduce) {
  .volunteer-offer-card--stay .volunteer-offer-card__cover {
    transition: none;
  }

  .volunteer-offer-card--stay:hover .volunteer-offer-card__cover {
    transform: none;
  }
}

@media (max-width: 980px) {
  .volunteer-offer-list--grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .volunteer-offer-list--grid {
    grid-template-columns: 1fr;
  }
}

/* Source: /react-source/pages/welcome.css */
.welcome {
  width: 100%;
}

.welcome__logo {
  width: min(100%, 12rem);
  height: auto;
}

.welcome__eyebrow {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--rm-teal-deep, #007f8b);
}

.welcome__eyebrow--light {
  color: var(--rm-peach, #fbd6a2);
}

.welcome__eyebrow--gold {
  color: #b45309;
}

.welcome__intro-inner {
  position: relative;
  z-index: 2;
  width: min(100%, 44rem);
  margin: 0 auto;
  display: grid;
  justify-items: center;
  gap: 0;
}

.welcome__intro-title {
  margin: 1.15rem 0 0;
  font-family: var(--ds-font-display);
  font-size: clamp(2.1rem, 5.2vw, 3.35rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.04em;
  color: #fffef8;
  text-wrap: pretty;
  text-shadow: 0 10px 40px rgb(0 0 0 / 0.28);
}

.welcome__intro-lead {
  margin: 1.25rem auto 0;
  max-width: 34rem;
  font-size: clamp(1.02rem, 1.7vw, 1.15rem);
  line-height: 1.6;
  color: rgb(255 252 245 / 0.78);
}

.welcome__intro-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.9rem;
  margin-top: 2rem;
}

.welcome__intro .welcome__intro-btn-ghost.rm-btn {
  --rm-btn-label: #fffef8;
  --rm-btn-label-hover: #fff;
  background: transparent;
  border: 1px solid rgb(255 255 255 / 0.28);
  color: var(--rm-btn-label);
  box-shadow: none;
}

.welcome__intro-actions .rm-btn {
  min-height: var(--rm-btn-min-height, 3.5rem);
}

.welcome__intro .welcome__intro-btn-ghost.rm-btn .rm-btn__label {
  color: var(--rm-btn-label);
}

.welcome__intro .welcome__intro-btn-ghost.rm-btn:hover,
.welcome__intro .welcome__intro-btn-ghost.rm-btn:focus-visible {
  color: var(--rm-btn-label-hover);
  border-color: transparent;
  box-shadow:
    0 2px 6px rgb(16 35 26 / 0.12),
    0 14px 32px rgb(0 127 139 / 0.35);
}

.welcome__intro .welcome__intro-btn-ghost.rm-btn:hover .rm-btn__label,
.welcome__intro .welcome__intro-btn-ghost.rm-btn:focus-visible .rm-btn__label {
  color: var(--rm-btn-label-hover);
}

.welcome__hero-carousel {
  position: relative;
  isolation: isolate;
  width: 100%;
  min-height: clamp(18.5rem, 34vw, 24rem);
  overflow: hidden;
  color: #fff;
  background: #03272d;
  cursor: default;
}

.welcome__hero-track {
  display: flex;
  width: 100%;
  min-height: inherit;
  transition: transform 760ms cubic-bezier(0.22, 1, 0.36, 1);
}

.welcome__hero-slide {
  position: relative;
  display: grid;
  place-items: center;
  flex: 0 0 100%;
  min-width: 0;
  min-height: inherit;
  padding: clamp(2.35rem, 4.5vw, 3.75rem) clamp(1.25rem, 5vw, 4.5rem);
  overflow: hidden;
}

.welcome__hero-slide--managed {
  place-items: center start;
  background-color: #06353b;
  background-position: center;
  background-size: cover;
}

.welcome__hero-slide--managed::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(
      90deg,
      rgb(2 28 34 / 0.9) 0%,
      rgb(2 38 45 / 0.72) 48%,
      rgb(2 28 34 / 0.25) 100%
    ),
    linear-gradient(0deg, rgb(0 0 0 / 0.28), transparent 45%);
  content: "";
}

.welcome__hero-managed-copy {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(14rem, 1fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: center;
  width: min(100%, 76rem);
  margin-left: max(0px, calc((100% - 76rem) / 2));
  text-align: left;
}

.welcome__hero-managed-text {
  min-width: 0;
}

.welcome__hero-managed-copy h1,
.welcome__hero-managed-copy h2 {
  max-width: 13em;
  margin: 0.7rem 0 0;
  color: #fff;
  font-family: var(--ds-font-display);
  font-size: clamp(2.25rem, 5vw, 4rem);
  line-height: 1;
  letter-spacing: -0.045em;
  text-wrap: balance;
  text-shadow: 0 10px 35px rgb(0 0 0 / 0.38);
}

.welcome__hero-managed-text > p:not(.welcome__hero-kicker) {
  max-width: 42rem;
  margin: 0.85rem 0 0;
  color: rgb(255 255 255 / 0.88);
  font-size: clamp(1.05rem, 1.8vw, 1.25rem);
  line-height: 1.55;
  text-wrap: balance;
}

.welcome__hero-managed-copy .welcome__intro-actions {
  justify-content: flex-start;
  justify-self: start;
  align-self: center;
  margin-top: 0;
  white-space: nowrap;
}

.welcome__hero-slide--intro {
  background:
    radial-gradient(
      ellipse 70% 80% at 12% 20%,
      rgb(0 127 139 / 0.4),
      transparent 55%
    ),
    radial-gradient(
      ellipse 55% 60% at 88% 80%,
      rgb(251 214 162 / 0.12),
      transparent 50%
    ),
    linear-gradient(168deg, #042830 0%, #045a63 42%, #021c22 100%);
}

.welcome__hero-slide--benefits {
  background:
    radial-gradient(
      circle at 82% 20%,
      rgb(249 189 103 / 0.22),
      transparent 28%
    ),
    radial-gradient(circle at 12% 86%, rgb(62 187 200 / 0.24), transparent 34%),
    linear-gradient(145deg, #102f28 0%, #073c35 48%, #09231f 100%);
}

.welcome__hero-slide--metrics {
  background:
    radial-gradient(circle at 14% 12%, rgb(62 187 200 / 0.28), transparent 30%),
    radial-gradient(
      circle at 86% 88%,
      rgb(255 196 202 / 0.14),
      transparent 30%
    ),
    linear-gradient(155deg, #061e25 0%, #073b43 50%, #04191f 100%);
}

.welcome__hero-slide--manager {
  background:
    radial-gradient(circle at 78% 24%, rgb(249 189 103 / 0.2), transparent 28%),
    radial-gradient(circle at 12% 84%, rgb(7 123 58 / 0.24), transparent 34%),
    linear-gradient(145deg, #09251d 0%, #104b3c 48%, #071d17 100%);
}

.welcome__hero-slide .welcome__intro-inner,
.welcome__hero-copy,
.welcome__metrics-layout {
  position: relative;
  z-index: 1;
}

.welcome__hero-slide .welcome__intro-inner {
  width: min(100%, 64rem);
}

.welcome__hero-slide .welcome__intro-btn-ghost.rm-btn {
  --rm-btn-label: #fffef8;
  --rm-btn-label-hover: #fff;
  background: transparent;
  border: 1px solid rgb(255 255 255 / 0.28);
  box-shadow: none;
}

.welcome__intro-title strong {
  color: var(--rm-peach, #fbd6a2);
  font-weight: inherit;
}

.welcome__hero-copy {
  display: grid;
  justify-items: start;
  width: min(100%, 62rem);
  margin: 0 auto;
  text-align: left;
}

.welcome__hero-kicker {
  margin: 0;
  color: var(--rm-peach, #fbd6a2);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.welcome__hero-copy h2 {
  max-width: 12em;
  margin: 0.65rem 0 0;
  font-family: var(--ds-font-display);
  font-size: clamp(2.15rem, 5vw, 3.65rem);
  line-height: 0.98;
  letter-spacing: -0.045em;
}

.welcome__hero-copy > p:not(.welcome__hero-kicker) {
  max-width: none;
  margin: 1rem 0 0;
  color: rgb(255 255 255 / 0.76);
  font-size: clamp(1rem, 1.6vw, 1.12rem);
  line-height: 1.55;
  white-space: nowrap;
}

.welcome__hero-slide .welcome__intro-lead {
  max-width: none;
  white-space: nowrap;
}

.welcome__hero-copy > .rm-btn {
  margin-top: 1.5rem;
}

.welcome__hero-benefits {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  width: 100%;
  margin: 1.5rem 0 0;
  padding: 0;
  list-style: none;
}

.welcome__hero-benefits li {
  display: grid;
  gap: 0.4rem;
  min-height: 5.5rem;
  padding: 0.9rem 1rem;
  border: 1px solid rgb(255 255 255 / 0.12);
  border-radius: 0.9rem;
  background: rgb(255 255 255 / 0.07);
  backdrop-filter: blur(10px);
}

.welcome__hero-benefits span {
  color: var(--rm-peach, #fbd6a2);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.welcome__hero-benefits strong {
  font-size: 0.9rem;
  line-height: 1.35;
}

.welcome__metrics-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: clamp(1.5rem, 3vw, 3rem);
  width: min(100%, 68rem);
}

.welcome__metrics-layout .welcome__hero-copy {
  width: 100%;
  min-width: 0;
}

.welcome__metrics-layout .welcome__hero-copy h2 {
  max-width: 100%;
  font-size: clamp(2rem, 3vw, 2.8rem);
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.welcome__metrics-layout .welcome__hero-copy > p:not(.welcome__hero-kicker) {
  max-width: 100%;
  font-size: clamp(0.8rem, 1.25vw, 1rem);
}

.welcome__hero-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
  margin: 0;
}

.welcome__hero-metrics div {
  display: grid;
  gap: 0.1rem;
  min-height: 7rem;
  align-content: center;
  padding: 1rem 1.15rem;
  border: 1px solid rgb(255 255 255 / 0.13);
  border-radius: 1rem;
  background: rgb(255 255 255 / 0.075);
  backdrop-filter: blur(12px);
}

.welcome__hero-metrics dt {
  color: var(--rm-peach, #fbd6a2);
  font-family: var(--ds-font-display);
  font-size: clamp(1.75rem, 4vw, 2.65rem);
  font-weight: 800;
  line-height: 1;
}

.welcome__hero-metrics dd {
  margin: 0;
  color: rgb(255 255 255 / 0.72);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.welcome__manager-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(22rem, 0.85fr);
  align-items: center;
  gap: clamp(2rem, 6vw, 5rem);
  width: min(100%, 68rem);
}

.welcome__manager-layout .welcome__hero-copy {
  width: 100%;
}

.welcome__manager-preview {
  overflow: hidden;
  border: 1px solid rgb(255 255 255 / 0.16);
  border-radius: 1.15rem;
  background: rgb(255 255 255 / 0.09);
  box-shadow: 0 24px 60px rgb(0 0 0 / 0.22);
  backdrop-filter: blur(14px);
  transform: rotate(1.5deg);
}

.welcome__manager-preview-bar {
  display: flex;
  gap: 0.35rem;
  padding: 0.75rem;
  border-bottom: 1px solid rgb(255 255 255 / 0.1);
}

.welcome__manager-preview-bar span {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 999px;
  background: var(--rm-peach, #fbd6a2);
}

.welcome__manager-preview-bar span:nth-child(2) {
  background: var(--rm-teal, #50bac7);
}

.welcome__manager-preview-bar span:nth-child(3) {
  background: var(--rm-rose, #ffc4ca);
}

.welcome__manager-preview-body {
  display: grid;
  grid-template-columns: 4.5rem 1fr;
  min-height: 11rem;
  padding: 0.8rem;
}

.welcome__manager-preview-nav {
  border-radius: 0.65rem;
  background: rgb(255 255 255 / 0.1);
}

.welcome__manager-preview-body > div {
  display: grid;
  gap: 0.65rem;
  padding-left: 0.8rem;
}

.welcome__manager-preview-body > div span {
  border-radius: 0.65rem;
  background: rgb(255 255 255 / 0.13);
}

.welcome__hero-controls {
  position: absolute;
  z-index: 4;
  left: 50%;
  bottom: clamp(0.85rem, 2vw, 1.25rem);
  display: flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.35rem 0.45rem;
  border: 1px solid rgb(255 255 255 / 0.24);
  border-radius: 999px;
  background: rgb(3 29 34 / 0.76);
  box-shadow:
    0 10px 30px rgb(0 0 0 / 0.28),
    0 1px 0 rgb(255 255 255 / 0.14) inset;
  backdrop-filter: blur(14px) saturate(1.2);
  transform: translateX(-50%);
}

.welcome__hero-controls button {
  position: relative;
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  transition: background-color 220ms ease;
}

.welcome__hero-controls button::before {
  width: 0.45rem;
  height: 0.45rem;
  border: 1px solid rgb(255 255 255 / 0.78);
  border-radius: inherit;
  background: rgb(255 255 255 / 0.18);
  content: "";
  transition:
    width 240ms cubic-bezier(0.22, 1, 0.36, 1),
    background-color 220ms ease,
    border-color 220ms ease,
    box-shadow 220ms ease;
}

.welcome__hero-controls button > span {
  position: absolute;
  width: 1.15rem;
  height: 0.45rem;
  overflow: hidden;
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
}

.welcome__hero-controls button > span::before {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--rm-peach, #fbd6a2);
  content: "";
  transform: scaleX(0);
  transform-origin: left center;
}

.welcome__hero-controls button:hover {
  background: rgb(255 255 255 / 0.1);
}

.welcome__hero-controls button:hover::before {
  background: rgb(255 255 255 / 0.55);
}

.welcome__hero-controls button.is-active {
  background: rgb(255 255 255 / 0.08);
}

.welcome__hero-controls button.is-active::before {
  width: 1.15rem;
  border-color: var(--rm-peach, #fbd6a2);
  background: rgb(255 255 255 / 0.18);
  box-shadow: none;
}

.welcome__hero-controls button.is-active > span {
  opacity: 1;
  box-shadow: 0 0 14px rgb(249 189 103 / 0.72);
}

.welcome__hero-controls button.is-active > span::before {
  animation: welcome-hero-loader var(--hero-slide-duration, 7000ms) linear
    forwards;
  animation-play-state: var(--hero-loader-play-state, running);
}

.welcome__hero-controls button:focus-visible {
  outline: 2px solid var(--rm-peach, #fbd6a2);
  outline-offset: 1px;
}

@keyframes welcome-hero-loader {
  to {
    transform: scaleX(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .welcome__hero-controls button.is-active > span::before {
    animation: none;
    transform: scaleX(1);
  }
}

@media (max-width: 760px) {
  .welcome__hero-slide {
    padding-bottom: 4.5rem;
  }

  .welcome__hero-managed-copy {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .welcome__hero-managed-copy .welcome__intro-actions {
    margin-top: 0;
    white-space: normal;
  }

  .welcome__hero-copy > p:not(.welcome__hero-kicker),
  .welcome__hero-slide .welcome__intro-lead {
    white-space: normal;
  }

  .welcome__hero-benefits {
    grid-template-columns: 1fr;
    gap: 0.45rem;
  }

  .welcome__hero-benefits li {
    grid-template-columns: auto 1fr;
    align-items: center;
    min-height: 0;
  }

  .welcome__metrics-layout {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }

  .welcome__manager-layout {
    grid-template-columns: 1fr;
  }

  .welcome__manager-preview {
    display: none;
  }

  .welcome__hero-metrics div {
    min-height: 5.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .welcome__hero-track {
    transition: none;
  }
}

.welcome__news {
  width: min(100%, 52rem);
  margin: clamp(2.25rem, 5vw, 3.5rem) auto 0;
  padding: 0 clamp(1.25rem, 4vw, 3.5rem) clamp(2rem, 4vw, 3rem);
  animation: welcome-rise 720ms cubic-bezier(0.22, 1, 0.36, 1) 60ms both;
}

.welcome__news-grid {
  width: 100%;
}

.welcome__associations {
  padding: clamp(3rem, 7vw, 5.5rem) clamp(1.25rem, 6vw, 5rem);
  background: #fff;
}

.welcome__associations-grid {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.75rem 0 0;
  padding: 0;
}

.welcome__associations-actions,
.welcome__associations-nav {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.welcome__associations-nav {
  padding: 0.25rem;
  border: 1px solid #dce5df;
  border-radius: 999px;
  color: #315044;
}

.welcome__associations-nav button {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 50%;
  color: inherit;
  background: transparent;
  cursor: pointer;
}

.welcome__associations-nav button:hover,
.welcome__associations-nav button:focus-visible {
  color: #fff;
  background: #067b3a;
}

.welcome__associations-nav span {
  min-width: 2.4rem;
  font-size: 0.75rem;
  font-weight: 750;
  text-align: center;
}

@media (max-width: 1080px) {
  .welcome__associations-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .welcome__associations-grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: 0.75rem;
  }

  .welcome__associations-grid > li {
    flex: 0 0 min(19rem, 84vw);
    scroll-snap-align: start;
  }
}

.welcome__news-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem 1.25rem;
  margin-bottom: 1.15rem;
}

.welcome__news-title {
  margin: 0.35rem 0 0;
  font-family: var(--ds-font-display);
  font-size: clamp(1.45rem, 3vw, 1.85rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: #10231a;
}

.welcome__news-link {
  font-size: 0.9rem;
  font-weight: 750;
  color: var(--rm-teal-deep, #007f8b);
  text-decoration: none;
}

.welcome__news-link:hover {
  text-decoration: underline;
}

.welcome__news-loading {
  display: grid;
  gap: 0.75rem;
}

.welcome__news-empty {
  margin: 0;
  padding: 1.25rem 1.15rem;
  border-radius: 1rem;
  border: 1px dashed rgb(0 127 139 / 0.28);
  background: rgb(0 127 139 / 0.04);
  font-size: 0.95rem;
  color: #5b6b63;
}

.welcome__news-empty a {
  color: var(--rm-teal-deep, #007f8b);
  font-weight: 700;
  text-decoration: none;
}

.welcome__news-empty a:hover {
  text-decoration: underline;
}

.welcome__pathways {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
  width: min(100%, 68rem);
  margin: clamp(2rem, 4vw, 3rem) auto 0;
  padding: 0 clamp(1.25rem, 4vw, 3.5rem);
}

.welcome__pathways > .service-tile {
  opacity: 0;
  transform: translateY(1.25rem);
  transition:
    opacity 640ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 640ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.welcome__pathways > .service-tile.service-tile--photo-right {
  transform: translateY(1.25rem);
}

.welcome__pathways > .service-tile:nth-child(2) {
  transition-delay: 70ms;
}

.welcome__pathways > .service-tile:nth-child(3) {
  transition-delay: 140ms;
}

.welcome__pathways > .service-tile.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 820px) {
  .welcome__pathways {
    grid-template-columns: 1fr;
    gap: 0.85rem;
  }
}

.welcome__missions {
  --mission-gap: 1rem;
  --mission-inline: clamp(1.25rem, 4vw, 3.5rem);
  --mission-card-width: min(
    19rem,
    calc((100vw - (2 * var(--mission-inline)) - (3 * var(--mission-gap))) / 4)
  );
  --mission-track: calc(
    (var(--mission-card-width) * 4) + (var(--mission-gap) * 3)
  );
  width: 100vw;
  max-width: 100vw;
  margin: clamp(1.75rem, 4vw, 2.75rem) 0 0;
  margin-left: calc(50% - 50vw);
  padding: 0;
  overflow: visible;
}

.welcome__missions-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem 1.25rem;
  width: min(calc(100% - (2 * var(--mission-inline))), var(--mission-track));
  margin: 0 auto 1rem;
  text-align: left;
}

.welcome__missions-title {
  margin: 0.35rem 0 0;
  font-family: var(--ds-font-display);
  font-size: clamp(1.45rem, 3vw, 1.85rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: #10231a;
}

.welcome__missions-link {
  font-size: 0.9rem;
  font-weight: 750;
  color: #b45309;
  text-decoration: none;
}

.welcome__missions-link:hover {
  text-decoration: underline;
}

.welcome__missions-bleed {
  width: 100%;
  overflow-x: hidden;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

.welcome__missions-list {
  --deal-step: calc(var(--mission-card-width) + var(--mission-gap));
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: stretch;
  gap: var(--mission-gap);
  width: 100%;
  min-width: 100%;
  margin: 0 auto;
  padding: 0.15rem var(--mission-inline) 0.85rem;
  overflow: visible;
  scroll-snap-type: x proximity;
  perspective: 900px;
}

@media (max-width: 900px) {
  .welcome__missions {
    --mission-card-width: min(78vw, 19rem);
  }

  .welcome__missions-bleed {
    overflow-x: auto;
  }

  .welcome__missions-list {
    width: max-content;
  }
}

.welcome__missions-list .volunteer-offer-card-wrap--rail {
  flex: 0 0 var(--mission-card-width);
  width: var(--mission-card-width);
  max-width: var(--mission-card-width);
  scroll-snap-align: center;
  opacity: 0;
  transform: translateX(calc(var(--deal-from, 3) * var(--deal-step)))
    rotate(var(--deal-rot, 6deg)) scale(0.94);
  transform-origin: right center;
  will-change: opacity, transform;
}

/* Deal from the right: leftmost card first, then 2, 3, 4. */
.welcome__missions-list .volunteer-offer-card-wrap--rail:nth-child(1) {
  --deal-from: 3;
  --deal-rot: 8deg;
  --deal-delay: 0ms;
}

.welcome__missions-list .volunteer-offer-card-wrap--rail:nth-child(2) {
  --deal-from: 2;
  --deal-rot: 5deg;
  --deal-delay: 150ms;
}

.welcome__missions-list .volunteer-offer-card-wrap--rail:nth-child(3) {
  --deal-from: 1;
  --deal-rot: 3deg;
  --deal-delay: 300ms;
}

.welcome__missions-list .volunteer-offer-card-wrap--rail:nth-child(4) {
  --deal-from: 0.35;
  --deal-rot: 1deg;
  --deal-delay: 450ms;
}

.welcome__missions-list.is-revealed .volunteer-offer-card-wrap--rail {
  animation: welcome-deal-card 680ms cubic-bezier(0.22, 1, 0.36, 1)
    var(--deal-delay, 0ms) both;
}

@keyframes welcome-deal-card {
  0% {
    opacity: 0;
    transform: translateX(calc(var(--deal-from, 3) * var(--deal-step)))
      rotate(var(--deal-rot, 6deg)) scale(0.94);
  }

  55% {
    opacity: 1;
  }

  78% {
    transform: translateX(-0.15rem) rotate(-0.4deg) scale(1.01);
  }

  100% {
    opacity: 1;
    transform: translateX(0) rotate(0deg) scale(1);
  }
}

.welcome__missions-loading {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  gap: var(--mission-gap);
  width: max-content;
  min-width: 100%;
  margin: 0 auto;
  padding: 0.15rem var(--mission-inline) 0.85rem;
}

.welcome__missions-empty {
  width: min(calc(100% - (2 * var(--mission-inline))), var(--mission-track));
  margin: 0 auto;
  padding: 1.25rem 1.15rem;
  border-radius: 1rem;
  border: 1px dashed rgb(180 83 9 / 0.28);
  background: rgb(251 214 162 / 0.12);
  font-size: 0.95rem;
  color: #5b6b63;
}

.welcome__missions-empty a {
  color: #b45309;
  font-weight: 700;
  text-decoration: none;
}

.welcome__missions-empty a:hover {
  text-decoration: underline;
}

.welcome__console {
  position: relative;
  display: grid;
  place-items: center;
  width: min(100% - 2 * clamp(1.25rem, 4vw, 3.5rem), 68rem);
  min-height: clamp(20rem, 38vw, 26rem);
  margin: clamp(2.25rem, 5vw, 3.75rem) auto 0;
  overflow: hidden;
  border-radius: 1.55rem;
  animation: welcome-rise 780ms cubic-bezier(0.22, 1, 0.36, 1) 320ms both;
}

.welcome__console-media {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      90% 70% at 12% 18%,
      rgb(249 189 103 / 0.28),
      transparent 52%
    ),
    radial-gradient(
      80% 65% at 88% 22%,
      rgb(62 187 200 / 0.22),
      transparent 48%
    ),
    radial-gradient(
      70% 60% at 70% 88%,
      rgb(251 98 107 / 0.16),
      transparent 50%
    ),
    linear-gradient(155deg, #0c1a13 0%, #10231a 42%, #163528 72%, #0a1610 100%);
}

.welcome__console-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    120% 90% at 50% 50%,
    transparent 30%,
    rgb(4 45 24 / 0.35) 100%
  );
  pointer-events: none;
}

.welcome__console-copy {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  gap: 0.85rem;
  width: 100%;
  max-width: 48rem;
  padding: clamp(2.25rem, 5vw, 3.25rem);
  color: #fff;
  text-align: center;
  box-sizing: border-box;
}

.welcome__console-title {
  margin: 0;
  max-width: 28ch;
  font-family: var(--ds-font-display);
  font-size: clamp(1.85rem, 4vw, 2.65rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.03em;
}

.welcome__console-lead-block {
  display: grid;
  gap: 0.55rem;
  max-width: 44rem;
  justify-items: center;
}

.welcome__console-lead {
  margin: 0;
  max-width: 44rem;
  font-size: 1.05rem;
  line-height: 1.5;
  color: rgb(255 255 255 / 0.9);
}

.welcome__console-cta.rm-btn {
  --rm-btn-fill: #1d1d1b;
  --rm-btn-corner: #1d1d1b;
  --rm-btn-label: #1d1d1b;
  --rm-btn-label-hover: #f9bd67;
  margin-top: 0.35rem;
  background: #f9bd67;
  border-color: #f9bd67;
  box-shadow:
    0 0 0 1px rgb(255 255 255 / 0.2),
    0 10px 28px rgb(0 0 0 / 0.35);
}

.welcome__console-cta.rm-btn:focus-visible {
  outline-color: #f9bd67;
}

.welcome__console-inline-link {
  color: #fff;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 0.18em;
}

.welcome__console-inline-link:hover {
  color: var(--rm-gold, #f9bd67);
}

.welcome__console-note {
  margin: 0;
  max-width: 44rem;
  font-size: 0.92rem;
  line-height: 1.45;
  color: rgb(255 255 255 / 0.78);
}

@keyframes welcome-rise {
  from {
    opacity: 0;
    transform: translateY(22px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 560px) {
  .welcome__intro-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .welcome__intro-actions .rm-btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .welcome__pathways > .service-tile,
  .welcome__missions-list .volunteer-offer-card-wrap--rail,
  .welcome__console {
    animation: none !important;
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* Source: /react-source/components/city-quote.css */
.city-quote {
  position: relative;
  display: grid;
  justify-items: center;
  width: 100%;
  margin: 0;
  padding: clamp(2.5rem, 5vw, 3.75rem) clamp(1.25rem, 5vw, 4rem);
  text-align: left;
  background: #fff;
}

.city-quote__text {
  margin: 0;
  width: min(100%, 72rem);
  text-align: center;
}

.city-quote__text p {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.65rem;
  margin: 0;
  font-family: var(--ds-font-accent, "Poppins", sans-serif);
  font-size: clamp(0.95rem, 1.8vw, 1.15rem);
  font-weight: 650;
  line-height: 1.4;
  letter-spacing: -0.015em;
  text-wrap: balance;
  color: #696b7e;
}

.city-quote__text p::before {
  content: "“";
  flex: 0 0 auto;
  color: #43b653;
  font-family: Georgia, serif;
  font-size: 3.1rem;
  font-weight: 800;
  line-height: 0.55;
  transform: translateY(0.15rem);
}

.city-quote__text p::after {
  content: none;
}

@media (max-width: 640px) {
  .city-quote {
    padding: 1.25rem 1rem;
  }

  .city-quote__text p {
    gap: 0.4rem;
    font-size: 0.8125rem;
    line-height: 1.3;
  }

  .city-quote__text p::before {
    font-size: 2.2rem;
  }
}

/* Source: /react-source/components/rm-social.css */
.rm-social {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.rm-social__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 999px;
  background: transparent;
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
}

.rm-social--sm .rm-social__link {
  width: 2rem;
  height: 2rem;
}

.rm-social__link svg {
  width: 1.25rem;
  height: 1.25rem;
}

.rm-social--sm .rm-social__link svg {
  width: 0.95rem;
  height: 0.95rem;
}

.rm-social__link:hover {
  opacity: 0.78;
  transform: translateY(-1px);
}

/* Official monochrome brand marks and current primary brand colors. */
.rm-social__link--facebook {
  color: #0866ff;
}

.rm-social__link--instagram {
  color: #e4405f;
}

.rm-social__link--tiktok {
  color: #000;
}

.rm-social__link--youtube {
  color: #ff0000;
}

.rm-social__link--twitter {
  color: #000;
}

.rm-social__link--linkedin {
  color: #0a66c2;
}

@media (prefers-reduced-motion: reduce) {
  .rm-social__link {
    transition: none;
  }

  .rm-social__link:hover {
    transform: none;
  }
}

/* Source: /react-source/components/rm-contact-icon.css */
.rm-contact-icon {
  display: inline-block;
  flex-shrink: 0;
  width: 1.15rem;
  height: 1.15rem;
  background: var(--rm-contact-icon-color, var(--rm-teal-deep, #007f8b));
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: contain;
  -webkit-mask-position: center;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: contain;
}

.rm-contact-icon--lg {
  width: 1.45rem;
  height: 1.45rem;
}

/* Source: /react-source/components/public-footer.css */
.public-footer {
  position: relative;
  z-index: 4;
  flex-shrink: 0;
  color: var(--rm-secondary);
  background: #fff;
  isolation: isolate;
}

.public-footer__accent {
  height: 6px;
  background: var(--rm-gradient-bar);
  border-radius: 0;
}

.public-footer__surface {
  position: relative;
  overflow: hidden;
}

.public-footer__bg {
  position: absolute;
  inset: 0;
  background: url("/brand/bg-footer.svg?v=89b50a845a158af7") top center / cover no-repeat;
  opacity: 0.4;
  pointer-events: none;
}

.public-footer__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 0.95fr) minmax(0, 1.15fr);
  column-gap: clamp(2rem, 4.5vw, 3.75rem);
  row-gap: 2.25rem;
  align-items: start;
  width: min(100%, 72rem);
  margin: 0 auto;
  padding: clamp(2.75rem, 5vw, 3.5rem) clamp(1.25rem, 4vw, 3.5rem)
    clamp(1.75rem, 3.5vw, 2.25rem);
}

.public-footer__brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.1rem;
  min-width: 0;
}

.public-footer__logo-link {
  display: block;
  max-width: 100%;
  line-height: 0;
}

.public-footer__logo {
  display: block;
  width: min(100%, 16.5rem);
  height: auto;
}

.public-footer__tagline {
  margin: 0;
  max-width: 22rem;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--rm-text);
}

.public-footer__social {
  margin: 0.15rem 0 0;
  gap: 0.65rem;
}

.public-footer__social .rm-social__link {
  width: 3.25rem;
  height: 3.25rem;
}

.public-footer__social .rm-social__link svg {
  width: 2.5rem;
  height: 2.5rem;
}

.public-footer__emairie {
  display: block;
  width: min(100%, 10.5rem);
  height: auto;
  margin-top: 0.25rem;
}

.public-footer__col {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-width: 0;
  /* Aligne les titres avec le haut du logo (léger offset optique) */
  padding-top: 0.35rem;
}

.public-footer__title {
  position: relative;
  margin: 0 0 1.4rem;
  padding-bottom: 0.9rem;
  font-family: var(--ds-font-sans);
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--rm-secondary);
  line-height: 1.25;
}

.public-footer__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 50px;
  height: 3px;
  border-radius: 0;
  background: var(--rm-yellow);
}

.public-footer__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.8rem;
}

.public-footer__links a,
.public-footer__facts a {
  color: var(--rm-secondary);
  font-weight: 400;
  text-decoration: none;
  transition: color 0.2s ease;
}

.public-footer__links a:hover,
.public-footer__links a:focus-visible,
.public-footer__facts a:hover,
.public-footer__facts a:focus-visible {
  color: var(--rm-primary);
  text-decoration: underline;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

.public-footer__links a {
  display: inline-block;
  line-height: 1.4;
}

.public-footer__facts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
}

.public-footer__facts li {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  font-size: 0.9375rem;
  line-height: 1.45;
  color: var(--rm-text);
}

.public-footer__facts .rm-contact-icon {
  flex-shrink: 0;
  width: 1.35rem;
  height: 1.35rem;
  margin: 0.2rem 0 0;
  background-color: var(--rm-text);
}

.public-footer__facts a,
.public-footer__facts > span {
  min-width: 0;
  margin: 0;
  padding: 0;
  line-height: 1.45;
}

/* Téléphone / e-mail : icône et texte centrés */
.public-footer__facts li.public-footer__fact--inline {
  align-items: center;
  min-height: 1.35rem;
}

.public-footer__facts li.public-footer__fact--inline .rm-contact-icon {
  margin: 0;
}

.public-footer__facts li.public-footer__fact--inline a,
.public-footer__facts li.public-footer__fact--inline > span {
  display: flex;
  align-items: center;
  min-height: 1.35rem;
  line-height: 1;
  box-sizing: border-box;
}

.public-footer__bar {
  position: relative;
  z-index: 1;
  border-top: 1px solid rgb(23 23 23 / 0.08);
  padding: 1rem clamp(1.25rem, 4vw, 3.5rem);
  text-align: center;
  background: #fff;
}

.public-footer__legal {
  margin: 0;
  font-family: var(--ds-font-sans);
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--rm-secondary);
}

.public-footer__legal a {
  color: var(--rm-green, #077b3a);
  font-weight: inherit;
  text-decoration: none;
}

.public-footer__legal a:hover,
.public-footer__legal a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

/* Tablette : marque en pleine largeur, puis 2 colonnes alignées à gauche */
@media (max-width: 1024px) {
  .public-footer__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(1.5rem, 4vw, 2.5rem);
    row-gap: 2rem;
  }

  .public-footer__brand {
    grid-column: 1 / -1;
    max-width: 36rem;
  }

  .public-footer__col {
    padding-top: 0;
  }
}

@media (max-width: 640px) {
  .public-footer__inner {
    grid-template-columns: 1fr;
    row-gap: 1.2rem;
    padding: 1.45rem 1rem 0.9rem;
  }

  .public-footer__brand {
    grid-column: auto;
    max-width: none;
    gap: 0.7rem;
  }

  .public-footer__logo {
    width: min(100%, 11.5rem);
  }

  .public-footer__tagline {
    max-width: 20rem;
    font-size: 0.8125rem;
    line-height: 1.4;
  }

  .public-footer__social {
    gap: 0.5rem;
    margin-top: 0;
  }

  .public-footer__social .rm-social__link {
    width: 2.55rem;
    height: 2.55rem;
  }

  .public-footer__social .rm-social__link svg {
    width: 1.9rem;
    height: 1.9rem;
  }

  .public-footer__emairie {
    width: min(100%, 8.5rem);
    margin-top: 0;
  }

  .public-footer__title {
    margin-bottom: 0.8rem;
    padding-bottom: 0.55rem;
    font-size: 0.95rem;
  }

  .public-footer__title::after {
    width: 2.25rem;
    height: 2px;
  }

  .public-footer__links {
    gap: 0.45rem;
  }

  .public-footer__links a,
  .public-footer__facts li {
    font-size: 0.8125rem;
    line-height: 1.35;
  }

  .public-footer__facts {
    gap: 0.65rem;
  }

  .public-footer__facts .rm-contact-icon {
    width: 1.1rem;
    height: 1.1rem;
  }

  .public-footer__bar {
    padding: 0.65rem 1rem;
  }

  .public-footer__legal {
    font-size: 0.75rem;
    line-height: 1.35;
  }
}

/* Source: /wp-content/themes/unicipal-associations/style.css */
/*
Theme Name: Annuaire Rémire-Montjoly
Theme URI: https://remire-montjoly.fr/
Author: Unicipal
Description: Portage WordPress fidèle de l'interface publique guyane-asso.
Version: 0.13.7
Requires at least: 6.6
Requires PHP: 8.3
Text Domain: unicipal-associations
*/

html,
body {
  min-height: 100%;
}

body {
  background: #fff;
  overflow-x: hidden;
}

.screen-reader-text,
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.skip-link {
  position: fixed;
  z-index: 2147483647;
  top: 0.5rem;
  left: 0.5rem;
  padding: 0.75rem 1rem;
  border-radius: 0.45rem;
  background: #fff;
  color: #10231a;
  font-weight: 800;
  text-decoration: underline;
  box-shadow: 0 0 0 3px #10231a;
  transform: translateY(-200%);
}

.skip-link:focus {
  transform: translateY(0);
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid #005fcc !important;
  outline-offset: 3px !important;
}

/* Les liens publics sont identifies par leur couleur, leur libelle et le focus clavier. */
a,
a:hover,
a:focus,
a:focus-visible,
a:active,
a:visited {
  text-decoration: none !important;
  text-decoration-line: none !important;
}

:where(h1, h2, h3, h4, section, article, [id]) {
  scroll-margin-top: 6rem;
}

:where(p, li, dd, dt, a, button, label, input, select, textarea) {
  overflow-wrap: anywhere;
}

:where(input, select, textarea, button) {
  max-width: 100%;
}

.legal-page__content a,
.rm-post__body a,
.public-asso-tile__description a {
  text-decoration: underline;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

.rm-post__body {
  white-space: normal;
}

.rm-post__body :where(h2, h3) {
  margin: 1.4em 0 0.55em;
  color: var(--rm-ink, #10231a);
  font-family: var(--ds-font-display, sans-serif);
  line-height: 1.25;
}

.rm-post__body h2 {
  font-size: 1.35rem;
}

.rm-post__body h3 {
  font-size: 1.15rem;
}

.rm-post__body :where(ul, ol) {
  margin: 0.8rem 0 1rem;
  padding-inline-start: 1.5rem;
}

.rm-post__body li + li {
  margin-top: 0.35rem;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media (forced-colors: active) {
  :where(a, button, input, select, textarea, .theme-tag) {
    border: 1px solid ButtonText;
  }

  :where(.header__link--active, .manager-sidebar__link--active) {
    outline: 2px solid Highlight;
  }
}

.welcome__associations-grid > .public-asso-tile.is-revealing {
  animation: unicipal-association-reveal 440ms cubic-bezier(0.22, 1, 0.36, 1)
    var(--association-reveal-delay, 0ms) both;
}

@keyframes unicipal-association-reveal {
  from {
    opacity: 0;
    transform: translateY(0.75rem) scale(0.985);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .welcome__associations-grid > .public-asso-tile.is-revealing {
    animation: none;
  }
}

.unicipal-support-widget {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 2147483640;
  width: min(20rem, calc(100vw - 2.5rem));
}

.unicipal-support-widget__link {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.8rem;
  min-height: 4.75rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid rgb(0 127 139 / 0.22);
  border-radius: 1rem;
  background: rgb(255 255 255 / 0.97);
  color: #10231a;
  text-decoration: none;
  box-shadow:
    0 8px 20px rgb(16 35 26 / 0.1),
    0 20px 44px rgb(16 35 26 / 0.12);
  backdrop-filter: blur(12px);
  transition:
    transform 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease;
}

.unicipal-support-widget__link:hover {
  transform: translateY(-2px);
  border-color: rgb(0 127 139 / 0.42);
  box-shadow:
    0 10px 24px rgb(16 35 26 / 0.12),
    0 24px 50px rgb(0 127 139 / 0.14);
}

.unicipal-support-widget__link:focus-visible {
  outline: 3px solid rgb(249 189 103 / 0.72);
  outline-offset: 3px;
}

.unicipal-support-widget__icon {
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  border-radius: 0.85rem;
  background: linear-gradient(145deg, var(--rm-teal-deep, #007f8b), #077b3a);
  color: #fff;
  box-shadow: 0 8px 18px rgb(0 127 139 / 0.2);
}

.unicipal-support-widget__icon svg {
  width: 1.55rem;
  height: 1.55rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.unicipal-support-widget__copy {
  display: grid;
  gap: 0.16rem;
  min-width: 0;
}

.unicipal-support-widget__copy strong {
  font-family: var(--ds-font-display);
  font-size: 1rem;
  line-height: 1.15;
}

.unicipal-support-widget__copy > span {
  color: #627169;
  font-size: 0.76rem;
  line-height: 1.35;
}

.unicipal-support-widget__arrow {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: rgb(0 127 139 / 0.08);
  color: var(--rm-teal-deep, #007f8b);
  font-size: 1.05rem;
  font-weight: 800;
  transition: transform 180ms ease;
}

.unicipal-support-widget__link:hover .unicipal-support-widget__arrow {
  transform: translateX(2px);
}

@media (max-width: 620px) {
  .unicipal-support-widget {
    position: static;
    width: auto;
    margin: 1rem;
  }

  .unicipal-support-widget__link {
    min-height: 3.8rem;
    padding: 0.55rem 0.65rem;
    border-radius: 0.9rem;
  }

  .unicipal-support-widget__icon {
    width: 2.6rem;
    height: 2.6rem;
  }

  .unicipal-support-widget__copy > span {
    display: none;
  }
}

@media (max-height: 600px) {
  .unicipal-support-widget {
    position: static;
    width: auto;
    margin: 1rem;
  }
}

.welcome__news {
  width: min(100%, 68rem);
}

/*
 * Le répertoire communal doit toujours recouvrir les autres contenus de page,
 * tout en restant sous la navigation principale et son menu responsive.
 */
:root {
  --unicipal-layer-directory: 2147483646;
  --unicipal-layer-header: 2147483647;
}

.header {
  z-index: var(--unicipal-layer-header);
}

#main-content > .unicipal-archive-shell--association {
  z-index: var(--unicipal-layer-directory);
  isolation: isolate;
}

/*
 * Décor commun inspiré du portail officiel de Rémire-Montjoly.
 * Les illustrations sont les ressources graphiques originales du portail,
 * gardées derrière les contenus pour préserver le contraste des cartes.
 */
#main-content {
  position: relative;
  isolation: isolate;
  flex: 0 0 auto;
  width: 100%;
  min-height: 60vh;
  background: linear-gradient(
    180deg,
    #fff 0%,
    #f4fbfc 32%,
    #fff8ef 64%,
    #fff6f7 84%,
    #fff 100%
  );
}

#main-content::before,
#main-content::after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
}

#main-content::before {
  background-image:
    url("/wp-content/themes/unicipal-associations/assets/optimized/a969e7caf2c227e1-600.webp?v=0e8b9838698fe336"),
    url("/wp-content/themes/unicipal-associations/assets/optimized/61377bb6eeda5477-795.webp?v=f33ae54c641c0a78"),
    url("/wp-content/themes/unicipal-associations/assets/backgrounds/Map-Accueil.svg?v=510be8b97cf80daf"),
    url("/wp-content/themes/unicipal-associations/assets/optimized/61377bb6eeda5477-795.webp?v=f33ae54c641c0a78"),
    url("/wp-content/themes/unicipal-associations/assets/backgrounds/bg-05.svg?v=02ea62e64cdf970c");
  background-position:
    right -3.5rem top 36rem,
    left -7rem top 68rem,
    right -11rem top 112rem,
    right -6rem top 168rem,
    left -10rem bottom 3rem;
  background-repeat: no-repeat;
  background-size:
    9.5rem auto,
    10rem auto,
    18rem auto,
    9rem auto,
    16rem auto;
  opacity: 0.1;
}

#main-content::after {
  background-image:
    url("/brand/tortue-accueil.svg?v=494b14b939696240"),
    url("/wp-content/themes/unicipal-associations/assets/backgrounds/bulle-01.svg?v=05fc360d6764d061"),
    url("/wp-content/themes/unicipal-associations/assets/backgrounds/bulle-verte-02-rm.svg?v=6e9cc5d3f645be12"),
    url("/wp-content/themes/unicipal-associations/assets/optimized/5ef8dc0bc17dd280-1218.webp?v=8abaa23dcac43611"),
    url("/wp-content/themes/unicipal-associations/assets/backgrounds/bulle-01.svg?v=05fc360d6764d061"),
    url("/wp-content/themes/unicipal-associations/assets/backgrounds/bulle-verte-02-rm.svg?v=6e9cc5d3f645be12");
  background-position:
    right -2.75rem top 28rem,
    left -3.75rem top 45rem,
    right -3rem top 76rem,
    left -9rem top 118rem,
    right -4rem top 186rem,
    left -3rem bottom 8rem;
  background-repeat: no-repeat;
  background-size:
    min(18vw, 10rem) auto,
    5.5rem auto,
    5rem auto,
    11rem auto,
    5.5rem auto,
    4.5rem auto;
  opacity: 0.28;
}

#main-content > * {
  position: relative;
  z-index: 1;
}

.welcome__associations,
.wordpress-public-page {
  background: rgb(255 255 255 / 0.88);
}

.public-sticky-banner--solid-body > .public-sticky-banner__body {
  background: #fff;
}

/*
 * Les cartes gardent leur balisage accessible, mais le lien principal étend
 * sa zone interactive à toute la surface. Les liens visuels existants restent
 * au-dessus afin de conserver leur comportement natif.
 */
.public-asso-tile__cta::before,
.news-card__public-more::before,
.service-tile__title a::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  border-radius: 1.25rem;
}

.public-asso-tile__media,
.service-tile__media,
.service-tile__cta {
  z-index: 2;
}

.public-asso-tile__cover,
.public-asso-tile__cover-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.public-asso-tile__cover {
  z-index: 0;
  object-fit: cover;
  object-position: center;
  transition: transform 320ms ease;
}

.public-asso-tile__cover-shade {
  z-index: 1;
  background: linear-gradient(180deg, rgb(4 28 17 / 0.08), rgb(4 28 17 / 0.34));
}

.public-asso-tile__logo,
.public-asso-tile__monogram,
.public-asso-tile__corner {
  z-index: 2;
}

.public-asso-tile__media--cover .public-asso-tile__logo {
  padding: 0.3rem;
  border: 1px solid rgb(255 255 255 / 0.78);
  background: rgb(255 255 255 / 0.94);
  box-shadow:
    0 0 0 4px rgb(255 255 255 / 0.2),
    0 10px 26px rgb(4 28 17 / 0.32);
}

.public-asso-tile__media--cover .public-asso-tile__corner {
  border-color: #fff;
  opacity: 0.78;
  filter: drop-shadow(0 1px 2px rgb(4 28 17 / 0.48));
}

.public-asso-tile__card:hover .public-asso-tile__cover {
  transform: scale(1.035);
}

.news-card__public-more:focus-visible,
.public-asso-tile__cta:focus-visible,
.service-tile__title a:focus-visible {
  outline: none;
}

.news-card__public-more:focus-visible::before,
.public-asso-tile__cta:focus-visible::before,
.service-tile__title a:focus-visible::before {
  outline: 3px solid rgb(0 127 139 / 0.42);
  outline-offset: -4px;
}

.news-card--public,
.public-asso-tile__card,
.service-tile {
  position: relative;
  cursor: pointer;
}

/* Les photos des actualités restent entièrement visuelles : l'attribution
 * est placée dans le pied de carte, où elle reste lisible et régulière. */
.news-card__public-header {
  min-height: 8.25rem;
  padding: 0;
}

.news-card__public-header--photo::after {
  opacity: 0;
}

.news-card__public-header-photo {
  object-position: center;
}

.news-card__public-badge {
  position: absolute;
  z-index: 2;
  top: 0.7rem;
  left: 0.7rem;
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.65rem 0.28rem;
  border-radius: 999px;
  background: rgb(16 35 26 / 0.9);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1;
  text-transform: uppercase;
}

.news-card__public-meta {
  gap: 0.75rem;
}

.news-card__public-meta .news-card__public-association {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.news-card__public-meta .news-card__public-date {
  flex: 0 0 auto;
}

.news-card__public-meta svg {
  width: 1rem;
  height: 1rem;
  flex: 0 0 auto;
  stroke-width: 1.7;
}

.news-list--grid {
  grid-auto-rows: 1fr;
  align-items: stretch;
}

.news-list--grid > .news-card-item {
  display: flex;
  min-width: 0;
}

.news-list--grid .news-card--public {
  flex: 1;
  width: 100%;
  height: 100%;
}

.news-list--grid .news-card__public-copy {
  display: flex;
  flex-direction: column;
}

.news-list--grid .news-card__public-more {
  margin-top: auto;
  padding-top: 0.65rem;
}

.volunteer-offer-card--rail,
.volunteer-offer-card--grid {
  flex: 1;
  height: auto;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.volunteer-offer-list--grid {
  grid-auto-rows: 1fr;
  align-items: stretch;
}

.volunteer-offer-card--rail .volunteer-offer-card__body,
.volunteer-offer-card--grid .volunteer-offer-card__body {
  grid-template-rows: auto auto minmax(0, 1fr);
}

.volunteer-offer-card--rail .volunteer-offer-card__description,
.volunteer-offer-card--grid .volunteer-offer-card__description {
  align-self: stretch;
}

.volunteer-offer-card-wrap--rail,
.volunteer-offer-card-wrap--grid {
  display: flex;
}

.volunteer-offer-card__footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.65rem;
  width: 100%;
  border-top: 1px solid rgb(16 35 26 / 0.07);
  background: #f8faf9;
}

.volunteer-offer-card__association {
  min-width: 0;
  overflow: hidden;
  font-weight: 650;
  text-overflow: ellipsis;
}

.volunteer-offer-card__published {
  justify-self: end;
}

.volunteer-offer-card__published time {
  color: inherit;
  font: inherit;
}

.volunteer-offer-card--stay .volunteer-offer-card__footer {
  min-height: 2.35rem;
  padding: 0.45rem 0.15rem 0;
  border-top: 1px solid rgb(16 35 26 / 0.08);
  background: transparent;
  font-size: 0.7rem;
}

.app__viewport {
  width: 100%;
  min-width: 0;
}

.header__menu-toggle,
.header__menu-backdrop {
  display: none;
}

.wp-site-blocks {
  padding: 0;
}

.wordpress-public-page {
  min-height: 60vh;
  padding: clamp(2.5rem, 6vw, 5rem) clamp(1.25rem, 6vw, 5rem);
  background: #fff;
}

.wordpress-public-page__inner {
  width: min(100%, 72rem);
  margin: 0 auto;
}

.wordpress-public-page__heading {
  margin: 0.35rem 0 clamp(1.5rem, 4vw, 2.75rem);
  color: #10231a;
  font-family: var(--ds-font-display);
  font-size: clamp(2rem, 5vw, 3.6rem);
  line-height: 1;
  letter-spacing: -0.045em;
}

.wordpress-public-page .public-asso-list {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.wordpress-entry {
  width: min(100%, 52rem);
  margin: 0 auto;
}

.wordpress-entry__meta {
  margin: -1rem 0 2rem;
  color: #696b7e;
}

.wordpress-entry__content {
  color: #374151;
  font-size: 1.05rem;
  line-height: 1.75;
}

.wordpress-entry__content img {
  border-radius: 1.25rem;
}

.public-asso-detail-banner .public-hero__brand {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}

.unicipal-social-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.unicipal-social-links a {
  display: inline-flex;
  padding: 0.45rem 0.7rem;
  border: 1px solid rgb(0 127 139 / 0.18);
  border-radius: 999px;
  background: #fff;
  color: var(--rm-teal-deep, #007f8b);
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none;
}

.unicipal-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: clamp(2.25rem, 5vw, 3.5rem);
  padding-top: 1.25rem;
  border-top: 1px solid rgb(16 35 26 / 0.09);
}

.unicipal-pagination__status {
  margin: 0;
  color: #7a8982;
  font-size: 0.8rem;
  font-weight: 650;
  letter-spacing: 0.025em;
}

.unicipal-pagination__list {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.unicipal-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-width: 2.45rem;
  min-height: 2.45rem;
  padding: 0.55rem 0.75rem;
  border: 1px solid rgb(16 35 26 / 0.11);
  border-radius: 0.72rem;
  background: #fff;
  color: #43534b;
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  box-shadow: 0 3px 10px rgb(16 35 26 / 0.035);
  transition:
    color 160ms ease,
    background 160ms ease,
    border-color 160ms ease,
    transform 160ms ease,
    box-shadow 160ms ease;
}

.unicipal-pagination a.page-numbers:hover {
  transform: translateY(-1px);
  border-color: rgb(0 127 139 / 0.35);
  color: var(--rm-teal-deep, #007f8b);
  box-shadow: 0 8px 18px rgb(0 127 139 / 0.1);
}

.unicipal-pagination .page-numbers.current {
  border-color: var(--rm-teal-deep, #007f8b);
  background: var(--rm-teal-deep, #007f8b);
  color: #fff;
  box-shadow: 0 7px 16px rgb(0 127 139 / 0.22);
}

.unicipal-pagination .page-numbers.dots {
  min-width: 1.5rem;
  padding-inline: 0.25rem;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
  color: #8a9690;
}

.unicipal-pagination .page-numbers.prev,
.unicipal-pagination .page-numbers.next {
  padding-inline: 0.9rem;
}

.unicipal-pagination .page-numbers:focus-visible {
  outline: 3px solid rgb(0 127 139 / 0.22);
  outline-offset: 2px;
}

.unicipal-archive-shell .public-hero__identity {
  align-items: start;
}

.unicipal-archive-shell .public-hero__logo--start {
  width: clamp(4.75rem, 10vw, 6rem);
  height: clamp(4.75rem, 10vw, 6rem);
}

.unicipal-directory-filter {
  margin: 0 0 1.75rem;
  padding: clamp(1rem, 2.5vw, 1.35rem);
  border: 1px solid rgb(0 127 139 / 0.14);
  border-radius: 1.2rem;
  background:
    linear-gradient(135deg, rgb(0 127 139 / 0.055), rgb(249 189 103 / 0.07)),
    #fff;
  box-shadow: 0 10px 26px rgb(16 35 26 / 0.055);
}

.unicipal-directory-filter__heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.unicipal-directory-filter__eyebrow {
  margin: 0;
  color: var(--rm-teal-deep, #007f8b);
  font-size: 0.625rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.unicipal-directory-filter__title {
  margin: 0.2rem 0 0;
  color: #10231a;
  font-family: var(--ds-font-display);
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  line-height: 1.15;
}

.unicipal-directory-filter__reset {
  color: var(--rm-teal-deep, #007f8b);
  font-size: 0.8rem;
  font-weight: 750;
}

.unicipal-directory-filter__fields {
  display: grid;
  grid-template-columns: minmax(13rem, 1.45fr) repeat(3, minmax(9rem, 1fr)) auto;
  gap: 0.75rem;
  align-items: end;
}

.unicipal-directory-filter__field {
  display: grid;
  gap: 0.35rem;
  min-width: 0;
  color: #315044;
  font-size: 0.72rem;
  font-weight: 750;
}

.unicipal-directory-filter__control {
  position: relative;
  display: block;
}

.unicipal-directory-filter__control svg {
  position: absolute;
  top: 50%;
  left: 0.85rem;
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: var(--rm-teal-deep, #007f8b);
  stroke-width: 1.8;
  stroke-linecap: round;
  transform: translateY(-50%);
  pointer-events: none;
}

.unicipal-directory-filter input,
.unicipal-directory-filter select {
  width: 100%;
  min-height: 2.85rem;
  box-sizing: border-box;
  border: 1px solid rgb(16 35 26 / 0.14);
  border-radius: 0.75rem;
  background: #fff;
  color: #10231a;
  font: inherit;
  font-size: 0.84rem;
  font-weight: 600;
}

.unicipal-directory-filter input {
  padding: 0.7rem 0.8rem 0.7rem 2.45rem;
}

.unicipal-directory-filter select {
  appearance: none;
  padding: 0.7rem 3rem 0.7rem 0.8rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23007f8b' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-position: right 1rem center;
  background-repeat: no-repeat;
  background-size: 1rem;
}

.unicipal-directory-filter input:focus,
.unicipal-directory-filter select:focus {
  border-color: var(--rm-teal-deep, #007f8b);
  outline: 3px solid rgb(0 127 139 / 0.12);
  outline-offset: 1px;
}

.unicipal-directory-filter__submit {
  min-height: 2.85rem;
  padding: 0.7rem 1.15rem;
  border: 0;
  border-radius: 0.75rem;
  background: var(--rm-teal-deep, #007f8b);
  color: #fff;
  font: inherit;
  font-size: 0.84rem;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 7px 16px rgb(0 127 139 / 0.2);
}

.unicipal-directory-filter__submit:hover {
  background: #006c76;
}

.public-list__empty p {
  margin: 0;
}

.public-list__empty a {
  display: inline-block;
  margin-top: 0.65rem;
  color: var(--rm-teal-deep, #007f8b);
  font-weight: 750;
}

.unicipal-archive-content {
  min-height: 32rem;
}

.unicipal-archive-results {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.unicipal-archive-results__eyebrow {
  margin: 0;
  color: var(--rm-teal-deep, #007f8b);
  font-size: 0.625rem;
  font-weight: 750;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.unicipal-archive-results__title {
  margin: 0.25rem 0 0;
  color: #10231a;
  font-family: var(--ds-font-display);
  font-size: clamp(1.2rem, 2.4vw, 1.55rem);
  line-height: 1.15;
  letter-spacing: -0.025em;
}

.unicipal-archive-results__page {
  margin: 0;
  color: #697871;
  font-size: 0.82rem;
  font-weight: 650;
}

@media (max-width: 1080px) {
  .unicipal-directory-filter__fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .unicipal-directory-filter__field--keyword {
    grid-column: 1 / -1;
  }

  .unicipal-directory-filter__submit {
    width: 100%;
  }

  .wordpress-public-page .public-asso-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .unicipal-directory-filter__heading {
    align-items: start;
    flex-direction: column;
    gap: 0.4rem;
  }

  .unicipal-directory-filter__fields {
    grid-template-columns: 1fr;
  }

  .unicipal-directory-filter__field--keyword {
    grid-column: auto;
  }

  .header {
    overflow: hidden;
  }

  .header__brand-name {
    font-size: 1.05rem;
  }

  .header__nav {
    gap: 0.1rem;
  }

  .header__link {
    padding-inline: 0.55rem;
    font-size: 0.8rem;
  }

  .welcome__hero-managed-copy h1,
  .welcome__hero-managed-copy h2 {
    font-size: 2rem;
    overflow-wrap: anywhere;
  }

  .welcome__news-header,
  .welcome__missions-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .welcome__news,
  .welcome__associations,
  .welcome__missions {
    overflow-x: hidden;
  }

  .wordpress-public-page .public-asso-list {
    grid-template-columns: 1fr;
  }

  .public-asso-detail-banner .public-hero__brand {
    font-size: clamp(2rem, 9vw, 2.65rem);
    line-height: 1.02;
  }

  .public-asso-detail-banner .public-hero__identity .public-hero__copy {
    width: calc(100vw - 8.75rem);
    max-width: calc(100vw - 8.75rem);
  }

  .public-asso-detail-banner .public-hero__lead {
    width: min(100%, 17rem);
    max-width: 17rem;
    overflow-wrap: anywhere;
  }

  .unicipal-pagination {
    align-items: stretch;
    flex-direction: column;
  }

  .unicipal-pagination__status {
    text-align: center;
  }

  .unicipal-pagination__list {
    justify-content: center;
  }

  .unicipal-pagination .page-numbers {
    min-width: 2.35rem;
    min-height: 2.35rem;
    padding: 0.5rem 0.65rem;
  }

  .unicipal-pagination__label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  .unicipal-archive-shell .public-hero__identity {
    grid-template-columns: 4.75rem minmax(0, 1fr);
  }

  .unicipal-archive-shell .public-hero__copy {
    width: auto;
    max-width: 100%;
  }

  .unicipal-archive-shell .public-hero__brand,
  .unicipal-archive-shell .public-hero__lead {
    width: auto;
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .unicipal-archive-shell .public-hero__lead {
    width: min(100%, 17rem);
    max-width: 17rem;
  }

  .unicipal-archive-results {
    align-items: flex-start;
    flex-direction: column;
  }

  .unicipal-archive-content > .public-asso-list,
  .unicipal-archive-content > .news-list,
  .unicipal-archive-content > .volunteer-offer-list {
    width: calc(100% - 1.15rem);
  }
}

@media (max-width: 360px) {
  .public-asso-detail-banner .public-hero__identity {
    grid-template-columns: 1fr;
  }

  .public-asso-detail-banner .public-hero__identity .public-hero__copy,
  .public-asso-detail-banner .public-hero__lead {
    width: 100%;
    max-width: 100%;
  }
}

@media (max-width: 820px) {
  .header {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    height: 4.75rem;
    min-height: 4.75rem;
    padding: 10px 1.1rem 0;
    overflow: visible;
  }

  .header__brand {
    width: 100%;
    min-width: 0;
  }

  .header__brand-name {
    overflow: hidden;
    font-size: clamp(0.94rem, 4vw, 1.05rem);
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .header__menu-toggle {
    position: relative;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-width: 4.6rem;
    min-height: 2.75rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid rgb(16 35 26 / 0.1);
    border-radius: 0.8rem;
    background: #fff;
    color: #10231a;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 750;
    cursor: pointer;
    box-shadow: 0 5px 16px rgb(16 35 26 / 0.07);
  }

  .header__menu-toggle:focus-visible {
    outline: 3px solid rgb(0 127 139 / 0.22);
    outline-offset: 2px;
  }

  .header__menu-toggle-lines {
    position: relative;
    display: grid;
    gap: 0.23rem;
    width: 1rem;
  }

  .header__menu-toggle-lines span {
    display: block;
    width: 100%;
    height: 2px;
    border-radius: 999px;
    background: var(--rm-teal-deep, #007f8b);
    transform-origin: center;
    transition: transform 180ms ease, opacity 150ms ease;
  }

  .header--menu-open .header__menu-toggle-lines span:nth-child(1) {
    transform: translateY(0.295rem) rotate(45deg);
  }

  .header--menu-open .header__menu-toggle-lines span:nth-child(2) {
    opacity: 0;
  }

  .header--menu-open .header__menu-toggle-lines span:nth-child(3) {
    transform: translateY(-0.295rem) rotate(-45deg);
  }

  .header__nav {
    position: absolute;
    z-index: 3;
    top: calc(100% - 0.2rem);
    right: 0.8rem;
    left: 0.8rem;
    display: grid;
    width: auto;
    height: auto;
    max-height: calc(100dvh - 5.5rem);
    gap: 0.2rem;
    padding: 0.65rem;
    overflow: auto;
    border: 1px solid rgb(16 35 26 / 0.09);
    border-radius: 1rem;
    background: rgb(255 255 255 / 0.98);
    box-shadow: 0 22px 56px rgb(16 35 26 / 0.2);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-0.6rem) scale(0.985);
    transform-origin: top center;
    transition:
      opacity 180ms ease,
      visibility 180ms ease,
      transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
  }

  .header--menu-open .header__nav {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }

  .header__link,
  .header__link:hover,
  .header__link--active {
    justify-content: flex-start;
    width: 100%;
    height: 3rem;
    min-height: 3rem;
    padding: 0 0.85rem;
    border-radius: 0.72rem;
    font-size: 0.9rem;
  }

  .header__link:hover,
  .header__link:focus-visible {
    background: rgb(0 127 139 / 0.06);
    color: #006773;
    outline: none;
  }

  .header__link--console:hover,
  .header__link--console:focus-visible {
    color: #b82c12;
  }

  .header__link--active {
    background: linear-gradient(90deg, rgb(0 127 139 / 0.11), rgb(7 123 58 / 0.04));
    color: #006773;
  }

  .header__link-label {
    flex-direction: row;
    justify-content: flex-start;
    width: 100%;
  }

  .header__link-label::after,
  .header__link:hover .header__link-label::after,
  .header__link--active .header__link-label::after {
    width: 0.48rem;
    height: 0.48rem;
    margin: 0 0 0 auto;
  }

  .header__link--console {
    margin-top: 0.25rem;
    border-top: 1px solid rgb(16 35 26 / 0.08);
    border-radius: 0 0 0.72rem 0.72rem;
  }

  .header__menu-backdrop {
    position: fixed;
    z-index: 2;
    inset: 4.75rem 0 0;
    display: block;
    background: rgb(4 28 17 / 0.34);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    backdrop-filter: blur(3px);
    transition: opacity 180ms ease, visibility 180ms ease;
  }

  .header--menu-open .header__menu-backdrop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  html.header-menu-open .app__viewport {
    overflow: hidden;
  }
}

@media (max-width: 390px) {
  .header {
    padding-inline: 0.8rem;
  }

  .header__menu-toggle {
    min-width: 2.75rem;
    width: 2.75rem;
    padding-inline: 0.6rem;
  }

  .header__menu-toggle-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
}

@media (max-width: 820px) {
  #main-content {
    background: linear-gradient(
      180deg,
      #fff 0%,
      #f4fbfc 32%,
      #fff8ef 64%,
      #fff6f7 84%,
      #fff 100%
    );
  }

  #main-content::before {
    background-position:
      right -3.5rem top 38rem,
      left -6rem top 74rem,
      right -9rem top 118rem,
      right -5rem top 164rem,
      left -8rem bottom 2rem;
    background-size:
      8rem auto,
      9rem auto,
      15rem auto,
      7rem auto,
      13rem auto;
    opacity: 0.09;
  }

  #main-content::after {
    background-position:
      right -2.5rem top 26rem,
      left -3.5rem top 48rem,
      right -3rem top 80rem,
      left -7rem top 120rem,
      right -3.5rem top 184rem,
      left -2.5rem bottom 7rem;
    background-size:
      8rem auto,
      5rem auto,
      4.5rem auto,
      9rem auto,
      5rem auto,
      4rem auto;
    opacity: 0.24;
  }

  .welcome__associations,
  .wordpress-public-page {
    background: rgb(255 255 255 / 0.96);
  }

  .public-sticky-banner--solid-body > .public-sticky-banner__body {
    background: #fff;
  }
}

@media (prefers-reduced-motion: reduce) {
  .header__nav,
  .header__menu-backdrop,
  .header__menu-toggle-lines span {
    transition: none;
  }
}

/* Give every managed homepage slide a more comfortable button inset. */
.welcome__hero-slide--managed .welcome__intro-actions .rm-btn {
  padding: 1rem 1.75rem;
}

.welcome__pathways .service-tile__body .rm-btn {
  padding-inline: 1.75rem;
}
.welcome__hero-arrow {
  position: absolute;
  z-index: 3;
  top: 50%;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  width: 44px;
  height: 56px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgb(0 0 0 / 0.5);
  color: #fff;
  cursor: pointer;
  filter: drop-shadow(0 1px 3px rgb(0 0 0 / 0.8));
  transition: background 180ms ease;
}
.welcome__hero-arrow svg { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.welcome__hero-arrow:hover,
.welcome__hero-arrow:focus-visible { background: rgb(0 0 0 / 0.65); }
.welcome__hero-arrow--previous { left: 0.5rem; }
.welcome__hero-arrow--next { right: 0.5rem; }
@media (max-width: 620px) {
  .welcome__hero-slide--managed { padding-inline: 3.25rem; }
  .welcome__hero-arrow--previous { left: 0; }
  .welcome__hero-arrow--next { right: 0; }
}

/* Native editorial blocks can be inserted between homepage modules. */
.welcome > :is(p, h1, h2, h3, h4, ul, ol, figure, .wp-block-group, .wp-block-columns, .wp-block-buttons) {
  width: min(calc(100% - 2rem), 72rem);
  margin-inline: auto;
}
.rm-asso__story .wp-block-image img { max-width: 100%; height: auto; }

/* Application dossiers and response workspace. */
.application-field{display:grid;gap:.4rem;font-size:.9rem;font-weight:600;min-width:0}
.application-field input,.application-field textarea,.console-response-search input{box-sizing:border-box;width:100%;min-width:0;border:1px solid #ceded7;border-radius:.65rem;padding:.7rem .8rem;font:inherit;font-weight:400;background:#fff;color:#10231a}
.application-field input:focus-visible,.application-field textarea:focus-visible{outline:2px solid #007f8b;outline-offset:2px}
.application-field input[readonly]{background:#f3f7f5}.application-field textarea{resize:vertical}
.unicipal-apply-dialog{box-sizing:border-box;width:min(34rem,calc(100% - 2rem));max-height:calc(100dvh - 3rem);overflow:auto;padding:1.4rem;border:0;border-radius:1.1rem;box-shadow:0 18px 70px rgb(0 0 0/.24);color:#10231a}
.unicipal-apply-dialog::backdrop{background:rgb(4 28 17/.6)}.unicipal-apply-dialog>header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}
.unicipal-apply-dialog h2{font-size:1.3rem;margin:0}.unicipal-apply-dialog>header button{border:0;background:transparent;font-size:1.7rem;cursor:pointer}
.application-honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.application-success{padding:1rem;border-radius:.6rem;background:#e5f6ed;color:#10472b}
.application-dossier__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.application-document{padding:1rem;background:#e4f4f5;border-radius:.8rem}.application-document--letter{background:#fff1df}
.application-document small,.application-privacy{font-size:.85rem;font-weight:400;line-height:1.5}.volunteer-app-form-shell{padding:2rem 1rem}.application-dossier .rm-btn{cursor:pointer}
@media(max-width:720px){.application-dossier__grid{grid-template-columns:minmax(0,1fr)}.unicipal-apply-dialog{padding:1rem}.volunteer-app-form-shell{padding:1rem .6rem}}


#mission-apply [hidden]{display:none!important}

/* Compact native candidature form; keep controls and their focus rings readable. */
.volunteer-app-form-shell:has(.volunteer-app-form--compact) {
  padding: 1.25rem 1rem;
}
.volunteer-app-form--compact {
  max-width: 65rem;
  margin-inline: auto;
}
.volunteer-app-form--compact .volunteer-app-form__header {
  display: grid;
  gap: .25rem;
  padding: 1rem;
}
.volunteer-app-form--compact .volunteer-app-form__header > :is(p,h1) {
  margin: 0;
}
.volunteer-app-form--compact .volunteer-app-form__header > p:last-child {
  font-size: .875rem;
  line-height: 1.4;
}
.volunteer-app-form--compact .application-dossier {
  padding: 1rem;
}
.volunteer-app-form--compact .application-dossier__grid {
  gap: .75rem;
}
.volunteer-app-form--compact .volunteer-app-form__block {
  padding: .75rem;
  gap: .5rem;
}
.volunteer-app-form--compact .volunteer-app-form__fields,
.volunteer-app-form--compact .volunteer-app-form__row {
  gap: .5rem;
}
.volunteer-app-form--compact .volunteer-app-form__fields--paired,
.volunteer-app-form--compact .application-dossier__documents {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: .5rem;
}
.volunteer-app-form--compact .application-field {
  gap: .25rem;
  font-size: .8125rem;
  line-height: 1.35;
}
.volunteer-app-form--compact .application-field input,
.volunteer-app-form--compact .application-field textarea {
  padding: .5rem .625rem;
  border-radius: .5rem;
  line-height: 1.4;
}
.volunteer-app-form--compact .application-field input {
  min-height: 2.5rem;
}
.volunteer-app-form--compact .application-field textarea {
  min-height: 4.5rem;
}
.volunteer-app-form--compact .application-document {
  padding: .625rem;
  border-radius: .625rem;
  align-content: start;
}
.volunteer-app-form--compact .application-document input[type="file"] {
  min-height: 2.5rem;
  padding: .375rem;
  font-size: .75rem;
}
.volunteer-app-form--compact .application-document input::file-selector-button {
  margin-right: .375rem;
  padding: .375rem;
  border: 1px solid #ceded7;
  border-radius: .3rem;
  background: #fff;
  color: #10231a;
  font: inherit;
  cursor: pointer;
}
.volunteer-app-form--compact .application-document small {
  font-size: .6875rem;
  line-height: 1.4;
}
.volunteer-app-form--compact .application-dossier__actions {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: .75rem;
  padding-top: .75rem;
  border-top: 1px solid var(--vaf-line);
}
.volunteer-app-form--compact .application-privacy {
  flex: 1;
  margin: 0;
  font-size: .75rem;
  line-height: 1.45;
}
.volunteer-app-form--compact .volunteer-app-form__footer {
  flex-shrink: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.volunteer-app-form--compact .volunteer-app-form__footer .rm-btn {
  min-height: 2.75rem;
  padding: .65rem 1.25rem;
  font-size: .875rem;
}
.volunteer-app-form--compact .volunteer-app-form__error {
  margin: .75rem 1rem 0;
}
@media(max-width:760px) {
  .volunteer-app-form-shell:has(.volunteer-app-form--compact) { padding: .75rem .625rem; }
  .volunteer-app-form--compact .application-dossier__grid,
  .volunteer-app-form--compact .volunteer-app-form__fields--paired,
  .volunteer-app-form--compact .application-dossier__documents { grid-template-columns: minmax(0,1fr); }
  .volunteer-app-form--compact .application-dossier { padding: .75rem; }
  .volunteer-app-form--compact .volunteer-app-form__header { padding: .875rem; }
  .volunteer-app-form--compact .application-field input:not([type="file"]),
  .volunteer-app-form--compact .application-field textarea { font-size: 1rem; }
  .volunteer-app-form--compact .application-field input { min-height: 2.75rem; }
  .volunteer-app-form--compact .application-dossier__actions { flex-direction: column; align-items: stretch; gap: .75rem; }
  .volunteer-app-form--compact .volunteer-app-form__footer,
  .volunteer-app-form--compact .volunteer-app-form__footer .rm-btn { width: 100%; }
}

