:root {
  --gps-navy: #0B1D3A;
  --gps-green: #1A7F3C;
  --gps-white: #FFFFFF;
  --gps-ink: #122033;
  --gps-mist: #F4F7F8;
  --gps-line: #DCE5E8;
}

* { box-sizing: border-box; }
html { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
body { margin: 0; }
img, svg, video { max-width: 100%; height: auto; }
a { text-underline-offset: .16em; }
:focus-visible { outline: 3px solid var(--gps-green); outline-offset: 3px; }

.wp-site-blocks { min-height: 100vh; }
.wp-site-blocks > * { margin-block-start: 0; }

.gpsn-section { padding-block: var(--wp--custom--gps--section--space); }
.gpsn-shell { padding-inline: var(--wp--custom--gps--container--gutter); }
.gpsn-full-bleed { width: 100vw; margin-left: calc(50% - 50vw); }
.gpsn-eyebrow { letter-spacing: .12em; text-transform: uppercase; font-size: .78rem; font-weight: 800; }
.gpsn-kicker { max-width: 72ch; }
.gpsn-muted { color: #526477; }
.gpsn-surface { background: var(--gps-mist); }
.gpsn-dark { background: var(--gps-navy); color: var(--gps-white); }
.gpsn-dark h1,.gpsn-dark h2,.gpsn-dark h3,.gpsn-dark h4 { color: var(--gps-white); }

@media (max-width: 781px) {
  .gpsn-section { padding-block: clamp(48px, 11vw, 80px); }
}

/* GPSI publication authority -------------------------------------------------
 * Sur une page gérée par GPSI, le thème ne doit jamais masquer, remplacer ou
 * contraindre le rendu publié par GPSI. Les sélecteurs ci-dessous sont un
 * filet de sécurité en plus du filtre render_block côté PHP.
 */
body.gpsn-gpsi-managed .gpsn-header,
body.gpsn-gpsi-managed .gpsn-footer,
body.gpsi-global-layout.gpsi-hide-theme-header .gpsn-header,
body.gpsi-global-layout.gpsi-hide-theme-footer .gpsn-footer {
    display: none !important;
}

body.gpsn-gpsi-managed .gpsn-page-title-shell {
    display: none !important;
}

body.gpsn-gpsi-managed .gpsn-published-content-shell,
body.gpsn-gpsi-managed .gpsn-publisher-surface {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
