/* Typographie, focus, mouvement réduit. Portée : contenu du site. */
body {
  font-family: var(--nxt-font-sans);
  font-size: var(--nxt-fs-base);
  line-height: 1.7;
  color: var(--nxt-text);
  background: var(--nxt-background);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.entry-title, .page-title {
  font-family: var(--nxt-font-sans);
  color: var(--nxt-heading);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.1;
  text-wrap: balance;
}
h1 { font-size: var(--nxt-fs-h1); letter-spacing: -0.04em; }
h2 { font-size: var(--nxt-fs-h2); }
h3 { font-size: var(--nxt-fs-h3); line-height: 1.2; }
h4 { font-size: var(--nxt-fs-h4); line-height: 1.3; letter-spacing: -0.02em; }
h5, h6 { font-size: var(--nxt-fs-lg); line-height: 1.4; letter-spacing: -0.01em; }

p, li { text-wrap: pretty; }

/* Mot d'accent en serif italique : <em class="nxt-accent">Ascend.</em> */
.nxt-accent {
  font-family: var(--nxt-font-accent);
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.01em;
  color: var(--nxt-accent-text);
}

/* Étiquette mono en majuscules (navigation, surtitres) */
.nxt-eyebrow,
.nxt-mono {
  font-family: var(--nxt-font-mono);
  font-weight: 500;
  font-size: var(--nxt-fs-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--nxt-link);
}

/* Focus visible, contraste >= 3:1 sur blanc et sur lavande */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid transparent;
  box-shadow: var(--nxt-focus-ring);
  border-radius: var(--nxt-radius-sm);
}

::selection { background: var(--nxt-lavender); color: var(--nxt-heading); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ---------- Thème sombre : fond global ---------- */
html { background: var(--nxt-background); }
body { overflow-x: clip; }

/* ---------- Bandeau titre de toutes les pages Blocksy (Cours, Inscription, Panier, Commande, pages légales…) ---------- */
.hero-section[data-type] {
  position: relative; isolation: isolate; margin-bottom: var(--nxt-stack);
  padding-block: clamp(3.5rem, 2.5rem + 5vw, 6.5rem) clamp(2.5rem, 2rem + 3vw, 4.5rem);
}
.hero-section[data-type]::before {
  content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: calc(50% - 50vw); right: calc(50% - 50vw);
  background:
    radial-gradient(60% 120% at 85% 0%, rgba(62, 100, 222, 0.32), transparent 70%),
    linear-gradient(var(--nxt-border) 1px, transparent 1px) 0 0 / 64px 64px,
    linear-gradient(90deg, var(--nxt-border) 1px, transparent 1px) 0 0 / 64px 64px;
  -webkit-mask-image: linear-gradient(#000 55%, transparent); mask-image: linear-gradient(#000 55%, transparent);
}
.hero-section .entry-header::before {
  content: "Nxtforma"; display: inline-flex; align-items: center; gap: .75rem; margin-bottom: var(--nxt-space-4);
  font: 500 var(--nxt-fs-xs)/1 var(--nxt-font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--nxt-link);
}
.hero-section .page-title { font-size: var(--nxt-fs-display) !important; font-weight: 800; letter-spacing: -0.045em; line-height: .98; color: #fff; }
.hero-section .page-description { color: var(--nxt-text); font-size: var(--nxt-fs-lg); max-width: 40rem; }

