/* Finance reference layout, without brand values or icon-button overrides. */
.cms-editorial-header__thematic-frame { max-width: min(1480px, calc(100vw - 32px)); }
body > nav.cms-editorial-header[x-data] .cms-editorial-header__bar:has([data-cms-thematic-nav]) { position: relative; overflow: visible; gap: 10px; }
.cms-editorial-header__bar:has([data-cms-thematic-nav]) .cms-editorial-header__brand { flex: 0 0 auto; margin-right: 0; }
body > nav[x-data] .cms-editorial-header__desktop-nav[data-cms-thematic-nav] { flex: 1 1 auto; min-width: 0; margin-left: 0; justify-content: flex-end; flex-wrap: wrap; gap: 12px var(--cms-navigation-gap, 28px); }
.cms-thematic-nav__item { position: static; flex: 0 0 auto; }
.cms-thematic-nav__trigger,
body > nav.cms-editorial-header[x-data] [data-cms-thematic-nav] .cms-thematic-nav__trigger {
  /* Block-level flex avoids an inherited descender line box inside details. */
  display: flex; align-items: center; gap: 1px; padding: 0; margin: 0;
  color: var(--color-text); font: 620 var(--cms-navigation-font-size, 13px)/1.15 var(--font-body, sans-serif);
  white-space: nowrap; list-style: none; text-decoration: none; cursor: pointer; letter-spacing: -.35px;
}
.cms-thematic-nav__trigger::-webkit-details-marker { display: none; }
.cms-thematic-nav__trigger > svg { flex: 0 0 11px; width: 11px; height: 11px; }
.cms-thematic-nav__trigger--empty { cursor: default; }
.cms-thematic-nav__trigger:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 5px; }
.cms-thematic-nav__mega { position: absolute; z-index: 90; top: 100%; left: 50%; width: min(1280px, calc(100vw - 40px)); padding-top: 12px; transform: translateX(-50%); }
.cms-thematic-nav__mega-inner { display: grid; grid-template-columns: minmax(250px, .78fr) minmax(0, 2.22fr); min-height: 310px; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-lg, 22px); background: var(--cms-content-surface-background, #fff); box-shadow: 0 26px 80px rgb(15 23 42 / 20%); }
.cms-thematic-nav__overview { position: relative; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; padding: 26px; color: #fff; background: var(--color-dark-bg); }
.cms-thematic-nav__media { position: absolute; inset: 0; }
.cms-thematic-nav__media::after { position: absolute; inset: 0; content: ''; background: linear-gradient(180deg, transparent, var(--color-dark-bg)); }
.cms-thematic-nav__media img { width: 100%; height: 100%; object-fit: cover; }
.cms-thematic-nav__overview-copy { position: relative; display: grid; gap: 8px; }
.cms-thematic-nav__overview-copy small { color: var(--color-accent-2); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.cms-thematic-nav__overview-copy strong { color: #fff; font: 750 clamp(22px, 2vw, 31px)/1.08 var(--font-heading, sans-serif); }
.cms-thematic-nav__overview-copy p { margin: 0; color: rgb(255 255 255 / 85%); font-size: 14px; line-height: 1.5; }
.cms-thematic-nav__groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; padding: 28px 30px; }
.cms-thematic-nav__column { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.cms-thematic-nav__group h3 { margin: 0 0 8px; color: var(--color-accent); font: 800 12px/1.4 var(--font-body, sans-serif); text-transform: uppercase; }
.cms-thematic-nav__links { display: grid; gap: 2px; }
body > nav[x-data] .hidden.xl\:flex .cms-thematic-nav__links a { padding: 6px 0; color: var(--color-text); font-size: 14px; line-height: 1.4; white-space: normal; }
.cms-thematic-nav__links a:hover, .cms-thematic-nav__links a:focus-visible { text-decoration: underline; }
.cms-thematic-nav__mobile { display: grid; }
.cms-thematic-nav__mobile details { border-bottom: 1px solid var(--color-border); }
.cms-thematic-nav__mobile summary, .cms-thematic-nav__mobile-link { display: flex; justify-content: space-between; gap: 16px; padding: 15px 0; color: inherit; font-weight: 750; list-style: none; text-decoration: none; }
.cms-thematic-nav__mobile summary { cursor: pointer; }
.cms-thematic-nav__mobile summary::-webkit-details-marker { display: none; }
.cms-thematic-nav__mobile details[open] summary span { transform: rotate(45deg); }
.cms-thematic-nav__mobile-panel { padding: 0 0 20px 12px; }
.cms-thematic-nav__mobile-panel section + section { margin-top: 16px; }
.cms-thematic-nav__mobile-panel h3 { margin: 0 0 4px; color: var(--color-accent); font-size: 12px; text-transform: uppercase; }
.cms-thematic-nav__mobile-panel a { display: block; padding: 9px 0; color: inherit; font-size: 14px; line-height: 1.4; text-decoration: none; }
.cms-thematic-nav__nojs { display: none; padding: 16px; }
@media (max-width: 1279px) { .cms-thematic-nav__mega { display: none; } }
@media (max-width: 1279px) { .cms-thematic-nav__nojs { display: block; } }

/* THEMATIC_MOBILE_MENU_V2 (Julien 2026-10-09): on a phone an opened rubric reads as a title with its own block below —
   the title in the accent ink with room under it, the sub-menu in a soft tinted card (not glued to the title), groups
   separated by a hairline, links slightly larger with a separator and a small chevron. */
.cms-mobile-nav details[open] > summary { color: color-mix(in srgb, var(--color-accent, #14a3a8) 70%, var(--color-text, #1d2433)); padding-bottom: 12px; }
.cms-thematic-nav__mobile-panel {
  margin: 0 0 16px; padding: 14px 16px 6px;
  border-radius: 14px; background: color-mix(in srgb, var(--color-accent, #14a3a8) 7%, var(--color-bg, #fff));
}
.cms-thematic-nav__mobile-panel section + section {
  margin-top: 10px; padding-top: 12px;
  border-top: 1px solid color-mix(in srgb, var(--color-accent, #14a3a8) 18%, transparent);
}
.cms-thematic-nav__mobile-panel h3 { margin: 0 0 2px; font-size: 11.5px; font-weight: 800; letter-spacing: .08em; }
.cms-thematic-nav__mobile-panel a {
  position: relative; padding: 11px 22px 11px 0; font-size: 15px; line-height: 1.35;
  border-bottom: 1px solid color-mix(in srgb, var(--color-text, #1d2433) 8%, transparent);
}
.cms-thematic-nav__mobile-panel section a:last-child { border-bottom: 0; }
.cms-thematic-nav__mobile-panel a::after {
  content: ""; position: absolute; right: 4px; top: 50%; width: 7px; height: 7px;
  border-top: 2px solid currentColor; border-right: 2px solid currentColor; opacity: .45;
  transform: translateY(-50%) rotate(45deg);
}
