/* Reading rhythm for the existing six country identities. Content stays intact. */
:is(body.fv-reference-home, body.fv-de-reference-home, body.fv-reference-template, body.fv-nl-react-template) {
  --landing-section-space: clamp(48px, 6vw, 88px);
}
:is(body.fv-reference-template, body.fv-nl-react-template) main > section:is([class*="py-20"], [class*="py-24"], [class*="py-28"], [class*="py-32"]),
.fv-ref-home > :is(.fv-ref-services,.fv-ref-operation,.fv-ref-process,.fv-ref-industries,.fv-ref-resources,.fv-ref-faq,.fv-ref-enquiry),
.fv-de-home > :is(.fv-de-services,.fv-de-operation,.fv-de-process,.fv-de-industries,.fv-de-resources,.fv-de-faq,.fv-de-enquiry) {
  padding-block: var(--landing-section-space);
}
:is(body.fv-reference-template,body.fv-nl-react-template) main :is(h1,h2,h3,p,li,dd) { overflow-wrap: anywhere; }
:is(body.fv-reference-template,body.fv-nl-react-template) main > section > .shell > * { min-width: 0; }
:is(body.fv-reference-template,body.fv-nl-react-template) main .grid > * { min-width: 0; }
:is(body.fv-reference-template,body.fv-nl-react-template) main > section > .shell > div > p:not([class*="eyebrow"]):not([class*="kicker"]) { max-width: 70ch; }
.fv-ref-hero-grid { min-height: 0; padding-block: clamp(48px, 5vw, 72px); gap: 56px; }
.fv-ref-hero h1 { max-width: 17ch; font-size: clamp(2.65rem, 4.4vw, 4rem); line-height: 1.04; }
.fv-ref-hero-lead { max-width: 62ch; }
.fv-ref-hero-note { margin-top: 24px; }
.fv-de-home .fv-de-hero { padding-block: clamp(40px, 4.5vw, 64px); }
.fv-de-home .fv-de-hero-grid { margin-top: 36px; gap: 48px; align-items: center; }
.fv-de-home .fv-de-hero h1 { max-width: 30ch; font-size: clamp(2.2rem, 4vw, 3.3rem); }
.fv-de-language summary { min-width: 44px; min-height: 44px; }
.fv-de-home .fv-de-hero-media > figure { box-shadow: none; }
.fv-fr-react-template #hero > .shell { padding-block: clamp(40px, 4vw, 60px); }
.fv-fr-react-template #fr-hero-title { max-width: 22ch; font-size: clamp(2.25rem, 3.6vw, 3.35rem); line-height: 1.12; }
.fv-es-react-template #hero > .shell:first-of-type { padding-top: clamp(40px, 4vw, 60px); }
.fv-es-react-template #hero > .shell:last-of-type { margin-top: 36px; padding-bottom: 48px; }
.fv-es-react-template #es-hero-title { font-size: clamp(2.2rem, 3.8vw, 3.55rem); line-height: 1.12; }
.fv-it-react-template #hero > .shell { padding-block: clamp(36px, 4vw, 56px); }
.fv-it-react-template #it-hero-title { max-width: 23ch; font-size: clamp(2.4rem, 4vw, 3.7rem); line-height: 1.08; }
.fv-it-react-template #hero > figure > img { max-height: 330px; }
.fv-nl-react-template #start > .shell { padding-block: clamp(36px, 4vw, 56px); }
.fv-nl-react-template #nl-hero-title { font-size: clamp(2rem, 3.7vw, 3.3rem); line-height: 1.13; }
.fv-nl-react-template #start figure img { max-height: 350px; }

/* Keep the two equal consent actions outside the scrollable explanation. */
:is(.fv-fr-react-template,.fv-es-react-template,.fv-it-react-template) [role="region"][aria-label*="cookie"] > div > .shell { gap: 16px; padding-block: 16px; }
:is(.fv-fr-react-template,.fv-es-react-template,.fv-it-react-template) [role="region"][aria-label*="cookie"] button { min-height: 44px; }

/* Article/index pages inherit the country's live palette without restyling homes. */
.public-site:is(.page-guide-index,.page-article,.support-page).language-de { --ink:#16181c; --ink-soft:#31353d; --muted:#5a606a; --brand:#a83019; --brand-dark:#8f2814; --surface-soft:#f6f4ee; --line:#e2ded2; }
.public-site:is(.page-guide-index,.page-article,.support-page).language-fr { --ink:#1c1f27; --ink-soft:#4e5464; --brand:#17369a; --brand-dark:#1c1f27; --surface-soft:#f3eee3; --line:#ddd3bf; }
.public-site:is(.page-guide-index,.page-article,.support-page).language-es { --ink:#1c2320; --ink-soft:#4f5a54; --brand:#a33a1b; --brand-dark:#0b3027; --surface-soft:#fbf7ef; --line:#dcded4; }
.public-site:is(.page-guide-index,.page-article,.support-page).language-it { --ink:#1b1c1d; --ink-soft:#4d5155; --brand:#c02620; --brand-dark:#0a5866; --surface-soft:#f8f8f7; --line:#d0d4d7; }
.public-site:is(.page-guide-index,.page-article,.support-page).language-nl { --ink:#0b2428; --ink-soft:#4d5a66; --brand:#0c6b4a; --brand-dark:#1e4fa1; --surface-soft:#f2f5f8; --line:#c4d0dc; }
.public-site.page-guide-index { --guide-hero-bg:var(--brand-dark); --guide-hero-ink:#fff; --guide-hero-muted:#d6e2f5; --guide-action-bg:var(--brand); --guide-action-ink:#fff; }
.public-site.page-guide-index.language-en { --guide-action-bg:#fff; --guide-action-ink:var(--brand-dark); }
.public-site.page-guide-index.language-de { --guide-hero-bg:#f6f4ee; --guide-hero-ink:#16181c; --guide-hero-muted:#5a606a; }
.public-site.page-guide-index.language-fr { --guide-hero-bg:#17369a; --guide-hero-muted:#e1e7ff; --guide-action-bg:#ab571b; }
.public-site.page-guide-index.language-es { --guide-hero-bg:#fbf7ef; --guide-hero-ink:#0b3027; --guide-hero-muted:#4f5a54; }
.public-site.page-guide-index.language-it { --guide-hero-bg:#0a5866; --guide-hero-muted:#dceef0; }
.public-site.page-guide-index.language-nl { --guide-hero-bg:#f4f0e5; --guide-hero-ink:#0b2428; --guide-hero-muted:#4d5a66; --brand:#ac390b; --brand-dark:#1e4fa1; }
.public-site.page-guide-index .guide-index-hero { background:var(--guide-hero-bg); color:var(--guide-hero-ink); }
.public-site.page-guide-index .guide-index-hero h1 { color:var(--guide-hero-ink); }
.public-site.page-guide-index .guide-index-kicker,
.public-site.page-guide-index .guide-index-hero-copy > p:not(.guide-index-kicker) { color:var(--guide-hero-muted); }
.public-site.page-guide-index .guide-index-kicker span { background:var(--brand); }
.public-site.page-guide-index .guide-index-actions .button-light { background:var(--guide-action-bg); border-color:var(--guide-action-bg); color:var(--guide-action-ink); }
.public-site.page-guide-index .guide-index-actions .button-ghost { border-color:var(--guide-hero-muted); color:var(--guide-hero-ink); }
.public-site.page-guide-index .guide-index-feature { background:var(--surface-soft); color:var(--ink); }
.public-site.page-guide-index .guide-index-feature header h2,
.public-site.page-guide-index .guide-index-featured h2 { color:var(--ink); }
.public-site.page-guide-index .guide-index-feature header > p:last-child,
.public-site.page-guide-index .guide-index-featured p,
.public-site.page-guide-index .guide-index-card p { color:var(--ink-soft); }
.public-site.page-guide-index :is(.guide-index-topics,.guide-index-topics a,.guide-index-featured) { border-color:var(--line); }
.public-site.page-guide-index .guide-index-topics a { color:var(--ink-soft); }
.public-site.page-guide-index .guide-index-topics a.active { background:var(--brand); border-color:var(--brand); color:#fff; }
.public-site.page-guide-index .guide-index-featured { background:#fff; }
.public-site.page-guide-index .guide-index-newsletter { background:var(--surface-soft); border-color:var(--line); }
.public-site.page-guide-index.language-de .guide-index-hero-visual figcaption { background:#16181c; }
.public-site.page-guide-index.language-de .guide-index-hero-visual figcaption small { color:#e2ded2; }
.public-site:is(.page-guide-index,.page-article) :is(h1,h2,h3,p,li,dd,a) { overflow-wrap: anywhere; }
.public-site:is(.page-guide-index,.page-article) :is(.header-shell,.article-title-row,.article-layout,.guide-index-hero-grid,.guide-index-featured,.guide-index-card-grid) > * { min-width: 0; }
.public-site:is(.page-guide-index,.page-article) .brand { flex-shrink: 1; }
.public-site:is(.page-guide-index,.page-article) .brand-copy { min-width: 0; }
.public-site.page-guide-index .guide-index-hero-grid { padding-block: clamp(40px, 5vw, 72px); gap: 48px; }
.public-site.page-guide-index .guide-index-hero-copy h1 { font-size: clamp(2.15rem, 4vw, 3.6rem); line-height: 1.13; max-width: 23ch; }
.public-site.page-guide-index .guide-index-hero-visual figcaption { right: 16px; bottom: 16px; box-shadow: none; }
.public-site.page-guide-index :is(.guide-index-feature,.guide-index-library) { padding-block: clamp(48px, 6vw, 80px); }
.public-site.page-article .article-heading-shell { padding-bottom: clamp(36px, 4vw, 56px); }
.public-site.page-article .article-title-row { margin-top: 28px; gap: 48px; }
.public-site.page-article .article-title-row h1 { font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1.13; max-width: 26ch; }
.public-site.page-article .article-layout { grid-template-columns: minmax(0, 760px) minmax(0, 250px); gap: 56px; padding-block: 48px; }
.public-site.page-article .article-body { font-size: 17px; line-height: 1.8; color: var(--ink-soft); }
.public-site.page-article .article-body :is(h2,h3) { margin-bottom: 16px; }
.public-site.page-article .article-facts > div { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.public-site:is(.page-guide-index,.page-article) .language-picker a { min-height: 44px; }
.public-site.page-article .article-body table { display: block; max-width: 100%; overflow-x: auto; }

@media (min-width:1024px) {
  .fv-ref-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .fv-ref-hero-visual { min-height: 440px; }
  .fv-de-home .fv-de-hero-media img { aspect-ratio: 16 / 9; }
  :is(.fv-reference-template,.fv-nl-react-template) main > :is(#demande,#solicitud,#richiesta,#aanvraag) > .shell { grid-template-columns: minmax(0,4fr) minmax(0,8fr); gap: 48px; align-items: start; }
  :is(.fv-reference-template,.fv-nl-react-template) main > :is(#demande,#solicitud,#richiesta,#aanvraag) > .shell > div { grid-column: auto; }
  :is(.fv-reference-template,.fv-nl-react-template) main > :is(#demande,#solicitud,#richiesta,#aanvraag) form { max-width: 820px; }
}
@media (max-width:1023px) {
  .public-site.page-article .article-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .public-site.page-article .article-aside { position: static; }
}
@media (max-width:639px) {
  :is(body.fv-reference-home,body.fv-de-reference-home,body.fv-reference-template,body.fv-nl-react-template) { --landing-section-space:48px; }
  .fv-ref-hero-grid { padding-top: 36px; gap: 32px; }
  .fv-ref-hero h1 { max-width: 17ch; font-size: clamp(2.35rem, 10vw, 2.85rem); }
  .fv-ref-hero-visual { min-height: 300px; }
  .fv-de-home .fv-de-hero-grid { gap: 28px; margin-top: 28px; }
  .fv-de-home .fv-de-hero h1 { line-height: 1.16; }
  .fv-de-reference-home .fv-de-header-inner { gap: 8px; }
  .fv-de-reference-home .fv-de-brand { flex: 0 1 auto; min-width: 0; }
  .fv-de-reference-home .fv-de-brand > span { min-width: 0; white-space: nowrap; font-size: clamp(1.05rem, 5.5vw, 1.35rem); }
  .fv-de-reference-home .fv-de-brand svg { flex-shrink: 0; }
  .fv-de-reference-home .fv-de-header-actions { flex-shrink: 0; }
  .fv-nl-react-template #start figure img { max-height: 240px; }
  .fv-it-react-template #hero > figure > img { max-height: 260px; }
  :is(.fv-fr-react-template,.fv-es-react-template,.fv-it-react-template) [role="region"][aria-label*="cookie"] > div > .shell > div:first-child { max-height: 24dvh; overflow-y: auto; scrollbar-width: thin; }
  :is(.fv-fr-react-template,.fv-es-react-template,.fv-it-react-template) [role="region"][aria-label*="cookie"] > div > .shell > div:last-child { display: flex; flex-direction: row; flex-wrap: wrap; gap: 8px; }
  :is(.fv-fr-react-template,.fv-es-react-template,.fv-it-react-template) [role="region"][aria-label*="cookie"] button { flex: 1 1 120px; padding-inline: 12px; }
  .public-site:is(.page-guide-index,.page-article) .content-shell { width: calc(100% - 32px); }
  .public-site:is(.page-guide-index,.page-article) .header-shell { gap: 10px; }
  .public-site:is(.page-guide-index,.page-article) .brand-copy strong { max-width: 140px; }
  .public-site.page-guide-index .guide-index-hero-grid { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .public-site.page-guide-index .guide-index-hero-visual figcaption { position: static; width: 100%; margin-top: 12px; }
  .public-site.page-guide-index .guide-index-feature > .content-shell > header { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .public-site.page-guide-index .guide-index-proof ul { flex-wrap: wrap; }
  .public-site.page-article .article-title-row { gap: 24px; grid-template-columns: minmax(0,1fr); }
  .public-site.page-article .article-route-mark { display: none; }
  .public-site.page-article .article-body { font-size: 16px; }
  .public-site:is(.page-guide-index,.page-article) :is(.article-related,.article-related-grid,.content-grid,.guide-index-card-grid) { grid-template-columns: minmax(0,1fr); }
}

/* Heading wrap guard (2026-10-19):
   Headings keep `anywhere` only as an emergency fallback so a soft hyphen is
   chosen first; body copy keeps `anywhere` so long tokens cannot overflow. */
:is(body.fv-reference-template, body.fv-nl-react-template) main :is(h1, h2, h3) { overflow-wrap: break-word; }

/* Header nav must not break labels (2026-10-19)
   Guide/article pages set overflow-wrap:anywhere on every anchor, which split
   nav labels mid-word inside the flex header. Nav controls keep one line. */
.public-site .site-header nav :is(a, button, summary) {
  overflow-wrap: normal;
  word-break: normal;
  white-space: nowrap;
}

/* Header row fits its track (2026-10-19)
   The guide/article header carries six nav items plus language and CTA. Once
   labels stop wrapping the row needs ~100px less, so tighten the rhythm. */
.public-site .site-header .header-shell { gap: 20px; }
.public-site .site-header .desktop-nav { gap: 13px; }
.public-site .site-header .desktop-nav > ul { gap: 13px; }
.public-site .site-header .desktop-nav :is(a, button, summary) { font-size: 15px; }

/* One weight for header nav (2026-10-19)
   Menu buttons and plain links in the same row were rendering at 400/#10213f
   and 600/#2d3d58 respectively. Give every top-level control one voice; the
   current page keeps its own colour. */
.public-site .site-header .desktop-nav :is(a, button, summary) {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0;
}
.public-site .site-header .desktop-nav :is(a, button, summary):not([aria-current="page"]):not([aria-current="true"]) {
  color: #2d3d58;
}
