/* 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); }
/* THEMATIC_NAV_DENSE_GAP_V1 (2026-10-13): seven entries or more (six themes + Blog) keep one line on a 1050 px bar. */
body > nav[x-data] .cms-editorial-header__desktop-nav[data-cms-thematic-nav]:has(> :nth-child(7)) { column-gap: clamp(14px, 1.1vw, 22px); }
.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; }
/* MENU_GROUP_MEDIA_V1 (Julien 2026-10-15): one filled column takes the whole width; pictured entries become small cards
   (up to 4, the scene of the page) or a two-column picture list (up to 10, the product on white); long word lists split. */
.cms-thematic-nav__groups--single { grid-template-columns: minmax(0, 1fr); }
.cms-thematic-nav__links--split { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; }
.cms-thematic-nav__links--cards { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 14px; }
/* MENU_CARDS_TWO_ROWS_V1: 5 to 8 scene cards on two rows. */
.cms-thematic-nav__links--cards[style*="--nav-cols"] { grid-template-columns: repeat(var(--nav-cols), minmax(0, 190px)); gap: 12px; }
.cms-thematic-nav__links--cards[style*="--nav-cols"] .cms-thematic-nav__thumb { aspect-ratio: 16 / 10; }
.cms-thematic-nav__links--cards[style*="--nav-cols"] .cms-thematic-nav__label { padding: 9px 12px 10px; font-size: 13.5px; }
/* MENU_PRODUCT_CARDS_V1: brand cards show the cut-out whole, on the light ground of the catalogue cards. */
.cms-thematic-nav__links--product { grid-template-columns: repeat(auto-fill, minmax(150px, 170px)); gap: 12px; }
.cms-thematic-nav__links--product .cms-thematic-nav__thumb { aspect-ratio: 4 / 3; padding: 12px; background: color-mix(in srgb, var(--color-bg-alt, #f4f4f2) 70%, #fff); }
.cms-thematic-nav__links--product .cms-thematic-nav__thumb img { object-fit: contain; }
.cms-thematic-nav__links--product .cms-thematic-nav__label { padding: 9px 12px 10px; font-size: 13.5px; }
body > nav[x-data] .hidden.xl\:flex .cms-thematic-nav__links--cards a { display: grid; gap: 0; overflow: hidden; padding: 0; border: 1px solid var(--color-border); border-radius: 14px; background: var(--color-bg, #fff); text-decoration: none; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
body > nav[x-data] .hidden.xl\:flex .cms-thematic-nav__links--cards a:hover, body > nav[x-data] .hidden.xl\:flex .cms-thematic-nav__links--cards a:focus-visible { border-color: color-mix(in srgb, var(--color-accent) 45%, var(--color-border)); box-shadow: 0 10px 22px rgb(15 23 42 / 8%); text-decoration: none; transform: translateY(-2px); }
.cms-thematic-nav__links--cards .cms-thematic-nav__thumb { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--color-bg-alt, #f4f4f2); }
.cms-thematic-nav__links--cards .cms-thematic-nav__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cms-thematic-nav__links--cards .cms-thematic-nav__label { padding: 11px 13px 13px; font-weight: 700; line-height: 1.3; }
.cms-thematic-nav__links--media { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 18px; }
body > nav[x-data] .hidden.xl\:flex .cms-thematic-nav__links--media a { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 12px; align-items: center; padding: 6px 8px; border-radius: 10px; text-decoration: none; }
body > nav[x-data] .hidden.xl\:flex .cms-thematic-nav__links--media a:hover, body > nav[x-data] .hidden.xl\:flex .cms-thematic-nav__links--media a:focus-visible { background: color-mix(in srgb, var(--color-accent) 8%, transparent); text-decoration: none; }
.cms-thematic-nav__links--media .cms-thematic-nav__thumb { display: grid; width: 52px; height: 52px; place-items: center; overflow: hidden; border: 1px solid var(--color-border); border-radius: 10px; background: #fff; }
.cms-thematic-nav__links--media .cms-thematic-nav__thumb img { width: 100%; height: 100%; padding: 4px; box-sizing: border-box; object-fit: contain; }
.cms-thematic-nav__links--media .cms-thematic-nav__label { font-weight: 600; line-height: 1.3; }
.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);
}
