/* ---------- CtaButton (shared CTA) ----------
   The single CTA button shared across components (NavigationMenu header / mobile
   footer / Espace client modal, OfferFilter, …). Typography mirrors Webflow's
   `u-text-style-button` (heading family, text-main, ss04/ss06) and the label is
   leading-trimmed so its box hugs the cap height — padding is then measured from
   that tight box, exactly like native Webflow buttons. Padding is fixed; the
   total height still shrinks on smaller viewports because the fluid font-size
   shrinks the trimmed label. */
.tbNrrPAaOsONZfodj2bw {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  gap: var(--_spacing---space--4);
  padding-block: 1rem;
  padding-inline: 2rem;
  border: var(--border-width--main) solid transparent;
  border-radius: var(--radius--round);
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
}
.tbNrrPAaOsONZfodj2bw:focus-visible {
  outline: var(--focus--width) solid var(--_swatch---swatch--brand-blue-600);
  outline-offset: var(--focus--offset-outer);
}
.lfEzr0vceWdenXLgsbfX {
  width: 100%;
}

/* Label carries the Webflow button text style + leading trim. flow-root gives
   the trim pseudo-elements a block formatting context so their negative margins
   pull the line box tight instead of collapsing out of the label. */
.KqUsVZMgzd3qxd4IqmbQ {
  display: flow-root;
  font-family: var(--_typography---font--heading-family);
  font-size: var(--_typography---font-size--text-main);
  line-height: var(--_typography---line-height--medium);
  font-weight: var(--_typography---font--primary-semibold);
  letter-spacing: var(--_typography---letter-spacing--normal);
  font-feature-settings: "ss04", "ss06";
}
.KqUsVZMgzd3qxd4IqmbQ::before,
.KqUsVZMgzd3qxd4IqmbQ::after {
  content: "";
  display: table;
}
.KqUsVZMgzd3qxd4IqmbQ::before {
  margin-bottom: calc(-1 * var(--_typography---font--primary-trim-top));
}
.KqUsVZMgzd3qxd4IqmbQ::after {
  margin-top: calc(-1 * var(--_typography---font--primary-trim-bottom));
}

.Qsvcxub_P6RVj5PjLZ90 {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  /* The trimmed label is shorter than the ~1.5rem icon, so a naive flex child
     would let the icon drive the button height — making arrow buttons taller
     than plain ones. Symmetric negative block margins trim the icon's height
     contribution (1.5rem − 2×0.5rem = 0.5rem ≤ label box) so the trimmed label
     stays the height driver, while keeping the icon optically centered. */
  margin-block: -0.5rem;
}

.svV2mxIa16hEAAyLA3Qp {
  background: var(--_theme---button-primary--background);
  color: var(--_theme---button-primary--text);
  border-color: var(--_theme---button-primary--border);
}
.svV2mxIa16hEAAyLA3Qp:hover,
.svV2mxIa16hEAAyLA3Qp:focus-visible {
  background: var(--_theme---button-primary--background-hover);
  color: var(--_theme---button-primary--text-hover);
  border-color: var(--_theme---button-primary--border-hover);
}
.dnshG2WleedTkdMGtoTd {
  background: var(--_theme---button-secondary--background);
  color: var(--_theme---button-secondary--text);
  border-color: var(--_theme---button-secondary--border);
}
.dnshG2WleedTkdMGtoTd:hover,
.dnshG2WleedTkdMGtoTd:focus-visible {
  background: var(--_theme---button-secondary--background-hover);
  color: var(--_theme---button-secondary--text-hover);
  border-color: var(--_theme---button-secondary--border-hover);
}

/* =========================================================================
 * NavigationMenu — token-driven styles
 * Tokens come from /reference code/variables.css. The site bundles that file
 * globally, so the variables resolve at runtime in Webflow.
 * ========================================================================= */

.a5JYSxwQU4sK3Tz5OFQI,
.a5JYSxwQU4sK3Tz5OFQI *,
.a5JYSxwQU4sK3Tz5OFQI *::before,
.a5JYSxwQU4sK3Tz5OFQI *::after,
.j5AnTkUg9l0cUmKF68Pw,
.j5AnTkUg9l0cUmKF68Pw *,
.j5AnTkUg9l0cUmKF68Pw *::before,
.j5AnTkUg9l0cUmKF68Pw *::after {
  box-sizing: border-box;
  transition: color 300ms ease, background-color 300ms ease,
    border-color 300ms ease, opacity 300ms ease, transform 300ms ease,
    box-shadow 300ms ease, fill 300ms ease, stroke 300ms ease;
}

@media (prefers-reduced-motion: reduce) {
  .a5JYSxwQU4sK3Tz5OFQI,
  .a5JYSxwQU4sK3Tz5OFQI *,
  .a5JYSxwQU4sK3Tz5OFQI *::before,
  .a5JYSxwQU4sK3Tz5OFQI *::after,
  .j5AnTkUg9l0cUmKF68Pw,
  .j5AnTkUg9l0cUmKF68Pw *,
  .j5AnTkUg9l0cUmKF68Pw *::before,
  .j5AnTkUg9l0cUmKF68Pw *::after {
    transition: none !important;
  }
}

.a5JYSxwQU4sK3Tz5OFQI {
  font-family: var(--_typography---font--primary-family);
  color: var(--_swatch---swatch--brand-text);
  background: var(--_swatch---swatch--brand-white);
  width: 100%;
  position: relative;
  z-index: 50;
  --nav-content-max-width: var(--max-width--main, 76rem);
  --nav-inline-padding: var(--_spacing---space--8);
  --nav-bar-height: var(--nav--nav-height, 4.5rem);
  --nav-top-height: var(--nav--top-nav-height, 3rem);
  --nav-trigger-color: var(--_theme---text-1);
  --nav-trigger-active-color: var(--_theme---text-accent);
  --nav-muted-color: var(--_swatch---swatch--brand-text-o60);
  --nav-accent: var(--_swatch---swatch--brand-blue-600);
  --nav-panel-radius: var(--_sizes---🟢-radius--border-radius-x-small);
  --nav-card-radius: var(--_sizes---🟢-radius--border-radius-small-medium);
  /* Mega-menu panel background */
  --nav-panel-bg: var(--_swatch---swatch--brand-blue-100);
  /* TODO: add Webflow var --_swatch---swatch--brand-blue-150 — using a hand-tuned tint between 100 and 200 until the token is registered. */
  --nav-tinted-bg: #e6ecff;
  --nav-border: var(--_swatch---swatch--brand-neutral-200);
}

/* ---------- Top utility nav ---------- */
.JSB3YQ_XOGVF8FeQF9ME {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--_spacing---space--6);
  height: var(--nav--top-nav-height);
  padding-inline: var(--nav-inline-padding);
  border-bottom: var(--border-width--main) solid var(--nav-border);
  font-size: var(--_typography---font-size--text-small);
  line-height: var(--_typography---line-height--medium);
  color: var(--nav-muted-color);
}
.OstRiqu9uUd8XiacaDGU {
  display: flex;
  align-items: center;
  gap: var(--_spacing---space--6);
}
.Ab1GuwbewcJDRvWIQIjl {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--_spacing---space--3);
  color: inherit;
  text-decoration: none;
  padding-block: var(--_spacing---space--3);
  font-weight: var(--_typography---font--primary-semibold);
}
.Ab1GuwbewcJDRvWIQIjl:hover,
.Ab1GuwbewcJDRvWIQIjl:focus-visible {
  color: var(--_swatch---swatch--brand-blue-600);
}
.Ab1GuwbewcJDRvWIQIjl[data-current="true"] {
  color: var(--_swatch---swatch--brand-blue-600);
  font-weight: var(--_typography---font--primary-semibold);
}
.Ab1GuwbewcJDRvWIQIjl[data-current="true"]::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: -2px;
  height: 2px;
  width: 1.5rem;
  margin-inline: auto;
  background: var(--_swatch---swatch--brand-blue-600);
}
.fzhHswPBduRH9s3bDLxT {
  color: var(--_swatch---swatch--brand-blue-600);
}

/* ---------- Main bar ---------- */
.fRndTVkipvKzfuak969Z {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--_spacing---space--7);
  padding-inline: var(--nav-inline-padding);
  height: var(--nav--nav-height);
  background: var(--_swatch---swatch--brand-white);
  border-bottom: var(--border-width--main) solid var(--nav-border);
}
/* Layout switch is CSS-driven so the correct version paints before JS runs
 * (Webflow ships static HTML; a JS-only media query flashes desktop→mobile on
 * load). `display: none` also keeps the hidden tree out of the a11y tree, so
 * only one <nav> landmark / one dialog is ever exposed. */
.twJGGWm2snKd5kBYRyek {
  display: none;
}
@media (min-width: 1150px) {
  .lw3Vkb_QA1ctwoCByFM4 {
    display: none;
  }
  .twJGGWm2snKd5kBYRyek {
    display: block;
  }
}

/* Logo bleeds to the left edge on desktop only — on mobile keep the inline padding. */
@media (min-width: 1150px) {
  .fRndTVkipvKzfuak969Z {
    padding-inline-start: 0;
  }
}

.IUhfE7x6gm1N05kYOCwC {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--_theme---logo--background);
  padding: var(--_spacing---space--6);
  text-decoration: none;
  flex-shrink: 0;
  height: var(--nav-bar-height);
  width: 150px;
}
.IUhfE7x6gm1N05kYOCwC svg {
  width: 100%;
  height: 100%;
}
/* ---------- Mobile bar (closed + open share the same header) ---------- */
.pZUA5YFw6NzSqjh3ssS3 {
  background: var(--_theme---logo--background);
  color: var(--_swatch---swatch--brand-white);
  padding-inline: 0;
  gap: var(--_spacing---space--4);
  justify-content: space-between;
  border-bottom: 0;
  height: var(--nav--nav-height);
}
.TDaW_ComkA2AwRFBIFSq {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  flex: 1;
  min-width: 0;
  height: var(--nav-bar-height);
  padding: var(--_spacing---space--7);
  background: transparent;
}
.TDaW_ComkA2AwRFBIFSq svg {
  width: auto;
  height: 100%;
  max-width: 100%;
}
.MxuagWpwKdQtwNSJGvAz {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--_spacing---space--7);
  background: transparent;
  border: 0;
  color: var(--_swatch---swatch--brand-white);
  cursor: pointer;
  border-radius: var(--radius--round);
  flex-shrink: 0;
}
.MxuagWpwKdQtwNSJGvAz:focus-visible {
  outline: var(--focus--width) solid var(--_swatch---swatch--brand-yellow-400);
  outline-offset: var(--focus--offset-outer);
}

.HtPTmhCMdV0Hb8RP2YQX {
  display: flex;
  align-items: center;
  gap: var(--_spacing---space--8);
  list-style: none;
  margin: 0;
  padding-inline-start: 0;
  flex: 0 1 auto;
}

.p3KRdrYitlgQysIHuq9V {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--_spacing---space--3);
  color: var(--nav-trigger-color);
  font-size: var(--_typography---font-size--text-small);
  font-weight: var(--_typography---font--primary-semibold);
  line-height: var(--_typography---line-height--medium);
  background: transparent;
  height: var(--nav-bar-height);
  padding-block: 0;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  /* Reserve the 2 px stroke at all times so hover/open never shifts layout. */
  border: 0;
  border-bottom: 2px solid transparent;
  /* Override the broad global transition with a tighter one so border-color
     never animates against unrelated shorthand changes. */
  transition: color 300ms ease, border-bottom-color 300ms ease;
}
.p3KRdrYitlgQysIHuq9V:hover,
.p3KRdrYitlgQysIHuq9V[data-state="open"],
.p3KRdrYitlgQysIHuq9V[aria-current="page"] {
  color: var(--_swatch---swatch--brand-blue-600);
  border-bottom-color: var(--_swatch---swatch--brand-blue-600);
}
.p3KRdrYitlgQysIHuq9V:focus-visible {
  outline: var(--focus--width) solid var(--_swatch---swatch--brand-blue-600);
  outline-offset: calc(var(--focus--offset-outer) * -1);
  border-radius: var(--_sizes---🟢-radius--border-radius-3x-small);
}

.l20BkG_t50Q5_v7xiIvg {
  display: flex;
  align-items: center;
  gap: var(--_spacing---space--6);
  margin-inline-start: auto;
  flex: 1 1 auto;
  min-width: 0;
  justify-content: flex-end;
}
.l20BkG_t50Q5_v7xiIvg > .K8_GgqyAkSWD2IW_Dmce {
  flex-shrink: 0;
}

.K8_GgqyAkSWD2IW_Dmce {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: var(--radius--round);
  border: 1px solid var(--nav-border);
  background: var(--_swatch---swatch--brand-white);
  color: var(--_swatch---swatch--brand-blue-900);
  cursor: pointer;
  flex-shrink: 0;
}
.K8_GgqyAkSWD2IW_Dmce:hover,
.K8_GgqyAkSWD2IW_Dmce:focus-visible {
  border-color: var(--_swatch---swatch--brand-blue-600);
  color: var(--_swatch---swatch--brand-blue-600);
}
.K8_GgqyAkSWD2IW_Dmce[data-variant="account"] {
  background: var(--_theme---button-secondary--background);
  color: var(--_theme---button-secondary--text);
  border: 2px solid var(--_theme---button-secondary--border);
}
.K8_GgqyAkSWD2IW_Dmce[data-variant="account"]:hover,
.K8_GgqyAkSWD2IW_Dmce[data-variant="account"]:focus-visible {
  background: var(--_theme---button-secondary--background-hover);
  color: var(--_theme---button-secondary--text-hover);
  border-color: var(--_theme---button-secondary--border-hover);
}

/* The shared CTA button (header, mobile footer, Espace client modal) lives in
   components/primitives/CtaButton — styles travel with it in its own CSS
   module. Nothing CTA-related is defined here anymore. */

/* ---------- Viewport / panel ---------- */
.vuvST0tU2iP6gPJxnD6J {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  display: flex;
  justify-content: center;
  pointer-events: none;
  z-index: -1;
}
.q_bDoyoVNcmuJ4j2e9ez {
  position: relative;
  width: 100%;
  background: var(--nav-panel-bg);
  border-block: var(--border-width--main) solid var(--nav-border);
  pointer-events: auto;
  overflow: hidden;
}

.xHDtUeFcIuBjzrYMGkpP {
  display: grid;
  grid-template-columns: minmax(0, 300px) minmax(0, 1fr) minmax(0, 300px) minmax(
      0,
      1fr
    );
  gap: 0;
  width: 100%;
  background: var(--nav-panel-bg);
}
.r4ShxScl8jbOOoD4WwSU {
  grid-column: span 2;
}
.bSYhSIJSP3k2kRSLfR3P {
  padding-block: var(--_spacing---space--10);
  padding-inline: var(--_spacing---space--8);
  display: flex;
  flex-direction: column;
  gap: var(--_spacing---space--7);
}
.rnfOGAahTOMbLAEvfmre {
  background: var(--nav-panel-bg);
}
.AV1Fi8D7YOQyYAwXA3UP {
  background: var(--nav-tinted-bg);
}
.Pzs4isdtNe8TvEF_858Z {
  background: var(--_swatch---swatch--brand-blue-100);
  gap: var(--_spacing---space--6);
  align-items: stretch;
  align-content: flex-start;
  /* Defensive: keep pointer events live across the entire column so Radix
     NavigationMenu doesn't auto-close when the cursor crosses dead zones
     introduced by Webflow's slot wrappers / card components. */
  pointer-events: auto;
}
.Pzs4isdtNe8TvEF_858Z * {
  pointer-events: auto;
}
/* Slot wrapper for designer-supplied cards. */
.eyaKELDhJinI903SKE0W {
  display: flex;
  flex-direction: column;
  gap: var(--_spacing---space--6);
  align-items: stretch;
  pointer-events: auto;
  width: 100%;
}
.eyaKELDhJinI903SKE0W > * {
  flex: 0 0 auto;
  align-self: stretch;
}
.NqMYXooWTQBQwefme2Ym {
  background: var(--nav-panel-bg);
  padding-inline: 0;
}
.CMNVoc4CdZVDEkT_B1QE {
  background: var(--nav-tinted-bg);
  gap: var(--_spacing---space--6);
  align-items: stretch;
  pointer-events: auto;
}
.CMNVoc4CdZVDEkT_B1QE * {
  pointer-events: auto;
}
.mc1kdZ5rU8Ky3WhIRlcQ {
  display: flex;
  flex-direction: column;
  gap: var(--_spacing---space--6);
  align-items: stretch;
  width: 100%;
}
.mc1kdZ5rU8Ky3WhIRlcQ > * {
  flex: 0 0 auto;
  align-self: stretch;
}
.sRSPiZtTwssrMOHy3Hzd {
  display: flex;
  flex-direction: column;
  gap: var(--_spacing---space--4);
  padding: var(--_spacing---space--6);
  background: var(--_swatch---swatch--brand-blue-100);
  border-radius: var(--_sizes---🟢-radius--border-radius-x-small);
}
.P0a9F0Q_6NKPakqrklwU {
  margin: 0;
  font-size: var(--_typography---font-size--text-small);
  font-weight: var(--_typography---font--primary-bold);
  color: var(--_swatch---swatch--brand-blue-900);
  line-height: var(--_typography---line-height--medium);
  text-transform: uppercase;
  /* TODO: add Webflow var --_typography---font--secondary-family (Montserrat) — design uses Montserrat for these card titles. */
}
.EnOBq2oxncEmReJjET0I {
  align-self: flex-start;
  color: var(--_swatch---swatch--brand-blue-600);
  text-decoration: underline;
  text-underline-offset: 0.25em;
  font-size: var(--_typography---font-size--text-small);
  font-weight: var(--_typography---font--primary-semibold);
}
.EnOBq2oxncEmReJjET0I:hover,
.EnOBq2oxncEmReJjET0I:focus-visible {
  color: var(--_swatch---swatch--brand-blue-900);
}

.NdLw0J6Lm0Tni5O0TPwh {
  margin: 0;
  color: var(--_swatch---swatch--brand-blue-900);
  font-size: var(--_typography---font-size--h4);
  font-weight: var(--_typography---font--primary-semibold);
  line-height: var(--_typography---line-height--medium);
}

.vhrHd73UGGv52c9JbDwN {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--_spacing---space--7);
}
.fAH3BhQeWycaQfYS15Eq {
  gap: var(--_spacing---space--4);
}

.BTk2ei4Uav8koy_VbWk7 {
  display: flex;
  flex-direction: column;
  gap: var(--_spacing---space--3);
  text-decoration: none;
  color: inherit;
  border-radius: var(--_sizes---🟢-radius--border-radius-3x-small);
}
.BTk2ei4Uav8koy_VbWk7:focus-visible {
  outline: var(--focus--width) solid var(--_swatch---swatch--brand-blue-600);
  outline-offset: var(--focus--offset-outer);
}
.WCk2ktPj26X5EabDwGvh {
  font-size: var(--_typography---font-size--text-small);
  font-weight: var(--_typography---font--primary-semibold);
  color: var(--_swatch---swatch--brand-text);
  line-height: var(--_typography---line-height--medium);
}
.BTk2ei4Uav8koy_VbWk7:hover .WCk2ktPj26X5EabDwGvh,
.BTk2ei4Uav8koy_VbWk7[aria-current="page"] .WCk2ktPj26X5EabDwGvh {
  color: var(--_swatch---swatch--brand-blue-600);
}
.ltDzySr7RI2TeqmZIWsh {
  font-size: var(--_typography---font-size--text-small);
  color: var(--nav-muted-color);
  line-height: var(--_typography---line-height--large);
}

.mcW5tyKfh4NM8F6JpYuk {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--_spacing---space--6);
  padding-block: var(--_spacing---space--3);
  text-decoration: none;
  color: var(--_swatch---swatch--brand-text);
  font-size: var(--_typography---font-size--text-small);
  font-weight: var(--_typography---font--primary-semibold);
  line-height: var(--_typography---line-height--medium);
}
.mcW5tyKfh4NM8F6JpYuk:hover,
.mcW5tyKfh4NM8F6JpYuk:focus-visible,
.mcW5tyKfh4NM8F6JpYuk[aria-current="page"] {
  color: var(--_swatch---swatch--brand-blue-600);
}
.uPdFrzaaVYH5R9QCM8fo {
  flex-shrink: 0;
  color: var(--_swatch---swatch--brand-blue-900);
}

.AOSl3xSs8lMBkNuUdC7u {
  display: inline-flex;
  align-items: center;
  gap: var(--_spacing---space--3);
  margin-top: var(--_spacing---space--6);
  color: var(--_swatch---swatch--brand-blue-900);
  text-decoration: underline;
  text-underline-offset: 0.25em;
  font-weight: var(--_typography---font--primary-semibold);
  font-size: var(--_typography---font-size--text-small);
}
.AOSl3xSs8lMBkNuUdC7u:hover,
.AOSl3xSs8lMBkNuUdC7u:focus-visible {
  color: var(--_swatch---swatch--brand-blue-600);
}

/* ---------- Tab rail (3-level) ---------- */
.csiRd4H0BznRXwudhpsw {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding-block: 0 var(--_spacing---space--10);
}
._iZowdUaRY3LrW0dT0zr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--_spacing---space--6);
  padding: var(--_spacing---space--6) var(--_spacing---space--7);
  border-radius: 0;
  background: var(--nav-panel-bg);
  border: 0;
  color: var(--_swatch---swatch--brand-blue-600);
  font-size: var(--_typography---font-size--text-small);
  font-weight: var(--_typography---font--primary-semibold);
  text-align: start;
  cursor: pointer;
}
._iZowdUaRY3LrW0dT0zr[data-state="active"] {
  background: var(--_swatch---swatch--brand-white);
  color: var(--_swatch---swatch--brand-text);
}
/* Reserve chevron space at all times so toggling active doesn't reflow the rail. */
.iCnD0aoeG44pJOKOSN4R {
  visibility: hidden;
}
._iZowdUaRY3LrW0dT0zr[data-state="active"] .iCnD0aoeG44pJOKOSN4R {
  visibility: visible;
}
._iZowdUaRY3LrW0dT0zr:focus-visible {
  outline: var(--focus--width) solid var(--_swatch---swatch--brand-blue-600);
  outline-offset: 0;
}

/* ---------- Feature cards ---------- */
.TssdTv8xYzGlg9EJnmIc {
  display: flex;
  flex-direction: column;
  gap: var(--_spacing---space--4);
  padding: var(--_spacing---space--7);
  border: 1px solid var(--nav-border);
  border-radius: var(--_sizes---🟢-radius--border-radius-small-medium);
  background: var(--_swatch---swatch--brand-white);
}
.v78dLCP1PYUAE8UMi5oQ {
  display: flex;
  align-items: center;
  gap: var(--_spacing---space--5);
}
.O_1WKZvMAfQHRrxvCsjv {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: var(--_sizes---🟢-radius--border-radius-3x-small);
  background: var(--_swatch---swatch--brand-blue-100);
  color: var(--_swatch---swatch--brand-blue-900);
  flex-shrink: 0;
}
.O_1WKZvMAfQHRrxvCsjv[data-bg="yellow"] {
  background: var(--_swatch---swatch--brand-yellow-400);
  color: var(--_swatch---swatch--brand-blue-900);
}
.KhqMga2UilFKsnxl9VFo {
  margin: 0;
  font-size: var(--_typography---font-size--text-small);
  font-weight: var(--_typography---font--primary-semibold);
  color: var(--_swatch---swatch--brand-blue-900);
  line-height: var(--_typography---line-height--medium);
}
.RgNRddGbUUop3na4ci0X {
  margin: 0;
  font-size: var(--_typography---font-size--text-small);
  color: var(--nav-muted-color);
  line-height: var(--_typography---line-height--large);
}
.Sgua9FfF5kKCdB92nRQw {
  align-self: flex-start;
  color: var(--_swatch---swatch--brand-blue-900);
  text-decoration: underline;
  text-underline-offset: 0.25em;
  font-size: var(--_typography---font-size--text-small);
}

/* ---------- Mobile ---------- */
.UcjAFsuQAsyjyyFNk94k {
  position: fixed;
  inset: var(--nav-bar-height, 4.5rem) 0 0 0;
  background: rgb(15 21 47 / 0.36);
  z-index: 60;
}
.j5AnTkUg9l0cUmKF68Pw {
  position: fixed;
  inset: var(--nav-bar-height) 0 0 0;
  display: flex;
  flex-direction: column;
  background: var(--_swatch---swatch--brand-white);
  font-family: var(--_typography---font--primary-family);
  color: var(--_swatch---swatch--brand-text);
  z-index: 61;
  overflow: hidden;
  /* The shell is portaled outside .root, so locally redeclare the tokens
     the drawer relies on. Keep these in sync with .root above. */
  --nav-inline-padding: var(--_spacing---space--8);
  --nav-bar-height: var(--nav--nav-height, 4.5rem);
  --nav-top-height: var(--nav--top-nav-height, 3rem);
  --nav-trigger-color: var(--_theme---text-1);
  --nav-trigger-active-color: var(--_theme---text-accent);
  --nav-muted-color: var(--_swatch---swatch--brand-text-o60);
  --nav-accent: var(--_swatch---swatch--brand-blue-600);
  --nav-panel-radius: var(--_sizes---🟢-radius--border-radius-x-small);
  --nav-card-radius: var(--_sizes---🟢-radius--border-radius-x-small);
  --nav-panel-bg: var(--_swatch---swatch--brand-blue-100);
  /* TODO: add Webflow var --_swatch---swatch--brand-blue-150 — using a hand-tuned tint until the token is registered. */
  --nav-tinted-bg: #e6ecff;
  --nav-border: var(--_swatch---swatch--brand-neutral-200);
}
.j5AnTkUg9l0cUmKF68Pw[data-state="closed"],
.UcjAFsuQAsyjyyFNk94k[data-state="closed"] {
  display: none !important;
  pointer-events: none;
}
.b3RQvW29lvsR97QD6rPN {
  flex: 1;
  overflow-y: auto;
  background: var(--_swatch---swatch--brand-white);
  position: relative;
}
.IsSu_5FyrPST7GYLCGtt {
  display: flex;
  flex-direction: column;
  transition: none;
}

.czLHq26Lvm3iHkLxd4Cp {
  display: flex;
  align-items: center;
  gap: var(--_spacing---space--7);
  justify-content: flex-start;
  height: 2.5rem;
  padding-inline: var(--nav-inline-padding);
  border-bottom: 1px solid var(--nav-border);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
}
.czLHq26Lvm3iHkLxd4Cp::-webkit-scrollbar {
  display: none;
}
.T1Tf0KCzICr7Qb_czAuw {
  position: relative;
  white-space: nowrap;
  color: var(--nav-muted-color);
  font-size: var(--_typography---font-size--text-small);
  font-weight: var(--_typography---font--primary-semibold);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  height: 100%;
  flex-shrink: 0;
}
.T1Tf0KCzICr7Qb_czAuw[data-current="true"] {
  color: var(--_swatch---swatch--brand-blue-900);
  font-weight: var(--_typography---font--primary-semibold);
}
.T1Tf0KCzICr7Qb_czAuw[data-current="true"]::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  height: 2px;
  background: var(--_swatch---swatch--brand-blue-900);
}

.jiflOjVetUvbzT17wrKz {
  display: flex;
  align-items: center;
  gap: var(--_spacing---space--5);
  height: 2.5rem;
  padding-block: 0;
  padding-inline: var(--nav-inline-padding);
  border: 0;
  border-bottom: 1px solid var(--nav-border);
  color: var(--_swatch---swatch--brand-text);
  font-weight: var(--_typography---font--primary-semibold);
  font-size: var(--_typography---font-size--text-small);
  background: var(--_swatch---swatch--brand-white);
  width: 100%;
  text-align: start;
  cursor: pointer;
  font-family: inherit;
}
.jiflOjVetUvbzT17wrKz:hover {
  color: var(--_swatch---swatch--brand-blue-600);
}
.jiflOjVetUvbzT17wrKz:focus-visible {
  outline: var(--focus--width) solid var(--_swatch---swatch--brand-blue-600);
  outline-offset: calc(var(--focus--offset-outer) * -1);
}
.a1koppTdDoCuBYCdqmoP {
  flex-shrink: 0;
  color: var(--_swatch---swatch--brand-blue-900);
}

.jJuICchu0fr5tlGrz98n {
  list-style: none;
  margin: 0;
  padding-block: var(--_spacing---space--8);
  padding-inline: 0;
  display: flex;
  flex-direction: column;
  gap: var(--_spacing---space--8);
}
/* When a section heading already provides top padding, the following list
   shouldn't double up on it. */
.dI7nFbFw1lSeiJbMHdXw + .jJuICchu0fr5tlGrz98n {
  padding-top: 0;
}
.bE0fZVixDaahVWiDMO77 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--_spacing---space--6);
  padding-block: 0;
  padding-inline: var(--nav-inline-padding);
  text-decoration: none;
  color: var(--_swatch---swatch--brand-text);
  font-size: var(--_typography---font-size--text-main);
  font-weight: var(--_typography---font--primary-semibold);
  background: transparent;
  border: 0;
  width: 100%;
  text-align: start;
  cursor: pointer;
  min-height: 1.5rem;
}
.bE0fZVixDaahVWiDMO77[data-variant="quiet"] {
  font-weight: var(--_typography---font--primary-semibold);
}
.bE0fZVixDaahVWiDMO77[aria-current="page"] {
  color: var(--_swatch---swatch--brand-blue-600);
}
.dI7nFbFw1lSeiJbMHdXw {
  padding: var(--_spacing---space--8) var(--nav-inline-padding)
    var(--_spacing---space--6);
  margin: 0;
  color: var(--_swatch---swatch--brand-blue-900);
  font-size: var(--_typography---font-size--h4);
  font-weight: var(--_typography---font--primary-semibold);
}
.o0gyNbvX3om4BZ35rWrN {
  margin: var(--_spacing---space--8) var(--nav-inline-padding);
  padding: var(--_spacing---space--7);
  background: var(--nav-tinted-bg);
  border-radius: var(--_sizes---🟢-radius--border-radius-small-medium);
  display: flex;
  flex-direction: column;
  gap: var(--_spacing---space--8);
}
.o0gyNbvX3om4BZ35rWrN h3 {
  margin: 0;
  color: var(--_swatch---swatch--brand-blue-900);
  font-size: var(--_typography---font-size--h4);
  font-weight: var(--_typography---font--primary-semibold);
}
.o0gyNbvX3om4BZ35rWrN a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--_swatch---swatch--brand-text);
  text-decoration: none;
  font-size: var(--_typography---font-size--text-main);
  font-weight: var(--_typography---font--primary-semibold);
}

.aNKQtbADZTrwn8YNxLOF {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--_spacing---space--6);
  padding: var(--_spacing---space--8) var(--nav-inline-padding);
  background: var(--nav-tinted-bg);
}

.rgZH92Bq3jPiVJGeoSkO {
  margin-block: 0;
  margin-inline: var(--nav-inline-padding);
  border: 0;
  border-top: 1px solid var(--nav-border);
}

.yOocazc1TljBf0f0bsRU {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* =========================================================================
 * Espace client modal / drawer
 * Opened from the "Espace client" user icon. Desktop = centered modal,
 * mobile = full-width drawer sliding up from the bottom. Portaled into a
 * display:contents anchor that lives inside .root so the Shadow-DOM-scoped
 * styles (and the global token sheet) still resolve.
 * ========================================================================= */
.yG2M6Okcj0celzC82qtG {
  position: fixed;
  inset: 0;
  background: rgb(15 21 47 / 0.45);
  z-index: 1000;
}

.A3iZhkeFIuUE8HQ0ymv4 {
  position: fixed;
  z-index: 1001;
  display: flex;
  flex-direction: column;
  overflow: hidden auto;
  background: var(--_swatch---swatch--brand-white);
  color: var(--_swatch---swatch--brand-text);
  font-family: var(--_typography---font--primary-family);
  box-shadow: 0 0.75rem 2.5rem rgb(15 21 47 / 0.24);
}
.A3iZhkeFIuUE8HQ0ymv4:focus {
  outline: none;
}

/* Desktop — centered modal */
.A3iZhkeFIuUE8HQ0ymv4[data-variant="desktop"] {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(92vw, 32rem);
  max-height: min(90vh, 44rem);
  border-radius: var(--_sizes---🟢-radius--border-radius-small);
}

/* Mobile — full-width bottom drawer */
.A3iZhkeFIuUE8HQ0ymv4[data-variant="mobile"] {
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  max-height: 92vh;
  border-radius: var(--_sizes---🟢-radius--border-radius-small)
    var(--_sizes---🟢-radius--border-radius-small) 0 0;
}

.f5sb9EKdHaKyMOnTxcBP {
  position: relative;
  z-index: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--_spacing---space--5);
  padding: var(--_spacing---space--10) var(--_spacing---space--10)
    var(--_spacing---space--12);
  background: var(--_theme---background-accent);
  border-bottom: var(--border-width--main) solid var(--_theme---border-2);
  /* Pull the white body up so its rounded top corners curve over the header. */
  margin-bottom: calc(var(--_sizes---🟢-radius--border-radius-small) * -1);
}
.lxzACl9DRbQcqEqKEpBF {
  margin: 0;
  flex: 1 0 0;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--_swatch---swatch--brand-white);
  font-size: var(--_typography---font-size--h5);
  font-weight: var(--_typography---font--primary-bold);
  line-height: var(--_typography---line-height--small);
}
.MrYT5rOPdc9Ce5ljvUvI {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: var(--_spacing---space--2);
  margin: calc(var(--_spacing---space--2) * -1);
  background: transparent;
  border: 0;
  border-radius: var(--radius--round);
  color: var(--_swatch---swatch--brand-white);
  cursor: pointer;
}
.MrYT5rOPdc9Ce5ljvUvI:hover {
  opacity: 0.8;
}
.MrYT5rOPdc9Ce5ljvUvI:focus-visible {
  outline: var(--focus--width) solid var(--_swatch---swatch--brand-white);
  outline-offset: var(--focus--offset-outer);
}

.D_mubhjB0nS5VS8JNPYb {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: var(--_spacing---space--10);
  padding: var(--_spacing---space--10) var(--_spacing---space--10)
    var(--_spacing---space--8);
  background: var(--_swatch---swatch--brand-white);
  border-radius: var(--_sizes---🟢-radius--border-radius-small)
    var(--_sizes---🟢-radius--border-radius-small) 0 0;
}
.nJAIw6i_Qsl0Gf28h6pw {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--_spacing---space--8);
}
.reShQL0Lxt89N0az8Rjx {
  /* Illustration is a fixed 100px mark in Figma — no spacing token applies. */
  inline-size: 6.25rem;
  block-size: 6.25rem;
  flex-shrink: 0;
}
.GwlDAX2O4M9WdUNNKF3B {
  margin: 0;
  text-align: center;
  color: var(--_swatch---swatch--brand-text);
  font-size: var(--_typography---font-size--h3);
  font-weight: var(--_typography---font--primary-bold);
  line-height: var(--_typography---line-height--small);
}

.qSnSW1Ck9RPVVgUAyIvW {
  display: flex;
  flex-direction: column;
  gap: var(--_spacing---space--8);
}

/* Open/close — hide when closed; animate in when open. */
.yG2M6Okcj0celzC82qtG[data-state="closed"],
.A3iZhkeFIuUE8HQ0ymv4[data-state="closed"] {
  display: none !important;
}
.yG2M6Okcj0celzC82qtG[data-state="open"] {
  animation: wBJRYVB_N5QCgYRyRBzZ 200ms ease;
}
.A3iZhkeFIuUE8HQ0ymv4[data-variant="desktop"][data-state="open"] {
  animation: B6UXM28O_ZtFXUI7QGRR 240ms cubic-bezier(0.16, 1, 0.3, 1);
}
.A3iZhkeFIuUE8HQ0ymv4[data-variant="mobile"][data-state="open"] {
  animation: HQRdwu06D9PBGiRLUZMj 300ms cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes wBJRYVB_N5QCgYRyRBzZ {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes B6UXM28O_ZtFXUI7QGRR {
  from {
    opacity: 0;
    transform: translate(-50%, -46%) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
}
@keyframes HQRdwu06D9PBGiRLUZMj {
  from {
    transform: translateY(100%);
  }
  to {
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .yG2M6Okcj0celzC82qtG[data-state="open"],
  .A3iZhkeFIuUE8HQ0ymv4[data-state="open"] {
    animation: none;
  }
}

/* ---------- Animation ---------- */
.q_bDoyoVNcmuJ4j2e9ez[data-state="open"] {
  animation: Dx3oBAncfU4NWV3BiV7I var(--nav--menu-open-duration, 0.2s) ease;
}
@keyframes Dx3oBAncfU4NWV3BiV7I {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .q_bDoyoVNcmuJ4j2e9ez[data-state="open"] {
    animation: none;
  }
}

