/* === Authoritative design tokens === */
:root {
  --header-bg: #F8FAFC;
  --logo-ink: #0F172A;
  --logo-accent: #0369A1;
  --surface: #FFFFFF;
  --surface-muted: #E7EDF3;
  --text-muted: #475569;
  --line: #CBD5E1;
  --primary: #0F172A;
  --band: #DCE9F1;
  --control-line: #64748B;

  --font-heading: "Lora", Georgia, serif;
  --font-body: "Inter", Arial, sans-serif;

  --text-display: clamp(2.5rem, 4.8vw, 4.75rem);
  --text-h1: clamp(2.25rem, 4vw, 3.75rem);
  --text-h2: clamp(1.875rem, 3vw, 2.75rem);
  --text-h3: clamp(1.375rem, 2vw, 1.75rem);
  --text-lead: clamp(1.125rem, 1.6vw, 1.375rem);
  --text-body: clamp(1rem, 1.2vw, 1.125rem);
  --text-small: 0.875rem;
  --text-label: 0.75rem;

  --leading-display: 1.08;
  --leading-heading: 1.18;
  --leading-body: 1.65;
  --leading-small: 1.45;
  --tracking-heading: -0.025em;
  --tracking-body: 0em;
  --tracking-label: 0.12em;

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-24: 6rem;
  --space-32: 8rem;

  --container: 80rem;
  --reading: 40rem;
  --compact: 47.5rem;
  --measure: 60ch;
  --page-gutter: clamp(1rem, 4vw, 3rem);
  --grid-gap: clamp(1rem, 2vw, 1.5rem);
  --panel-padding: clamp(1.25rem, 3vw, 2.5rem);
  --section-space: clamp(3.5rem, 7vw, 6rem);

  --radius-panel: 1.25rem;
  --radius-mobile: 0.75rem;
  --radius-control: 0.5rem;
  --border: 1px solid var(--line);
  --border-control: 1px solid var(--control-line);
  --shadow-floating: 0 12px 40px
    color-mix(in srgb, var(--primary) 14%, transparent);
  --focus-ring: 3px solid var(--logo-accent);
  --focus-offset: 3px;

  --control-height: 3rem;
  --logo-desktop-width: 24rem;
  --logo-desktop-height: 6rem;
  --logo-mobile-width: 18rem;
  --logo-mobile-height: 4.5rem;

  --duration-fast: 180ms;
  --duration-panel: 320ms;
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --z-menu: 30;
  --z-cookie: 50;
  --z-dialog: 60;
}

/* === Implementation constants, separate from the art-direction tokens === */
:root {
  --menu-button-size: 2.75rem;
  --menu-width: 22.5rem;
  --dialog-width: 35rem;
  --icon-size: 1.25rem;
  --message-height: 10rem;
  --check-size: 1.125rem;
  --rule-thickness: 1px;
  --rule-accent-thickness: 3px;
  --underline-offset: 3px;
  --underline-hover: 2px;
  --photo-saturation: .78;
  --display-measure: 17ch;
  --inverse-line: #64748B;
}

/* === Base: place page-home, page-risk, page-insurance, page-structures, page-advisory, page-team, page-about, page-contact or page-thank-you on main === */
*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: light; }
body { margin: 0; background: var(--header-bg); color: var(--logo-ink); font-family: var(--font-body); font-size: var(--text-body); font-weight: 400; line-height: var(--leading-body); letter-spacing: var(--tracking-body); }
[hidden] { display: none !important; }
main { display: block; padding-block: var(--space-8) var(--section-space); }
h1, h2, h3, h4, p, figure, blockquote, dl { margin: 0; }
h1, h2, h3, h4 { font-family: var(--font-heading); line-height: var(--leading-heading); letter-spacing: var(--tracking-heading); overflow-wrap: break-word; }
h1 { font-size: var(--text-h1); font-weight: 400; line-height: var(--leading-display); }
h2 { font-size: var(--text-h2); font-weight: 400; }
h3, h4 { font-size: var(--text-h3); font-weight: 500; }
p { max-width: var(--measure); }
p + p { margin-block-start: var(--space-4); }
a { color: var(--logo-accent); text-decoration-thickness: var(--rule-thickness); text-underline-offset: var(--underline-offset); }
a:hover { text-decoration-thickness: var(--underline-hover); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button, a, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
button, .button, .card-link { transition: color var(--duration-fast) var(--ease), background-color var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease); }
:focus-visible { outline: var(--focus-ring); outline-offset: var(--focus-offset); }
img { display: block; max-width: 100%; object-fit: cover; }
svg { flex-shrink: 0; }
address { font-style: normal; }
strong { font-weight: 600; }
small { font-size: var(--text-small); line-height: var(--leading-small); }
::selection { background: var(--band); color: var(--primary); }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: absolute; inset-block-start: var(--space-4); inset-inline-start: var(--page-gutter); z-index: var(--z-dialog); padding: var(--space-3) var(--space-6); background: var(--surface); transform: translateY(-200%); }
.skip-link:focus { transform: none; }

/* === Shared layout: section > .container > .horizon-rule + composition grid; preserve brief field boundaries === */
.container { width: min(var(--container), calc(100% - var(--page-gutter) * 2)); margin-inline: auto; }
.section + .section, main > section + section { margin-block-start: var(--section-space); }
.grid, .dossier-grid, .hero__grid, .intro__grid, .highlights-grid__items, .cta-band__grid, .contact-band__grid, .contact-form__grid, .testimonial__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--grid-gap); }
.grid > *, .dossier-grid > *, .hero__grid > *, .intro__grid > *, .highlights-grid__items > *, .cta-band__grid > *, .contact-band__grid > *, .contact-form__grid > *, .testimonial__grid > * { grid-column: 1 / -1; min-width: 0; }
.section-heading { max-width: var(--compact); margin-block-end: var(--space-8); }
.section-heading > p, .intro__heading > h2, .contact-form__heading > p { margin-block-start: var(--space-6); }
.section-sub, .lead { font-size: var(--text-lead); line-height: var(--leading-body); }
.reading { max-width: var(--reading); }
.compact { max-width: var(--compact); }
.prose > h2, .prose > h3 { margin-block: var(--space-12) var(--space-6); }
.prose > :first-child { margin-block-start: 0; }
.prose ul, .prose ol { margin-block: var(--space-6); padding-inline-start: var(--space-6); }
.prose li + li { margin-block-start: var(--space-3); }
.prose ul { list-style-type: square; }
.prose li::marker { color: var(--logo-accent); }
.panel, .hero__content, .highlight-card, .document-panel, .contact-form__panel, .status-tile { padding: var(--panel-padding); border-radius: var(--radius-mobile); background: var(--surface); overflow: visible; }
.panel--muted, .surface-muted { background: var(--surface-muted); }
.panel--band, .surface-band { background: var(--band); }
.panel--dark, .surface-dark { background: var(--primary); color: var(--surface); }
.surface-dark p, .panel--dark p { color: var(--surface); }
.surface-dark a:not(.button), .panel--dark a:not(.button) { color: var(--surface); }
.surface-dark :focus-visible, .panel--dark :focus-visible { outline-color: var(--surface); }
.eyebrow, .dossier-label { font-family: var(--font-body); font-size: var(--text-label); font-weight: 500; line-height: var(--leading-small); letter-spacing: var(--tracking-label); text-transform: uppercase; }
.dossier-number, .horizon-rule__number { font-family: var(--font-body); font-variant-numeric: tabular-nums; font-size: var(--text-small); font-weight: 500; color: var(--logo-accent); }

/* === Horizon rule: .horizon-rule contains .horizon-rule__number and .horizon-rule__label; use explicit sequential two-digit ordinals === */
.horizon-rule { position: relative; display: flex; align-items: baseline; gap: var(--space-3); padding-block-end: var(--space-3); margin-block-end: var(--space-6); color: var(--text-muted); font-family: var(--font-body); font-size: var(--text-label); font-weight: 500; line-height: var(--leading-small); letter-spacing: var(--tracking-label); text-transform: uppercase; }
.horizon-rule::before, .horizon-rule::after { content: ''; position: absolute; inset-inline-start: 0; inset-block-end: 0; }
.horizon-rule::before { width: 100%; height: var(--rule-thickness); background: var(--line); }
.horizon-rule::after { width: var(--space-12); height: var(--rule-accent-thickness); background: var(--logo-accent); }
.surface-dark .horizon-rule, .panel--dark .horizon-rule { color: var(--surface-muted); }
.surface-dark .horizon-rule__number, .panel--dark .horizon-rule__number { color: var(--surface); }

/* === Controls === */
.button, .nav-contact, .cookie-banner button { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-3); min-height: var(--control-height); padding: var(--space-3) var(--space-6); border: 1px solid var(--logo-accent); border-radius: var(--radius-control); background: var(--logo-accent); color: var(--surface); font-family: var(--font-body); font-weight: 600; font-size: var(--text-small); line-height: var(--leading-small); text-decoration: none; text-align: center; }
.button:hover, .cookie-banner button:hover { background: var(--primary); border-color: var(--primary); color: var(--surface); }
.button--secondary, .nav-contact { border: var(--border-control); background: transparent; color: var(--logo-ink); }
.button--secondary:hover, .nav-contact:hover { background: var(--surface-muted); border-color: var(--logo-ink); color: var(--logo-ink); }
.button--inverse, .surface-dark .button, .panel--dark .button { background: var(--surface); border-color: var(--surface); color: var(--primary); }
.button--inverse:hover, .surface-dark .button:hover, .panel--dark .button:hover { background: var(--band); border-color: var(--band); }
.text-button { padding: 0; border: 0; background: transparent; color: var(--logo-accent); font-size: inherit; text-decoration: underline; text-underline-offset: var(--underline-offset); }
.text-button:hover { text-decoration-thickness: var(--underline-hover); }
.button svg { width: var(--icon-size); height: var(--icon-size); }

/* === Header: enhancement hides mobile navigation only after JavaScript is available === */
.site-header { background: var(--header-bg); border-block-end: var(--border); }
.header__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2); padding-block: var(--space-5); }
.logo { display: inline-block; flex-shrink: 0; line-height: 0; }
.logo img { display: block; width: auto; height: 72px; max-width: none; aspect-ratio: 4 / 1; object-fit: cover; }
.nav-toggle { display: none; align-items: center; justify-content: center; flex-shrink: 0; width: var(--menu-button-size); height: var(--menu-button-size); padding: var(--space-2); border: var(--border-control); border-radius: var(--radius-control); background: transparent; color: var(--logo-ink); }
.nav-toggle:hover { background: var(--surface-muted); }
.nav-toggle svg { width: var(--space-6); height: var(--space-6); }
.nav-toggle__close, .nav-toggle[aria-expanded='true'] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded='true'] .nav-toggle__close { display: block; }
.site-header.is-enhanced .nav-toggle { display: inline-flex; }
.primary-nav { flex-basis: 100%; padding-block-start: var(--space-6); }
.site-header.is-enhanced .primary-nav { display: none; }
.site-header.is-enhanced.is-menu-open .primary-nav { display: block; }
.primary-nav ul { list-style: none; padding: 0; margin: 0; }
.primary-nav__list { display: flex; flex-direction: column; gap: var(--space-2); }
.primary-nav__list > li > a:not(.nav-contact), .services-toggle { display: flex; align-items: center; gap: var(--space-2); min-height: var(--control-height); padding: var(--space-3) 0; color: var(--logo-ink); font-size: var(--text-small); font-weight: 500; line-height: var(--leading-small); text-decoration: none; }
.primary-nav a:hover, .services-toggle:hover { color: var(--logo-accent); text-decoration: underline; text-underline-offset: var(--underline-offset); }
.primary-nav a[aria-current='page'] { color: var(--logo-accent); text-decoration: underline; text-decoration-thickness: var(--underline-hover); }
.services-disclosure { position: relative; }
.services-toggle { border: 0; background: transparent; }
.services-toggle svg { width: var(--space-4); height: var(--space-4); }
.services-toggle:disabled { cursor: default; opacity: 1; color: var(--text-muted); text-decoration: none; }
.services-toggle:disabled svg { display: none; }
.services-menu { border-inline-start: var(--border); margin-inline-start: var(--space-2) !important; padding-inline-start: var(--space-4) !important; }
.services-menu a { display: block; padding-block: var(--space-3); color: var(--logo-ink); font-size: var(--text-small); line-height: var(--leading-small); text-decoration: none; }
.services-menu li + li { border-block-start: var(--border); }
.nav-contact { margin-block-start: var(--space-3); }

/* === Hero: .hero > .container > horizon rule + .hero__grid; text precedes media in DOM === */
.hero__content { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.hero__title { max-width: var(--display-measure); }
.hero__sub { margin-block-start: var(--space-6); font-size: var(--text-lead); color: var(--text-muted); }
.hero__action { margin-block-start: var(--space-8); }
.hero__media, .intro__media, .photo { margin: 0; overflow: hidden; border-radius: var(--radius-mobile); background: var(--surface-muted); }
.hero__media img, .intro__media img, .photo img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; filter: saturate(var(--photo-saturation)); }
.page-home .hero__title { font-size: var(--text-display); }
.hero--wide .hero__title, .page-insurance .hero__title, .page-about .hero__title { grid-column: 1 / -1; max-width: none; }
.hero--wide .hero__content, .page-insurance .hero__content, .page-about .hero__content { justify-content: flex-start; }
.hero--wide .hero__content .hero__sub, .page-insurance .hero__content .hero__sub, .page-about .hero__content .hero__sub { margin-block-start: 0; }
.hero--wide .hero__media img, .page-insurance .hero__media img, .page-about .hero__media img { aspect-ratio: 16 / 9; }
img[data-image-role='home_horizon'], .page-home .hero__media img { object-position: 58% 50%; }
img[data-image-role='home_timeline'], .page-home .intro__media img { object-position: 50% 60%; }
img[data-image-role='risk_dashboard'], .page-risk .hero__media img { object-position: 62% 50%; }
img[data-image-role='structures_workshop'], .page-structures .hero__media img { object-position: 50% 55%; }
img[data-image-role='contact_consultation'], .page-contact .hero__media img { object-position: 55% 50%; }

/* === Intro paragraphs: .intro__heading holds optional eyebrow and h2; .intro__body keeps each supplied body in one p === */
.intro__body { align-self: start; }
.intro__body > :first-child { margin-block-start: 0; }
.intro__body > h2 + p, .intro__heading + .intro__body { margin-block-start: 0; }
.intro__body > h2 { margin-block-end: var(--space-6); }
.intro--compact .intro__grid, .page-team .intro--collaboration .intro__grid, .page-contact .intro--scope .intro__grid { display: block; max-width: var(--compact); }
.intro--compact .intro__body, .page-team .intro--collaboration .intro__body, .page-contact .intro--scope .intro__body { margin-block-start: var(--space-6); }
.intro--band { padding-block: var(--section-space); background: var(--surface-muted); }
.intro--dark { padding-block: var(--section-space); background: var(--primary); color: var(--surface); }
.intro--dark .eyebrow, .intro--dark .horizon-rule, .intro--dark .horizon-rule__number { color: var(--surface-muted); }
.intro--dark a { color: var(--surface); }
.intro--dark :focus-visible { outline-color: var(--surface); }
.intro--reading .intro__grid { display: block; max-width: var(--reading); margin-inline: auto; }
.intro--reading .intro__body { margin-block-start: var(--space-6); }
.intro--document .intro__grid { padding: var(--panel-padding); border-radius: var(--radius-mobile); background: var(--surface); }
.intro--document .intro__body { border-block-start: var(--border); padding-block-start: var(--space-6); }
.page-home .intro--method .intro__body, .page-about .intro--identity .intro__body, .page-structures .intro--delivery .intro__body { padding: var(--panel-padding); border-radius: var(--radius-mobile); background: var(--surface); }

/* === Testimonial: .testimonial__grid contains a horizon label and .testimonial__panel with h2 then blockquote === */
.testimonial__panel { padding: var(--panel-padding); border-radius: var(--radius-mobile); background: var(--primary); color: var(--surface); }
.testimonial__panel h2 { margin-block-end: var(--space-8); }
.testimonial blockquote p { font-family: var(--font-heading); font-size: var(--text-lead); font-weight: 400; font-style: italic; line-height: var(--leading-body); }
.testimonial cite { display: block; margin-block-start: var(--space-6); font-size: var(--text-small); color: var(--surface-muted); font-style: normal; }

/* === Highlights: article.highlight-card; linked items contain one a.card-link wrapping ordinal, h3 and full body === */
.highlight-card { border: 1px solid transparent; }
.highlight-card:nth-child(even) { background: var(--surface-muted); }
.highlight-card > h3, .card-link > h3 { margin-block: var(--space-4) var(--space-6); }
.highlight-card p { color: var(--text-muted); }
.highlight-card:has(> .card-link) { padding: 0; }
.card-link { display: flex; flex-direction: column; align-items: flex-start; min-height: 100%; padding: var(--panel-padding); border-radius: inherit; color: var(--logo-ink); text-decoration: none; }
.card-link:hover { background: var(--band); }
.highlight-card:has(> .card-link:hover), .highlight-card:has(> .card-link:focus-visible) { border-color: var(--logo-accent); }
.card-link:hover h3 { text-decoration: underline; text-decoration-thickness: var(--underline-hover); text-underline-offset: var(--underline-offset); }
.card-link__arrow { align-self: flex-end; margin-block-start: var(--space-6); width: var(--space-6); height: var(--space-6); color: var(--logo-accent); }
.highlights-grid--rows .highlight-card { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
.highlights-grid--rows .highlight-card h3 { margin: 0; }

/* === CTA bands: .cta-band__grid contains .cta-band__copy and .cta-band__action === */
.cta-band { padding-block: var(--section-space); background: var(--band); }
.cta-band__copy h2 + p { margin-block-start: var(--space-6); }
.cta-band__action { align-self: end; justify-self: start; }
.cta-band--dark { background: var(--primary); color: var(--surface); }
.cta-band--dark .horizon-rule, .cta-band--dark .horizon-rule__number { color: var(--surface-muted); }
.cta-band--dark .button { background: var(--surface); border-color: var(--surface); color: var(--primary); }
.cta-band--dark .button:hover { background: var(--band); border-color: var(--band); }
.cta-band--dark :focus-visible { outline-color: var(--surface); }
.cta-band--ruled, .cta-band--open { background: transparent; padding-block: 0; }
.cta-band--ruled .cta-band__grid { background: var(--surface); border-block-start: var(--border); padding-block: var(--space-8); }
.cta-band--compact { background: transparent; padding-block: 0; }
.cta-band--compact .cta-band__grid { padding: var(--panel-padding); border-radius: var(--radius-mobile); background: var(--band); }
.cta-band__secondary { display: block; margin-block-start: var(--space-4); }

/* === Contact bands and office details: contact-band--office uses address / channels / hours tiles; keep supplied combined fields intact === */
.contact-band { padding-block: var(--section-space); background: var(--band); }
.contact-band h2 + p, .contact-band__details + .button { margin-block-start: var(--space-6); }
.contact-band__invitation { align-self: end; }
.contact-band--office { padding-block: 0; background: transparent; }
.contact-band--office .contact-band__tile { padding: var(--panel-padding); border-radius: var(--radius-mobile); background: var(--surface-muted); }
.contact-band__tile h3 { margin-block-end: var(--space-6); }
.contact-band__body { grid-column: 1 / -1; margin-block-start: var(--space-6); }
.contact-links { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.contact-links a, .footer__office a { overflow-wrap: anywhere; }
.opening-hours { font-size: var(--text-small); font-variant-numeric: tabular-nums; }
.opening-hours > div { padding-block: var(--space-3); border-block-end: var(--border); }
.opening-hours dt { font-weight: 600; }
.opening-hours dd { margin: var(--space-1) 0 0; }
.contact-card { padding: var(--panel-padding); background: var(--surface-muted); border-radius: var(--radius-mobile); }
.contact-card address, .contact-card .contact-links, .contact-card .opening-hours { margin-block-start: var(--space-6); }

/* === Contact form: .form-fields contains .form-field; add .form-field--full to subject/message; consent is immediately before submit === */
.contact-form__heading { margin-block-end: var(--space-8); }
.contact-form__rail { align-self: start; padding-block: var(--space-6); border-block-start: var(--border); }
.contact-form__rail h3 + p { margin-block-start: var(--space-6); }
.contact-form__rail p + a { display: inline-block; margin-block-start: var(--space-4); }
.form-fields { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
.form-field { min-width: 0; }
.form-field label { display: block; margin-block-end: var(--space-2); font-size: var(--text-small); font-weight: 600; }
input:not([type='checkbox']):not([type='radio']), select, textarea { display: block; width: 100%; min-height: var(--control-height); padding: var(--space-3) var(--space-4); border: var(--border-control); border-radius: var(--radius-control); background: var(--surface); color: var(--logo-ink); font-size: max(1rem, var(--text-body)); line-height: var(--leading-small); }
textarea { min-height: var(--message-height); resize: vertical; }
input:hover, textarea:hover, select:hover { border-color: var(--logo-ink); }
input[type='checkbox'], input[type='radio'] { flex: 0 0 auto; width: var(--check-size); height: var(--check-size); margin: var(--space-1) 0 0; accent-color: var(--logo-accent); }
.form-consent { display: flex; align-items: flex-start; gap: var(--space-3); margin-block: var(--space-6); font-size: var(--text-small); line-height: var(--leading-body); }
.form-consent span { min-width: 0; }
.form-hint, .form-error { margin-block-start: var(--space-2); font-size: var(--text-small); line-height: var(--leading-small); }
.form-hint { color: var(--text-muted); }
.form-error { display: flex; align-items: baseline; gap: var(--space-2); font-weight: 600; }
.form-error svg { width: var(--icon-size); height: var(--icon-size); }
[aria-invalid='true'] { outline: var(--border-control); outline-offset: var(--rule-thickness); }
.form-success { margin-block-start: var(--space-6); padding: var(--space-6); border-inline-start: var(--rule-accent-thickness) solid var(--logo-accent); background: var(--band); }
.legal-details { padding-block: var(--space-6); border-block: var(--border); }
.legal-details dl > div { display: grid; gap: var(--space-2); padding-block: var(--space-3); }
.legal-details dt { font-weight: 600; }
.legal-details dd { margin: 0; overflow-wrap: anywhere; }

/* === Permanent cookie explanation === */
.cookie-notice__content { border-block-start: var(--border); padding-block-start: var(--space-6); }
.cookie-notice h2 + p { margin-block-start: var(--space-6); }
.cookie-notice .button, .cookie-notice .text-button { margin-block-start: var(--space-6); }

/* === Thank-you: hero__content plus muted status-tile; status icon is decorative and carries no new promise === */
.page-thank-you .hero__title { max-width: none; }
.status-tile { display: flex; align-items: center; justify-content: center; background: var(--surface-muted); min-height: var(--space-32); }
.status-tile svg { width: var(--space-12); height: var(--space-12); color: var(--logo-accent); }
.page-thank-you .hero__content { padding-block: var(--space-16); }

/* === Legal and future article layout: article-detail__header, article-detail__grid, article-detail__body and optional article-detail__rail === */
.legal-page__header, .article-detail__header { margin-block-end: var(--space-12); }
.legal-page__body, .article-detail__body { max-width: var(--reading); }
.legal-page__body h2, .article-detail__body h2 { margin-block: var(--space-12) var(--space-6); }
.article-detail__standfirst { max-width: var(--compact); margin-block-start: var(--space-6); font-size: var(--text-lead); }
.article-detail__image { margin-block: var(--space-8) var(--space-12); }
.article-detail__image img { aspect-ratio: 16 / 9; }
.article-detail__rail { margin-block-start: var(--space-8); border-block-start: var(--border); padding-block-start: var(--space-6); }
.article-detail__rail nav a { display: block; padding-block: var(--space-2); }
.back-link { display: inline-block; margin-block-start: var(--space-12); }
.breadcrumbs { margin-block-end: var(--space-6); font-size: var(--text-small); }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: var(--space-3); list-style: none; padding: 0; margin: 0; }

/* === Optional native FAQ, ordered process and services lists === */
.faq details { border-block-end: var(--border); }
.faq summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); min-height: var(--control-height); padding-block: var(--space-5); font-weight: 600; list-style: none; cursor: pointer; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary:hover { color: var(--logo-accent); }
.faq summary svg { width: var(--icon-size); height: var(--icon-size); }
.faq details[open] .faq__plus { display: none; }
.faq__answer { padding-block-end: var(--space-6); }
.process-steps { list-style: decimal-leading-zero; padding-inline-start: var(--space-8); }
.process-steps li { padding: var(--space-6) 0 var(--space-6) var(--space-4); border-block-end: var(--border); }
.process-steps li::marker { color: var(--logo-accent); font-variant-numeric: tabular-nums; }
.process-steps h3 + p, .services-list h3 + p { margin-block-start: var(--space-6); }
.services-list > article { padding-block: var(--space-8); border-block-end: var(--border); }

/* === Footer === */
.site-footer { padding-block: var(--space-12) var(--space-6); background: var(--primary); color: var(--surface); }
.footer__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-12); }
.footer__brand { font-family: var(--font-heading); font-size: var(--text-h3); font-weight: 500; letter-spacing: var(--tracking-heading); }
.footer__tagline { margin-block-start: var(--space-4); font-size: var(--text-lead); }
.footer__description { margin-block-start: var(--space-6); color: var(--surface-muted); font-size: var(--text-small); }
.site-footer a, .site-footer .text-button { color: var(--surface); }
.site-footer a:hover, .site-footer .text-button:hover { color: var(--band); }
.site-footer :focus-visible { outline-color: var(--surface); }
.footer__nav ul { margin: 0; padding: 0; list-style: none; }
.footer__nav li + li { margin-block-start: var(--space-3); }
.footer__nav a { font-size: var(--text-small); text-decoration: none; }
.footer__nav a:hover { text-decoration: underline; }
.footer__office { font-size: var(--text-small); }
.footer__office .contact-links { margin-block-start: var(--space-6); }
.footer__legal { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-6); margin-block-start: var(--space-6); padding-block-start: var(--space-6); border-block-start: 1px solid var(--inverse-line); }
.footer__bottom { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); margin-block-start: var(--space-12); padding-block-start: var(--space-6); border-block-start: 1px solid var(--inverse-line); font-size: var(--text-small); }

/* === Mini-CMP: necessary-only until a choice; the mandatory class exclusively controls visibility === */
.cookie-banner { position: fixed; left: 1rem; right: 1rem; bottom: 1rem; display: none; z-index: 9999; width: auto; max-width: var(--container); max-height: calc(100dvh - var(--space-8)); overflow-y: auto; margin-inline: auto; padding: var(--space-5); border-block-start: var(--border); border-radius: var(--radius-mobile); background: var(--surface); color: var(--logo-ink); box-shadow: var(--shadow-floating); }
.cookie-banner.is-visible { display: block; }
.cookie-banner > p { max-width: none; font-size: var(--text-small); line-height: var(--leading-small); }
.cookie-banner__actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-2); margin-block-start: var(--space-4); }
.cookie-banner button { border: var(--border-control); background: var(--surface); color: var(--logo-ink); }
.cookie-banner button:hover { background: var(--surface-muted); border-color: var(--logo-ink); color: var(--logo-ink); }
.cookie-banner__prefs { width: 100%; max-width: var(--dialog-width); margin-block: var(--space-6) 0; padding: var(--space-6); border: var(--border); border-radius: var(--radius-control); background: var(--header-bg); }
.cookie-banner__prefs label { display: flex; align-items: flex-start; gap: var(--space-3); padding-block: var(--space-3); font-size: var(--text-small); }
.cookie-banner__prefs button { width: 100%; margin-block-start: var(--space-4); }
.floating-reserve { display: block; width: 100%; pointer-events: none; background: var(--primary); }

/* === Tablet grid: eight columns; three-tile layouts are 5/3 then full width === */
@media (min-width: 768px) {
  main { padding-block-start: var(--space-12); }
  .logo img { height: 96px; width: auto; }
  .grid, .dossier-grid, .hero__grid, .intro__grid, .highlights-grid__items, .cta-band__grid, .contact-band__grid, .contact-form__grid, .testimonial__grid { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .panel, .hero__content, .highlight-card, .document-panel, .contact-form__panel, .status-tile, .hero__media, .intro__media, .photo, .testimonial__panel, .intro--document .intro__grid, .cta-band--compact .cta-band__grid, .contact-band--office .contact-band__tile, .contact-card { border-radius: var(--radius-panel); }
  .page-home .intro--method .intro__body, .page-about .intro--identity .intro__body, .page-structures .intro--delivery .intro__body { border-radius: var(--radius-panel); }
  .hero__content { grid-column: 1 / 5; }
  .hero__media { grid-column: 5 / -1; }
  .hero__media img { aspect-ratio: 4 / 5; }
  .page-team .hero__media img { aspect-ratio: 4 / 3; }
  .hero--wide .hero__title, .page-insurance .hero__title, .page-about .hero__title { grid-column: 1 / -1; }
  .hero--wide .hero__content, .page-insurance .hero__content, .page-about .hero__content { grid-column: 5 / -1; grid-row: 2; }
  .hero--wide .hero__media, .page-insurance .hero__media, .page-about .hero__media { grid-column: 1 / 5; grid-row: 2; }
  .hero--reverse .hero__content, .page-structures .hero__content { grid-column: 5 / -1; grid-row: 1; }
  .hero--reverse .hero__media, .page-structures .hero__media { grid-column: 1 / 5; grid-row: 1; }
  .hero--offset .hero__media, .page-advisory .hero__media { margin-block-start: var(--space-8); }
  .intro__heading { grid-column: 1 / 5; }
  .intro__body { grid-column: 5 / -1; }
  .intro__media { grid-column: 1 / 5; }
  .intro--overview .intro__heading { grid-column: 5 / -1; }
  .intro--overview .intro__body { grid-column: 5 / -1; }
  .intro--overview .intro__media { grid-row: 1 / 3; }
  .intro--overview .intro__media img { aspect-ratio: 4 / 3; height: auto; }
  .intro--document .intro__body { border-block-start: 0; border-inline-start: var(--border); padding-block-start: 0; padding-inline-start: var(--space-6); }
  .testimonial__grid > .horizon-rule { grid-column: 1 / 4; align-self: start; }
  .testimonial__panel { grid-column: 4 / -1; }
  .highlight-card { grid-column: span 4; }
  .highlights-grid--dominant .highlight-card:first-child, .highlights-grid--wide-last .highlight-card:first-child, .highlights-grid--sidebar .highlight-card:first-child { grid-column: 1 / 6; }
  .highlights-grid--dominant .highlight-card:nth-child(2), .highlights-grid--wide-last .highlight-card:nth-child(2), .highlights-grid--sidebar .highlight-card:nth-child(2) { grid-column: 6 / -1; }
  .highlights-grid--dominant .highlight-card:nth-child(3), .highlights-grid--wide-last .highlight-card:nth-child(3), .highlights-grid--sidebar .highlight-card:nth-child(3) { grid-column: 1 / -1; }
  .highlights-grid--rows .highlight-card { grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 5fr); }
  .cta-band__copy { grid-column: 1 / 5; }
  .cta-band__action { grid-column: 5 / -1; justify-self: end; }
  .contact-band__details { grid-column: 1 / 5; }
  .contact-band__invitation { grid-column: 5 / -1; }
  .contact-band--office .contact-band__tile:nth-child(1) { grid-column: 1 / 6; }
  .contact-band--office .contact-band__tile:nth-child(2) { grid-column: 6 / -1; }
  .contact-band--office .contact-band__tile:nth-child(3) { grid-column: 1 / -1; }
  .contact-form__panel { grid-column: 1 / 6; }
  .contact-form__rail { grid-column: 6 / -1; }
  .form-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-field--full { grid-column: 1 / -1; }
  .cookie-notice__content { width: min(var(--reading), 100%); margin-inline: auto; }
  .page-thank-you .hero__content { grid-column: 1 / 6; }
  .page-thank-you .status-tile { grid-column: 6 / -1; }
  .footer__grid { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: var(--grid-gap); }
  .footer__company { grid-column: 1 / 5; }
  .footer__nav { grid-column: 5 / -1; padding-inline-start: var(--space-8); }
  .footer__office { grid-column: 1 / -1; margin-block-start: var(--space-8); }
  .footer__bottom { flex-direction: row; justify-content: space-between; align-items: baseline; }
  .cookie-banner { padding: var(--space-6); }
  .cookie-banner__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
  .cookie-banner__actions button { flex: 1; }
  .legal-details dl > div { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
}

/* === Desktop grid and navigation === */
@media (min-width: 1200px) {
  .grid, .dossier-grid, .hero__grid, .intro__grid, .highlights-grid__items, .cta-band__grid, .contact-band__grid, .contact-form__grid, .testimonial__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .header__inner { flex-wrap: nowrap; gap: var(--space-6); padding-block: var(--space-4); }
  .site-header.is-enhanced .nav-toggle { display: none; }
  .primary-nav, .site-header.is-enhanced .primary-nav { display: block; flex: 1; padding: 0; }
  .primary-nav__list { flex-direction: row; align-items: center; justify-content: flex-end; gap: var(--space-6); }
  .nav-contact { margin: 0; }
  .services-menu { margin-inline-start: 0 !important; padding-inline-start: 0 !important; }
  .site-header.is-enhanced .services-menu { position: absolute; inset-block-start: 100%; inset-inline-end: 0; z-index: var(--z-menu); width: var(--menu-width); padding: var(--space-3) var(--space-6) !important; border: var(--border); border-radius: var(--radius-control); background: var(--surface); box-shadow: var(--shadow-floating); }
  .site-header.is-enhanced .services-toggle[aria-expanded='false'] + .services-menu { display: none; }
  .services-toggle[aria-expanded='true'] svg { transform: rotate(180deg); }
  .hero__content { grid-column: 1 / 8; }
  .hero__media { grid-column: 8 / -1; }
  .page-home .hero__title { max-width: var(--display-measure); }
  .page-team .hero__content { grid-column: 1 / 7; }
  .page-team .hero__media { grid-column: 7 / -1; }
  .hero--wide .hero__title, .page-insurance .hero__title { grid-column: 1 / 11; }
  .page-about .hero__title { grid-column: 1 / -1; }
  .hero--wide .hero__content, .page-insurance .hero__content, .page-about .hero__content { grid-column: 9 / -1; }
  .hero--wide .hero__media, .page-insurance .hero__media, .page-about .hero__media { grid-column: 1 / 9; }
  .hero--reverse .hero__content, .page-structures .hero__content { grid-column: 6 / -1; }
  .hero--reverse .hero__media, .page-structures .hero__media { grid-column: 1 / 6; }
  .intro__heading { grid-column: 1 / 5; }
  .intro__body { grid-column: 5 / -1; }
  .intro--overview .intro__media { grid-column: 1 / 5; }
  .intro--overview .intro__heading, .intro--overview .intro__body { grid-column: 6 / -1; }
  .page-risk .intro--scope .intro__heading { grid-column: 1 / 4; }
  .page-risk .intro--scope .intro__body { grid-column: 5 / -1; }
  .intro--document .intro__heading { grid-column: 1 / 6; }
  .intro--document .intro__body { grid-column: 6 / -1; }
  .page-structures .intro--scope .intro__heading { grid-column: 1 / 10; }
  .page-structures .intro--scope .intro__body { grid-column: 5 / -1; grid-row: 2; }
  .page-structures .intro--delivery .intro__body { grid-column: 1 / 10; grid-row: 1; }
  .page-structures .intro--delivery .intro__heading { grid-column: 10 / -1; grid-row: 1; }
  .page-advisory .intro--delivery .intro__heading { grid-column: 1 / 6; }
  .page-advisory .intro--delivery .intro__body { grid-column: 7 / -1; }
  .page-team .intro--limits .intro__heading, .page-about .intro--workflow .intro__heading { grid-column: 1 / 6; }
  .page-team .intro--limits .intro__body, .page-about .intro--workflow .intro__body { grid-column: 6 / -1; }
  .page-about .intro--limits .intro__heading { grid-column: 1 / 9; }
  .page-about .intro--limits .intro__body { grid-column: 1 / 9; grid-row: 2; }
  .testimonial__grid > .horizon-rule { grid-column: 1 / 4; }
  .testimonial__panel { grid-column: 4 / -1; }
  .highlights-grid--reciprocal .highlight-card:nth-child(4n + 1) { grid-column: span 7; }
  .highlights-grid--reciprocal .highlight-card:nth-child(4n + 2) { grid-column: span 5; }
  .highlights-grid--reciprocal .highlight-card:nth-child(4n + 3) { grid-column: span 5; }
  .highlights-grid--reciprocal .highlight-card:nth-child(4n + 4) { grid-column: span 7; }
  .highlights-grid--dominant .highlight-card:first-child { grid-column: 1 / 7; grid-row: 1 / 3; background: var(--surface); }
  .highlights-grid--dominant .highlight-card:nth-child(2) { grid-column: 7 / -1; grid-row: 1; background: var(--surface-muted); }
  .highlights-grid--dominant .highlight-card:nth-child(3) { grid-column: 7 / -1; grid-row: 2; background: var(--surface-muted); }
  .highlights-grid--sidebar .highlight-card:first-child { grid-column: 1 / 5; grid-row: 1 / 3; background: var(--surface-muted); }
  .highlights-grid--sidebar .highlight-card:nth-child(2) { grid-column: 5 / -1; grid-row: 1; background: var(--surface); }
  .highlights-grid--sidebar .highlight-card:nth-child(3) { grid-column: 5 / -1; grid-row: 2; background: var(--surface); }
  .highlights-grid--wide-last .highlight-card:first-child { grid-column: 1 / 6; }
  .highlights-grid--wide-last .highlight-card:nth-child(2) { grid-column: 6 / -1; }
  .highlights-grid--wide-last .highlight-card:nth-child(3) { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--grid-gap); }
  .highlights-grid--wide-last .highlight-card:nth-child(3) .dossier-number { grid-column: 1 / -1; }
  .highlights-grid--wide-last .highlight-card:nth-child(3) h3 { grid-column: 1 / 5; margin: 0; }
  .highlights-grid--wide-last .highlight-card:nth-child(3) p { grid-column: 5 / -1; padding-inline-start: var(--space-6); border-inline-start: var(--border); }
  .page-advisory .highlights-grid--wide-last .highlight-card:first-child { grid-column: 1 / 8; }
  .page-advisory .highlights-grid--wide-last .highlight-card:nth-child(2) { grid-column: 8 / -1; background: var(--surface); }
  .page-advisory .highlights-grid--wide-last .highlight-card:nth-child(3) { background: var(--surface-muted); }
  .highlights-grid--rows .highlight-card { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .highlights-grid--rows .dossier-number { grid-column: 1 / 3; }
  .highlights-grid--rows h3 { grid-column: 3 / 7; }
  .highlights-grid--rows p { grid-column: 7 / -1; }
  .cta-band__copy { grid-column: 1 / 9; }
  .cta-band__action { grid-column: 9 / -1; }
  .cta-band--ruled .cta-band__copy { grid-column: 1 / 10; }
  .cta-band--ruled .cta-band__action { grid-column: 10 / -1; }
  .cta-band--split .cta-band__copy { grid-column: 1 / 8; }
  .cta-band--split .cta-band__action { grid-column: 8 / -1; justify-self: start; }
  .cta-band--split .cta-band__action p { margin-block-end: var(--space-6); }
  .contact-band__details { grid-column: 1 / 7; }
  .contact-band__invitation { grid-column: 7 / -1; }
  .contact-band--office .contact-band__tile:nth-child(1) { grid-column: 1 / 5; }
  .contact-band--office .contact-band__tile:nth-child(2) { grid-column: 5 / 10; }
  .contact-band--office .contact-band__tile:nth-child(3) { grid-column: 10 / -1; }
  .contact-form__panel { grid-column: 1 / 9; }
  .contact-form__rail { grid-column: 9 / -1; }
  .cookie-notice__content { width: calc((100% - var(--grid-gap) * 11) / 12 * 8 + var(--grid-gap) * 7); max-width: none; }
  .page-thank-you .hero__content { grid-column: 1 / 9; }
  .page-thank-you .status-tile { grid-column: 9 / -1; }
  .article-detail__header { max-width: calc((100% - var(--grid-gap) * 11) / 12 * 9 + var(--grid-gap) * 8); }
  .article-detail__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--grid-gap); }
  .article-detail__body { grid-column: 1 / 10; }
  .article-detail__rail { grid-column: 10 / -1; margin: 0; }
  .site-footer { padding-block-start: var(--space-16); }
  .footer__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .footer__company { grid-column: 1 / 6; padding-inline-end: var(--space-8); }
  .footer__nav { grid-column: 6 / 9; padding-inline-start: 0; }
  .footer__office { grid-column: 9 / -1; margin-block-start: 0; }
}

/* === Motion preference: no scroll effects or animated analytical graphics === */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* === Page: index === */
/* === Inicio: reciprocal dossier surfaces === */
.page-index .highlights-grid--reciprocal .highlight-card:nth-child(3) { background: var(--surface-muted); }
.page-index .highlights-grid--reciprocal .highlight-card:nth-child(4) { background: var(--surface); }

/* === Inicio: keep the supporting photograph at its editorial ratio === */
.page-index .intro--overview .intro__media { align-self: start; }
.page-index .intro--overview .intro__media img { height: auto; }

/* === Page: service-gestion-riesgos === */
/* === Risk dossier: align the standalone document heading with its prose === */
.page-service-gestion-riesgos .intro--document .intro__heading > h2:first-child { margin-block-start: 0; }
.page-service-gestion-riesgos .intro--scope .intro__heading .horizon-rule { margin-block-end: 0; }

/* === Page: service-soluciones-aseguradoras === */
/* === Insurance dossier: reading-column alignment === */
.page-service-soluciones-aseguradoras .intro--reading .horizon-rule {
  max-width: var(--reading);
  margin-inline: auto;
}
.page-service-soluciones-aseguradoras .hero__grid > .hero__title {
  padding-block-end: var(--space-4);
}
@media (min-width: 768px) {
  .page-service-soluciones-aseguradoras .intro--scope .intro__grid {
    align-items: baseline;
  }
  .page-service-soluciones-aseguradoras .intro--scope .intro__body {
    align-self: baseline;
  }
}

/* === Page: service-estructuras-patrimoniales === */
/* === Structures: action spacing across all viewport sizes === */
.page-service-estructuras-patrimoniales .cta-band--split .cta-band__action p { margin-block-end: var(--space-6); }
.page-service-estructuras-patrimoniales .intro--delivery .intro__heading { align-self: start; }

/* === Page: service-asesoramiento === */
/* === Advisory dossier surfaces across mobile and tablet === */
.page-service-asesoramiento .highlights-grid--wide-last .highlight-card:nth-child(2) { background: var(--surface); }
.page-service-asesoramiento .highlights-grid--wide-last .highlight-card:nth-child(3) { background: var(--surface-muted); }

/* === Page: equipo === */
/* === Equipo: retain full-contrast professional boundaries === */
.page-equipo .intro--limits .intro__body { color: var(--surface); }

/* === Page: quienes-somos === */
/* === About page: office details === */
.page-quienes-somos .contact-band__details address { margin-block-start: var(--space-6); max-width: var(--measure); }
.page-quienes-somos .contact-band__details address a { overflow-wrap: anywhere; }

/* === Page: contacto === */
/* === Contacto: office reading measure and legal rail === */
.page-contacto .office-reading { max-width: var(--compact); padding-block-start: var(--space-6); }
.page-contacto .form-legal-links { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); margin-block-start: var(--space-6); font-size: var(--text-small); }

/* === Page: privacy === */
/* === Privacy policy: editorial contents and numbered legal sections === */
.page-privacy .legal-page__header { max-width: var(--compact); }
.page-privacy .legal-page__header .eyebrow { margin-block-end: var(--space-4); color: var(--logo-accent); }
.page-privacy .legal-page__date { margin-block-start: var(--space-6); color: var(--text-muted); font-size: var(--text-small); font-variant-numeric: tabular-nums; }
.page-privacy .legal-page__header .lead { margin-block-start: var(--space-8); }
.page-privacy .privacy-layout { display: grid; gap: var(--space-12); align-items: start; }
.page-privacy .privacy-toc { padding: var(--panel-padding); border-radius: var(--radius-mobile); background: var(--surface-muted); }
.page-privacy .privacy-toc .dossier-label { margin-block-end: var(--space-6); }
.page-privacy .privacy-toc ol { margin: 0; padding-inline-start: var(--space-6); font-size: var(--text-small); font-variant-numeric: tabular-nums; }
.page-privacy .privacy-toc li + li { margin-block-start: var(--space-3); }
.page-privacy .privacy-toc li::marker { color: var(--logo-accent); }
.page-privacy .privacy-toc a { color: var(--logo-ink); }
.page-privacy .privacy-content { min-width: 0; max-width: var(--compact); }
.page-privacy .privacy-section { scroll-margin-block-start: var(--space-8); }
.page-privacy .privacy-section + .privacy-section { margin-block-start: var(--section-space); }
.page-privacy .privacy-section h2 { margin-block-end: var(--space-6); }
.page-privacy .privacy-section p { max-width: var(--measure); }
.page-privacy .privacy-facts { margin-block: var(--space-8); border-block-start: var(--border); }
.page-privacy .privacy-facts > div { padding-block: var(--space-5); border-block-end: var(--border); }
.page-privacy .privacy-facts dt { margin-block-end: var(--space-2); font-weight: 600; }
.page-privacy .privacy-facts dd { margin: 0; max-width: var(--measure); color: var(--text-muted); }
@media (min-width: 768px) {
  .page-privacy .privacy-toc { border-radius: var(--radius-panel); }
}
@media (min-width: 1200px) {
  .page-privacy .privacy-layout { grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); gap: var(--space-16); }
  .page-privacy .privacy-toc { position: sticky; top: var(--space-8); max-height: calc(100vh - var(--space-16)); overflow-y: auto; }
  .page-privacy .privacy-content { max-width: none; }
}

/* === Page: cookies === */
/* === Cookie policy: editorial legal dossier === */
.page-cookies .policy-header { max-width: var(--compact); margin-block-end: var(--section-space); }
.page-cookies .policy-header__date { margin-block-start: var(--space-6); color: var(--text-muted); font-size: var(--text-small); font-variant-numeric: tabular-nums; }
.page-cookies .policy-header__intro { margin-block-start: var(--space-8); font-size: var(--text-lead); }
.page-cookies .policy-layout { display: grid; gap: var(--space-12); align-items: start; }
.page-cookies .policy-toc { padding: var(--panel-padding); border-radius: var(--radius-mobile); background: var(--surface-muted); }
.page-cookies .policy-toc h2 { font-size: var(--text-h3); }
.page-cookies .policy-toc ol { margin: var(--space-6) 0 0; padding-inline-start: var(--space-6); font-size: var(--text-small); }
.page-cookies .policy-toc li { padding-inline-start: var(--space-2); }
.page-cookies .policy-toc li + li { margin-block-start: var(--space-3); }
.page-cookies .policy-toc li::marker { color: var(--logo-accent); font-variant-numeric: tabular-nums; }
.page-cookies .policy-article { min-width: 0; }
.page-cookies .policy-article > section { scroll-margin-block-start: var(--space-8); }
.page-cookies .policy-article > section + section { margin-block-start: var(--section-space); }
.page-cookies .policy-article h2 { max-width: var(--reading); margin-block-end: var(--space-6); }
.page-cookies .policy-article p { max-width: var(--reading); }
.page-cookies .policy-article code { overflow-wrap: anywhere; font-size: var(--text-small); }
.page-cookies .policy-categories { max-width: var(--reading); margin-block-end: var(--space-8); }
.page-cookies .policy-categories > div { padding-block: var(--space-5); border-block-start: var(--border); }
.page-cookies .policy-categories dt { font-weight: 600; }
.page-cookies .policy-categories dd { margin: var(--space-2) 0 0; color: var(--text-muted); }
.page-cookies .policy-table-wrap { max-width: 100%; margin-block-start: var(--space-8); overflow-x: auto; border-radius: var(--radius-mobile); background: var(--surface); }
.page-cookies .policy-table { width: 100%; min-width: var(--compact); border-collapse: collapse; text-align: left; font-size: var(--text-small); line-height: var(--leading-small); }
.page-cookies .policy-table caption { padding: var(--space-4) var(--space-5); text-align: left; font-weight: 600; }
.page-cookies .policy-table th, .page-cookies .policy-table td { padding: var(--space-4) var(--space-5); border-block-start: var(--border); vertical-align: top; }
.page-cookies .policy-table thead { background: var(--surface-muted); }
.page-cookies .policy-table tbody th { font-weight: 600; }
.page-cookies .policy-reopen { margin-block: var(--space-6); }
.page-cookies .policy-reopen + p { margin-block-start: 0; }
@media (min-width: 768px) {
  .page-cookies .policy-layout { grid-template-columns: minmax(0, 3fr) minmax(0, 5fr); gap: var(--grid-gap); }
  .page-cookies .policy-toc { position: sticky; top: var(--space-8); border-radius: var(--radius-panel); }
  .page-cookies .policy-table-wrap { border-radius: var(--radius-panel); }
}
@media (min-width: 1200px) {
  .page-cookies .policy-layout { grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); }
  .page-cookies .policy-article { padding-inline-start: var(--space-8); }
}

/* === Page: terms === */
/* === Terms of use: editorial legal dossier === */
.page-terms .terms__header { max-width: var(--compact); }
.page-terms .terms__header .eyebrow { margin-block-end: var(--space-4); color: var(--logo-accent); }
.page-terms .terms__date { margin-block-start: var(--space-6); color: var(--text-muted); font-size: var(--text-small); font-variant-numeric: tabular-nums; }
.page-terms .terms__header .lead { margin-block-start: var(--space-8); }
.page-terms .terms__layout { display: grid; gap: var(--space-12); align-items: start; }
.page-terms .terms__contents { padding: var(--panel-padding); border-radius: var(--radius-mobile); background: var(--surface-muted); }
.page-terms .terms__contents ol { margin: var(--space-6) 0 0; padding-inline-start: var(--space-6); font-size: var(--text-small); line-height: var(--leading-small); }
.page-terms .terms__contents li { padding-inline-start: var(--space-2); }
.page-terms .terms__contents li + li { margin-block-start: var(--space-3); }
.page-terms .terms__contents li::marker { color: var(--logo-accent); font-variant-numeric: tabular-nums; }
.page-terms .terms__contents a { color: var(--logo-ink); }
.page-terms .terms__contents a:hover { color: var(--logo-accent); }
.page-terms .terms__body { min-width: 0; }
.page-terms .terms__section { scroll-margin-block-start: var(--space-8); }
.page-terms .terms__section + .terms__section { margin-block-start: var(--section-space); }
.page-terms .terms__section h2 { margin-block-end: var(--space-6); }
.page-terms .terms__section > p:not(.horizon-rule) { max-width: var(--measure); }
.page-terms .terms__facts { max-width: var(--measure); margin-block: var(--space-8); padding: var(--space-4) var(--space-6); border-radius: var(--radius-mobile); background: var(--surface); }
.page-terms .terms__facts > div { padding-block: var(--space-3); }
.page-terms .terms__facts > div + div { border-block-start: var(--border); }
.page-terms .terms__facts dt { font-size: var(--text-small); font-weight: 600; }
.page-terms .terms__facts dd { margin: var(--space-1) 0 0; overflow-wrap: anywhere; }
@media (min-width: 768px) {
  .page-terms .terms__contents, .page-terms .terms__facts { border-radius: var(--radius-panel); }
}
@media (min-width: 1200px) {
  .page-terms .terms__layout { grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: var(--grid-gap); }
  .page-terms .terms__contents { position: sticky; inset-block-start: var(--space-8); }
  .page-terms .terms__body { padding-inline-start: var(--space-12); }
}

.risk-disclaimer { position: relative; z-index: 1000; background: #f4f6f8; border-bottom: 2px solid #64748b; color: #33404d; padding: 0.875rem 1.5rem; }
.risk-disclaimer p { max-width: 68rem; margin: 0 auto; font-size: 0.8125rem; line-height: 1.6; text-align: center; }
.risk-disclaimer strong { text-transform: uppercase; letter-spacing: 0.04em; }
.risk-disclaimer__icon { font-size: 1rem; }
