/* Identité RED DATA · RED DATA */
:root {
  --rd-ink: #151b32;
  --rd-navy: #11142d;
  --rd-paper: #fff;
  --rd-muted: #4e6077;
  --rd-line: #d5e2ee;
  --rd-accent: #403e70;
  --rd-signal: #96c0e6;
  --rd-max: 1344px;
  --rd-ease: cubic-bezier(.23, 1, .32, 1);
}
html { scroll-padding-top: 96px; }
body { background: var(--rd-paper); }
.rd-dark { background-color: var(--rd-navy); }
.rd-dark p { color: #dce7f3; }
h1, h2, h3, h4 { font-weight: 700; }
h1 em, h2 em { color: var(--rd-accent); }
.rd-dark h1 em, .rd-dark h2 em { color: var(--rd-signal); }
h2 { font-size: clamp(34px, 5vw, 74px); line-height: 1; }
.rd-eyebrow, .rd-dark .rd-eyebrow {
  color: var(--rd-accent);
  font-size: .72rem;
  letter-spacing: .105em;
  font-weight: 700;
}
.rd-dark .rd-eyebrow { color: #c6def3; }
.rd-eyebrow > span { background: currentColor; border-radius: 0; }
::selection { background: #cfe5f8; color: var(--rd-ink); }
:where(a, button, input, textarea, select, summary):focus-visible {
  outline: 3px solid #315b87;
  outline-offset: 4px;
}
a:focus-visible, button:focus-visible, summary:focus-visible { outline-color: #315b87; }
.rd-dark :focus-visible, .site-footer :focus-visible { outline-color: #a6d0f0; }
.rd-button, .button, .rd-contact-form button[type=submit], .rd-search-form button {
  min-height: 48px;
  border-radius: 0;
  transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease, transform 140ms var(--rd-ease);
}
.rd-button-primary, .button-primary, .rd-contact-form button[type=submit], .rd-search-form button {
  background: var(--rd-accent);
  color: #fff;
}
.rd-button-primary:hover, .button-primary:hover, .rd-contact-form button[type=submit]:hover, .rd-search-form button:hover {
  background: #2c2b54;
  color: #fff;
  transform: none;
}
.rd-button:active, .rd-search-form button:active, .rd-contact-form button[type=submit]:active { transform: scale(.98); }
.rd-button .rd-icon, .rd-link .rd-icon { transition: transform 180ms var(--rd-ease); }
.rd-link:hover { color: var(--rd-accent); }
.rd-dark .rd-link:hover { color: #c6def3; }
.rd-dark:not(.rd-hero, .rd-cta) .rd-button-primary { background: var(--rd-signal); color: var(--rd-navy); }
.rd-dark:not(.rd-hero, .rd-cta) .rd-button-primary:hover { background: #c6def3; }

/* A ruled masthead shared by French and English. */
.site-header { background: var(--rd-paper); backdrop-filter: none; border-color: var(--rd-line); }
.site-header.is-scrolled { box-shadow: 0 4px 16px #11142d12; }
.header-inner { width: min(var(--rd-max), calc(100% - 112px)); min-height: 76px; }
.nav-links a { font-size: 14px; font-weight: 700; }
.nav-links a::after {
  inset: auto 0 3px;
  background: var(--rd-accent);
  transform-origin: left;
  transform: scaleX(0);
  transition: transform 160ms var(--rd-ease);
}
.nav-links a:hover::after, .nav-links a[aria-current=page]::after { transform: scaleX(1); }
.language-switch a { opacity: 1; color: var(--rd-muted); }
.language-switch a.is-active { color: var(--rd-accent); text-decoration: underline; text-underline-offset: 4px; }
.language-switch a { min-width: 28px; text-align: center; padding-block: 13px; }
.header-cta { background: var(--rd-accent) !important; border-radius: 0 !important; }
.header-cta:hover { background: #2c2b54 !important; }
.nav-toggle { border-radius: 0; min-width: 46px; min-height: 46px; }
.nav-toggle[aria-expanded=true] span:first-child { transform: translateY(3px) rotate(45deg); }
.nav-toggle[aria-expanded=true] span:last-child { transform: translateY(-3px) rotate(-45deg); }

/* Opening plate. The published content stays in its WordPress pages. */
.rd-hero.rd-dark { padding: clamp(25px, 3.8vw, 58px) 0 0; min-height: 0; background: var(--rd-paper); color: var(--rd-ink); }
.rd-hero::before, .rd-hero-grid, .rd-hero-art .rd-orbit, .rd-art-node { display: none; }
.rd-hero-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(0, 1fr);
  align-items: stretch;
  gap: clamp(25px, 4vw, 64px);
  min-height: 0;
}
.rd-hero-copy { padding: clamp(21px, 3.25vw, 47px) 0 clamp(24px, 3.25vw, 47px); width: auto; }
.rd-hero .rd-eyebrow { margin-bottom: clamp(22px, 3.1vw, 43px); color: var(--rd-accent); }
.rd-hero h1 {
  font-size: clamp(56px, 7.55vw, 120px);
  line-height: 1.045;
  letter-spacing: -.065em;
  margin-bottom: 28px;
  color: var(--rd-ink);
  font-weight: 700;
}
.rd-language-en .rd-hero h1 { font-size: clamp(54px, 6.4vw, 105px); }
.rd-hero h1 em { color: var(--rd-accent); }
.rd-hero .rd-lead { font-size: clamp(15px, 1.27vw, 18px); line-height: 1.58; color: var(--rd-muted); max-width: 37ch; }
.rd-hero .rd-actions { gap: 12px 19px; }
.rd-hero .rd-button { font-size: 13px; padding: 14px 18px; gap: 13px; }
.rd-hero .rd-button-ghost { color: var(--rd-ink); border: 1px solid #7f93ac; padding-inline: 16px; font-weight: 700; }
.rd-hero .rd-button-ghost:hover { background: #eaf4fc; border-color: #5c7798; }
.rd-hero-art {
  position: relative;
  inset: auto;
  margin: 0;
  height: auto;
  width: auto;
  min-height: 100%;
  opacity: 1;
  border-radius: 0;
  background: #161e38;
  overflow: hidden;
}
.rd-hero-art > img {
  object-position: 54% center;
  filter: grayscale(.75) saturate(1.15) contrast(1.07) brightness(.78);
  opacity: 1;
}
.rd-hero .rd-art-shade {
  background: url('signal.svg') center / cover no-repeat, linear-gradient(0deg, #11142dc9, #13244826 60%);
}
.rd-art-caption {
  inset: auto 0 0;
  font-size: .68rem;
  color: #f0f7ff;
  line-height: 1.35;
  letter-spacing: .075em;
  padding: 16px 23px;
  background: #11142d;
  border-top: 1px solid #c6def350;
}
.rd-live-dot { background: var(--rd-signal); box-shadow: none; width: 6px; height: 6px; border-radius: 0; flex-shrink: 0; }
.rd-hero-bottom { margin-top: clamp(25px, 3.2vw, 46px); border-color: var(--rd-line); color: var(--rd-muted); font-size: .78rem; padding-block: 17px; }
.rd-hero-bottom p { color: inherit; }
.rd-hero-bottom a { color: var(--rd-ink); font-weight: 700; gap: 12px; }
.rd-hero-bottom a:hover, .rd-hero-bottom a span { color: var(--rd-accent); }
.rd-pillars { background: var(--rd-navy); border-top: 3px solid var(--rd-signal); color: #fff; border-bottom: 0; }
.rd-pillars > .rd-container { width: min(var(--rd-max), calc(100% - 112px)); }
.rd-pillar { padding-block: 29px; min-width: 0; }
.rd-pillar + .rd-pillar { border-color: #ffffff55; }
.rd-pillar h2 { color: #fff; font-size: clamp(16px, 1.45vw, 24px); }
.rd-pillar p { color: #dce7f3; font-size: .83rem; }
.rd-pillar > .rd-icon { color: var(--rd-signal); }
.rd-intro { background: var(--rd-paper); }
.rd-intro h2 { margin-bottom: 0; }
.rd-intro-copy { padding-top: clamp(8px, 2.5vw, 40px); }
.rd-large-copy { font-weight: 700; }

/* The solutions become an index, with a clear target on every row. */
.rd-solutions-section, .rd-page-solutions .rd-page-hero + .rd-section { background: #f4f8fc; }
.rd-solutions-grid { display: block; border-top: 1px solid #a8bfd6; counter-reset: rd-solution; }
.rd-solutions-grid .rd-solution-card {
  display: grid;
  grid-template-columns: 2.2rem 2.6rem minmax(0, 1fr) 2.75rem;
  align-items: center;
  gap: clamp(12px, 2.5vw, 34px);
  position: relative;
  min-height: 0;
  padding: 27px 15px;
  border: 0;
  border-bottom: 1px solid #a8bfd6;
  border-radius: 0;
  background: transparent;
  counter-increment: rd-solution;
  transition: background-color 180ms ease;
}
.rd-solutions-grid .rd-solution-card::before {
  content: counter(rd-solution, decimal-leading-zero) / "";
  font-variant-numeric: tabular-nums;
  font-size: .8rem;
  font-weight: 700;
  color: var(--rd-accent);
}
.rd-solutions-grid .rd-solution-card:is(:hover, :focus-visible) {
  background: #e8f2fb;
  box-shadow: none;
  transform: none;
}
.rd-solutions-grid .rd-icon-box { width: 38px; height: 38px; margin: 0; border: 0; background: none; color: var(--rd-accent); }
.rd-solutions-grid .rd-solution-card > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .92fr);
  align-items: center;
  gap: clamp(14px, 4vw, 64px);
}
.rd-solutions-grid .rd-solution-card h3 { font-size: clamp(22px, 2.45vw, 38px); margin: 0; line-height: 1.05; }
.rd-solutions-grid .rd-solution-card p { font-size: .89rem; color: var(--rd-muted); margin: 0; padding: 0; }
.rd-solutions-grid .rd-card-arrow {
  position: static;
  width: 44px;
  height: 44px;
  transform: none;
  border: 1px solid #8faac7;
  border-radius: 0;
  color: var(--rd-accent);
  transition: background-color 150ms ease, color 150ms ease;
}
.rd-solutions-grid .rd-solution-card:is(:hover, :focus-visible) .rd-card-arrow { transform: none; background: var(--rd-accent); color: #fff; border-color: var(--rd-accent); }

/* The photographic section reverses the opening composition. */
.rd-feature { min-height: clamp(460px, 44vw, 680px); background: var(--rd-navy); }
.rd-feature-image { width: 49%; }
.rd-feature-image::after { background: #17395e4a; }
.rd-feature-image img { filter: grayscale(.65) contrast(1.07); }
.rd-feature-copy { margin-left: 55%; width: 45%; padding-block: 80px; }
.rd-feature h2 { font-size: clamp(38px, 4.8vw, 72px); }
.rd-method { gap: clamp(20px, 3vw, 46px); counter-reset: rd-step; }
.rd-method > div { position: relative; border-color: #9cb1c8; padding-top: 23px; counter-increment: rd-step; }
.rd-method > div::after {
  content: counter(rd-step, decimal-leading-zero) / "";
  position: absolute;
  top: 26px;
  right: 0;
  color: var(--rd-accent);
  font-variant-numeric: tabular-nums;
  font-size: .8rem;
  font-weight: 700;
}
.rd-method .rd-icon { color: var(--rd-accent); }
.rd-method p { color: var(--rd-muted); }
.rd-cta.rd-dark { background: #e1effb; color: var(--rd-navy); }
.rd-cta.rd-dark h2 { color: var(--rd-navy); }
.rd-cta.rd-dark p { color: var(--rd-muted); }
.rd-cta.rd-dark .rd-eyebrow { color: var(--rd-accent); }
.rd-cta.rd-dark :focus-visible, .rd-hero.rd-dark :focus-visible { outline-color: var(--rd-accent); }
.rd-cta h2 { font-size: clamp(34px, 5.7vw, 83px); }
.rd-cta .rd-button-primary { color: #fff; background: #403e70; }
.rd-cta .rd-button-primary:hover { color: #fff; background: #2c2b54; }
.rd-cta .rd-cta-orbit {
  background: url('signal.svg') center / cover no-repeat;
  border-radius: 0;
  border: 0;
  opacity: .23;
  width: 630px;
  height: 610px;
  right: 0;
  top: -105px;
}
.rd-cta .rd-cta-orbit::before, .rd-cta .rd-cta-orbit::after { display: none; }

@media (max-width: 1180px) {
  .header-inner, .rd-pillars > .rd-container { width: calc(100% - 72px); }
}
@media (max-width: 980px) {
  .header-inner { min-height: 68px; }
  .site-nav { background: var(--rd-paper); padding-inline: 36px; }
  .nav-links a { border-color: var(--rd-line); }
  html:not(.rd-js) .header-inner { flex-wrap: wrap; gap: 0; padding-top: 12px; }
  html:not(.rd-js) .site-nav { display: flex; position: static; flex: 1 0 100%; flex-direction: column; padding: 0 0 12px; box-shadow: none; }
  html:not(.rd-js) .site-header { position: relative; top: 0; }
  html:not(.rd-js) .nav-toggle { display: none; }
  html.rd-js .site-nav.is-open { max-height: calc(100vh - 68px); max-height: calc(100dvh - 68px); overflow: auto; }
  .admin-bar .site-nav.is-open { max-height: calc(100dvh - 114px); }
}
@media (max-width: 760px) {
  .header-inner, .rd-pillars > .rd-container { width: calc(100% - 42px); }
  .site-nav { padding-inline: 21px; }
  .rd-hero-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .rd-hero-copy { padding-block: 8px 0; }
  .rd-hero h1 { font-size: clamp(51px, 13.8vw, 94px); margin-bottom: 21px; }
  .rd-language-en .rd-hero h1 { font-size: clamp(43px, 11.6vw, 78px); }
  .rd-hero .rd-lead { margin-bottom: 21px; }
  .rd-hero .rd-button { font-size: 12px; padding: 12px 13px; }
  .rd-hero .rd-button-ghost { padding-inline: 13px; }
  .rd-hero-art { min-height: 0; aspect-ratio: 5 / 3; }
  .rd-hero-art > img { object-position: center; }
  .rd-art-caption { padding: 11px 14px; font-size: .62rem; }
  .rd-hero-bottom { gap: 12px; font-size: .67rem; }
  .rd-hero-bottom a { font-size: inherit; }
  .rd-pillar { padding-block: 19px; }
  .rd-pillar + .rd-pillar { border-top-color: #ffffff55; }
  .rd-solutions-grid .rd-solution-card {
    grid-template-columns: 1.55rem minmax(0, 1fr) 2.2rem;
    gap: 11px;
    padding: 20px 0;
    align-items: start;
  }
  .rd-solutions-grid .rd-solution-card::before { padding-top: 4px; }
  .rd-solutions-grid .rd-icon-box { display: none; }
  .rd-solutions-grid .rd-solution-card > div { grid-template-columns: 1fr; gap: 7px; }
  .rd-solutions-grid .rd-solution-card h3 { font-size: clamp(20px, 5.4vw, 30px); }
  .rd-solutions-grid .rd-card-arrow { width: 35px; height: 35px; }
  .rd-feature { min-height: 0; }
  .rd-feature-image { width: 100%; height: clamp(250px, 55vw, 360px); }
  .rd-feature-copy { width: 100%; margin-left: 0; padding-block: 44px 57px; }
}
@media (max-width: 400px) {
  .header-inner, .rd-pillars > .rd-container { width: calc(100% - 36px); }
}
@media (prefers-reduced-motion: reduce) {
  .rd-button:active, .rd-link:hover .rd-icon, .rd-button:hover .rd-icon { transform: none; }
}
@media print {
  .rd-hero h1 em { color: #000; }
  .rd-hero-art, .rd-feature-image { display: none !important; }
  .rd-feature-copy { width: 100%; margin: 0; }
}
