/* Shared reading scale, in both languages. Logo geometry stays unchanged. */
:root { --reading-size: 1.125rem; --label-size: .875rem; }
main p, .offer p, .path p, .course-grid p, .capacity-modes p, .value-points p,
.standard p, .logic-flow p, .outcome p, .rdcd-system header p,
.decision-rail small, .principles-list p, .contact-layout > div > p,
.value-equation p, .method-map span, .method-map figcaption {
  font-size: var(--reading-size); line-height: 1.7;
}
.lede, .cinematic-hero .lede { font-size: clamp(1.125rem, 1.4vw, 1.35rem); line-height: 1.65; }
.eyebrow, .micro, .pain-grid span, .purpose-kicker, .purpose-compass span,
.purpose-chain span, .standard b, .course-system header span, .rdcd-system header span,
.inside-steps span, .process span, .preview-block span,
.footer-bottom, .footer-company address span:first-child:before,
.footer-company address a:before, .footer-company p:before {
  font-size: var(--label-size); line-height: 1.5; letter-spacing: .06em;
}
.field label, .field input, .field textarea, .field select,
.footer-nav, .footer-company address, .footer-company p,
.contact-form p, .contact-form label, .method-figure figcaption { font-size: 1rem; line-height: 1.65; }
.tabs a, html[lang="fr"] .tabs a { font-size: 1rem; padding-inline: 10px; }
.header-cta, html[lang="fr"] .header-cta, .theme-toggle,
.language-switch, .photo-motion-control, .hero-video-toggle { font-size: .875rem; line-height: 1.4; }
.offer h3, .path h3, .pain-grid h3, .principles-list h3 { line-height: 1.18; }
.course-grid b, .outcome b, .capacity-modes b, .value-points b, .logic-flow b { font-size: 1.125rem; line-height: 1.45; }
.offer a { max-width: 100%; }
.footer-bottom { gap: 16px; flex-wrap: wrap; }
@media(max-width:1250px) {
  .tabs { display: none; }
  .mobile-menu-toggle { display: flex; }
  .mobile-navigation.open { display: block; }
  .header-inner { grid-template-columns: 1fr auto auto auto auto; }
}
@media(max-width:760px) {
  :root { --reading-size: 1.0625rem; }
  .header-inner, html[lang="fr"] .header-inner { grid-template-columns: 1fr auto auto auto; }
  .language-switch, .theme-toggle { font-size: .875rem; }
  .cinematic-hero .lede { font-size: 1.125rem; }
}

/* Overview: editorial headings should not dwarf the evidence beside them. */
.cinematic-hero ~ section h2 {
  font-size: clamp(1.875rem, 2.7vw, 2.75rem);
  line-height: 1.18; letter-spacing: -.035em;
}
.cinematic-hero ~ section h3 { font-size: clamp(1.375rem, 1.7vw, 1.875rem); line-height: 1.3; }
.cinematic-hero ~ .value-strip .shell { align-items: start; grid-template-columns: .85fr 1.15fr; }
.cinematic-hero ~ .value-strip .value-points { align-self: start; }
.cinematic-hero ~ .value-strip .value-points > div { min-height: 180px; }
.cinematic-hero ~ .value-strip .value-points b { font-size: 1.25rem; line-height: 1.4; }
.cinematic-hero ~ section .value-points p { font-size: 1.125rem; line-height: 1.7; }
@media(max-width:1050px) {
  .cinematic-hero ~ .value-strip .shell { grid-template-columns: 1fr; gap: 32px; }
}
@media(max-width:650px) {
  .cinematic-hero ~ .value-strip .value-points > div { min-height: 0; }
}

/* Rounded surfaces keep the logo geometry intact and chart labels unclipped. */
:root { --surface-radius: 20px; --media-radius: 24px; }
main img { border-radius: var(--media-radius); }
.page-image, .hero-visual, .image-story, .evidence-image { border-radius: var(--media-radius); overflow: hidden; }
.page-image img, .hero-visual img { border-radius: inherit; }
.offer, .path, .standard, .outcome, .pain-grid article,
.course-grid > div, .logic-flow > div, .decision-rail > div,
.inside-steps article, .capacity-modes > div, .value-points > div,
.method-map, .decision-chart, .brief-preview, .contact-form,
.training-callout, .hero-quant-corner, .principles-list article {
  border-radius: var(--surface-radius);
}
.pain-grid, .offer-grid, .course-grid, .logic-flow, .outcomes,
.path-grid, .standards, .inside-steps, .capacity-modes, .value-points {
  gap: 16px; border: 0; background: transparent;
}
.pain-grid article, .offer, .course-grid > div, .outcome, .path {
  border: 1px solid var(--line-dark);
}
.path, .path + .path { padding: 32px; }
.path:after { display: none; }
.standard, .logic-flow > div, .inside-steps article, .capacity-modes > div,
.value-points > div, .decision-rail > div { border: 1px solid var(--line); }
.capacity-modes > div, .capacity-modes > div:nth-child(even),
.value-points > div, .value-points > div:nth-child(even) { padding: 24px; }
.decision-rail { gap: 12px; }
.decision-rail > div:before { display: none; }
.inside-steps article:before { left: 20px; right: 20px; }
.pain-grid article:before, .course-grid div:before { top: 0; }
.quant-art.simple-curves { border-radius: var(--surface-radius); }
.hero-video-toggle, .photo-motion-control { border-radius: 10px; }

/* A full-width human backdrop, not a second column. No scroll trapping. */
.cinematic-hero {
  display: grid; grid-template-columns: 1fr; width: 100%; max-width: none;
  min-height: min(860px, calc(100svh - 150px)); padding: 64px 0 30px;
  position: relative; isolation: isolate; align-content: center; gap: 38px;
  overflow: hidden; border-radius: 0 0 var(--media-radius) var(--media-radius);
}
.cinematic-hero:before, .cinematic-hero:after { display: none; }
.cinematic-hero .hero-content { position: relative; z-index: 2; pointer-events: none; }
.cinematic-hero .hero-copy { max-width: 690px; }
.cinematic-hero .button-row { pointer-events: auto; }
.cinematic-hero h1 { font-size: clamp(2.8rem, 5.3vw, 5.7rem); }
.cinematic-hero .hero-backdrop {
  position: absolute; inset: 0; margin: 0; width: 100%; height: 100%;
  min-height: 0; border: 0; z-index: 0; border-radius: inherit;
}
.hero-backdrop .hero-poster, .hero-backdrop .hero-video {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  object-position: center; animation: none; transform: none; transition: none; filter: none;
}
.hero-backdrop .hero-video { opacity: 0; }
.video-ready:not(.motion-still) .hero-video { opacity: 1; }
.cinematic-hero .hero-backdrop:after {
  background: linear-gradient(90deg, rgba(6,16,27,.96) 0%, rgba(6,16,27,.86) 36%, rgba(6,16,27,.25) 72%, rgba(6,16,27,.16)),
    linear-gradient(0deg, rgba(6,16,27,.78), transparent 35%);
}
.cinematic-hero .hero-quant-corner {
  top: 28px; right: max(24px, 5vw); left: auto; width: 200px;
}
.cinematic-hero .hero-quant-corner span { font-size: 12px; letter-spacing: .06em; }
.hero-video-tools { position: relative; z-index: 3; display: flex; gap: 16px; align-items: center; justify-content: space-between; }
.scroll-hint { color: #d2dce3; font-size: 14px; margin: 0; }
.hero-video-toggle {
  color: #fff; background: #101c25e8; border: 1px solid #a7b5b4;
  font: inherit; font-size: 14px; padding: 12px 16px; cursor: pointer;
}
.hero-video-toggle:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.hero-video-tools [hidden] { display: none; }
html[data-theme="light"] .cinematic-hero .hero-backdrop:after {
  background: linear-gradient(90deg, rgba(247,250,252,.97), rgba(247,250,252,.9) 36%, rgba(247,250,252,.18) 78%),
    linear-gradient(0deg, rgba(247,250,252,.8), transparent 35%);
}
html[data-theme="light"] .cinematic-hero .scroll-hint { color: #263f50; }
@media(max-width:1050px) {
  .cinematic-hero { min-height: 760px; padding-top: 140px; }
  .cinematic-hero .hero-copy { max-width: 660px; }
  .cinematic-hero .hero-backdrop:after { background: linear-gradient(90deg, #06101bef, #06101ba8); }
  html[data-theme="light"] .cinematic-hero .hero-backdrop:after { background: linear-gradient(90deg, #f7fafcf5, #f7fafcb5); }
}
@media(max-width:650px) {
  :root { --surface-radius: 16px; --media-radius: 20px; }
  .cinematic-hero { min-height: 0; padding: 132px 0 24px; gap: 28px; }
  .cinematic-hero .hero-quant-corner { top: 16px; right: 20px; width: 162px; }
  .cinematic-hero .hero-quant-corner svg { height: 58px; }
  html[lang="fr"] .cinematic-hero .hero-quant-corner { width: 210px; }
  .hero-video-tools { align-items: flex-start; flex-direction: column; }
  .cinematic-hero .lede { font-size: 1.125rem; }
  .cinematic-hero .button-row { gap: 12px; }
  .path, .path + .path { padding: 26px; }
}

/* Inquiry capture: readable acknowledgement, hidden spam trap, no design changes elsewhere. */
.inquiry-consent { display:flex!important; flex-direction:row!important; align-items:flex-start; gap:12px; font-size:16px; line-height:1.55; }
.inquiry-consent input { width:20px!important; height:20px; flex:0 0 20px; margin-top:3px; accent-color:var(--accent); }
.inquiry-consent a { text-decoration:underline; }
.inquiry-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.contact-form button:disabled { opacity:.65; cursor:wait; }
.privacy-page { max-width:900px; padding-top:60px; padding-bottom:70px; }
.privacy-page h1 { font-size:clamp(36px,5vw,58px); margin:24px 0; }
.privacy-page h2 { font-size:26px; margin:32px 0 14px; }
.privacy-page p { font-size:18px; line-height:1.7; margin-bottom:20px; }
.privacy-page a { text-decoration:underline; }
